github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssm/parameter.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 ssm
     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 SSM Parameter resource.
    16  //
    17  // > **Note:** `overwrite` also makes it possible to overwrite an existing SSM Parameter that's not created by the provider before. This argument has been deprecated and will be removed in v6.0.0 of the provider. For more information on how this affects the behavior of this resource, see this issue comment.
    18  //
    19  // ## Example Usage
    20  //
    21  // ### Basic example
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := ssm.NewParameter(ctx, "foo", &ssm.ParameterArgs{
    37  //				Name:  pulumi.String("foo"),
    38  //				Type:  pulumi.String(ssm.ParameterTypeString),
    39  //				Value: pulumi.String("bar"),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ### Encrypted string using default SSM KMS key
    52  //
    53  // <!--Start PulumiCodeChooser -->
    54  // ```go
    55  // package main
    56  //
    57  // import (
    58  //
    59  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    60  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
    61  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    62  //
    63  // )
    64  //
    65  //	func main() {
    66  //		pulumi.Run(func(ctx *pulumi.Context) error {
    67  //			_, err := rds.NewInstance(ctx, "default", &rds.InstanceArgs{
    68  //				AllocatedStorage:   pulumi.Int(10),
    69  //				StorageType:        pulumi.String(rds.StorageTypeGP2),
    70  //				Engine:             pulumi.String("mysql"),
    71  //				EngineVersion:      pulumi.String("5.7.16"),
    72  //				InstanceClass:      pulumi.String(rds.InstanceType_T2_Micro),
    73  //				DbName:             pulumi.String("mydb"),
    74  //				Username:           pulumi.String("foo"),
    75  //				Password:           pulumi.Any(databaseMasterPassword),
    76  //				DbSubnetGroupName:  pulumi.String("my_database_subnet_group"),
    77  //				ParameterGroupName: pulumi.String("default.mysql5.7"),
    78  //			})
    79  //			if err != nil {
    80  //				return err
    81  //			}
    82  //			_, err = ssm.NewParameter(ctx, "secret", &ssm.ParameterArgs{
    83  //				Name:        pulumi.String("/production/database/password/master"),
    84  //				Description: pulumi.String("The parameter description"),
    85  //				Type:        pulumi.String(ssm.ParameterTypeSecureString),
    86  //				Value:       pulumi.Any(databaseMasterPassword),
    87  //				Tags: pulumi.StringMap{
    88  //					"environment": pulumi.String("production"),
    89  //				},
    90  //			})
    91  //			if err != nil {
    92  //				return err
    93  //			}
    94  //			return nil
    95  //		})
    96  //	}
    97  //
    98  // ```
    99  // <!--End PulumiCodeChooser -->
   100  //
   101  // ## Import
   102  //
   103  // Using `pulumi import`, import SSM Parameters using the parameter store `name`. For example:
   104  //
   105  // ```sh
   106  // $ pulumi import aws:ssm/parameter:Parameter my_param /my_path/my_paramname
   107  // ```
   108  type Parameter struct {
   109  	pulumi.CustomResourceState
   110  
   111  	// Regular expression used to validate the parameter value.
   112  	AllowedPattern pulumi.StringPtrOutput `pulumi:"allowedPattern"`
   113  	// ARN of the parameter.
   114  	Arn pulumi.StringOutput `pulumi:"arn"`
   115  	// Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   116  	DataType pulumi.StringOutput `pulumi:"dataType"`
   117  	// Description of the parameter.
   118  	Description pulumi.StringPtrOutput `pulumi:"description"`
   119  	// Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   120  	InsecureValue pulumi.StringOutput `pulumi:"insecureValue"`
   121  	// KMS key ID or ARN for encrypting a SecureString.
   122  	KeyId pulumi.StringOutput `pulumi:"keyId"`
   123  	// Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   124  	Name pulumi.StringOutput `pulumi:"name"`
   125  	// Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   126  	//
   127  	// Deprecated: this attribute has been deprecated
   128  	Overwrite pulumi.BoolPtrOutput `pulumi:"overwrite"`
   129  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   130  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   131  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   132  	//
   133  	// Deprecated: Please use `tags` instead.
   134  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   135  	// Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   136  	Tier pulumi.StringPtrOutput `pulumi:"tier"`
   137  	// Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   138  	//
   139  	// The following arguments are optional:
   140  	Type pulumi.StringOutput `pulumi:"type"`
   141  	// Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   142  	//
   143  	// > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   144  	Value pulumi.StringOutput `pulumi:"value"`
   145  	// Version of the parameter.
   146  	Version pulumi.IntOutput `pulumi:"version"`
   147  }
   148  
   149  // NewParameter registers a new resource with the given unique name, arguments, and options.
   150  func NewParameter(ctx *pulumi.Context,
   151  	name string, args *ParameterArgs, opts ...pulumi.ResourceOption) (*Parameter, error) {
   152  	if args == nil {
   153  		return nil, errors.New("missing one or more required arguments")
   154  	}
   155  
   156  	if args.Type == nil {
   157  		return nil, errors.New("invalid value for required argument 'Type'")
   158  	}
   159  	if args.Value != nil {
   160  		args.Value = pulumi.ToSecret(args.Value).(pulumi.StringPtrInput)
   161  	}
   162  	secrets := pulumi.AdditionalSecretOutputs([]string{
   163  		"value",
   164  	})
   165  	opts = append(opts, secrets)
   166  	opts = internal.PkgResourceDefaultOpts(opts)
   167  	var resource Parameter
   168  	err := ctx.RegisterResource("aws:ssm/parameter:Parameter", name, args, &resource, opts...)
   169  	if err != nil {
   170  		return nil, err
   171  	}
   172  	return &resource, nil
   173  }
   174  
   175  // GetParameter gets an existing Parameter resource's state with the given name, ID, and optional
   176  // state properties that are used to uniquely qualify the lookup (nil if not required).
   177  func GetParameter(ctx *pulumi.Context,
   178  	name string, id pulumi.IDInput, state *ParameterState, opts ...pulumi.ResourceOption) (*Parameter, error) {
   179  	var resource Parameter
   180  	err := ctx.ReadResource("aws:ssm/parameter:Parameter", name, id, state, &resource, opts...)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return &resource, nil
   185  }
   186  
   187  // Input properties used for looking up and filtering Parameter resources.
   188  type parameterState struct {
   189  	// Regular expression used to validate the parameter value.
   190  	AllowedPattern *string `pulumi:"allowedPattern"`
   191  	// ARN of the parameter.
   192  	Arn *string `pulumi:"arn"`
   193  	// Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   194  	DataType *string `pulumi:"dataType"`
   195  	// Description of the parameter.
   196  	Description *string `pulumi:"description"`
   197  	// Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   198  	InsecureValue *string `pulumi:"insecureValue"`
   199  	// KMS key ID or ARN for encrypting a SecureString.
   200  	KeyId *string `pulumi:"keyId"`
   201  	// Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   202  	Name *string `pulumi:"name"`
   203  	// Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   204  	//
   205  	// Deprecated: this attribute has been deprecated
   206  	Overwrite *bool `pulumi:"overwrite"`
   207  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   208  	Tags map[string]string `pulumi:"tags"`
   209  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   210  	//
   211  	// Deprecated: Please use `tags` instead.
   212  	TagsAll map[string]string `pulumi:"tagsAll"`
   213  	// Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   214  	Tier *string `pulumi:"tier"`
   215  	// Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   216  	//
   217  	// The following arguments are optional:
   218  	Type *string `pulumi:"type"`
   219  	// Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   220  	//
   221  	// > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   222  	Value *string `pulumi:"value"`
   223  	// Version of the parameter.
   224  	Version *int `pulumi:"version"`
   225  }
   226  
   227  type ParameterState struct {
   228  	// Regular expression used to validate the parameter value.
   229  	AllowedPattern pulumi.StringPtrInput
   230  	// ARN of the parameter.
   231  	Arn pulumi.StringPtrInput
   232  	// Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   233  	DataType pulumi.StringPtrInput
   234  	// Description of the parameter.
   235  	Description pulumi.StringPtrInput
   236  	// Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   237  	InsecureValue pulumi.StringPtrInput
   238  	// KMS key ID or ARN for encrypting a SecureString.
   239  	KeyId pulumi.StringPtrInput
   240  	// Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   241  	Name pulumi.StringPtrInput
   242  	// Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   243  	//
   244  	// Deprecated: this attribute has been deprecated
   245  	Overwrite pulumi.BoolPtrInput
   246  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   247  	Tags pulumi.StringMapInput
   248  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   249  	//
   250  	// Deprecated: Please use `tags` instead.
   251  	TagsAll pulumi.StringMapInput
   252  	// Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   253  	Tier pulumi.StringPtrInput
   254  	// Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   255  	//
   256  	// The following arguments are optional:
   257  	Type pulumi.StringPtrInput
   258  	// Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   259  	//
   260  	// > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   261  	Value pulumi.StringPtrInput
   262  	// Version of the parameter.
   263  	Version pulumi.IntPtrInput
   264  }
   265  
   266  func (ParameterState) ElementType() reflect.Type {
   267  	return reflect.TypeOf((*parameterState)(nil)).Elem()
   268  }
   269  
   270  type parameterArgs struct {
   271  	// Regular expression used to validate the parameter value.
   272  	AllowedPattern *string `pulumi:"allowedPattern"`
   273  	// ARN of the parameter.
   274  	Arn *string `pulumi:"arn"`
   275  	// Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   276  	DataType *string `pulumi:"dataType"`
   277  	// Description of the parameter.
   278  	Description *string `pulumi:"description"`
   279  	// Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   280  	InsecureValue *string `pulumi:"insecureValue"`
   281  	// KMS key ID or ARN for encrypting a SecureString.
   282  	KeyId *string `pulumi:"keyId"`
   283  	// Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   284  	Name *string `pulumi:"name"`
   285  	// Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   286  	//
   287  	// Deprecated: this attribute has been deprecated
   288  	Overwrite *bool `pulumi:"overwrite"`
   289  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   290  	Tags map[string]string `pulumi:"tags"`
   291  	// Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   292  	Tier *string `pulumi:"tier"`
   293  	// Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   294  	//
   295  	// The following arguments are optional:
   296  	Type string `pulumi:"type"`
   297  	// Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   298  	//
   299  	// > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   300  	Value *string `pulumi:"value"`
   301  }
   302  
   303  // The set of arguments for constructing a Parameter resource.
   304  type ParameterArgs struct {
   305  	// Regular expression used to validate the parameter value.
   306  	AllowedPattern pulumi.StringPtrInput
   307  	// ARN of the parameter.
   308  	Arn pulumi.StringPtrInput
   309  	// Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   310  	DataType pulumi.StringPtrInput
   311  	// Description of the parameter.
   312  	Description pulumi.StringPtrInput
   313  	// Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   314  	InsecureValue pulumi.StringPtrInput
   315  	// KMS key ID or ARN for encrypting a SecureString.
   316  	KeyId pulumi.StringPtrInput
   317  	// Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   318  	Name pulumi.StringPtrInput
   319  	// Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   320  	//
   321  	// Deprecated: this attribute has been deprecated
   322  	Overwrite pulumi.BoolPtrInput
   323  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   324  	Tags pulumi.StringMapInput
   325  	// Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   326  	Tier pulumi.StringPtrInput
   327  	// Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   328  	//
   329  	// The following arguments are optional:
   330  	Type pulumi.StringInput
   331  	// Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   332  	//
   333  	// > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   334  	Value pulumi.StringPtrInput
   335  }
   336  
   337  func (ParameterArgs) ElementType() reflect.Type {
   338  	return reflect.TypeOf((*parameterArgs)(nil)).Elem()
   339  }
   340  
   341  type ParameterInput interface {
   342  	pulumi.Input
   343  
   344  	ToParameterOutput() ParameterOutput
   345  	ToParameterOutputWithContext(ctx context.Context) ParameterOutput
   346  }
   347  
   348  func (*Parameter) ElementType() reflect.Type {
   349  	return reflect.TypeOf((**Parameter)(nil)).Elem()
   350  }
   351  
   352  func (i *Parameter) ToParameterOutput() ParameterOutput {
   353  	return i.ToParameterOutputWithContext(context.Background())
   354  }
   355  
   356  func (i *Parameter) ToParameterOutputWithContext(ctx context.Context) ParameterOutput {
   357  	return pulumi.ToOutputWithContext(ctx, i).(ParameterOutput)
   358  }
   359  
   360  // ParameterArrayInput is an input type that accepts ParameterArray and ParameterArrayOutput values.
   361  // You can construct a concrete instance of `ParameterArrayInput` via:
   362  //
   363  //	ParameterArray{ ParameterArgs{...} }
   364  type ParameterArrayInput interface {
   365  	pulumi.Input
   366  
   367  	ToParameterArrayOutput() ParameterArrayOutput
   368  	ToParameterArrayOutputWithContext(context.Context) ParameterArrayOutput
   369  }
   370  
   371  type ParameterArray []ParameterInput
   372  
   373  func (ParameterArray) ElementType() reflect.Type {
   374  	return reflect.TypeOf((*[]*Parameter)(nil)).Elem()
   375  }
   376  
   377  func (i ParameterArray) ToParameterArrayOutput() ParameterArrayOutput {
   378  	return i.ToParameterArrayOutputWithContext(context.Background())
   379  }
   380  
   381  func (i ParameterArray) ToParameterArrayOutputWithContext(ctx context.Context) ParameterArrayOutput {
   382  	return pulumi.ToOutputWithContext(ctx, i).(ParameterArrayOutput)
   383  }
   384  
   385  // ParameterMapInput is an input type that accepts ParameterMap and ParameterMapOutput values.
   386  // You can construct a concrete instance of `ParameterMapInput` via:
   387  //
   388  //	ParameterMap{ "key": ParameterArgs{...} }
   389  type ParameterMapInput interface {
   390  	pulumi.Input
   391  
   392  	ToParameterMapOutput() ParameterMapOutput
   393  	ToParameterMapOutputWithContext(context.Context) ParameterMapOutput
   394  }
   395  
   396  type ParameterMap map[string]ParameterInput
   397  
   398  func (ParameterMap) ElementType() reflect.Type {
   399  	return reflect.TypeOf((*map[string]*Parameter)(nil)).Elem()
   400  }
   401  
   402  func (i ParameterMap) ToParameterMapOutput() ParameterMapOutput {
   403  	return i.ToParameterMapOutputWithContext(context.Background())
   404  }
   405  
   406  func (i ParameterMap) ToParameterMapOutputWithContext(ctx context.Context) ParameterMapOutput {
   407  	return pulumi.ToOutputWithContext(ctx, i).(ParameterMapOutput)
   408  }
   409  
   410  type ParameterOutput struct{ *pulumi.OutputState }
   411  
   412  func (ParameterOutput) ElementType() reflect.Type {
   413  	return reflect.TypeOf((**Parameter)(nil)).Elem()
   414  }
   415  
   416  func (o ParameterOutput) ToParameterOutput() ParameterOutput {
   417  	return o
   418  }
   419  
   420  func (o ParameterOutput) ToParameterOutputWithContext(ctx context.Context) ParameterOutput {
   421  	return o
   422  }
   423  
   424  // Regular expression used to validate the parameter value.
   425  func (o ParameterOutput) AllowedPattern() pulumi.StringPtrOutput {
   426  	return o.ApplyT(func(v *Parameter) pulumi.StringPtrOutput { return v.AllowedPattern }).(pulumi.StringPtrOutput)
   427  }
   428  
   429  // ARN of the parameter.
   430  func (o ParameterOutput) Arn() pulumi.StringOutput {
   431  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   432  }
   433  
   434  // Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
   435  func (o ParameterOutput) DataType() pulumi.StringOutput {
   436  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.DataType }).(pulumi.StringOutput)
   437  }
   438  
   439  // Description of the parameter.
   440  func (o ParameterOutput) Description() pulumi.StringPtrOutput {
   441  	return o.ApplyT(func(v *Parameter) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   442  }
   443  
   444  // Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
   445  func (o ParameterOutput) InsecureValue() pulumi.StringOutput {
   446  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.InsecureValue }).(pulumi.StringOutput)
   447  }
   448  
   449  // KMS key ID or ARN for encrypting a SecureString.
   450  func (o ParameterOutput) KeyId() pulumi.StringOutput {
   451  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.KeyId }).(pulumi.StringOutput)
   452  }
   453  
   454  // Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
   455  func (o ParameterOutput) Name() pulumi.StringOutput {
   456  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   457  }
   458  
   459  // Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
   460  //
   461  // Deprecated: this attribute has been deprecated
   462  func (o ParameterOutput) Overwrite() pulumi.BoolPtrOutput {
   463  	return o.ApplyT(func(v *Parameter) pulumi.BoolPtrOutput { return v.Overwrite }).(pulumi.BoolPtrOutput)
   464  }
   465  
   466  // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   467  func (o ParameterOutput) Tags() pulumi.StringMapOutput {
   468  	return o.ApplyT(func(v *Parameter) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   469  }
   470  
   471  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   472  //
   473  // Deprecated: Please use `tags` instead.
   474  func (o ParameterOutput) TagsAll() pulumi.StringMapOutput {
   475  	return o.ApplyT(func(v *Parameter) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   476  }
   477  
   478  // Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
   479  func (o ParameterOutput) Tier() pulumi.StringPtrOutput {
   480  	return o.ApplyT(func(v *Parameter) pulumi.StringPtrOutput { return v.Tier }).(pulumi.StringPtrOutput)
   481  }
   482  
   483  // Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
   484  //
   485  // The following arguments are optional:
   486  func (o ParameterOutput) Type() pulumi.StringOutput {
   487  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
   488  }
   489  
   490  // Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
   491  //
   492  // > **NOTE:** `aws:ssm:integration` dataType parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
   493  func (o ParameterOutput) Value() pulumi.StringOutput {
   494  	return o.ApplyT(func(v *Parameter) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput)
   495  }
   496  
   497  // Version of the parameter.
   498  func (o ParameterOutput) Version() pulumi.IntOutput {
   499  	return o.ApplyT(func(v *Parameter) pulumi.IntOutput { return v.Version }).(pulumi.IntOutput)
   500  }
   501  
   502  type ParameterArrayOutput struct{ *pulumi.OutputState }
   503  
   504  func (ParameterArrayOutput) ElementType() reflect.Type {
   505  	return reflect.TypeOf((*[]*Parameter)(nil)).Elem()
   506  }
   507  
   508  func (o ParameterArrayOutput) ToParameterArrayOutput() ParameterArrayOutput {
   509  	return o
   510  }
   511  
   512  func (o ParameterArrayOutput) ToParameterArrayOutputWithContext(ctx context.Context) ParameterArrayOutput {
   513  	return o
   514  }
   515  
   516  func (o ParameterArrayOutput) Index(i pulumi.IntInput) ParameterOutput {
   517  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Parameter {
   518  		return vs[0].([]*Parameter)[vs[1].(int)]
   519  	}).(ParameterOutput)
   520  }
   521  
   522  type ParameterMapOutput struct{ *pulumi.OutputState }
   523  
   524  func (ParameterMapOutput) ElementType() reflect.Type {
   525  	return reflect.TypeOf((*map[string]*Parameter)(nil)).Elem()
   526  }
   527  
   528  func (o ParameterMapOutput) ToParameterMapOutput() ParameterMapOutput {
   529  	return o
   530  }
   531  
   532  func (o ParameterMapOutput) ToParameterMapOutputWithContext(ctx context.Context) ParameterMapOutput {
   533  	return o
   534  }
   535  
   536  func (o ParameterMapOutput) MapIndex(k pulumi.StringInput) ParameterOutput {
   537  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Parameter {
   538  		return vs[0].(map[string]*Parameter)[vs[1].(string)]
   539  	}).(ParameterOutput)
   540  }
   541  
   542  func init() {
   543  	pulumi.RegisterInputType(reflect.TypeOf((*ParameterInput)(nil)).Elem(), &Parameter{})
   544  	pulumi.RegisterInputType(reflect.TypeOf((*ParameterArrayInput)(nil)).Elem(), ParameterArray{})
   545  	pulumi.RegisterInputType(reflect.TypeOf((*ParameterMapInput)(nil)).Elem(), ParameterMap{})
   546  	pulumi.RegisterOutputType(ParameterOutput{})
   547  	pulumi.RegisterOutputType(ParameterArrayOutput{})
   548  	pulumi.RegisterOutputType(ParameterMapOutput{})
   549  }