{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.EC2.ModifyIdFormat -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. -- -- -- This request can only be used to modify longer ID settings for resource types that are within the opt-in period. Resources currently in their opt-in period include: @bundle@ | @conversion-task@ | @customer-gateway@ | @dhcp-options@ | @elastic-ip-allocation@ | @elastic-ip-association@ | @export-task@ | @flow-log@ | @image@ | @import-task@ | @internet-gateway@ | @network-acl@ | @network-acl-association@ | @network-interface@ | @network-interface-attachment@ | @prefix-list@ | @route-table@ | @route-table-association@ | @security-group@ | @subnet@ | @subnet-cidr-block-association@ | @vpc@ | @vpc-cidr-block-association@ | @vpc-endpoint@ | @vpc-peering-connection@ | @vpn-connection@ | @vpn-gateway@ . -- -- This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see in the /Amazon Elastic Compute Cloud User Guide/ . -- -- Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant @Describe@ command for the resource type. -- module Network.AWS.EC2.ModifyIdFormat ( -- * Creating a Request modifyIdFormat , ModifyIdFormat -- * Request Lenses , mifResource , mifUseLongIds -- * Destructuring the Response , modifyIdFormatResponse , ModifyIdFormatResponse ) where import Network.AWS.EC2.Types import Network.AWS.EC2.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Contains the parameters of ModifyIdFormat. -- -- -- -- /See:/ 'modifyIdFormat' smart constructor. data ModifyIdFormat = ModifyIdFormat' { _mifResource :: !Text , _mifUseLongIds :: !Bool } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ModifyIdFormat' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'mifResource' - The type of resource: @bundle@ | @conversion-task@ | @customer-gateway@ | @dhcp-options@ | @elastic-ip-allocation@ | @elastic-ip-association@ | @export-task@ | @flow-log@ | @image@ | @import-task@ | @internet-gateway@ | @network-acl@ | @network-acl-association@ | @network-interface@ | @network-interface-attachment@ | @prefix-list@ | @route-table@ | @route-table-association@ | @security-group@ | @subnet@ | @subnet-cidr-block-association@ | @vpc@ | @vpc-cidr-block-association@ | @vpc-endpoint@ | @vpc-peering-connection@ | @vpn-connection@ | @vpn-gateway@ . Alternatively, use the @all-current@ option to include all resource types that are currently within their opt-in period for longer IDs. -- -- * 'mifUseLongIds' - Indicate whether the resource should use longer IDs (17-character IDs). modifyIdFormat :: Text -- ^ 'mifResource' -> Bool -- ^ 'mifUseLongIds' -> ModifyIdFormat modifyIdFormat pResource_ pUseLongIds_ = ModifyIdFormat' {_mifResource = pResource_, _mifUseLongIds = pUseLongIds_} -- | The type of resource: @bundle@ | @conversion-task@ | @customer-gateway@ | @dhcp-options@ | @elastic-ip-allocation@ | @elastic-ip-association@ | @export-task@ | @flow-log@ | @image@ | @import-task@ | @internet-gateway@ | @network-acl@ | @network-acl-association@ | @network-interface@ | @network-interface-attachment@ | @prefix-list@ | @route-table@ | @route-table-association@ | @security-group@ | @subnet@ | @subnet-cidr-block-association@ | @vpc@ | @vpc-cidr-block-association@ | @vpc-endpoint@ | @vpc-peering-connection@ | @vpn-connection@ | @vpn-gateway@ . Alternatively, use the @all-current@ option to include all resource types that are currently within their opt-in period for longer IDs. mifResource :: Lens' ModifyIdFormat Text mifResource = lens _mifResource (\ s a -> s{_mifResource = a}) -- | Indicate whether the resource should use longer IDs (17-character IDs). mifUseLongIds :: Lens' ModifyIdFormat Bool mifUseLongIds = lens _mifUseLongIds (\ s a -> s{_mifUseLongIds = a}) instance AWSRequest ModifyIdFormat where type Rs ModifyIdFormat = ModifyIdFormatResponse request = postQuery ec2 response = receiveNull ModifyIdFormatResponse' instance Hashable ModifyIdFormat where instance NFData ModifyIdFormat where instance ToHeaders ModifyIdFormat where toHeaders = const mempty instance ToPath ModifyIdFormat where toPath = const "/" instance ToQuery ModifyIdFormat where toQuery ModifyIdFormat'{..} = mconcat ["Action" =: ("ModifyIdFormat" :: ByteString), "Version" =: ("2016-11-15" :: ByteString), "Resource" =: _mifResource, "UseLongIds" =: _mifUseLongIds] -- | /See:/ 'modifyIdFormatResponse' smart constructor. data ModifyIdFormatResponse = ModifyIdFormatResponse' deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ModifyIdFormatResponse' with the minimum fields required to make a request. -- modifyIdFormatResponse :: ModifyIdFormatResponse modifyIdFormatResponse = ModifyIdFormatResponse' instance NFData ModifyIdFormatResponse where