github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/instanceMetadataDefaults.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  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Manages regional EC2 instance metadata default settings.
    15  // More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide.
    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  //			_, err := ec2.NewInstanceMetadataDefaults(ctx, "enforce-imdsv2", &ec2.InstanceMetadataDefaultsArgs{
    33  //				HttpTokens:              pulumi.String("required"),
    34  //				HttpPutResponseHopLimit: pulumi.Int(1),
    35  //			})
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ## Import
    47  //
    48  // You cannot import this resource.
    49  type InstanceMetadataDefaults struct {
    50  	pulumi.CustomResourceState
    51  
    52  	// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
    53  	HttpEndpoint pulumi.StringOutput `pulumi:"httpEndpoint"`
    54  	// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
    55  	HttpPutResponseHopLimit pulumi.IntOutput `pulumi:"httpPutResponseHopLimit"`
    56  	// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
    57  	HttpTokens pulumi.StringOutput `pulumi:"httpTokens"`
    58  	// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
    59  	InstanceMetadataTags pulumi.StringOutput `pulumi:"instanceMetadataTags"`
    60  }
    61  
    62  // NewInstanceMetadataDefaults registers a new resource with the given unique name, arguments, and options.
    63  func NewInstanceMetadataDefaults(ctx *pulumi.Context,
    64  	name string, args *InstanceMetadataDefaultsArgs, opts ...pulumi.ResourceOption) (*InstanceMetadataDefaults, error) {
    65  	if args == nil {
    66  		args = &InstanceMetadataDefaultsArgs{}
    67  	}
    68  
    69  	opts = internal.PkgResourceDefaultOpts(opts)
    70  	var resource InstanceMetadataDefaults
    71  	err := ctx.RegisterResource("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, args, &resource, opts...)
    72  	if err != nil {
    73  		return nil, err
    74  	}
    75  	return &resource, nil
    76  }
    77  
    78  // GetInstanceMetadataDefaults gets an existing InstanceMetadataDefaults resource's state with the given name, ID, and optional
    79  // state properties that are used to uniquely qualify the lookup (nil if not required).
    80  func GetInstanceMetadataDefaults(ctx *pulumi.Context,
    81  	name string, id pulumi.IDInput, state *InstanceMetadataDefaultsState, opts ...pulumi.ResourceOption) (*InstanceMetadataDefaults, error) {
    82  	var resource InstanceMetadataDefaults
    83  	err := ctx.ReadResource("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, id, state, &resource, opts...)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  	return &resource, nil
    88  }
    89  
    90  // Input properties used for looking up and filtering InstanceMetadataDefaults resources.
    91  type instanceMetadataDefaultsState struct {
    92  	// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
    93  	HttpEndpoint *string `pulumi:"httpEndpoint"`
    94  	// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
    95  	HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"`
    96  	// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
    97  	HttpTokens *string `pulumi:"httpTokens"`
    98  	// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
    99  	InstanceMetadataTags *string `pulumi:"instanceMetadataTags"`
   100  }
   101  
   102  type InstanceMetadataDefaultsState struct {
   103  	// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   104  	HttpEndpoint pulumi.StringPtrInput
   105  	// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
   106  	HttpPutResponseHopLimit pulumi.IntPtrInput
   107  	// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
   108  	HttpTokens pulumi.StringPtrInput
   109  	// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   110  	InstanceMetadataTags pulumi.StringPtrInput
   111  }
   112  
   113  func (InstanceMetadataDefaultsState) ElementType() reflect.Type {
   114  	return reflect.TypeOf((*instanceMetadataDefaultsState)(nil)).Elem()
   115  }
   116  
   117  type instanceMetadataDefaultsArgs struct {
   118  	// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   119  	HttpEndpoint *string `pulumi:"httpEndpoint"`
   120  	// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
   121  	HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"`
   122  	// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
   123  	HttpTokens *string `pulumi:"httpTokens"`
   124  	// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   125  	InstanceMetadataTags *string `pulumi:"instanceMetadataTags"`
   126  }
   127  
   128  // The set of arguments for constructing a InstanceMetadataDefaults resource.
   129  type InstanceMetadataDefaultsArgs struct {
   130  	// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   131  	HttpEndpoint pulumi.StringPtrInput
   132  	// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
   133  	HttpPutResponseHopLimit pulumi.IntPtrInput
   134  	// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
   135  	HttpTokens pulumi.StringPtrInput
   136  	// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   137  	InstanceMetadataTags pulumi.StringPtrInput
   138  }
   139  
   140  func (InstanceMetadataDefaultsArgs) ElementType() reflect.Type {
   141  	return reflect.TypeOf((*instanceMetadataDefaultsArgs)(nil)).Elem()
   142  }
   143  
   144  type InstanceMetadataDefaultsInput interface {
   145  	pulumi.Input
   146  
   147  	ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput
   148  	ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput
   149  }
   150  
   151  func (*InstanceMetadataDefaults) ElementType() reflect.Type {
   152  	return reflect.TypeOf((**InstanceMetadataDefaults)(nil)).Elem()
   153  }
   154  
   155  func (i *InstanceMetadataDefaults) ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput {
   156  	return i.ToInstanceMetadataDefaultsOutputWithContext(context.Background())
   157  }
   158  
   159  func (i *InstanceMetadataDefaults) ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput {
   160  	return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsOutput)
   161  }
   162  
   163  // InstanceMetadataDefaultsArrayInput is an input type that accepts InstanceMetadataDefaultsArray and InstanceMetadataDefaultsArrayOutput values.
   164  // You can construct a concrete instance of `InstanceMetadataDefaultsArrayInput` via:
   165  //
   166  //	InstanceMetadataDefaultsArray{ InstanceMetadataDefaultsArgs{...} }
   167  type InstanceMetadataDefaultsArrayInput interface {
   168  	pulumi.Input
   169  
   170  	ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput
   171  	ToInstanceMetadataDefaultsArrayOutputWithContext(context.Context) InstanceMetadataDefaultsArrayOutput
   172  }
   173  
   174  type InstanceMetadataDefaultsArray []InstanceMetadataDefaultsInput
   175  
   176  func (InstanceMetadataDefaultsArray) ElementType() reflect.Type {
   177  	return reflect.TypeOf((*[]*InstanceMetadataDefaults)(nil)).Elem()
   178  }
   179  
   180  func (i InstanceMetadataDefaultsArray) ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput {
   181  	return i.ToInstanceMetadataDefaultsArrayOutputWithContext(context.Background())
   182  }
   183  
   184  func (i InstanceMetadataDefaultsArray) ToInstanceMetadataDefaultsArrayOutputWithContext(ctx context.Context) InstanceMetadataDefaultsArrayOutput {
   185  	return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsArrayOutput)
   186  }
   187  
   188  // InstanceMetadataDefaultsMapInput is an input type that accepts InstanceMetadataDefaultsMap and InstanceMetadataDefaultsMapOutput values.
   189  // You can construct a concrete instance of `InstanceMetadataDefaultsMapInput` via:
   190  //
   191  //	InstanceMetadataDefaultsMap{ "key": InstanceMetadataDefaultsArgs{...} }
   192  type InstanceMetadataDefaultsMapInput interface {
   193  	pulumi.Input
   194  
   195  	ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput
   196  	ToInstanceMetadataDefaultsMapOutputWithContext(context.Context) InstanceMetadataDefaultsMapOutput
   197  }
   198  
   199  type InstanceMetadataDefaultsMap map[string]InstanceMetadataDefaultsInput
   200  
   201  func (InstanceMetadataDefaultsMap) ElementType() reflect.Type {
   202  	return reflect.TypeOf((*map[string]*InstanceMetadataDefaults)(nil)).Elem()
   203  }
   204  
   205  func (i InstanceMetadataDefaultsMap) ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput {
   206  	return i.ToInstanceMetadataDefaultsMapOutputWithContext(context.Background())
   207  }
   208  
   209  func (i InstanceMetadataDefaultsMap) ToInstanceMetadataDefaultsMapOutputWithContext(ctx context.Context) InstanceMetadataDefaultsMapOutput {
   210  	return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsMapOutput)
   211  }
   212  
   213  type InstanceMetadataDefaultsOutput struct{ *pulumi.OutputState }
   214  
   215  func (InstanceMetadataDefaultsOutput) ElementType() reflect.Type {
   216  	return reflect.TypeOf((**InstanceMetadataDefaults)(nil)).Elem()
   217  }
   218  
   219  func (o InstanceMetadataDefaultsOutput) ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput {
   220  	return o
   221  }
   222  
   223  func (o InstanceMetadataDefaultsOutput) ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput {
   224  	return o
   225  }
   226  
   227  // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   228  func (o InstanceMetadataDefaultsOutput) HttpEndpoint() pulumi.StringOutput {
   229  	return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.HttpEndpoint }).(pulumi.StringOutput)
   230  }
   231  
   232  // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.
   233  func (o InstanceMetadataDefaultsOutput) HttpPutResponseHopLimit() pulumi.IntOutput {
   234  	return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.IntOutput { return v.HttpPutResponseHopLimit }).(pulumi.IntOutput)
   235  }
   236  
   237  // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`.
   238  func (o InstanceMetadataDefaultsOutput) HttpTokens() pulumi.StringOutput {
   239  	return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.HttpTokens }).(pulumi.StringOutput)
   240  }
   241  
   242  // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`.
   243  func (o InstanceMetadataDefaultsOutput) InstanceMetadataTags() pulumi.StringOutput {
   244  	return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.InstanceMetadataTags }).(pulumi.StringOutput)
   245  }
   246  
   247  type InstanceMetadataDefaultsArrayOutput struct{ *pulumi.OutputState }
   248  
   249  func (InstanceMetadataDefaultsArrayOutput) ElementType() reflect.Type {
   250  	return reflect.TypeOf((*[]*InstanceMetadataDefaults)(nil)).Elem()
   251  }
   252  
   253  func (o InstanceMetadataDefaultsArrayOutput) ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput {
   254  	return o
   255  }
   256  
   257  func (o InstanceMetadataDefaultsArrayOutput) ToInstanceMetadataDefaultsArrayOutputWithContext(ctx context.Context) InstanceMetadataDefaultsArrayOutput {
   258  	return o
   259  }
   260  
   261  func (o InstanceMetadataDefaultsArrayOutput) Index(i pulumi.IntInput) InstanceMetadataDefaultsOutput {
   262  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceMetadataDefaults {
   263  		return vs[0].([]*InstanceMetadataDefaults)[vs[1].(int)]
   264  	}).(InstanceMetadataDefaultsOutput)
   265  }
   266  
   267  type InstanceMetadataDefaultsMapOutput struct{ *pulumi.OutputState }
   268  
   269  func (InstanceMetadataDefaultsMapOutput) ElementType() reflect.Type {
   270  	return reflect.TypeOf((*map[string]*InstanceMetadataDefaults)(nil)).Elem()
   271  }
   272  
   273  func (o InstanceMetadataDefaultsMapOutput) ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput {
   274  	return o
   275  }
   276  
   277  func (o InstanceMetadataDefaultsMapOutput) ToInstanceMetadataDefaultsMapOutputWithContext(ctx context.Context) InstanceMetadataDefaultsMapOutput {
   278  	return o
   279  }
   280  
   281  func (o InstanceMetadataDefaultsMapOutput) MapIndex(k pulumi.StringInput) InstanceMetadataDefaultsOutput {
   282  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceMetadataDefaults {
   283  		return vs[0].(map[string]*InstanceMetadataDefaults)[vs[1].(string)]
   284  	}).(InstanceMetadataDefaultsOutput)
   285  }
   286  
   287  func init() {
   288  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsInput)(nil)).Elem(), &InstanceMetadataDefaults{})
   289  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsArrayInput)(nil)).Elem(), InstanceMetadataDefaultsArray{})
   290  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsMapInput)(nil)).Elem(), InstanceMetadataDefaultsMap{})
   291  	pulumi.RegisterOutputType(InstanceMetadataDefaultsOutput{})
   292  	pulumi.RegisterOutputType(InstanceMetadataDefaultsArrayOutput{})
   293  	pulumi.RegisterOutputType(InstanceMetadataDefaultsMapOutput{})
   294  }