{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.SSM.PutParameter -- Copyright : (c) 2013-2021 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Add a parameter to the system. module Amazonka.SSM.PutParameter ( -- * Creating a Request PutParameter (..), newPutParameter, -- * Request Lenses putParameter_keyId, putParameter_tier, putParameter_allowedPattern, putParameter_type, putParameter_dataType, putParameter_overwrite, putParameter_description, putParameter_policies, putParameter_tags, putParameter_name, putParameter_value, -- * Destructuring the Response PutParameterResponse (..), newPutParameterResponse, -- * Response Lenses putParameterResponse_tier, putParameterResponse_version, putParameterResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.SSM.Types -- | /See:/ 'newPutParameter' smart constructor. data PutParameter = PutParameter' { -- | The Key Management Service (KMS) ID that you want to use to encrypt a -- parameter. Either the default KMS key automatically assigned to your -- Amazon Web Services account or a custom key. Required for parameters -- that use the @SecureString@ data type. -- -- If you don\'t specify a key ID, the system uses the default key -- associated with your Amazon Web Services account. -- -- - To use your default KMS key, choose the @SecureString@ data type, -- and do /not/ specify the @Key ID@ when you create the parameter. The -- system automatically populates @Key ID@ with your default KMS key. -- -- - To use a custom KMS key, choose the @SecureString@ data type with -- the @Key ID@ parameter. PutParameter -> Maybe Text keyId :: Prelude.Maybe Prelude.Text, -- | The parameter tier to assign to a parameter. -- -- Parameter Store offers a standard tier and an advanced tier for -- parameters. Standard parameters have a content size limit of 4 KB and -- can\'t be configured to use parameter policies. You can create a maximum -- of 10,000 standard parameters for each Region in an Amazon Web Services -- account. Standard parameters are offered at no additional cost. -- -- Advanced parameters have a content size limit of 8 KB and can be -- configured to use parameter policies. You can create a maximum of -- 100,000 advanced parameters for each Region in an Amazon Web Services -- account. Advanced parameters incur a charge. For more information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html Standard and advanced parameter tiers> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- You can change a standard parameter to an advanced parameter any time. -- But you can\'t revert an advanced parameter to a standard parameter. -- Reverting an advanced parameter to a standard parameter would result in -- data loss because the system would truncate the size of the parameter -- from 8 KB to 4 KB. Reverting would also remove any policies attached to -- the parameter. Lastly, advanced parameters use a different form of -- encryption than standard parameters. -- -- If you no longer need an advanced parameter, or if you no longer want to -- incur charges for an advanced parameter, you must delete it and recreate -- it as a new standard parameter. -- -- __Using the Default Tier Configuration__ -- -- In @PutParameter@ requests, you can specify the tier to create the -- parameter in. Whenever you specify a tier in the request, Parameter -- Store creates or updates the parameter according to that request. -- However, if you don\'t specify a tier in a request, Parameter Store -- assigns the tier based on the current Parameter Store default tier -- configuration. -- -- The default tier when you begin using Parameter Store is the -- standard-parameter tier. If you use the advanced-parameter tier, you can -- specify one of the following as the default: -- -- - __Advanced__: With this option, Parameter Store evaluates all -- requests as advanced parameters. -- -- - __Intelligent-Tiering__: With this option, Parameter Store evaluates -- each request to determine if the parameter is standard or advanced. -- -- If the request doesn\'t include any options that require an advanced -- parameter, the parameter is created in the standard-parameter tier. -- If one or more options requiring an advanced parameter are included -- in the request, Parameter Store create a parameter in the -- advanced-parameter tier. -- -- This approach helps control your parameter-related costs by always -- creating standard parameters unless an advanced parameter is -- necessary. -- -- Options that require an advanced parameter include the following: -- -- - The content size of the parameter is more than 4 KB. -- -- - The parameter uses a parameter policy. -- -- - More than 10,000 parameters already exist in your Amazon Web -- Services account in the current Amazon Web Services Region. -- -- For more information about configuring the default tier option, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html Specifying a default parameter tier> -- in the /Amazon Web Services Systems Manager User Guide/. PutParameter -> Maybe ParameterTier tier :: Prelude.Maybe ParameterTier, -- | A regular expression used to validate the parameter value. For example, -- for String types with values restricted to numbers, you can specify the -- following: AllowedPattern=^\\d+$ PutParameter -> Maybe Text allowedPattern :: Prelude.Maybe Prelude.Text, -- | The type of parameter that you want to add to the system. -- -- @SecureString@ isn\'t currently supported for CloudFormation templates. -- -- Items in a @StringList@ must be separated by a comma (,). You can\'t use -- other punctuation or special character to escape items in the list. If -- you have a parameter value that requires a comma, then use the @String@ -- data type. -- -- Specifying a parameter type isn\'t required when updating a parameter. -- You must specify a parameter type when creating a parameter. PutParameter -> Maybe ParameterType type' :: Prelude.Maybe ParameterType, -- | The data type for a @String@ parameter. Supported data types include -- plain text and Amazon Machine Image (AMI) IDs. -- -- __The following data type values are supported.__ -- -- - @text@ -- -- - @aws:ec2:image@ -- -- When you create a @String@ parameter and specify @aws:ec2:image@, Amazon -- Web Services Systems Manager validates the parameter value is in the -- required format, such as @ami-12345abcdeEXAMPLE@, and that the specified -- AMI is available in your Amazon Web Services account. For more -- information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html Native parameter support for Amazon Machine Image (AMI) IDs> -- in the /Amazon Web Services Systems Manager User Guide/. PutParameter -> Maybe Text dataType :: Prelude.Maybe Prelude.Text, -- | Overwrite an existing parameter. The default value is @false@. PutParameter -> Maybe Bool overwrite :: Prelude.Maybe Prelude.Bool, -- | Information about the parameter that you want to add to the system. -- Optional but recommended. -- -- Don\'t enter personally identifiable information in this field. PutParameter -> Maybe Text description :: Prelude.Maybe Prelude.Text, -- | One or more policies to apply to a parameter. This operation takes a -- JSON array. Parameter Store, a capability of Amazon Web Services Systems -- Manager supports the following policy types: -- -- Expiration: This policy deletes the parameter after it expires. When you -- create the policy, you specify the expiration date. You can update the -- expiration date and time by updating the policy. Updating the -- /parameter/ doesn\'t affect the expiration date and time. When the -- expiration time is reached, Parameter Store deletes the parameter. -- -- ExpirationNotification: This policy triggers an event in Amazon -- CloudWatch Events that notifies you about the expiration. By using this -- policy, you can receive notification before or after the expiration time -- is reached, in units of days or hours. -- -- NoChangeNotification: This policy triggers a CloudWatch Events event if -- a parameter hasn\'t been modified for a specified period of time. This -- policy type is useful when, for example, a secret needs to be changed -- within a period of time, but it hasn\'t been changed. -- -- All existing policies are preserved until you send new policies or an -- empty policy. For more information about parameter policies, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>. PutParameter -> Maybe Text policies :: Prelude.Maybe Prelude.Text, -- | Optional metadata that you assign to a resource. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag a Systems Manager -- parameter to identify the type of resource to which it applies, the -- environment, or the type of configuration data referenced by the -- parameter. In this case, you could specify the following key-value -- pairs: -- -- - @Key=Resource,Value=S3bucket@ -- -- - @Key=OS,Value=Windows@ -- -- - @Key=ParameterType,Value=LicenseKey@ -- -- To add tags to an existing Systems Manager parameter, use the -- AddTagsToResource operation. :: Prelude.Maybe [Tag], -- | The fully qualified name of the parameter that you want to add to the -- system. The fully qualified name includes the complete hierarchy of the -- parameter path and name. For parameters in a hierarchy, you must include -- a leading forward slash character (\/) when you create or reference a -- parameter. For example: @\/Dev\/DBServer\/MySQL\/db-string13@ -- -- Naming Constraints: -- -- - Parameter names are case sensitive. -- -- - A parameter name must be unique within an Amazon Web Services Region -- -- - A parameter name can\'t be prefixed with \"@aws@\" or \"@ssm@\" -- (case-insensitive). -- -- - Parameter names can include only the following symbols and letters: -- @a-zA-Z0-9_.-@ -- -- In addition, the slash character ( \/ ) is used to delineate -- hierarchies in parameter names. For example: -- @\/Dev\/Production\/East\/Project-ABC\/MyParameter@ -- -- - A parameter name can\'t include spaces. -- -- - Parameter hierarchies are limited to a maximum depth of fifteen -- levels. -- -- For additional information about valid values for parameter names, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html Creating Systems Manager parameters> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- The maximum length constraint listed below includes capacity for -- additional system attributes that aren\'t part of the name. The maximum -- length for a parameter name, including the full length of the parameter -- ARN, is 1011 characters. For example, the length of the following -- parameter name is 65 characters, not 20 characters: -- -- @arn:aws:ssm:us-east-2:111122223333:parameter\/ExampleParameterName@ PutParameter -> Text name :: Prelude.Text, -- | The parameter value that you want to add to the system. Standard -- parameters have a value limit of 4 KB. Advanced parameters have a value -- limit of 8 KB. -- -- Parameters can\'t be referenced or nested in the values of other -- parameters. You can\'t include @{{}}@ or @{{ssm:parameter-name}}@ in a -- parameter value. PutParameter -> Sensitive Text value :: Core.Sensitive Prelude.Text } deriving (PutParameter -> PutParameter -> Bool (PutParameter -> PutParameter -> Bool) -> (PutParameter -> PutParameter -> Bool) -> Eq PutParameter forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: PutParameter -> PutParameter -> Bool $c/= :: PutParameter -> PutParameter -> Bool == :: PutParameter -> PutParameter -> Bool $c== :: PutParameter -> PutParameter -> Bool Prelude.Eq, Int -> PutParameter -> ShowS [PutParameter] -> ShowS PutParameter -> String (Int -> PutParameter -> ShowS) -> (PutParameter -> String) -> ([PutParameter] -> ShowS) -> Show PutParameter forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PutParameter] -> ShowS $cshowList :: [PutParameter] -> ShowS show :: PutParameter -> String $cshow :: PutParameter -> String showsPrec :: Int -> PutParameter -> ShowS $cshowsPrec :: Int -> PutParameter -> ShowS Prelude.Show, (forall x. PutParameter -> Rep PutParameter x) -> (forall x. Rep PutParameter x -> PutParameter) -> Generic PutParameter forall x. Rep PutParameter x -> PutParameter forall x. PutParameter -> Rep PutParameter x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep PutParameter x -> PutParameter $cfrom :: forall x. PutParameter -> Rep PutParameter x Prelude.Generic) -- | -- Create a value of 'PutParameter' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'keyId', 'putParameter_keyId' - The Key Management Service (KMS) ID that you want to use to encrypt a -- parameter. Either the default KMS key automatically assigned to your -- Amazon Web Services account or a custom key. Required for parameters -- that use the @SecureString@ data type. -- -- If you don\'t specify a key ID, the system uses the default key -- associated with your Amazon Web Services account. -- -- - To use your default KMS key, choose the @SecureString@ data type, -- and do /not/ specify the @Key ID@ when you create the parameter. The -- system automatically populates @Key ID@ with your default KMS key. -- -- - To use a custom KMS key, choose the @SecureString@ data type with -- the @Key ID@ parameter. -- -- 'tier', 'putParameter_tier' - The parameter tier to assign to a parameter. -- -- Parameter Store offers a standard tier and an advanced tier for -- parameters. Standard parameters have a content size limit of 4 KB and -- can\'t be configured to use parameter policies. You can create a maximum -- of 10,000 standard parameters for each Region in an Amazon Web Services -- account. Standard parameters are offered at no additional cost. -- -- Advanced parameters have a content size limit of 8 KB and can be -- configured to use parameter policies. You can create a maximum of -- 100,000 advanced parameters for each Region in an Amazon Web Services -- account. Advanced parameters incur a charge. For more information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html Standard and advanced parameter tiers> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- You can change a standard parameter to an advanced parameter any time. -- But you can\'t revert an advanced parameter to a standard parameter. -- Reverting an advanced parameter to a standard parameter would result in -- data loss because the system would truncate the size of the parameter -- from 8 KB to 4 KB. Reverting would also remove any policies attached to -- the parameter. Lastly, advanced parameters use a different form of -- encryption than standard parameters. -- -- If you no longer need an advanced parameter, or if you no longer want to -- incur charges for an advanced parameter, you must delete it and recreate -- it as a new standard parameter. -- -- __Using the Default Tier Configuration__ -- -- In @PutParameter@ requests, you can specify the tier to create the -- parameter in. Whenever you specify a tier in the request, Parameter -- Store creates or updates the parameter according to that request. -- However, if you don\'t specify a tier in a request, Parameter Store -- assigns the tier based on the current Parameter Store default tier -- configuration. -- -- The default tier when you begin using Parameter Store is the -- standard-parameter tier. If you use the advanced-parameter tier, you can -- specify one of the following as the default: -- -- - __Advanced__: With this option, Parameter Store evaluates all -- requests as advanced parameters. -- -- - __Intelligent-Tiering__: With this option, Parameter Store evaluates -- each request to determine if the parameter is standard or advanced. -- -- If the request doesn\'t include any options that require an advanced -- parameter, the parameter is created in the standard-parameter tier. -- If one or more options requiring an advanced parameter are included -- in the request, Parameter Store create a parameter in the -- advanced-parameter tier. -- -- This approach helps control your parameter-related costs by always -- creating standard parameters unless an advanced parameter is -- necessary. -- -- Options that require an advanced parameter include the following: -- -- - The content size of the parameter is more than 4 KB. -- -- - The parameter uses a parameter policy. -- -- - More than 10,000 parameters already exist in your Amazon Web -- Services account in the current Amazon Web Services Region. -- -- For more information about configuring the default tier option, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html Specifying a default parameter tier> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- 'allowedPattern', 'putParameter_allowedPattern' - A regular expression used to validate the parameter value. For example, -- for String types with values restricted to numbers, you can specify the -- following: AllowedPattern=^\\d+$ -- -- 'type'', 'putParameter_type' - The type of parameter that you want to add to the system. -- -- @SecureString@ isn\'t currently supported for CloudFormation templates. -- -- Items in a @StringList@ must be separated by a comma (,). You can\'t use -- other punctuation or special character to escape items in the list. If -- you have a parameter value that requires a comma, then use the @String@ -- data type. -- -- Specifying a parameter type isn\'t required when updating a parameter. -- You must specify a parameter type when creating a parameter. -- -- 'dataType', 'putParameter_dataType' - The data type for a @String@ parameter. Supported data types include -- plain text and Amazon Machine Image (AMI) IDs. -- -- __The following data type values are supported.__ -- -- - @text@ -- -- - @aws:ec2:image@ -- -- When you create a @String@ parameter and specify @aws:ec2:image@, Amazon -- Web Services Systems Manager validates the parameter value is in the -- required format, such as @ami-12345abcdeEXAMPLE@, and that the specified -- AMI is available in your Amazon Web Services account. For more -- information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html Native parameter support for Amazon Machine Image (AMI) IDs> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- 'overwrite', 'putParameter_overwrite' - Overwrite an existing parameter. The default value is @false@. -- -- 'description', 'putParameter_description' - Information about the parameter that you want to add to the system. -- Optional but recommended. -- -- Don\'t enter personally identifiable information in this field. -- -- 'policies', 'putParameter_policies' - One or more policies to apply to a parameter. This operation takes a -- JSON array. Parameter Store, a capability of Amazon Web Services Systems -- Manager supports the following policy types: -- -- Expiration: This policy deletes the parameter after it expires. When you -- create the policy, you specify the expiration date. You can update the -- expiration date and time by updating the policy. Updating the -- /parameter/ doesn\'t affect the expiration date and time. When the -- expiration time is reached, Parameter Store deletes the parameter. -- -- ExpirationNotification: This policy triggers an event in Amazon -- CloudWatch Events that notifies you about the expiration. By using this -- policy, you can receive notification before or after the expiration time -- is reached, in units of days or hours. -- -- NoChangeNotification: This policy triggers a CloudWatch Events event if -- a parameter hasn\'t been modified for a specified period of time. This -- policy type is useful when, for example, a secret needs to be changed -- within a period of time, but it hasn\'t been changed. -- -- All existing policies are preserved until you send new policies or an -- empty policy. For more information about parameter policies, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>. -- -- 'tags', 'putParameter_tags' - Optional metadata that you assign to a resource. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag a Systems Manager -- parameter to identify the type of resource to which it applies, the -- environment, or the type of configuration data referenced by the -- parameter. In this case, you could specify the following key-value -- pairs: -- -- - @Key=Resource,Value=S3bucket@ -- -- - @Key=OS,Value=Windows@ -- -- - @Key=ParameterType,Value=LicenseKey@ -- -- To add tags to an existing Systems Manager parameter, use the -- AddTagsToResource operation. -- -- 'name', 'putParameter_name' - The fully qualified name of the parameter that you want to add to the -- system. The fully qualified name includes the complete hierarchy of the -- parameter path and name. For parameters in a hierarchy, you must include -- a leading forward slash character (\/) when you create or reference a -- parameter. For example: @\/Dev\/DBServer\/MySQL\/db-string13@ -- -- Naming Constraints: -- -- - Parameter names are case sensitive. -- -- - A parameter name must be unique within an Amazon Web Services Region -- -- - A parameter name can\'t be prefixed with \"@aws@\" or \"@ssm@\" -- (case-insensitive). -- -- - Parameter names can include only the following symbols and letters: -- @a-zA-Z0-9_.-@ -- -- In addition, the slash character ( \/ ) is used to delineate -- hierarchies in parameter names. For example: -- @\/Dev\/Production\/East\/Project-ABC\/MyParameter@ -- -- - A parameter name can\'t include spaces. -- -- - Parameter hierarchies are limited to a maximum depth of fifteen -- levels. -- -- For additional information about valid values for parameter names, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html Creating Systems Manager parameters> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- The maximum length constraint listed below includes capacity for -- additional system attributes that aren\'t part of the name. The maximum -- length for a parameter name, including the full length of the parameter -- ARN, is 1011 characters. For example, the length of the following -- parameter name is 65 characters, not 20 characters: -- -- @arn:aws:ssm:us-east-2:111122223333:parameter\/ExampleParameterName@ -- -- 'value', 'putParameter_value' - The parameter value that you want to add to the system. Standard -- parameters have a value limit of 4 KB. Advanced parameters have a value -- limit of 8 KB. -- -- Parameters can\'t be referenced or nested in the values of other -- parameters. You can\'t include @{{}}@ or @{{ssm:parameter-name}}@ in a -- parameter value. newPutParameter :: -- | 'name' Prelude.Text -> -- | 'value' Prelude.Text -> PutParameter newPutParameter :: Text -> Text -> PutParameter newPutParameter Text pName_ Text pValue_ = PutParameter' :: Maybe Text -> Maybe ParameterTier -> Maybe Text -> Maybe ParameterType -> Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe [Tag] -> Text -> Sensitive Text -> PutParameter PutParameter' { $sel:keyId:PutParameter' :: Maybe Text keyId = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:tier:PutParameter' :: Maybe ParameterTier tier = Maybe ParameterTier forall a. Maybe a Prelude.Nothing, $sel:allowedPattern:PutParameter' :: Maybe Text allowedPattern = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:type':PutParameter' :: Maybe ParameterType type' = Maybe ParameterType forall a. Maybe a Prelude.Nothing, $sel:dataType:PutParameter' :: Maybe Text dataType = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:overwrite:PutParameter' :: Maybe Bool overwrite = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:description:PutParameter' :: Maybe Text description = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:policies:PutParameter' :: Maybe Text policies = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:tags:PutParameter' :: Maybe [Tag] tags = Maybe [Tag] forall a. Maybe a Prelude.Nothing, $sel:name:PutParameter' :: Text name = Text pName_, $sel:value:PutParameter' :: Sensitive Text value = Tagged Text (Identity Text) -> Tagged (Sensitive Text) (Identity (Sensitive Text)) forall a. Iso' (Sensitive a) a Core._Sensitive (Tagged Text (Identity Text) -> Tagged (Sensitive Text) (Identity (Sensitive Text))) -> Text -> Sensitive Text forall t b. AReview t b -> b -> t Lens.# Text pValue_ } -- | The Key Management Service (KMS) ID that you want to use to encrypt a -- parameter. Either the default KMS key automatically assigned to your -- Amazon Web Services account or a custom key. Required for parameters -- that use the @SecureString@ data type. -- -- If you don\'t specify a key ID, the system uses the default key -- associated with your Amazon Web Services account. -- -- - To use your default KMS key, choose the @SecureString@ data type, -- and do /not/ specify the @Key ID@ when you create the parameter. The -- system automatically populates @Key ID@ with your default KMS key. -- -- - To use a custom KMS key, choose the @SecureString@ data type with -- the @Key ID@ parameter. putParameter_keyId :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Text) putParameter_keyId :: (Maybe Text -> f (Maybe Text)) -> PutParameter -> f PutParameter putParameter_keyId = (PutParameter -> Maybe Text) -> (PutParameter -> Maybe Text -> PutParameter) -> Lens PutParameter PutParameter (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Text keyId :: Maybe Text $sel:keyId:PutParameter' :: PutParameter -> Maybe Text keyId} -> Maybe Text keyId) (\s :: PutParameter s@PutParameter' {} Maybe Text a -> PutParameter s {$sel:keyId:PutParameter' :: Maybe Text keyId = Maybe Text a} :: PutParameter) -- | The parameter tier to assign to a parameter. -- -- Parameter Store offers a standard tier and an advanced tier for -- parameters. Standard parameters have a content size limit of 4 KB and -- can\'t be configured to use parameter policies. You can create a maximum -- of 10,000 standard parameters for each Region in an Amazon Web Services -- account. Standard parameters are offered at no additional cost. -- -- Advanced parameters have a content size limit of 8 KB and can be -- configured to use parameter policies. You can create a maximum of -- 100,000 advanced parameters for each Region in an Amazon Web Services -- account. Advanced parameters incur a charge. For more information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html Standard and advanced parameter tiers> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- You can change a standard parameter to an advanced parameter any time. -- But you can\'t revert an advanced parameter to a standard parameter. -- Reverting an advanced parameter to a standard parameter would result in -- data loss because the system would truncate the size of the parameter -- from 8 KB to 4 KB. Reverting would also remove any policies attached to -- the parameter. Lastly, advanced parameters use a different form of -- encryption than standard parameters. -- -- If you no longer need an advanced parameter, or if you no longer want to -- incur charges for an advanced parameter, you must delete it and recreate -- it as a new standard parameter. -- -- __Using the Default Tier Configuration__ -- -- In @PutParameter@ requests, you can specify the tier to create the -- parameter in. Whenever you specify a tier in the request, Parameter -- Store creates or updates the parameter according to that request. -- However, if you don\'t specify a tier in a request, Parameter Store -- assigns the tier based on the current Parameter Store default tier -- configuration. -- -- The default tier when you begin using Parameter Store is the -- standard-parameter tier. If you use the advanced-parameter tier, you can -- specify one of the following as the default: -- -- - __Advanced__: With this option, Parameter Store evaluates all -- requests as advanced parameters. -- -- - __Intelligent-Tiering__: With this option, Parameter Store evaluates -- each request to determine if the parameter is standard or advanced. -- -- If the request doesn\'t include any options that require an advanced -- parameter, the parameter is created in the standard-parameter tier. -- If one or more options requiring an advanced parameter are included -- in the request, Parameter Store create a parameter in the -- advanced-parameter tier. -- -- This approach helps control your parameter-related costs by always -- creating standard parameters unless an advanced parameter is -- necessary. -- -- Options that require an advanced parameter include the following: -- -- - The content size of the parameter is more than 4 KB. -- -- - The parameter uses a parameter policy. -- -- - More than 10,000 parameters already exist in your Amazon Web -- Services account in the current Amazon Web Services Region. -- -- For more information about configuring the default tier option, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html Specifying a default parameter tier> -- in the /Amazon Web Services Systems Manager User Guide/. putParameter_tier :: Lens.Lens' PutParameter (Prelude.Maybe ParameterTier) putParameter_tier :: (Maybe ParameterTier -> f (Maybe ParameterTier)) -> PutParameter -> f PutParameter putParameter_tier = (PutParameter -> Maybe ParameterTier) -> (PutParameter -> Maybe ParameterTier -> PutParameter) -> Lens PutParameter PutParameter (Maybe ParameterTier) (Maybe ParameterTier) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe ParameterTier tier :: Maybe ParameterTier $sel:tier:PutParameter' :: PutParameter -> Maybe ParameterTier tier} -> Maybe ParameterTier tier) (\s :: PutParameter s@PutParameter' {} Maybe ParameterTier a -> PutParameter s {$sel:tier:PutParameter' :: Maybe ParameterTier tier = Maybe ParameterTier a} :: PutParameter) -- | A regular expression used to validate the parameter value. For example, -- for String types with values restricted to numbers, you can specify the -- following: AllowedPattern=^\\d+$ putParameter_allowedPattern :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Text) putParameter_allowedPattern :: (Maybe Text -> f (Maybe Text)) -> PutParameter -> f PutParameter putParameter_allowedPattern = (PutParameter -> Maybe Text) -> (PutParameter -> Maybe Text -> PutParameter) -> Lens PutParameter PutParameter (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Text allowedPattern :: Maybe Text $sel:allowedPattern:PutParameter' :: PutParameter -> Maybe Text allowedPattern} -> Maybe Text allowedPattern) (\s :: PutParameter s@PutParameter' {} Maybe Text a -> PutParameter s {$sel:allowedPattern:PutParameter' :: Maybe Text allowedPattern = Maybe Text a} :: PutParameter) -- | The type of parameter that you want to add to the system. -- -- @SecureString@ isn\'t currently supported for CloudFormation templates. -- -- Items in a @StringList@ must be separated by a comma (,). You can\'t use -- other punctuation or special character to escape items in the list. If -- you have a parameter value that requires a comma, then use the @String@ -- data type. -- -- Specifying a parameter type isn\'t required when updating a parameter. -- You must specify a parameter type when creating a parameter. putParameter_type :: Lens.Lens' PutParameter (Prelude.Maybe ParameterType) putParameter_type :: (Maybe ParameterType -> f (Maybe ParameterType)) -> PutParameter -> f PutParameter putParameter_type = (PutParameter -> Maybe ParameterType) -> (PutParameter -> Maybe ParameterType -> PutParameter) -> Lens PutParameter PutParameter (Maybe ParameterType) (Maybe ParameterType) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe ParameterType type' :: Maybe ParameterType $sel:type':PutParameter' :: PutParameter -> Maybe ParameterType type'} -> Maybe ParameterType type') (\s :: PutParameter s@PutParameter' {} Maybe ParameterType a -> PutParameter s {$sel:type':PutParameter' :: Maybe ParameterType type' = Maybe ParameterType a} :: PutParameter) -- | The data type for a @String@ parameter. Supported data types include -- plain text and Amazon Machine Image (AMI) IDs. -- -- __The following data type values are supported.__ -- -- - @text@ -- -- - @aws:ec2:image@ -- -- When you create a @String@ parameter and specify @aws:ec2:image@, Amazon -- Web Services Systems Manager validates the parameter value is in the -- required format, such as @ami-12345abcdeEXAMPLE@, and that the specified -- AMI is available in your Amazon Web Services account. For more -- information, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html Native parameter support for Amazon Machine Image (AMI) IDs> -- in the /Amazon Web Services Systems Manager User Guide/. putParameter_dataType :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Text) putParameter_dataType :: (Maybe Text -> f (Maybe Text)) -> PutParameter -> f PutParameter putParameter_dataType = (PutParameter -> Maybe Text) -> (PutParameter -> Maybe Text -> PutParameter) -> Lens PutParameter PutParameter (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Text dataType :: Maybe Text $sel:dataType:PutParameter' :: PutParameter -> Maybe Text dataType} -> Maybe Text dataType) (\s :: PutParameter s@PutParameter' {} Maybe Text a -> PutParameter s {$sel:dataType:PutParameter' :: Maybe Text dataType = Maybe Text a} :: PutParameter) -- | Overwrite an existing parameter. The default value is @false@. putParameter_overwrite :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Bool) putParameter_overwrite :: (Maybe Bool -> f (Maybe Bool)) -> PutParameter -> f PutParameter putParameter_overwrite = (PutParameter -> Maybe Bool) -> (PutParameter -> Maybe Bool -> PutParameter) -> Lens PutParameter PutParameter (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Bool overwrite :: Maybe Bool $sel:overwrite:PutParameter' :: PutParameter -> Maybe Bool overwrite} -> Maybe Bool overwrite) (\s :: PutParameter s@PutParameter' {} Maybe Bool a -> PutParameter s {$sel:overwrite:PutParameter' :: Maybe Bool overwrite = Maybe Bool a} :: PutParameter) -- | Information about the parameter that you want to add to the system. -- Optional but recommended. -- -- Don\'t enter personally identifiable information in this field. putParameter_description :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Text) putParameter_description :: (Maybe Text -> f (Maybe Text)) -> PutParameter -> f PutParameter putParameter_description = (PutParameter -> Maybe Text) -> (PutParameter -> Maybe Text -> PutParameter) -> Lens PutParameter PutParameter (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Text description :: Maybe Text $sel:description:PutParameter' :: PutParameter -> Maybe Text description} -> Maybe Text description) (\s :: PutParameter s@PutParameter' {} Maybe Text a -> PutParameter s {$sel:description:PutParameter' :: Maybe Text description = Maybe Text a} :: PutParameter) -- | One or more policies to apply to a parameter. This operation takes a -- JSON array. Parameter Store, a capability of Amazon Web Services Systems -- Manager supports the following policy types: -- -- Expiration: This policy deletes the parameter after it expires. When you -- create the policy, you specify the expiration date. You can update the -- expiration date and time by updating the policy. Updating the -- /parameter/ doesn\'t affect the expiration date and time. When the -- expiration time is reached, Parameter Store deletes the parameter. -- -- ExpirationNotification: This policy triggers an event in Amazon -- CloudWatch Events that notifies you about the expiration. By using this -- policy, you can receive notification before or after the expiration time -- is reached, in units of days or hours. -- -- NoChangeNotification: This policy triggers a CloudWatch Events event if -- a parameter hasn\'t been modified for a specified period of time. This -- policy type is useful when, for example, a secret needs to be changed -- within a period of time, but it hasn\'t been changed. -- -- All existing policies are preserved until you send new policies or an -- empty policy. For more information about parameter policies, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>. putParameter_policies :: Lens.Lens' PutParameter (Prelude.Maybe Prelude.Text) putParameter_policies :: (Maybe Text -> f (Maybe Text)) -> PutParameter -> f PutParameter putParameter_policies = (PutParameter -> Maybe Text) -> (PutParameter -> Maybe Text -> PutParameter) -> Lens PutParameter PutParameter (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe Text policies :: Maybe Text $sel:policies:PutParameter' :: PutParameter -> Maybe Text policies} -> Maybe Text policies) (\s :: PutParameter s@PutParameter' {} Maybe Text a -> PutParameter s {$sel:policies:PutParameter' :: Maybe Text policies = Maybe Text a} :: PutParameter) -- | Optional metadata that you assign to a resource. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag a Systems Manager -- parameter to identify the type of resource to which it applies, the -- environment, or the type of configuration data referenced by the -- parameter. In this case, you could specify the following key-value -- pairs: -- -- - @Key=Resource,Value=S3bucket@ -- -- - @Key=OS,Value=Windows@ -- -- - @Key=ParameterType,Value=LicenseKey@ -- -- To add tags to an existing Systems Manager parameter, use the -- AddTagsToResource operation. putParameter_tags :: Lens.Lens' PutParameter (Prelude.Maybe [Tag]) = (PutParameter -> Maybe [Tag]) -> (PutParameter -> Maybe [Tag] -> PutParameter) -> Lens PutParameter PutParameter (Maybe [Tag]) (Maybe [Tag]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Maybe [Tag] tags :: Maybe [Tag] $sel:tags:PutParameter' :: PutParameter -> Maybe [Tag] tags} -> Maybe [Tag] tags) (\s :: PutParameter s@PutParameter' {} Maybe [Tag] a -> PutParameter s {$sel:tags:PutParameter' :: Maybe [Tag] tags = Maybe [Tag] a} :: PutParameter) ((Maybe [Tag] -> f (Maybe [Tag])) -> PutParameter -> f PutParameter) -> ((Maybe [Tag] -> f (Maybe [Tag])) -> Maybe [Tag] -> f (Maybe [Tag])) -> (Maybe [Tag] -> f (Maybe [Tag])) -> PutParameter -> f PutParameter forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Tag] [Tag] [Tag] [Tag] -> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The fully qualified name of the parameter that you want to add to the -- system. The fully qualified name includes the complete hierarchy of the -- parameter path and name. For parameters in a hierarchy, you must include -- a leading forward slash character (\/) when you create or reference a -- parameter. For example: @\/Dev\/DBServer\/MySQL\/db-string13@ -- -- Naming Constraints: -- -- - Parameter names are case sensitive. -- -- - A parameter name must be unique within an Amazon Web Services Region -- -- - A parameter name can\'t be prefixed with \"@aws@\" or \"@ssm@\" -- (case-insensitive). -- -- - Parameter names can include only the following symbols and letters: -- @a-zA-Z0-9_.-@ -- -- In addition, the slash character ( \/ ) is used to delineate -- hierarchies in parameter names. For example: -- @\/Dev\/Production\/East\/Project-ABC\/MyParameter@ -- -- - A parameter name can\'t include spaces. -- -- - Parameter hierarchies are limited to a maximum depth of fifteen -- levels. -- -- For additional information about valid values for parameter names, see -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html Creating Systems Manager parameters> -- in the /Amazon Web Services Systems Manager User Guide/. -- -- The maximum length constraint listed below includes capacity for -- additional system attributes that aren\'t part of the name. The maximum -- length for a parameter name, including the full length of the parameter -- ARN, is 1011 characters. For example, the length of the following -- parameter name is 65 characters, not 20 characters: -- -- @arn:aws:ssm:us-east-2:111122223333:parameter\/ExampleParameterName@ putParameter_name :: Lens.Lens' PutParameter Prelude.Text putParameter_name :: (Text -> f Text) -> PutParameter -> f PutParameter putParameter_name = (PutParameter -> Text) -> (PutParameter -> Text -> PutParameter) -> Lens PutParameter PutParameter Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Text name :: Text $sel:name:PutParameter' :: PutParameter -> Text name} -> Text name) (\s :: PutParameter s@PutParameter' {} Text a -> PutParameter s {$sel:name:PutParameter' :: Text name = Text a} :: PutParameter) -- | The parameter value that you want to add to the system. Standard -- parameters have a value limit of 4 KB. Advanced parameters have a value -- limit of 8 KB. -- -- Parameters can\'t be referenced or nested in the values of other -- parameters. You can\'t include @{{}}@ or @{{ssm:parameter-name}}@ in a -- parameter value. putParameter_value :: Lens.Lens' PutParameter Prelude.Text putParameter_value :: (Text -> f Text) -> PutParameter -> f PutParameter putParameter_value = (PutParameter -> Sensitive Text) -> (PutParameter -> Sensitive Text -> PutParameter) -> Lens PutParameter PutParameter (Sensitive Text) (Sensitive Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameter' {Sensitive Text value :: Sensitive Text $sel:value:PutParameter' :: PutParameter -> Sensitive Text value} -> Sensitive Text value) (\s :: PutParameter s@PutParameter' {} Sensitive Text a -> PutParameter s {$sel:value:PutParameter' :: Sensitive Text value = Sensitive Text a} :: PutParameter) ((Sensitive Text -> f (Sensitive Text)) -> PutParameter -> f PutParameter) -> ((Text -> f Text) -> Sensitive Text -> f (Sensitive Text)) -> (Text -> f Text) -> PutParameter -> f PutParameter forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. (Text -> f Text) -> Sensitive Text -> f (Sensitive Text) forall a. Iso' (Sensitive a) a Core._Sensitive instance Core.AWSRequest PutParameter where type AWSResponse PutParameter = PutParameterResponse request :: PutParameter -> Request PutParameter request = Service -> PutParameter -> Request PutParameter forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a Request.postJSON Service defaultService response :: Logger -> Service -> Proxy PutParameter -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse PutParameter))) response = (Int -> ResponseHeaders -> Object -> Either String (AWSResponse PutParameter)) -> Logger -> Service -> Proxy PutParameter -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse PutParameter))) forall (m :: * -> *) a. MonadResource m => (Int -> ResponseHeaders -> Object -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveJSON ( \Int s ResponseHeaders h Object x -> Maybe ParameterTier -> Maybe Integer -> Int -> PutParameterResponse PutParameterResponse' (Maybe ParameterTier -> Maybe Integer -> Int -> PutParameterResponse) -> Either String (Maybe ParameterTier) -> Either String (Maybe Integer -> Int -> PutParameterResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x Object -> Text -> Either String (Maybe ParameterTier) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "Tier") Either String (Maybe Integer -> Int -> PutParameterResponse) -> Either String (Maybe Integer) -> Either String (Int -> PutParameterResponse) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Either String (Maybe Integer) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "Version") Either String (Int -> PutParameterResponse) -> Either String Int -> Either String PutParameterResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) ) instance Prelude.Hashable PutParameter instance Prelude.NFData PutParameter instance Core.ToHeaders PutParameter where toHeaders :: PutParameter -> ResponseHeaders toHeaders = ResponseHeaders -> PutParameter -> ResponseHeaders forall a b. a -> b -> a Prelude.const ( [ResponseHeaders] -> ResponseHeaders forall a. Monoid a => [a] -> a Prelude.mconcat [ HeaderName "X-Amz-Target" HeaderName -> ByteString -> ResponseHeaders forall a. ToHeader a => HeaderName -> a -> ResponseHeaders Core.=# (ByteString "AmazonSSM.PutParameter" :: Prelude.ByteString), HeaderName "Content-Type" HeaderName -> ByteString -> ResponseHeaders forall a. ToHeader a => HeaderName -> a -> ResponseHeaders Core.=# ( ByteString "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Core.ToJSON PutParameter where toJSON :: PutParameter -> Value toJSON PutParameter' {Maybe Bool Maybe [Tag] Maybe Text Maybe ParameterTier Maybe ParameterType Text Sensitive Text value :: Sensitive Text name :: Text tags :: Maybe [Tag] policies :: Maybe Text description :: Maybe Text overwrite :: Maybe Bool dataType :: Maybe Text type' :: Maybe ParameterType allowedPattern :: Maybe Text tier :: Maybe ParameterTier keyId :: Maybe Text $sel:value:PutParameter' :: PutParameter -> Sensitive Text $sel:name:PutParameter' :: PutParameter -> Text $sel:tags:PutParameter' :: PutParameter -> Maybe [Tag] $sel:policies:PutParameter' :: PutParameter -> Maybe Text $sel:description:PutParameter' :: PutParameter -> Maybe Text $sel:overwrite:PutParameter' :: PutParameter -> Maybe Bool $sel:dataType:PutParameter' :: PutParameter -> Maybe Text $sel:type':PutParameter' :: PutParameter -> Maybe ParameterType $sel:allowedPattern:PutParameter' :: PutParameter -> Maybe Text $sel:tier:PutParameter' :: PutParameter -> Maybe ParameterTier $sel:keyId:PutParameter' :: PutParameter -> Maybe Text ..} = [Pair] -> Value Core.object ( [Maybe Pair] -> [Pair] forall a. [Maybe a] -> [a] Prelude.catMaybes [ (Text "KeyId" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text keyId, (Text "Tier" Text -> ParameterTier -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (ParameterTier -> Pair) -> Maybe ParameterTier -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe ParameterTier tier, (Text "AllowedPattern" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text allowedPattern, (Text "Type" Text -> ParameterType -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (ParameterType -> Pair) -> Maybe ParameterType -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe ParameterType type', (Text "DataType" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text dataType, (Text "Overwrite" Text -> Bool -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Bool overwrite, (Text "Description" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text description, (Text "Policies" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text policies, (Text "Tags" Text -> [Tag] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([Tag] -> Pair) -> Maybe [Tag] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [Tag] tags, Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "Name" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Text name), Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "Value" Text -> Sensitive Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Sensitive Text value) ] ) instance Core.ToPath PutParameter where toPath :: PutParameter -> ByteString toPath = ByteString -> PutParameter -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/" instance Core.ToQuery PutParameter where toQuery :: PutParameter -> QueryString toQuery = QueryString -> PutParameter -> QueryString forall a b. a -> b -> a Prelude.const QueryString forall a. Monoid a => a Prelude.mempty -- | /See:/ 'newPutParameterResponse' smart constructor. data PutParameterResponse = PutParameterResponse' { -- | The tier assigned to the parameter. PutParameterResponse -> Maybe ParameterTier tier :: Prelude.Maybe ParameterTier, -- | The new version number of a parameter. If you edit a parameter value, -- Parameter Store automatically creates a new version and assigns this new -- version a unique ID. You can reference a parameter version ID in API -- operations or in Systems Manager documents (SSM documents). By default, -- if you don\'t specify a specific version, the system returns the latest -- parameter value when a parameter is called. PutParameterResponse -> Maybe Integer version :: Prelude.Maybe Prelude.Integer, -- | The response's http status code. PutParameterResponse -> Int httpStatus :: Prelude.Int } deriving (PutParameterResponse -> PutParameterResponse -> Bool (PutParameterResponse -> PutParameterResponse -> Bool) -> (PutParameterResponse -> PutParameterResponse -> Bool) -> Eq PutParameterResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: PutParameterResponse -> PutParameterResponse -> Bool $c/= :: PutParameterResponse -> PutParameterResponse -> Bool == :: PutParameterResponse -> PutParameterResponse -> Bool $c== :: PutParameterResponse -> PutParameterResponse -> Bool Prelude.Eq, ReadPrec [PutParameterResponse] ReadPrec PutParameterResponse Int -> ReadS PutParameterResponse ReadS [PutParameterResponse] (Int -> ReadS PutParameterResponse) -> ReadS [PutParameterResponse] -> ReadPrec PutParameterResponse -> ReadPrec [PutParameterResponse] -> Read PutParameterResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [PutParameterResponse] $creadListPrec :: ReadPrec [PutParameterResponse] readPrec :: ReadPrec PutParameterResponse $creadPrec :: ReadPrec PutParameterResponse readList :: ReadS [PutParameterResponse] $creadList :: ReadS [PutParameterResponse] readsPrec :: Int -> ReadS PutParameterResponse $creadsPrec :: Int -> ReadS PutParameterResponse Prelude.Read, Int -> PutParameterResponse -> ShowS [PutParameterResponse] -> ShowS PutParameterResponse -> String (Int -> PutParameterResponse -> ShowS) -> (PutParameterResponse -> String) -> ([PutParameterResponse] -> ShowS) -> Show PutParameterResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PutParameterResponse] -> ShowS $cshowList :: [PutParameterResponse] -> ShowS show :: PutParameterResponse -> String $cshow :: PutParameterResponse -> String showsPrec :: Int -> PutParameterResponse -> ShowS $cshowsPrec :: Int -> PutParameterResponse -> ShowS Prelude.Show, (forall x. PutParameterResponse -> Rep PutParameterResponse x) -> (forall x. Rep PutParameterResponse x -> PutParameterResponse) -> Generic PutParameterResponse forall x. Rep PutParameterResponse x -> PutParameterResponse forall x. PutParameterResponse -> Rep PutParameterResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep PutParameterResponse x -> PutParameterResponse $cfrom :: forall x. PutParameterResponse -> Rep PutParameterResponse x Prelude.Generic) -- | -- Create a value of 'PutParameterResponse' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'tier', 'putParameterResponse_tier' - The tier assigned to the parameter. -- -- 'version', 'putParameterResponse_version' - The new version number of a parameter. If you edit a parameter value, -- Parameter Store automatically creates a new version and assigns this new -- version a unique ID. You can reference a parameter version ID in API -- operations or in Systems Manager documents (SSM documents). By default, -- if you don\'t specify a specific version, the system returns the latest -- parameter value when a parameter is called. -- -- 'httpStatus', 'putParameterResponse_httpStatus' - The response's http status code. newPutParameterResponse :: -- | 'httpStatus' Prelude.Int -> PutParameterResponse newPutParameterResponse :: Int -> PutParameterResponse newPutParameterResponse Int pHttpStatus_ = PutParameterResponse' :: Maybe ParameterTier -> Maybe Integer -> Int -> PutParameterResponse PutParameterResponse' { $sel:tier:PutParameterResponse' :: Maybe ParameterTier tier = Maybe ParameterTier forall a. Maybe a Prelude.Nothing, $sel:version:PutParameterResponse' :: Maybe Integer version = Maybe Integer forall a. Maybe a Prelude.Nothing, $sel:httpStatus:PutParameterResponse' :: Int httpStatus = Int pHttpStatus_ } -- | The tier assigned to the parameter. putParameterResponse_tier :: Lens.Lens' PutParameterResponse (Prelude.Maybe ParameterTier) putParameterResponse_tier :: (Maybe ParameterTier -> f (Maybe ParameterTier)) -> PutParameterResponse -> f PutParameterResponse putParameterResponse_tier = (PutParameterResponse -> Maybe ParameterTier) -> (PutParameterResponse -> Maybe ParameterTier -> PutParameterResponse) -> Lens PutParameterResponse PutParameterResponse (Maybe ParameterTier) (Maybe ParameterTier) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameterResponse' {Maybe ParameterTier tier :: Maybe ParameterTier $sel:tier:PutParameterResponse' :: PutParameterResponse -> Maybe ParameterTier tier} -> Maybe ParameterTier tier) (\s :: PutParameterResponse s@PutParameterResponse' {} Maybe ParameterTier a -> PutParameterResponse s {$sel:tier:PutParameterResponse' :: Maybe ParameterTier tier = Maybe ParameterTier a} :: PutParameterResponse) -- | The new version number of a parameter. If you edit a parameter value, -- Parameter Store automatically creates a new version and assigns this new -- version a unique ID. You can reference a parameter version ID in API -- operations or in Systems Manager documents (SSM documents). By default, -- if you don\'t specify a specific version, the system returns the latest -- parameter value when a parameter is called. putParameterResponse_version :: Lens.Lens' PutParameterResponse (Prelude.Maybe Prelude.Integer) putParameterResponse_version :: (Maybe Integer -> f (Maybe Integer)) -> PutParameterResponse -> f PutParameterResponse putParameterResponse_version = (PutParameterResponse -> Maybe Integer) -> (PutParameterResponse -> Maybe Integer -> PutParameterResponse) -> Lens PutParameterResponse PutParameterResponse (Maybe Integer) (Maybe Integer) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameterResponse' {Maybe Integer version :: Maybe Integer $sel:version:PutParameterResponse' :: PutParameterResponse -> Maybe Integer version} -> Maybe Integer version) (\s :: PutParameterResponse s@PutParameterResponse' {} Maybe Integer a -> PutParameterResponse s {$sel:version:PutParameterResponse' :: Maybe Integer version = Maybe Integer a} :: PutParameterResponse) -- | The response's http status code. putParameterResponse_httpStatus :: Lens.Lens' PutParameterResponse Prelude.Int putParameterResponse_httpStatus :: (Int -> f Int) -> PutParameterResponse -> f PutParameterResponse putParameterResponse_httpStatus = (PutParameterResponse -> Int) -> (PutParameterResponse -> Int -> PutParameterResponse) -> Lens PutParameterResponse PutParameterResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PutParameterResponse' {Int httpStatus :: Int $sel:httpStatus:PutParameterResponse' :: PutParameterResponse -> Int httpStatus} -> Int httpStatus) (\s :: PutParameterResponse s@PutParameterResponse' {} Int a -> PutParameterResponse s {$sel:httpStatus:PutParameterResponse' :: Int httpStatus = Int a} :: PutParameterResponse) instance Prelude.NFData PutParameterResponse