github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/availabilityZoneGroup.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package ec2 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages an EC2 Availability Zone Group, such as updating its opt-in status. 16 // 17 // > **NOTE:** This is an advanced resource. The provider will automatically assume management of the EC2 Availability Zone Group without import and perform no actions on removal from configuration. 18 // 19 // ## Example Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := ec2.NewAvailabilityZoneGroup(ctx, "example", &ec2.AvailabilityZoneGroupArgs{ 35 // GroupName: pulumi.String("us-west-2-lax-1"), 36 // OptInStatus: pulumi.String("opted-in"), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 // 48 // ## Import 49 // 50 // Using `pulumi import`, import EC2 Availability Zone Groups using the group name. For example: 51 // 52 // ```sh 53 // $ pulumi import aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup example us-west-2-lax-1 54 // ``` 55 type AvailabilityZoneGroup struct { 56 pulumi.CustomResourceState 57 58 // Name of the Availability Zone Group. 59 GroupName pulumi.StringOutput `pulumi:"groupName"` 60 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 61 OptInStatus pulumi.StringOutput `pulumi:"optInStatus"` 62 } 63 64 // NewAvailabilityZoneGroup registers a new resource with the given unique name, arguments, and options. 65 func NewAvailabilityZoneGroup(ctx *pulumi.Context, 66 name string, args *AvailabilityZoneGroupArgs, opts ...pulumi.ResourceOption) (*AvailabilityZoneGroup, error) { 67 if args == nil { 68 return nil, errors.New("missing one or more required arguments") 69 } 70 71 if args.GroupName == nil { 72 return nil, errors.New("invalid value for required argument 'GroupName'") 73 } 74 if args.OptInStatus == nil { 75 return nil, errors.New("invalid value for required argument 'OptInStatus'") 76 } 77 opts = internal.PkgResourceDefaultOpts(opts) 78 var resource AvailabilityZoneGroup 79 err := ctx.RegisterResource("aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup", name, args, &resource, opts...) 80 if err != nil { 81 return nil, err 82 } 83 return &resource, nil 84 } 85 86 // GetAvailabilityZoneGroup gets an existing AvailabilityZoneGroup resource's state with the given name, ID, and optional 87 // state properties that are used to uniquely qualify the lookup (nil if not required). 88 func GetAvailabilityZoneGroup(ctx *pulumi.Context, 89 name string, id pulumi.IDInput, state *AvailabilityZoneGroupState, opts ...pulumi.ResourceOption) (*AvailabilityZoneGroup, error) { 90 var resource AvailabilityZoneGroup 91 err := ctx.ReadResource("aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup", name, id, state, &resource, opts...) 92 if err != nil { 93 return nil, err 94 } 95 return &resource, nil 96 } 97 98 // Input properties used for looking up and filtering AvailabilityZoneGroup resources. 99 type availabilityZoneGroupState struct { 100 // Name of the Availability Zone Group. 101 GroupName *string `pulumi:"groupName"` 102 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 103 OptInStatus *string `pulumi:"optInStatus"` 104 } 105 106 type AvailabilityZoneGroupState struct { 107 // Name of the Availability Zone Group. 108 GroupName pulumi.StringPtrInput 109 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 110 OptInStatus pulumi.StringPtrInput 111 } 112 113 func (AvailabilityZoneGroupState) ElementType() reflect.Type { 114 return reflect.TypeOf((*availabilityZoneGroupState)(nil)).Elem() 115 } 116 117 type availabilityZoneGroupArgs struct { 118 // Name of the Availability Zone Group. 119 GroupName string `pulumi:"groupName"` 120 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 121 OptInStatus string `pulumi:"optInStatus"` 122 } 123 124 // The set of arguments for constructing a AvailabilityZoneGroup resource. 125 type AvailabilityZoneGroupArgs struct { 126 // Name of the Availability Zone Group. 127 GroupName pulumi.StringInput 128 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 129 OptInStatus pulumi.StringInput 130 } 131 132 func (AvailabilityZoneGroupArgs) ElementType() reflect.Type { 133 return reflect.TypeOf((*availabilityZoneGroupArgs)(nil)).Elem() 134 } 135 136 type AvailabilityZoneGroupInput interface { 137 pulumi.Input 138 139 ToAvailabilityZoneGroupOutput() AvailabilityZoneGroupOutput 140 ToAvailabilityZoneGroupOutputWithContext(ctx context.Context) AvailabilityZoneGroupOutput 141 } 142 143 func (*AvailabilityZoneGroup) ElementType() reflect.Type { 144 return reflect.TypeOf((**AvailabilityZoneGroup)(nil)).Elem() 145 } 146 147 func (i *AvailabilityZoneGroup) ToAvailabilityZoneGroupOutput() AvailabilityZoneGroupOutput { 148 return i.ToAvailabilityZoneGroupOutputWithContext(context.Background()) 149 } 150 151 func (i *AvailabilityZoneGroup) ToAvailabilityZoneGroupOutputWithContext(ctx context.Context) AvailabilityZoneGroupOutput { 152 return pulumi.ToOutputWithContext(ctx, i).(AvailabilityZoneGroupOutput) 153 } 154 155 // AvailabilityZoneGroupArrayInput is an input type that accepts AvailabilityZoneGroupArray and AvailabilityZoneGroupArrayOutput values. 156 // You can construct a concrete instance of `AvailabilityZoneGroupArrayInput` via: 157 // 158 // AvailabilityZoneGroupArray{ AvailabilityZoneGroupArgs{...} } 159 type AvailabilityZoneGroupArrayInput interface { 160 pulumi.Input 161 162 ToAvailabilityZoneGroupArrayOutput() AvailabilityZoneGroupArrayOutput 163 ToAvailabilityZoneGroupArrayOutputWithContext(context.Context) AvailabilityZoneGroupArrayOutput 164 } 165 166 type AvailabilityZoneGroupArray []AvailabilityZoneGroupInput 167 168 func (AvailabilityZoneGroupArray) ElementType() reflect.Type { 169 return reflect.TypeOf((*[]*AvailabilityZoneGroup)(nil)).Elem() 170 } 171 172 func (i AvailabilityZoneGroupArray) ToAvailabilityZoneGroupArrayOutput() AvailabilityZoneGroupArrayOutput { 173 return i.ToAvailabilityZoneGroupArrayOutputWithContext(context.Background()) 174 } 175 176 func (i AvailabilityZoneGroupArray) ToAvailabilityZoneGroupArrayOutputWithContext(ctx context.Context) AvailabilityZoneGroupArrayOutput { 177 return pulumi.ToOutputWithContext(ctx, i).(AvailabilityZoneGroupArrayOutput) 178 } 179 180 // AvailabilityZoneGroupMapInput is an input type that accepts AvailabilityZoneGroupMap and AvailabilityZoneGroupMapOutput values. 181 // You can construct a concrete instance of `AvailabilityZoneGroupMapInput` via: 182 // 183 // AvailabilityZoneGroupMap{ "key": AvailabilityZoneGroupArgs{...} } 184 type AvailabilityZoneGroupMapInput interface { 185 pulumi.Input 186 187 ToAvailabilityZoneGroupMapOutput() AvailabilityZoneGroupMapOutput 188 ToAvailabilityZoneGroupMapOutputWithContext(context.Context) AvailabilityZoneGroupMapOutput 189 } 190 191 type AvailabilityZoneGroupMap map[string]AvailabilityZoneGroupInput 192 193 func (AvailabilityZoneGroupMap) ElementType() reflect.Type { 194 return reflect.TypeOf((*map[string]*AvailabilityZoneGroup)(nil)).Elem() 195 } 196 197 func (i AvailabilityZoneGroupMap) ToAvailabilityZoneGroupMapOutput() AvailabilityZoneGroupMapOutput { 198 return i.ToAvailabilityZoneGroupMapOutputWithContext(context.Background()) 199 } 200 201 func (i AvailabilityZoneGroupMap) ToAvailabilityZoneGroupMapOutputWithContext(ctx context.Context) AvailabilityZoneGroupMapOutput { 202 return pulumi.ToOutputWithContext(ctx, i).(AvailabilityZoneGroupMapOutput) 203 } 204 205 type AvailabilityZoneGroupOutput struct{ *pulumi.OutputState } 206 207 func (AvailabilityZoneGroupOutput) ElementType() reflect.Type { 208 return reflect.TypeOf((**AvailabilityZoneGroup)(nil)).Elem() 209 } 210 211 func (o AvailabilityZoneGroupOutput) ToAvailabilityZoneGroupOutput() AvailabilityZoneGroupOutput { 212 return o 213 } 214 215 func (o AvailabilityZoneGroupOutput) ToAvailabilityZoneGroupOutputWithContext(ctx context.Context) AvailabilityZoneGroupOutput { 216 return o 217 } 218 219 // Name of the Availability Zone Group. 220 func (o AvailabilityZoneGroupOutput) GroupName() pulumi.StringOutput { 221 return o.ApplyT(func(v *AvailabilityZoneGroup) pulumi.StringOutput { return v.GroupName }).(pulumi.StringOutput) 222 } 223 224 // Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. 225 func (o AvailabilityZoneGroupOutput) OptInStatus() pulumi.StringOutput { 226 return o.ApplyT(func(v *AvailabilityZoneGroup) pulumi.StringOutput { return v.OptInStatus }).(pulumi.StringOutput) 227 } 228 229 type AvailabilityZoneGroupArrayOutput struct{ *pulumi.OutputState } 230 231 func (AvailabilityZoneGroupArrayOutput) ElementType() reflect.Type { 232 return reflect.TypeOf((*[]*AvailabilityZoneGroup)(nil)).Elem() 233 } 234 235 func (o AvailabilityZoneGroupArrayOutput) ToAvailabilityZoneGroupArrayOutput() AvailabilityZoneGroupArrayOutput { 236 return o 237 } 238 239 func (o AvailabilityZoneGroupArrayOutput) ToAvailabilityZoneGroupArrayOutputWithContext(ctx context.Context) AvailabilityZoneGroupArrayOutput { 240 return o 241 } 242 243 func (o AvailabilityZoneGroupArrayOutput) Index(i pulumi.IntInput) AvailabilityZoneGroupOutput { 244 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AvailabilityZoneGroup { 245 return vs[0].([]*AvailabilityZoneGroup)[vs[1].(int)] 246 }).(AvailabilityZoneGroupOutput) 247 } 248 249 type AvailabilityZoneGroupMapOutput struct{ *pulumi.OutputState } 250 251 func (AvailabilityZoneGroupMapOutput) ElementType() reflect.Type { 252 return reflect.TypeOf((*map[string]*AvailabilityZoneGroup)(nil)).Elem() 253 } 254 255 func (o AvailabilityZoneGroupMapOutput) ToAvailabilityZoneGroupMapOutput() AvailabilityZoneGroupMapOutput { 256 return o 257 } 258 259 func (o AvailabilityZoneGroupMapOutput) ToAvailabilityZoneGroupMapOutputWithContext(ctx context.Context) AvailabilityZoneGroupMapOutput { 260 return o 261 } 262 263 func (o AvailabilityZoneGroupMapOutput) MapIndex(k pulumi.StringInput) AvailabilityZoneGroupOutput { 264 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AvailabilityZoneGroup { 265 return vs[0].(map[string]*AvailabilityZoneGroup)[vs[1].(string)] 266 }).(AvailabilityZoneGroupOutput) 267 } 268 269 func init() { 270 pulumi.RegisterInputType(reflect.TypeOf((*AvailabilityZoneGroupInput)(nil)).Elem(), &AvailabilityZoneGroup{}) 271 pulumi.RegisterInputType(reflect.TypeOf((*AvailabilityZoneGroupArrayInput)(nil)).Elem(), AvailabilityZoneGroupArray{}) 272 pulumi.RegisterInputType(reflect.TypeOf((*AvailabilityZoneGroupMapInput)(nil)).Elem(), AvailabilityZoneGroupMap{}) 273 pulumi.RegisterOutputType(AvailabilityZoneGroupOutput{}) 274 pulumi.RegisterOutputType(AvailabilityZoneGroupArrayOutput{}) 275 pulumi.RegisterOutputType(AvailabilityZoneGroupMapOutput{}) 276 }