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.