{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.ServiceCatalog.Types.Product -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ServiceCatalog.Types.Product where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.ServiceCatalog.Types.Sum -- | The access level to limit results. -- -- -- -- /See:/ 'accessLevelFilter' smart constructor. data AccessLevelFilter = AccessLevelFilter' { _alfValue :: !(Maybe Text) , _alfKey :: !(Maybe AccessLevelFilterKey) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'AccessLevelFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'alfValue' - Specifies the user to which the access level applies. A value of @Self@ is currently supported. -- -- * 'alfKey' - Specifies the access level. @Account@ allows results at the account level. @Role@ allows results based on the federated role of the specified user. @User@ allows results limited to the specified user. accessLevelFilter :: AccessLevelFilter accessLevelFilter = AccessLevelFilter' { _alfValue = Nothing , _alfKey = Nothing } -- | Specifies the user to which the access level applies. A value of @Self@ is currently supported. alfValue :: Lens' AccessLevelFilter (Maybe Text) alfValue = lens _alfValue (\ s a -> s{_alfValue = a}); -- | Specifies the access level. @Account@ allows results at the account level. @Role@ allows results based on the federated role of the specified user. @User@ allows results limited to the specified user. alfKey :: Lens' AccessLevelFilter (Maybe AccessLevelFilterKey) alfKey = lens _alfKey (\ s a -> s{_alfKey = a}); instance Hashable AccessLevelFilter instance NFData AccessLevelFilter instance ToJSON AccessLevelFilter where toJSON AccessLevelFilter'{..} = object (catMaybes [("Value" .=) <$> _alfValue, ("Key" .=) <$> _alfKey]) -- | Detailed constraint information. -- -- -- -- /See:/ 'constraintDetail' smart constructor. data ConstraintDetail = ConstraintDetail' { _cdConstraintId :: !(Maybe Text) , _cdOwner :: !(Maybe Text) , _cdType :: !(Maybe Text) , _cdDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ConstraintDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cdConstraintId' - The identifier of the constraint. -- -- * 'cdOwner' - The owner of the constraint. -- -- * 'cdType' - The type of the constraint. -- -- * 'cdDescription' - The text description of the constraint. constraintDetail :: ConstraintDetail constraintDetail = ConstraintDetail' { _cdConstraintId = Nothing , _cdOwner = Nothing , _cdType = Nothing , _cdDescription = Nothing } -- | The identifier of the constraint. cdConstraintId :: Lens' ConstraintDetail (Maybe Text) cdConstraintId = lens _cdConstraintId (\ s a -> s{_cdConstraintId = a}); -- | The owner of the constraint. cdOwner :: Lens' ConstraintDetail (Maybe Text) cdOwner = lens _cdOwner (\ s a -> s{_cdOwner = a}); -- | The type of the constraint. cdType :: Lens' ConstraintDetail (Maybe Text) cdType = lens _cdType (\ s a -> s{_cdType = a}); -- | The text description of the constraint. cdDescription :: Lens' ConstraintDetail (Maybe Text) cdDescription = lens _cdDescription (\ s a -> s{_cdDescription = a}); instance FromJSON ConstraintDetail where parseJSON = withObject "ConstraintDetail" (\ x -> ConstraintDetail' <$> (x .:? "ConstraintId") <*> (x .:? "Owner") <*> (x .:? "Type") <*> (x .:? "Description")) instance Hashable ConstraintDetail instance NFData ConstraintDetail -- | An administrator-specified constraint to apply when provisioning a product. -- -- -- -- /See:/ 'constraintSummary' smart constructor. data ConstraintSummary = ConstraintSummary' { _csType :: !(Maybe Text) , _csDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ConstraintSummary' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'csType' - The type of the constraint. -- -- * 'csDescription' - The text description of the constraint. constraintSummary :: ConstraintSummary constraintSummary = ConstraintSummary' { _csType = Nothing , _csDescription = Nothing } -- | The type of the constraint. csType :: Lens' ConstraintSummary (Maybe Text) csType = lens _csType (\ s a -> s{_csType = a}); -- | The text description of the constraint. csDescription :: Lens' ConstraintSummary (Maybe Text) csDescription = lens _csDescription (\ s a -> s{_csDescription = a}); instance FromJSON ConstraintSummary where parseJSON = withObject "ConstraintSummary" (\ x -> ConstraintSummary' <$> (x .:? "Type") <*> (x .:? "Description")) instance Hashable ConstraintSummary instance NFData ConstraintSummary -- | Summary information about a path for a user to have access to a specified product. -- -- -- -- /See:/ 'launchPathSummary' smart constructor. data LaunchPathSummary = LaunchPathSummary' { _lpsConstraintSummaries :: !(Maybe [ConstraintSummary]) , _lpsName :: !(Maybe Text) , _lpsId :: !(Maybe Text) , _lpsTags :: !(Maybe [Tag]) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'LaunchPathSummary' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lpsConstraintSummaries' - List of constraints on the portfolio-product relationship. -- -- * 'lpsName' - Corresponds to the name of the portfolio to which the user was assigned. -- -- * 'lpsId' - The unique identifier of the product path. -- -- * 'lpsTags' - List of tags used by this launch path. launchPathSummary :: LaunchPathSummary launchPathSummary = LaunchPathSummary' { _lpsConstraintSummaries = Nothing , _lpsName = Nothing , _lpsId = Nothing , _lpsTags = Nothing } -- | List of constraints on the portfolio-product relationship. lpsConstraintSummaries :: Lens' LaunchPathSummary [ConstraintSummary] lpsConstraintSummaries = lens _lpsConstraintSummaries (\ s a -> s{_lpsConstraintSummaries = a}) . _Default . _Coerce; -- | Corresponds to the name of the portfolio to which the user was assigned. lpsName :: Lens' LaunchPathSummary (Maybe Text) lpsName = lens _lpsName (\ s a -> s{_lpsName = a}); -- | The unique identifier of the product path. lpsId :: Lens' LaunchPathSummary (Maybe Text) lpsId = lens _lpsId (\ s a -> s{_lpsId = a}); -- | List of tags used by this launch path. lpsTags :: Lens' LaunchPathSummary [Tag] lpsTags = lens _lpsTags (\ s a -> s{_lpsTags = a}) . _Default . _Coerce; instance FromJSON LaunchPathSummary where parseJSON = withObject "LaunchPathSummary" (\ x -> LaunchPathSummary' <$> (x .:? "ConstraintSummaries" .!= mempty) <*> (x .:? "Name") <*> (x .:? "Id") <*> (x .:? "Tags" .!= mempty)) instance Hashable LaunchPathSummary instance NFData LaunchPathSummary -- | The search filter to limit results when listing request history records. -- -- -- -- /See:/ 'listRecordHistorySearchFilter' smart constructor. data ListRecordHistorySearchFilter = ListRecordHistorySearchFilter' { _lrhsfValue :: !(Maybe Text) , _lrhsfKey :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListRecordHistorySearchFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lrhsfValue' - The filter value for @Key@ . -- -- * 'lrhsfKey' - The filter key. listRecordHistorySearchFilter :: ListRecordHistorySearchFilter listRecordHistorySearchFilter = ListRecordHistorySearchFilter' { _lrhsfValue = Nothing , _lrhsfKey = Nothing } -- | The filter value for @Key@ . lrhsfValue :: Lens' ListRecordHistorySearchFilter (Maybe Text) lrhsfValue = lens _lrhsfValue (\ s a -> s{_lrhsfValue = a}); -- | The filter key. lrhsfKey :: Lens' ListRecordHistorySearchFilter (Maybe Text) lrhsfKey = lens _lrhsfKey (\ s a -> s{_lrhsfKey = a}); instance Hashable ListRecordHistorySearchFilter instance NFData ListRecordHistorySearchFilter instance ToJSON ListRecordHistorySearchFilter where toJSON ListRecordHistorySearchFilter'{..} = object (catMaybes [("Value" .=) <$> _lrhsfValue, ("Key" .=) <$> _lrhsfKey]) -- | The constraints that the administrator has put on the parameter. -- -- -- -- /See:/ 'parameterConstraints' smart constructor. newtype ParameterConstraints = ParameterConstraints' { _pcAllowedValues :: Maybe [Text] } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ParameterConstraints' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pcAllowedValues' - The values that the administrator has allowed for the parameter. parameterConstraints :: ParameterConstraints parameterConstraints = ParameterConstraints' { _pcAllowedValues = Nothing } -- | The values that the administrator has allowed for the parameter. pcAllowedValues :: Lens' ParameterConstraints [Text] pcAllowedValues = lens _pcAllowedValues (\ s a -> s{_pcAllowedValues = a}) . _Default . _Coerce; instance FromJSON ParameterConstraints where parseJSON = withObject "ParameterConstraints" (\ x -> ParameterConstraints' <$> (x .:? "AllowedValues" .!= mempty)) instance Hashable ParameterConstraints instance NFData ParameterConstraints -- | Detailed portfolio information. -- -- -- -- /See:/ 'portfolioDetail' smart constructor. data PortfolioDetail = PortfolioDetail' { _pdARN :: !(Maybe Text) , _pdCreatedTime :: !(Maybe POSIX) , _pdId :: !(Maybe Text) , _pdDisplayName :: !(Maybe Text) , _pdDescription :: !(Maybe Text) , _pdProviderName :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PortfolioDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pdARN' - The ARN assigned to the portfolio. -- -- * 'pdCreatedTime' - The UTC timestamp of the creation time. -- -- * 'pdId' - The identifier for the portfolio. -- -- * 'pdDisplayName' - The name to use for display purposes. -- -- * 'pdDescription' - The text description of the portfolio. -- -- * 'pdProviderName' - The name of the portfolio provider. portfolioDetail :: PortfolioDetail portfolioDetail = PortfolioDetail' { _pdARN = Nothing , _pdCreatedTime = Nothing , _pdId = Nothing , _pdDisplayName = Nothing , _pdDescription = Nothing , _pdProviderName = Nothing } -- | The ARN assigned to the portfolio. pdARN :: Lens' PortfolioDetail (Maybe Text) pdARN = lens _pdARN (\ s a -> s{_pdARN = a}); -- | The UTC timestamp of the creation time. pdCreatedTime :: Lens' PortfolioDetail (Maybe UTCTime) pdCreatedTime = lens _pdCreatedTime (\ s a -> s{_pdCreatedTime = a}) . mapping _Time; -- | The identifier for the portfolio. pdId :: Lens' PortfolioDetail (Maybe Text) pdId = lens _pdId (\ s a -> s{_pdId = a}); -- | The name to use for display purposes. pdDisplayName :: Lens' PortfolioDetail (Maybe Text) pdDisplayName = lens _pdDisplayName (\ s a -> s{_pdDisplayName = a}); -- | The text description of the portfolio. pdDescription :: Lens' PortfolioDetail (Maybe Text) pdDescription = lens _pdDescription (\ s a -> s{_pdDescription = a}); -- | The name of the portfolio provider. pdProviderName :: Lens' PortfolioDetail (Maybe Text) pdProviderName = lens _pdProviderName (\ s a -> s{_pdProviderName = a}); instance FromJSON PortfolioDetail where parseJSON = withObject "PortfolioDetail" (\ x -> PortfolioDetail' <$> (x .:? "ARN") <*> (x .:? "CreatedTime") <*> (x .:? "Id") <*> (x .:? "DisplayName") <*> (x .:? "Description") <*> (x .:? "ProviderName")) instance Hashable PortfolioDetail instance NFData PortfolioDetail -- | A principal's ARN and type. -- -- -- -- /See:/ 'principal' smart constructor. data Principal = Principal' { _pPrincipalType :: !(Maybe PrincipalType) , _pPrincipalARN :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'Principal' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pPrincipalType' - The principal type. Must be @IAM@ -- -- * 'pPrincipalARN' - The ARN representing the principal (IAM user, role, or group). principal :: Principal principal = Principal' { _pPrincipalType = Nothing , _pPrincipalARN = Nothing } -- | The principal type. Must be @IAM@ pPrincipalType :: Lens' Principal (Maybe PrincipalType) pPrincipalType = lens _pPrincipalType (\ s a -> s{_pPrincipalType = a}); -- | The ARN representing the principal (IAM user, role, or group). pPrincipalARN :: Lens' Principal (Maybe Text) pPrincipalARN = lens _pPrincipalARN (\ s a -> s{_pPrincipalARN = a}); instance FromJSON Principal where parseJSON = withObject "Principal" (\ x -> Principal' <$> (x .:? "PrincipalType") <*> (x .:? "PrincipalARN")) instance Hashable Principal instance NFData Principal -- | A single product view aggregation value/count pair, containing metadata about each product to which the calling user has access. -- -- -- -- /See:/ 'productViewAggregationValue' smart constructor. data ProductViewAggregationValue = ProductViewAggregationValue' { _pvavValue :: !(Maybe Text) , _pvavApproximateCount :: !(Maybe Int) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProductViewAggregationValue' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pvavValue' - The value of the product view aggregation. -- -- * 'pvavApproximateCount' - An approximate count of the products that match the value. productViewAggregationValue :: ProductViewAggregationValue productViewAggregationValue = ProductViewAggregationValue' { _pvavValue = Nothing , _pvavApproximateCount = Nothing } -- | The value of the product view aggregation. pvavValue :: Lens' ProductViewAggregationValue (Maybe Text) pvavValue = lens _pvavValue (\ s a -> s{_pvavValue = a}); -- | An approximate count of the products that match the value. pvavApproximateCount :: Lens' ProductViewAggregationValue (Maybe Int) pvavApproximateCount = lens _pvavApproximateCount (\ s a -> s{_pvavApproximateCount = a}); instance FromJSON ProductViewAggregationValue where parseJSON = withObject "ProductViewAggregationValue" (\ x -> ProductViewAggregationValue' <$> (x .:? "Value") <*> (x .:? "ApproximateCount")) instance Hashable ProductViewAggregationValue instance NFData ProductViewAggregationValue -- | Detailed product view information. -- -- -- -- /See:/ 'productViewDetail' smart constructor. data ProductViewDetail = ProductViewDetail' { _pvdStatus :: !(Maybe RequestStatus) , _pvdProductViewSummary :: !(Maybe ProductViewSummary) , _pvdCreatedTime :: !(Maybe POSIX) , _pvdProductARN :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProductViewDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pvdStatus' - Current status of the product. -- -- * 'pvdProductViewSummary' - The summary metadata about the specified product view. -- -- * 'pvdCreatedTime' - The UTC timestamp of the creation time. -- -- * 'pvdProductARN' - The ARN associated with the product. productViewDetail :: ProductViewDetail productViewDetail = ProductViewDetail' { _pvdStatus = Nothing , _pvdProductViewSummary = Nothing , _pvdCreatedTime = Nothing , _pvdProductARN = Nothing } -- | Current status of the product. pvdStatus :: Lens' ProductViewDetail (Maybe RequestStatus) pvdStatus = lens _pvdStatus (\ s a -> s{_pvdStatus = a}); -- | The summary metadata about the specified product view. pvdProductViewSummary :: Lens' ProductViewDetail (Maybe ProductViewSummary) pvdProductViewSummary = lens _pvdProductViewSummary (\ s a -> s{_pvdProductViewSummary = a}); -- | The UTC timestamp of the creation time. pvdCreatedTime :: Lens' ProductViewDetail (Maybe UTCTime) pvdCreatedTime = lens _pvdCreatedTime (\ s a -> s{_pvdCreatedTime = a}) . mapping _Time; -- | The ARN associated with the product. pvdProductARN :: Lens' ProductViewDetail (Maybe Text) pvdProductARN = lens _pvdProductARN (\ s a -> s{_pvdProductARN = a}); instance FromJSON ProductViewDetail where parseJSON = withObject "ProductViewDetail" (\ x -> ProductViewDetail' <$> (x .:? "Status") <*> (x .:? "ProductViewSummary") <*> (x .:? "CreatedTime") <*> (x .:? "ProductARN")) instance Hashable ProductViewDetail instance NFData ProductViewDetail -- | The summary metadata about the specified product. -- -- -- -- /See:/ 'productViewSummary' smart constructor. data ProductViewSummary = ProductViewSummary' { _pvsOwner :: !(Maybe Text) , _pvsSupportURL :: !(Maybe Text) , _pvsShortDescription :: !(Maybe Text) , _pvsHasDefaultPath :: !(Maybe Bool) , _pvsDistributor :: !(Maybe Text) , _pvsName :: !(Maybe Text) , _pvsId :: !(Maybe Text) , _pvsType :: !(Maybe ProductType) , _pvsSupportEmail :: !(Maybe Text) , _pvsProductId :: !(Maybe Text) , _pvsSupportDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProductViewSummary' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pvsOwner' - The owner of the product. Contact the product administrator for the significance of this value. -- -- * 'pvsSupportURL' - The URL information to obtain support for this Product. -- -- * 'pvsShortDescription' - Short description of the product. -- -- * 'pvsHasDefaultPath' - A value of @false@ indicates that the product does not have a default path, while a value of @true@ indicates that it does. If it's false, call 'ListLaunchPaths' to disambiguate between paths. If true, 'ListLaunchPaths' is not required, and the output of the 'ProductViewSummary' operation can be used directly with 'DescribeProvisioningParameters' . -- -- * 'pvsDistributor' - The distributor of the product. Contact the product administrator for the significance of this value. -- -- * 'pvsName' - The name of the product. -- -- * 'pvsId' - The product view identifier. -- -- * 'pvsType' - The product type. Contact the product administrator for the significance of this value. -- -- * 'pvsSupportEmail' - The email contact information to obtain support for this Product. -- -- * 'pvsProductId' - The product identifier. -- -- * 'pvsSupportDescription' - The description of the support for this Product. productViewSummary :: ProductViewSummary productViewSummary = ProductViewSummary' { _pvsOwner = Nothing , _pvsSupportURL = Nothing , _pvsShortDescription = Nothing , _pvsHasDefaultPath = Nothing , _pvsDistributor = Nothing , _pvsName = Nothing , _pvsId = Nothing , _pvsType = Nothing , _pvsSupportEmail = Nothing , _pvsProductId = Nothing , _pvsSupportDescription = Nothing } -- | The owner of the product. Contact the product administrator for the significance of this value. pvsOwner :: Lens' ProductViewSummary (Maybe Text) pvsOwner = lens _pvsOwner (\ s a -> s{_pvsOwner = a}); -- | The URL information to obtain support for this Product. pvsSupportURL :: Lens' ProductViewSummary (Maybe Text) pvsSupportURL = lens _pvsSupportURL (\ s a -> s{_pvsSupportURL = a}); -- | Short description of the product. pvsShortDescription :: Lens' ProductViewSummary (Maybe Text) pvsShortDescription = lens _pvsShortDescription (\ s a -> s{_pvsShortDescription = a}); -- | A value of @false@ indicates that the product does not have a default path, while a value of @true@ indicates that it does. If it's false, call 'ListLaunchPaths' to disambiguate between paths. If true, 'ListLaunchPaths' is not required, and the output of the 'ProductViewSummary' operation can be used directly with 'DescribeProvisioningParameters' . pvsHasDefaultPath :: Lens' ProductViewSummary (Maybe Bool) pvsHasDefaultPath = lens _pvsHasDefaultPath (\ s a -> s{_pvsHasDefaultPath = a}); -- | The distributor of the product. Contact the product administrator for the significance of this value. pvsDistributor :: Lens' ProductViewSummary (Maybe Text) pvsDistributor = lens _pvsDistributor (\ s a -> s{_pvsDistributor = a}); -- | The name of the product. pvsName :: Lens' ProductViewSummary (Maybe Text) pvsName = lens _pvsName (\ s a -> s{_pvsName = a}); -- | The product view identifier. pvsId :: Lens' ProductViewSummary (Maybe Text) pvsId = lens _pvsId (\ s a -> s{_pvsId = a}); -- | The product type. Contact the product administrator for the significance of this value. pvsType :: Lens' ProductViewSummary (Maybe ProductType) pvsType = lens _pvsType (\ s a -> s{_pvsType = a}); -- | The email contact information to obtain support for this Product. pvsSupportEmail :: Lens' ProductViewSummary (Maybe Text) pvsSupportEmail = lens _pvsSupportEmail (\ s a -> s{_pvsSupportEmail = a}); -- | The product identifier. pvsProductId :: Lens' ProductViewSummary (Maybe Text) pvsProductId = lens _pvsProductId (\ s a -> s{_pvsProductId = a}); -- | The description of the support for this Product. pvsSupportDescription :: Lens' ProductViewSummary (Maybe Text) pvsSupportDescription = lens _pvsSupportDescription (\ s a -> s{_pvsSupportDescription = a}); instance FromJSON ProductViewSummary where parseJSON = withObject "ProductViewSummary" (\ x -> ProductViewSummary' <$> (x .:? "Owner") <*> (x .:? "SupportUrl") <*> (x .:? "ShortDescription") <*> (x .:? "HasDefaultPath") <*> (x .:? "Distributor") <*> (x .:? "Name") <*> (x .:? "Id") <*> (x .:? "Type") <*> (x .:? "SupportEmail") <*> (x .:? "ProductId") <*> (x .:? "SupportDescription")) instance Hashable ProductViewSummary instance NFData ProductViewSummary -- | Detailed information about a ProvisionedProduct object. -- -- -- -- /See:/ 'provisionedProductDetail' smart constructor. data ProvisionedProductDetail = ProvisionedProductDetail' { _ppdIdempotencyToken :: !(Maybe Text) , _ppdStatus :: !(Maybe RecordStatus) , _ppdARN :: !(Maybe Text) , _ppdCreatedTime :: !(Maybe POSIX) , _ppdStatusMessage :: !(Maybe Text) , _ppdName :: !(Maybe Text) , _ppdLastRecordId :: !(Maybe Text) , _ppdId :: !(Maybe Text) , _ppdType :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisionedProductDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ppdIdempotencyToken' - A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. -- -- * 'ppdStatus' - The current status of the ProvisionedProduct. -- -- * 'ppdARN' - The ARN associated with the ProvisionedProduct object. -- -- * 'ppdCreatedTime' - The UTC timestamp of the creation time. -- -- * 'ppdStatusMessage' - The current status message of the ProvisionedProduct. -- -- * 'ppdName' - The user-friendly name of the ProvisionedProduct object. -- -- * 'ppdLastRecordId' - The record identifier of the last request performed on this ProvisionedProduct object. -- -- * 'ppdId' - The identifier of the ProvisionedProduct object. -- -- * 'ppdType' - The type of the ProvisionedProduct object. provisionedProductDetail :: ProvisionedProductDetail provisionedProductDetail = ProvisionedProductDetail' { _ppdIdempotencyToken = Nothing , _ppdStatus = Nothing , _ppdARN = Nothing , _ppdCreatedTime = Nothing , _ppdStatusMessage = Nothing , _ppdName = Nothing , _ppdLastRecordId = Nothing , _ppdId = Nothing , _ppdType = Nothing } -- | A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. ppdIdempotencyToken :: Lens' ProvisionedProductDetail (Maybe Text) ppdIdempotencyToken = lens _ppdIdempotencyToken (\ s a -> s{_ppdIdempotencyToken = a}); -- | The current status of the ProvisionedProduct. ppdStatus :: Lens' ProvisionedProductDetail (Maybe RecordStatus) ppdStatus = lens _ppdStatus (\ s a -> s{_ppdStatus = a}); -- | The ARN associated with the ProvisionedProduct object. ppdARN :: Lens' ProvisionedProductDetail (Maybe Text) ppdARN = lens _ppdARN (\ s a -> s{_ppdARN = a}); -- | The UTC timestamp of the creation time. ppdCreatedTime :: Lens' ProvisionedProductDetail (Maybe UTCTime) ppdCreatedTime = lens _ppdCreatedTime (\ s a -> s{_ppdCreatedTime = a}) . mapping _Time; -- | The current status message of the ProvisionedProduct. ppdStatusMessage :: Lens' ProvisionedProductDetail (Maybe Text) ppdStatusMessage = lens _ppdStatusMessage (\ s a -> s{_ppdStatusMessage = a}); -- | The user-friendly name of the ProvisionedProduct object. ppdName :: Lens' ProvisionedProductDetail (Maybe Text) ppdName = lens _ppdName (\ s a -> s{_ppdName = a}); -- | The record identifier of the last request performed on this ProvisionedProduct object. ppdLastRecordId :: Lens' ProvisionedProductDetail (Maybe Text) ppdLastRecordId = lens _ppdLastRecordId (\ s a -> s{_ppdLastRecordId = a}); -- | The identifier of the ProvisionedProduct object. ppdId :: Lens' ProvisionedProductDetail (Maybe Text) ppdId = lens _ppdId (\ s a -> s{_ppdId = a}); -- | The type of the ProvisionedProduct object. ppdType :: Lens' ProvisionedProductDetail (Maybe Text) ppdType = lens _ppdType (\ s a -> s{_ppdType = a}); instance FromJSON ProvisionedProductDetail where parseJSON = withObject "ProvisionedProductDetail" (\ x -> ProvisionedProductDetail' <$> (x .:? "IdempotencyToken") <*> (x .:? "Status") <*> (x .:? "Arn") <*> (x .:? "CreatedTime") <*> (x .:? "StatusMessage") <*> (x .:? "Name") <*> (x .:? "LastRecordId") <*> (x .:? "Id") <*> (x .:? "Type")) instance Hashable ProvisionedProductDetail instance NFData ProvisionedProductDetail -- | Contains information indicating the ways in which a product can be provisioned. -- -- -- -- /See:/ 'provisioningArtifact' smart constructor. data ProvisioningArtifact = ProvisioningArtifact' { _paCreatedTime :: !(Maybe POSIX) , _paName :: !(Maybe Text) , _paId :: !(Maybe Text) , _paDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisioningArtifact' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'paCreatedTime' - The UTC timestamp of the creation time. -- -- * 'paName' - The name of the artifact. -- -- * 'paId' - The identifier for the artifact. -- -- * 'paDescription' - The text description of the artifact. provisioningArtifact :: ProvisioningArtifact provisioningArtifact = ProvisioningArtifact' { _paCreatedTime = Nothing , _paName = Nothing , _paId = Nothing , _paDescription = Nothing } -- | The UTC timestamp of the creation time. paCreatedTime :: Lens' ProvisioningArtifact (Maybe UTCTime) paCreatedTime = lens _paCreatedTime (\ s a -> s{_paCreatedTime = a}) . mapping _Time; -- | The name of the artifact. paName :: Lens' ProvisioningArtifact (Maybe Text) paName = lens _paName (\ s a -> s{_paName = a}); -- | The identifier for the artifact. paId :: Lens' ProvisioningArtifact (Maybe Text) paId = lens _paId (\ s a -> s{_paId = a}); -- | The text description of the artifact. paDescription :: Lens' ProvisioningArtifact (Maybe Text) paDescription = lens _paDescription (\ s a -> s{_paDescription = a}); instance FromJSON ProvisioningArtifact where parseJSON = withObject "ProvisioningArtifact" (\ x -> ProvisioningArtifact' <$> (x .:? "CreatedTime") <*> (x .:? "Name") <*> (x .:? "Id") <*> (x .:? "Description")) instance Hashable ProvisioningArtifact instance NFData ProvisioningArtifact -- | Detailed provisioning artifact information. -- -- -- -- /See:/ 'provisioningArtifactDetail' smart constructor. data ProvisioningArtifactDetail = ProvisioningArtifactDetail' { _padCreatedTime :: !(Maybe POSIX) , _padName :: !(Maybe Text) , _padId :: !(Maybe Text) , _padType :: !(Maybe ProvisioningArtifactType) , _padDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisioningArtifactDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'padCreatedTime' - The UTC timestamp of the creation time. -- -- * 'padName' - The name assigned to the provisioning artifact. -- -- * 'padId' - The identifier of the provisioning artifact. -- -- * 'padType' - The type of the provisioning artifact. -- -- * 'padDescription' - The text description of the provisioning artifact. provisioningArtifactDetail :: ProvisioningArtifactDetail provisioningArtifactDetail = ProvisioningArtifactDetail' { _padCreatedTime = Nothing , _padName = Nothing , _padId = Nothing , _padType = Nothing , _padDescription = Nothing } -- | The UTC timestamp of the creation time. padCreatedTime :: Lens' ProvisioningArtifactDetail (Maybe UTCTime) padCreatedTime = lens _padCreatedTime (\ s a -> s{_padCreatedTime = a}) . mapping _Time; -- | The name assigned to the provisioning artifact. padName :: Lens' ProvisioningArtifactDetail (Maybe Text) padName = lens _padName (\ s a -> s{_padName = a}); -- | The identifier of the provisioning artifact. padId :: Lens' ProvisioningArtifactDetail (Maybe Text) padId = lens _padId (\ s a -> s{_padId = a}); -- | The type of the provisioning artifact. padType :: Lens' ProvisioningArtifactDetail (Maybe ProvisioningArtifactType) padType = lens _padType (\ s a -> s{_padType = a}); -- | The text description of the provisioning artifact. padDescription :: Lens' ProvisioningArtifactDetail (Maybe Text) padDescription = lens _padDescription (\ s a -> s{_padDescription = a}); instance FromJSON ProvisioningArtifactDetail where parseJSON = withObject "ProvisioningArtifactDetail" (\ x -> ProvisioningArtifactDetail' <$> (x .:? "CreatedTime") <*> (x .:? "Name") <*> (x .:? "Id") <*> (x .:? "Type") <*> (x .:? "Description")) instance Hashable ProvisioningArtifactDetail instance NFData ProvisioningArtifactDetail -- | A parameter used to successfully provision the product. This value includes a list of allowable values and additional metadata. -- -- -- -- /See:/ 'provisioningArtifactParameter' smart constructor. data ProvisioningArtifactParameter = ProvisioningArtifactParameter' { _pIsNoEcho :: !(Maybe Bool) , _pParameterKey :: !(Maybe Text) , _pParameterType :: !(Maybe Text) , _pParameterConstraints :: !(Maybe ParameterConstraints) , _pDefaultValue :: !(Maybe Text) , _pDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisioningArtifactParameter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pIsNoEcho' - If this value is true, the value for this parameter is obfuscated from view when the parameter is retrieved. This parameter is used to hide sensitive information. -- -- * 'pParameterKey' - The parameter key. -- -- * 'pParameterType' - The parameter type. -- -- * 'pParameterConstraints' - The list of constraints that the administrator has put on the parameter. -- -- * 'pDefaultValue' - The default value for this parameter. -- -- * 'pDescription' - The text description of the parameter. provisioningArtifactParameter :: ProvisioningArtifactParameter provisioningArtifactParameter = ProvisioningArtifactParameter' { _pIsNoEcho = Nothing , _pParameterKey = Nothing , _pParameterType = Nothing , _pParameterConstraints = Nothing , _pDefaultValue = Nothing , _pDescription = Nothing } -- | If this value is true, the value for this parameter is obfuscated from view when the parameter is retrieved. This parameter is used to hide sensitive information. pIsNoEcho :: Lens' ProvisioningArtifactParameter (Maybe Bool) pIsNoEcho = lens _pIsNoEcho (\ s a -> s{_pIsNoEcho = a}); -- | The parameter key. pParameterKey :: Lens' ProvisioningArtifactParameter (Maybe Text) pParameterKey = lens _pParameterKey (\ s a -> s{_pParameterKey = a}); -- | The parameter type. pParameterType :: Lens' ProvisioningArtifactParameter (Maybe Text) pParameterType = lens _pParameterType (\ s a -> s{_pParameterType = a}); -- | The list of constraints that the administrator has put on the parameter. pParameterConstraints :: Lens' ProvisioningArtifactParameter (Maybe ParameterConstraints) pParameterConstraints = lens _pParameterConstraints (\ s a -> s{_pParameterConstraints = a}); -- | The default value for this parameter. pDefaultValue :: Lens' ProvisioningArtifactParameter (Maybe Text) pDefaultValue = lens _pDefaultValue (\ s a -> s{_pDefaultValue = a}); -- | The text description of the parameter. pDescription :: Lens' ProvisioningArtifactParameter (Maybe Text) pDescription = lens _pDescription (\ s a -> s{_pDescription = a}); instance FromJSON ProvisioningArtifactParameter where parseJSON = withObject "ProvisioningArtifactParameter" (\ x -> ProvisioningArtifactParameter' <$> (x .:? "IsNoEcho") <*> (x .:? "ParameterKey") <*> (x .:? "ParameterType") <*> (x .:? "ParameterConstraints") <*> (x .:? "DefaultValue") <*> (x .:? "Description")) instance Hashable ProvisioningArtifactParameter instance NFData ProvisioningArtifactParameter -- | Provisioning artifact properties. -- -- -- -- /See:/ 'provisioningArtifactProperties' smart constructor. data ProvisioningArtifactProperties = ProvisioningArtifactProperties' { _papName :: !(Maybe Text) , _papType :: !(Maybe ProvisioningArtifactType) , _papDescription :: !(Maybe Text) , _papInfo :: !(Map Text Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisioningArtifactProperties' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'papName' - The name assigned to the provisioning artifact properties. -- -- * 'papType' - The type of the provisioning artifact properties. -- -- * 'papDescription' - The text description of the provisioning artifact properties. -- -- * 'papInfo' - Additional information about the provisioning artifact properties. provisioningArtifactProperties :: ProvisioningArtifactProperties provisioningArtifactProperties = ProvisioningArtifactProperties' { _papName = Nothing , _papType = Nothing , _papDescription = Nothing , _papInfo = mempty } -- | The name assigned to the provisioning artifact properties. papName :: Lens' ProvisioningArtifactProperties (Maybe Text) papName = lens _papName (\ s a -> s{_papName = a}); -- | The type of the provisioning artifact properties. papType :: Lens' ProvisioningArtifactProperties (Maybe ProvisioningArtifactType) papType = lens _papType (\ s a -> s{_papType = a}); -- | The text description of the provisioning artifact properties. papDescription :: Lens' ProvisioningArtifactProperties (Maybe Text) papDescription = lens _papDescription (\ s a -> s{_papDescription = a}); -- | Additional information about the provisioning artifact properties. papInfo :: Lens' ProvisioningArtifactProperties (HashMap Text Text) papInfo = lens _papInfo (\ s a -> s{_papInfo = a}) . _Map; instance Hashable ProvisioningArtifactProperties instance NFData ProvisioningArtifactProperties instance ToJSON ProvisioningArtifactProperties where toJSON ProvisioningArtifactProperties'{..} = object (catMaybes [("Name" .=) <$> _papName, ("Type" .=) <$> _papType, ("Description" .=) <$> _papDescription, Just ("Info" .= _papInfo)]) -- | The arameter key/value pairs used to provision a product. -- -- -- -- /See:/ 'provisioningParameter' smart constructor. data ProvisioningParameter = ProvisioningParameter' { _ppValue :: !(Maybe Text) , _ppKey :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ProvisioningParameter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ppValue' - The value to use for provisioning. Any constraints on this value can be found in @ProvisioningArtifactParameter@ for @Key@ . -- -- * 'ppKey' - The @ProvisioningArtifactParameter.ParameterKey@ parameter from 'DescribeProvisioningParameters' . provisioningParameter :: ProvisioningParameter provisioningParameter = ProvisioningParameter' { _ppValue = Nothing , _ppKey = Nothing } -- | The value to use for provisioning. Any constraints on this value can be found in @ProvisioningArtifactParameter@ for @Key@ . ppValue :: Lens' ProvisioningParameter (Maybe Text) ppValue = lens _ppValue (\ s a -> s{_ppValue = a}); -- | The @ProvisioningArtifactParameter.ParameterKey@ parameter from 'DescribeProvisioningParameters' . ppKey :: Lens' ProvisioningParameter (Maybe Text) ppKey = lens _ppKey (\ s a -> s{_ppKey = a}); instance Hashable ProvisioningParameter instance NFData ProvisioningParameter instance ToJSON ProvisioningParameter where toJSON ProvisioningParameter'{..} = object (catMaybes [("Value" .=) <$> _ppValue, ("Key" .=) <$> _ppKey]) -- | The full details of a specific ProvisionedProduct object. -- -- -- -- /See:/ 'recordDetail' smart constructor. data RecordDetail = RecordDetail' { _rdStatus :: !(Maybe RecordStatus) , _rdRecordTags :: !(Maybe [RecordTag]) , _rdProvisionedProductName :: !(Maybe Text) , _rdProvisioningArtifactId :: !(Maybe Text) , _rdCreatedTime :: !(Maybe POSIX) , _rdRecordType :: !(Maybe Text) , _rdRecordId :: !(Maybe Text) , _rdProvisionedProductType :: !(Maybe Text) , _rdUpdatedTime :: !(Maybe POSIX) , _rdPathId :: !(Maybe Text) , _rdProvisionedProductId :: !(Maybe Text) , _rdRecordErrors :: !(Maybe [RecordError]) , _rdProductId :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'RecordDetail' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rdStatus' - The status of the ProvisionedProduct object. -- -- * 'rdRecordTags' - List of tags associated with this record. -- -- * 'rdProvisionedProductName' - The user-friendly name of the ProvisionedProduct object. -- -- * 'rdProvisioningArtifactId' - The provisioning artifact identifier for this product. -- -- * 'rdCreatedTime' - The UTC timestamp of the creation time. -- -- * 'rdRecordType' - The record type for this record. -- -- * 'rdRecordId' - The identifier of the ProvisionedProduct object record. -- -- * 'rdProvisionedProductType' - The type of the ProvisionedProduct object. -- -- * 'rdUpdatedTime' - The time when the record for the ProvisionedProduct object was last updated. -- -- * 'rdPathId' - The identifier of the path for this product's provisioning. -- -- * 'rdProvisionedProductId' - The identifier of the ProvisionedProduct object. -- -- * 'rdRecordErrors' - A list of errors that occurred while processing the request. -- -- * 'rdProductId' - The product identifier. recordDetail :: RecordDetail recordDetail = RecordDetail' { _rdStatus = Nothing , _rdRecordTags = Nothing , _rdProvisionedProductName = Nothing , _rdProvisioningArtifactId = Nothing , _rdCreatedTime = Nothing , _rdRecordType = Nothing , _rdRecordId = Nothing , _rdProvisionedProductType = Nothing , _rdUpdatedTime = Nothing , _rdPathId = Nothing , _rdProvisionedProductId = Nothing , _rdRecordErrors = Nothing , _rdProductId = Nothing } -- | The status of the ProvisionedProduct object. rdStatus :: Lens' RecordDetail (Maybe RecordStatus) rdStatus = lens _rdStatus (\ s a -> s{_rdStatus = a}); -- | List of tags associated with this record. rdRecordTags :: Lens' RecordDetail [RecordTag] rdRecordTags = lens _rdRecordTags (\ s a -> s{_rdRecordTags = a}) . _Default . _Coerce; -- | The user-friendly name of the ProvisionedProduct object. rdProvisionedProductName :: Lens' RecordDetail (Maybe Text) rdProvisionedProductName = lens _rdProvisionedProductName (\ s a -> s{_rdProvisionedProductName = a}); -- | The provisioning artifact identifier for this product. rdProvisioningArtifactId :: Lens' RecordDetail (Maybe Text) rdProvisioningArtifactId = lens _rdProvisioningArtifactId (\ s a -> s{_rdProvisioningArtifactId = a}); -- | The UTC timestamp of the creation time. rdCreatedTime :: Lens' RecordDetail (Maybe UTCTime) rdCreatedTime = lens _rdCreatedTime (\ s a -> s{_rdCreatedTime = a}) . mapping _Time; -- | The record type for this record. rdRecordType :: Lens' RecordDetail (Maybe Text) rdRecordType = lens _rdRecordType (\ s a -> s{_rdRecordType = a}); -- | The identifier of the ProvisionedProduct object record. rdRecordId :: Lens' RecordDetail (Maybe Text) rdRecordId = lens _rdRecordId (\ s a -> s{_rdRecordId = a}); -- | The type of the ProvisionedProduct object. rdProvisionedProductType :: Lens' RecordDetail (Maybe Text) rdProvisionedProductType = lens _rdProvisionedProductType (\ s a -> s{_rdProvisionedProductType = a}); -- | The time when the record for the ProvisionedProduct object was last updated. rdUpdatedTime :: Lens' RecordDetail (Maybe UTCTime) rdUpdatedTime = lens _rdUpdatedTime (\ s a -> s{_rdUpdatedTime = a}) . mapping _Time; -- | The identifier of the path for this product's provisioning. rdPathId :: Lens' RecordDetail (Maybe Text) rdPathId = lens _rdPathId (\ s a -> s{_rdPathId = a}); -- | The identifier of the ProvisionedProduct object. rdProvisionedProductId :: Lens' RecordDetail (Maybe Text) rdProvisionedProductId = lens _rdProvisionedProductId (\ s a -> s{_rdProvisionedProductId = a}); -- | A list of errors that occurred while processing the request. rdRecordErrors :: Lens' RecordDetail [RecordError] rdRecordErrors = lens _rdRecordErrors (\ s a -> s{_rdRecordErrors = a}) . _Default . _Coerce; -- | The product identifier. rdProductId :: Lens' RecordDetail (Maybe Text) rdProductId = lens _rdProductId (\ s a -> s{_rdProductId = a}); instance FromJSON RecordDetail where parseJSON = withObject "RecordDetail" (\ x -> RecordDetail' <$> (x .:? "Status") <*> (x .:? "RecordTags" .!= mempty) <*> (x .:? "ProvisionedProductName") <*> (x .:? "ProvisioningArtifactId") <*> (x .:? "CreatedTime") <*> (x .:? "RecordType") <*> (x .:? "RecordId") <*> (x .:? "ProvisionedProductType") <*> (x .:? "UpdatedTime") <*> (x .:? "PathId") <*> (x .:? "ProvisionedProductId") <*> (x .:? "RecordErrors" .!= mempty) <*> (x .:? "ProductId")) instance Hashable RecordDetail instance NFData RecordDetail -- | The error code and description resulting from an operation. -- -- -- -- /See:/ 'recordError' smart constructor. data RecordError = RecordError' { _reCode :: !(Maybe Text) , _reDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'RecordError' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'reCode' - The numeric value of the error. -- -- * 'reDescription' - The text description of the error. recordError :: RecordError recordError = RecordError' { _reCode = Nothing , _reDescription = Nothing } -- | The numeric value of the error. reCode :: Lens' RecordError (Maybe Text) reCode = lens _reCode (\ s a -> s{_reCode = a}); -- | The text description of the error. reDescription :: Lens' RecordError (Maybe Text) reDescription = lens _reDescription (\ s a -> s{_reDescription = a}); instance FromJSON RecordError where parseJSON = withObject "RecordError" (\ x -> RecordError' <$> (x .:? "Code") <*> (x .:? "Description")) instance Hashable RecordError instance NFData RecordError -- | An output for the specified Product object created as the result of a request. For example, a CloudFormation-backed product that creates an S3 bucket would have an output for the S3 bucket URL. -- -- -- -- /See:/ 'recordOutput' smart constructor. data RecordOutput = RecordOutput' { _roOutputValue :: !(Maybe Text) , _roOutputKey :: !(Maybe Text) , _roDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'RecordOutput' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'roOutputValue' - The output value. -- -- * 'roOutputKey' - The output key. -- -- * 'roDescription' - The text description of the output. recordOutput :: RecordOutput recordOutput = RecordOutput' { _roOutputValue = Nothing , _roOutputKey = Nothing , _roDescription = Nothing } -- | The output value. roOutputValue :: Lens' RecordOutput (Maybe Text) roOutputValue = lens _roOutputValue (\ s a -> s{_roOutputValue = a}); -- | The output key. roOutputKey :: Lens' RecordOutput (Maybe Text) roOutputKey = lens _roOutputKey (\ s a -> s{_roOutputKey = a}); -- | The text description of the output. roDescription :: Lens' RecordOutput (Maybe Text) roDescription = lens _roDescription (\ s a -> s{_roDescription = a}); instance FromJSON RecordOutput where parseJSON = withObject "RecordOutput" (\ x -> RecordOutput' <$> (x .:? "OutputValue") <*> (x .:? "OutputKey") <*> (x .:? "Description")) instance Hashable RecordOutput instance NFData RecordOutput -- | A tag associated with the record, stored as a key-value pair. -- -- -- -- /See:/ 'recordTag' smart constructor. data RecordTag = RecordTag' { _rtValue :: !(Maybe Text) , _rtKey :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'RecordTag' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rtValue' - The value for this tag. -- -- * 'rtKey' - The key for this tag. recordTag :: RecordTag recordTag = RecordTag' { _rtValue = Nothing , _rtKey = Nothing } -- | The value for this tag. rtValue :: Lens' RecordTag (Maybe Text) rtValue = lens _rtValue (\ s a -> s{_rtValue = a}); -- | The key for this tag. rtKey :: Lens' RecordTag (Maybe Text) rtKey = lens _rtKey (\ s a -> s{_rtKey = a}); instance FromJSON RecordTag where parseJSON = withObject "RecordTag" (\ x -> RecordTag' <$> (x .:? "Value") <*> (x .:? "Key")) instance Hashable RecordTag instance NFData RecordTag -- | Key/value pairs to associate with this provisioning. These tags are entirely discretionary and are propagated to the resources created in the provisioning. -- -- -- -- /See:/ 'tag' smart constructor. data Tag = Tag' { _tagKey :: !Text , _tagValue :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'Tag' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'tagKey' - The @ProvisioningArtifactParameter.TagKey@ parameter from 'DescribeProvisioningParameters' . -- -- * 'tagValue' - The esired value for this key. tag :: Text -- ^ 'tagKey' -> Text -- ^ 'tagValue' -> Tag tag pKey_ pValue_ = Tag' { _tagKey = pKey_ , _tagValue = pValue_ } -- | The @ProvisioningArtifactParameter.TagKey@ parameter from 'DescribeProvisioningParameters' . tagKey :: Lens' Tag Text tagKey = lens _tagKey (\ s a -> s{_tagKey = a}); -- | The esired value for this key. tagValue :: Lens' Tag Text tagValue = lens _tagValue (\ s a -> s{_tagValue = a}); instance FromJSON Tag where parseJSON = withObject "Tag" (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value")) instance Hashable Tag instance NFData Tag instance ToJSON Tag where toJSON Tag'{..} = object (catMaybes [Just ("Key" .= _tagKey), Just ("Value" .= _tagValue)]) -- | The parameter key/value pair used to update a ProvisionedProduct object. If @UsePreviousValue@ is set to true, @Value@ is ignored and the value for @Key@ is kept as previously set (current value). -- -- -- -- /See:/ 'updateProvisioningParameter' smart constructor. data UpdateProvisioningParameter = UpdateProvisioningParameter' { _uppValue :: !(Maybe Text) , _uppKey :: !(Maybe Text) , _uppUsePreviousValue :: !(Maybe Bool) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'UpdateProvisioningParameter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'uppValue' - The value to use for updating the product provisioning. Any constraints on this value can be found in the @ProvisioningArtifactParameter@ parameter for @Key@ . -- -- * 'uppKey' - The @ProvisioningArtifactParameter.ParameterKey@ parameter from 'DescribeProvisioningParameters' . -- -- * 'uppUsePreviousValue' - If true, uses the currently set value for @Key@ , ignoring @UpdateProvisioningParameter.Value@ . updateProvisioningParameter :: UpdateProvisioningParameter updateProvisioningParameter = UpdateProvisioningParameter' { _uppValue = Nothing , _uppKey = Nothing , _uppUsePreviousValue = Nothing } -- | The value to use for updating the product provisioning. Any constraints on this value can be found in the @ProvisioningArtifactParameter@ parameter for @Key@ . uppValue :: Lens' UpdateProvisioningParameter (Maybe Text) uppValue = lens _uppValue (\ s a -> s{_uppValue = a}); -- | The @ProvisioningArtifactParameter.ParameterKey@ parameter from 'DescribeProvisioningParameters' . uppKey :: Lens' UpdateProvisioningParameter (Maybe Text) uppKey = lens _uppKey (\ s a -> s{_uppKey = a}); -- | If true, uses the currently set value for @Key@ , ignoring @UpdateProvisioningParameter.Value@ . uppUsePreviousValue :: Lens' UpdateProvisioningParameter (Maybe Bool) uppUsePreviousValue = lens _uppUsePreviousValue (\ s a -> s{_uppUsePreviousValue = a}); instance Hashable UpdateProvisioningParameter instance NFData UpdateProvisioningParameter instance ToJSON UpdateProvisioningParameter where toJSON UpdateProvisioningParameter'{..} = object (catMaybes [("Value" .=) <$> _uppValue, ("Key" .=) <$> _uppKey, ("UsePreviousValue" .=) <$> _uppUsePreviousValue]) -- | Additional information provided by the administrator. -- -- -- -- /See:/ 'usageInstruction' smart constructor. data UsageInstruction = UsageInstruction' { _uiValue :: !(Maybe Text) , _uiType :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'UsageInstruction' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'uiValue' - The usage instruction value for this type. -- -- * 'uiType' - The usage instruction type for the value. usageInstruction :: UsageInstruction usageInstruction = UsageInstruction' { _uiValue = Nothing , _uiType = Nothing } -- | The usage instruction value for this type. uiValue :: Lens' UsageInstruction (Maybe Text) uiValue = lens _uiValue (\ s a -> s{_uiValue = a}); -- | The usage instruction type for the value. uiType :: Lens' UsageInstruction (Maybe Text) uiType = lens _uiType (\ s a -> s{_uiType = a}); instance FromJSON UsageInstruction where parseJSON = withObject "UsageInstruction" (\ x -> UsageInstruction' <$> (x .:? "Value") <*> (x .:? "Type")) instance Hashable UsageInstruction instance NFData UsageInstruction