github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/dedicatedHost.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 // Provides an EC2 Host resource. This allows Dedicated Hosts to be allocated, modified, and released. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // // Create a new host with instance type of c5.18xlarge with Auto Placement 33 // // and Host Recovery enabled. 34 // _, err := ec2.NewDedicatedHost(ctx, "test", &ec2.DedicatedHostArgs{ 35 // InstanceType: pulumi.String("c5.18xlarge"), 36 // AvailabilityZone: pulumi.String("us-west-2a"), 37 // HostRecovery: pulumi.String("on"), 38 // AutoPlacement: pulumi.String("on"), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // return nil 44 // }) 45 // } 46 // 47 // ``` 48 // <!--End PulumiCodeChooser --> 49 // 50 // ## Import 51 // 52 // Using `pulumi import`, import hosts using the host `id`. For example: 53 // 54 // ```sh 55 // $ pulumi import aws:ec2/dedicatedHost:DedicatedHost example h-0385a99d0e4b20cbb 56 // ``` 57 type DedicatedHost struct { 58 pulumi.CustomResourceState 59 60 // The ARN of the Dedicated Host. 61 Arn pulumi.StringOutput `pulumi:"arn"` 62 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 63 AssetId pulumi.StringOutput `pulumi:"assetId"` 64 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 65 AutoPlacement pulumi.StringPtrOutput `pulumi:"autoPlacement"` 66 // The Availability Zone in which to allocate the Dedicated Host. 67 AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` 68 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 69 HostRecovery pulumi.StringPtrOutput `pulumi:"hostRecovery"` 70 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 71 InstanceFamily pulumi.StringPtrOutput `pulumi:"instanceFamily"` 72 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 73 InstanceType pulumi.StringPtrOutput `pulumi:"instanceType"` 74 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 75 OutpostArn pulumi.StringPtrOutput `pulumi:"outpostArn"` 76 // The ID of the AWS account that owns the Dedicated Host. 77 OwnerId pulumi.StringOutput `pulumi:"ownerId"` 78 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 79 Tags pulumi.StringMapOutput `pulumi:"tags"` 80 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 81 // 82 // Deprecated: Please use `tags` instead. 83 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 84 } 85 86 // NewDedicatedHost registers a new resource with the given unique name, arguments, and options. 87 func NewDedicatedHost(ctx *pulumi.Context, 88 name string, args *DedicatedHostArgs, opts ...pulumi.ResourceOption) (*DedicatedHost, error) { 89 if args == nil { 90 return nil, errors.New("missing one or more required arguments") 91 } 92 93 if args.AvailabilityZone == nil { 94 return nil, errors.New("invalid value for required argument 'AvailabilityZone'") 95 } 96 opts = internal.PkgResourceDefaultOpts(opts) 97 var resource DedicatedHost 98 err := ctx.RegisterResource("aws:ec2/dedicatedHost:DedicatedHost", name, args, &resource, opts...) 99 if err != nil { 100 return nil, err 101 } 102 return &resource, nil 103 } 104 105 // GetDedicatedHost gets an existing DedicatedHost resource's state with the given name, ID, and optional 106 // state properties that are used to uniquely qualify the lookup (nil if not required). 107 func GetDedicatedHost(ctx *pulumi.Context, 108 name string, id pulumi.IDInput, state *DedicatedHostState, opts ...pulumi.ResourceOption) (*DedicatedHost, error) { 109 var resource DedicatedHost 110 err := ctx.ReadResource("aws:ec2/dedicatedHost:DedicatedHost", name, id, state, &resource, opts...) 111 if err != nil { 112 return nil, err 113 } 114 return &resource, nil 115 } 116 117 // Input properties used for looking up and filtering DedicatedHost resources. 118 type dedicatedHostState struct { 119 // The ARN of the Dedicated Host. 120 Arn *string `pulumi:"arn"` 121 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 122 AssetId *string `pulumi:"assetId"` 123 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 124 AutoPlacement *string `pulumi:"autoPlacement"` 125 // The Availability Zone in which to allocate the Dedicated Host. 126 AvailabilityZone *string `pulumi:"availabilityZone"` 127 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 128 HostRecovery *string `pulumi:"hostRecovery"` 129 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 130 InstanceFamily *string `pulumi:"instanceFamily"` 131 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 132 InstanceType *string `pulumi:"instanceType"` 133 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 134 OutpostArn *string `pulumi:"outpostArn"` 135 // The ID of the AWS account that owns the Dedicated Host. 136 OwnerId *string `pulumi:"ownerId"` 137 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 138 Tags map[string]string `pulumi:"tags"` 139 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 140 // 141 // Deprecated: Please use `tags` instead. 142 TagsAll map[string]string `pulumi:"tagsAll"` 143 } 144 145 type DedicatedHostState struct { 146 // The ARN of the Dedicated Host. 147 Arn pulumi.StringPtrInput 148 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 149 AssetId pulumi.StringPtrInput 150 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 151 AutoPlacement pulumi.StringPtrInput 152 // The Availability Zone in which to allocate the Dedicated Host. 153 AvailabilityZone pulumi.StringPtrInput 154 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 155 HostRecovery pulumi.StringPtrInput 156 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 157 InstanceFamily pulumi.StringPtrInput 158 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 159 InstanceType pulumi.StringPtrInput 160 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 161 OutpostArn pulumi.StringPtrInput 162 // The ID of the AWS account that owns the Dedicated Host. 163 OwnerId pulumi.StringPtrInput 164 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 165 Tags pulumi.StringMapInput 166 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 167 // 168 // Deprecated: Please use `tags` instead. 169 TagsAll pulumi.StringMapInput 170 } 171 172 func (DedicatedHostState) ElementType() reflect.Type { 173 return reflect.TypeOf((*dedicatedHostState)(nil)).Elem() 174 } 175 176 type dedicatedHostArgs struct { 177 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 178 AssetId *string `pulumi:"assetId"` 179 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 180 AutoPlacement *string `pulumi:"autoPlacement"` 181 // The Availability Zone in which to allocate the Dedicated Host. 182 AvailabilityZone string `pulumi:"availabilityZone"` 183 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 184 HostRecovery *string `pulumi:"hostRecovery"` 185 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 186 InstanceFamily *string `pulumi:"instanceFamily"` 187 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 188 InstanceType *string `pulumi:"instanceType"` 189 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 190 OutpostArn *string `pulumi:"outpostArn"` 191 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 192 Tags map[string]string `pulumi:"tags"` 193 } 194 195 // The set of arguments for constructing a DedicatedHost resource. 196 type DedicatedHostArgs struct { 197 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 198 AssetId pulumi.StringPtrInput 199 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 200 AutoPlacement pulumi.StringPtrInput 201 // The Availability Zone in which to allocate the Dedicated Host. 202 AvailabilityZone pulumi.StringInput 203 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 204 HostRecovery pulumi.StringPtrInput 205 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 206 InstanceFamily pulumi.StringPtrInput 207 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 208 InstanceType pulumi.StringPtrInput 209 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 210 OutpostArn pulumi.StringPtrInput 211 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 212 Tags pulumi.StringMapInput 213 } 214 215 func (DedicatedHostArgs) ElementType() reflect.Type { 216 return reflect.TypeOf((*dedicatedHostArgs)(nil)).Elem() 217 } 218 219 type DedicatedHostInput interface { 220 pulumi.Input 221 222 ToDedicatedHostOutput() DedicatedHostOutput 223 ToDedicatedHostOutputWithContext(ctx context.Context) DedicatedHostOutput 224 } 225 226 func (*DedicatedHost) ElementType() reflect.Type { 227 return reflect.TypeOf((**DedicatedHost)(nil)).Elem() 228 } 229 230 func (i *DedicatedHost) ToDedicatedHostOutput() DedicatedHostOutput { 231 return i.ToDedicatedHostOutputWithContext(context.Background()) 232 } 233 234 func (i *DedicatedHost) ToDedicatedHostOutputWithContext(ctx context.Context) DedicatedHostOutput { 235 return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostOutput) 236 } 237 238 // DedicatedHostArrayInput is an input type that accepts DedicatedHostArray and DedicatedHostArrayOutput values. 239 // You can construct a concrete instance of `DedicatedHostArrayInput` via: 240 // 241 // DedicatedHostArray{ DedicatedHostArgs{...} } 242 type DedicatedHostArrayInput interface { 243 pulumi.Input 244 245 ToDedicatedHostArrayOutput() DedicatedHostArrayOutput 246 ToDedicatedHostArrayOutputWithContext(context.Context) DedicatedHostArrayOutput 247 } 248 249 type DedicatedHostArray []DedicatedHostInput 250 251 func (DedicatedHostArray) ElementType() reflect.Type { 252 return reflect.TypeOf((*[]*DedicatedHost)(nil)).Elem() 253 } 254 255 func (i DedicatedHostArray) ToDedicatedHostArrayOutput() DedicatedHostArrayOutput { 256 return i.ToDedicatedHostArrayOutputWithContext(context.Background()) 257 } 258 259 func (i DedicatedHostArray) ToDedicatedHostArrayOutputWithContext(ctx context.Context) DedicatedHostArrayOutput { 260 return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostArrayOutput) 261 } 262 263 // DedicatedHostMapInput is an input type that accepts DedicatedHostMap and DedicatedHostMapOutput values. 264 // You can construct a concrete instance of `DedicatedHostMapInput` via: 265 // 266 // DedicatedHostMap{ "key": DedicatedHostArgs{...} } 267 type DedicatedHostMapInput interface { 268 pulumi.Input 269 270 ToDedicatedHostMapOutput() DedicatedHostMapOutput 271 ToDedicatedHostMapOutputWithContext(context.Context) DedicatedHostMapOutput 272 } 273 274 type DedicatedHostMap map[string]DedicatedHostInput 275 276 func (DedicatedHostMap) ElementType() reflect.Type { 277 return reflect.TypeOf((*map[string]*DedicatedHost)(nil)).Elem() 278 } 279 280 func (i DedicatedHostMap) ToDedicatedHostMapOutput() DedicatedHostMapOutput { 281 return i.ToDedicatedHostMapOutputWithContext(context.Background()) 282 } 283 284 func (i DedicatedHostMap) ToDedicatedHostMapOutputWithContext(ctx context.Context) DedicatedHostMapOutput { 285 return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostMapOutput) 286 } 287 288 type DedicatedHostOutput struct{ *pulumi.OutputState } 289 290 func (DedicatedHostOutput) ElementType() reflect.Type { 291 return reflect.TypeOf((**DedicatedHost)(nil)).Elem() 292 } 293 294 func (o DedicatedHostOutput) ToDedicatedHostOutput() DedicatedHostOutput { 295 return o 296 } 297 298 func (o DedicatedHostOutput) ToDedicatedHostOutputWithContext(ctx context.Context) DedicatedHostOutput { 299 return o 300 } 301 302 // The ARN of the Dedicated Host. 303 func (o DedicatedHostOutput) Arn() pulumi.StringOutput { 304 return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 305 } 306 307 // The ID of the Outpost hardware asset on which to allocate the Dedicated Hosts. This parameter is supported only if you specify OutpostArn. If you are allocating the Dedicated Hosts in a Region, omit this parameter. 308 func (o DedicatedHostOutput) AssetId() pulumi.StringOutput { 309 return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.AssetId }).(pulumi.StringOutput) 310 } 311 312 // Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. Valid values: `on`, `off`. Default: `on`. 313 func (o DedicatedHostOutput) AutoPlacement() pulumi.StringPtrOutput { 314 return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.AutoPlacement }).(pulumi.StringPtrOutput) 315 } 316 317 // The Availability Zone in which to allocate the Dedicated Host. 318 func (o DedicatedHostOutput) AvailabilityZone() pulumi.StringOutput { 319 return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) 320 } 321 322 // Indicates whether to enable or disable host recovery for the Dedicated Host. Valid values: `on`, `off`. Default: `off`. 323 func (o DedicatedHostOutput) HostRecovery() pulumi.StringPtrOutput { 324 return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.HostRecovery }).(pulumi.StringPtrOutput) 325 } 326 327 // Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. Exactly one of `instanceFamily` or `instanceType` must be specified. 328 func (o DedicatedHostOutput) InstanceFamily() pulumi.StringPtrOutput { 329 return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.InstanceFamily }).(pulumi.StringPtrOutput) 330 } 331 332 // Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. Exactly one of `instanceFamily` or `instanceType` must be specified. 333 func (o DedicatedHostOutput) InstanceType() pulumi.StringPtrOutput { 334 return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.InstanceType }).(pulumi.StringPtrOutput) 335 } 336 337 // The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. 338 func (o DedicatedHostOutput) OutpostArn() pulumi.StringPtrOutput { 339 return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.OutpostArn }).(pulumi.StringPtrOutput) 340 } 341 342 // The ID of the AWS account that owns the Dedicated Host. 343 func (o DedicatedHostOutput) OwnerId() pulumi.StringOutput { 344 return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) 345 } 346 347 // Map of tags to assign to this resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 348 func (o DedicatedHostOutput) Tags() pulumi.StringMapOutput { 349 return o.ApplyT(func(v *DedicatedHost) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 350 } 351 352 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 353 // 354 // Deprecated: Please use `tags` instead. 355 func (o DedicatedHostOutput) TagsAll() pulumi.StringMapOutput { 356 return o.ApplyT(func(v *DedicatedHost) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 357 } 358 359 type DedicatedHostArrayOutput struct{ *pulumi.OutputState } 360 361 func (DedicatedHostArrayOutput) ElementType() reflect.Type { 362 return reflect.TypeOf((*[]*DedicatedHost)(nil)).Elem() 363 } 364 365 func (o DedicatedHostArrayOutput) ToDedicatedHostArrayOutput() DedicatedHostArrayOutput { 366 return o 367 } 368 369 func (o DedicatedHostArrayOutput) ToDedicatedHostArrayOutputWithContext(ctx context.Context) DedicatedHostArrayOutput { 370 return o 371 } 372 373 func (o DedicatedHostArrayOutput) Index(i pulumi.IntInput) DedicatedHostOutput { 374 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DedicatedHost { 375 return vs[0].([]*DedicatedHost)[vs[1].(int)] 376 }).(DedicatedHostOutput) 377 } 378 379 type DedicatedHostMapOutput struct{ *pulumi.OutputState } 380 381 func (DedicatedHostMapOutput) ElementType() reflect.Type { 382 return reflect.TypeOf((*map[string]*DedicatedHost)(nil)).Elem() 383 } 384 385 func (o DedicatedHostMapOutput) ToDedicatedHostMapOutput() DedicatedHostMapOutput { 386 return o 387 } 388 389 func (o DedicatedHostMapOutput) ToDedicatedHostMapOutputWithContext(ctx context.Context) DedicatedHostMapOutput { 390 return o 391 } 392 393 func (o DedicatedHostMapOutput) MapIndex(k pulumi.StringInput) DedicatedHostOutput { 394 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DedicatedHost { 395 return vs[0].(map[string]*DedicatedHost)[vs[1].(string)] 396 }).(DedicatedHostOutput) 397 } 398 399 func init() { 400 pulumi.RegisterInputType(reflect.TypeOf((*DedicatedHostInput)(nil)).Elem(), &DedicatedHost{}) 401 pulumi.RegisterInputType(reflect.TypeOf((*DedicatedHostArrayInput)(nil)).Elem(), DedicatedHostArray{}) 402 pulumi.RegisterInputType(reflect.TypeOf((*DedicatedHostMapInput)(nil)).Elem(), DedicatedHostMap{}) 403 pulumi.RegisterOutputType(DedicatedHostOutput{}) 404 pulumi.RegisterOutputType(DedicatedHostArrayOutput{}) 405 pulumi.RegisterOutputType(DedicatedHostMapOutput{}) 406 }