Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AwsBIParamsValidation ¶
func AwsBIParamsValidation(sl validator.StructLevel)
Types ¶
type Config ¶
type DataDisk ¶
type DataDisk struct { DeviceName *string `json:"device_name" validate:"required,min=1"` // https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/volume_attachment#device_name GbSize *int `json:"disk_size_gb" validate:"required,min=1"` Type *string `json:"type" validate:"required,eq=standard|eq=gp2|eq=gp3|eq=io1|eq=io2|eq=sc1|eq=st1"` // https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ebs_volume#type }
type Output ¶
type Output struct { VpcId *string `json:"vpc_id"` PrivateSubnetIds []string `json:"private_subnet_ids"` PublicSubnetIds []string `json:"public_subnet_ids"` PrivateRouteTable *string `json:"private_route_table"` VmGroups []OutputVmGroup `json:"vm_groups"` }
type OutputDataDisk ¶
type OutputVm ¶
type OutputVm struct { Name *string `json:"name"` PublicIp *string `json:"public_ip"` PrivateIp *string `json:"private_ip"` DataDisks []OutputDataDisk `json:"data_disks"` }
type OutputVmGroup ¶
type Params ¶
type Params struct { Name *string `json:"name" validate:"required,min=1"` Region *string `json:"region" validate:"required,min=1"` NatGatewayCount *int `json:"nat_gateway_count" validate:"required,min=0"` VirtualPrivateGateway *bool `json:"virtual_private_gateway" validate:"required"` RsaPublicKeyPath *string `json:"rsa_pub_path" validate:"required,min=1"` VpcAddressSpace *string `json:"vpc_address_space" validate:"required,min=1,cidr"` Subnets *Subnets `json:"subnets" validate:"required,dive,omitempty"` SecurityGroups []SecurityGroup `json:"security_groups" validate:"required,dive"` VmGroups []VmGroup `json:"vm_groups" validate:"required,dive"` }
type Rules ¶
type Rules struct { Ingress []SecurityRule `json:"ingress" validate:"omitempty,min=1,dive,required"` Egress []SecurityRule `json:"egress" validate:"omitempty,min=1,dive,required"` }
type SecurityGroup ¶
type SecurityRule ¶
type VmGroup ¶
type VmGroup struct { Name *string `json:"name" validate:"required,min=1"` VmCount *int `json:"vm_count" validate:"required,min=1"` VmSize *string `json:"vm_size" validate:"required,min=1"` UsePublicIp *bool `json:"use_public_ip" validate:"required"` SubnetNames []string `json:"subnet_names" validate:"omitempty,min=1,dive,required"` SecurityGroupNames []string `json:"sg_names" validate:"omitempty,min=1,dive,required"` VmImage *VmImage `json:"vm_image" validate:"required,dive"` RootVolumeGbSize *int `json:"root_volume_size" validate:"required,min=1"` DataDisks []DataDisk `json:"data_disks" validate:"omitempty,dive"` }
Click to show internal directories.
Click to hide internal directories.