amazonka-ec2-2.0: gen/Amazonka/EC2/DescribeReservedInstancesModifications.hs
{-# 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.EC2.DescribeReservedInstancesModifications
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the modifications made to your Reserved Instances. If no
-- parameter is specified, information about all your Reserved Instances
-- modification requests is returned. If a modification ID is specified,
-- only information about the specific modification is returned.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances>
-- in the /Amazon EC2 User Guide/.
--
-- This operation returns paginated results.
module Amazonka.EC2.DescribeReservedInstancesModifications
( -- * Creating a Request
DescribeReservedInstancesModifications (..),
newDescribeReservedInstancesModifications,
-- * Request Lenses
describeReservedInstancesModifications_filters,
describeReservedInstancesModifications_nextToken,
describeReservedInstancesModifications_reservedInstancesModificationIds,
-- * Destructuring the Response
DescribeReservedInstancesModificationsResponse (..),
newDescribeReservedInstancesModificationsResponse,
-- * Response Lenses
describeReservedInstancesModificationsResponse_nextToken,
describeReservedInstancesModificationsResponse_reservedInstancesModifications,
describeReservedInstancesModificationsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | Contains the parameters for DescribeReservedInstancesModifications.
--
-- /See:/ 'newDescribeReservedInstancesModifications' smart constructor.
data DescribeReservedInstancesModifications = DescribeReservedInstancesModifications'
{ -- | One or more filters.
--
-- - @client-token@ - The idempotency token for the modification request.
--
-- - @create-date@ - The time when the modification request was created.
--
-- - @effective-date@ - The time when the modification becomes effective.
--
-- - @modification-result.reserved-instances-id@ - The ID for the
-- Reserved Instances created as part of the modification request. This
-- ID is only available when the status of the modification is
-- @fulfilled@.
--
-- - @modification-result.target-configuration.availability-zone@ - The
-- Availability Zone for the new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-count @ - The
-- number of new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-type@ - The
-- instance type of the new Reserved Instances.
--
-- - @modification-result.target-configuration.platform@ - The network
-- platform of the new Reserved Instances (@EC2-Classic@ | @EC2-VPC@).
--
-- - @reserved-instances-id@ - The ID of the Reserved Instances modified.
--
-- - @reserved-instances-modification-id@ - The ID of the modification
-- request.
--
-- - @status@ - The status of the Reserved Instances modification request
-- (@processing@ | @fulfilled@ | @failed@).
--
-- - @status-message@ - The reason for the status.
--
-- - @update-date@ - The time when the modification request was last
-- updated.
filters :: Prelude.Maybe [Filter],
-- | The token to retrieve the next page of results.
nextToken :: Prelude.Maybe Prelude.Text,
-- | IDs for the submitted modification request.
reservedInstancesModificationIds :: Prelude.Maybe [Prelude.Text]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeReservedInstancesModifications' 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:
--
-- 'filters', 'describeReservedInstancesModifications_filters' - One or more filters.
--
-- - @client-token@ - The idempotency token for the modification request.
--
-- - @create-date@ - The time when the modification request was created.
--
-- - @effective-date@ - The time when the modification becomes effective.
--
-- - @modification-result.reserved-instances-id@ - The ID for the
-- Reserved Instances created as part of the modification request. This
-- ID is only available when the status of the modification is
-- @fulfilled@.
--
-- - @modification-result.target-configuration.availability-zone@ - The
-- Availability Zone for the new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-count @ - The
-- number of new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-type@ - The
-- instance type of the new Reserved Instances.
--
-- - @modification-result.target-configuration.platform@ - The network
-- platform of the new Reserved Instances (@EC2-Classic@ | @EC2-VPC@).
--
-- - @reserved-instances-id@ - The ID of the Reserved Instances modified.
--
-- - @reserved-instances-modification-id@ - The ID of the modification
-- request.
--
-- - @status@ - The status of the Reserved Instances modification request
-- (@processing@ | @fulfilled@ | @failed@).
--
-- - @status-message@ - The reason for the status.
--
-- - @update-date@ - The time when the modification request was last
-- updated.
--
-- 'nextToken', 'describeReservedInstancesModifications_nextToken' - The token to retrieve the next page of results.
--
-- 'reservedInstancesModificationIds', 'describeReservedInstancesModifications_reservedInstancesModificationIds' - IDs for the submitted modification request.
newDescribeReservedInstancesModifications ::
DescribeReservedInstancesModifications
newDescribeReservedInstancesModifications =
DescribeReservedInstancesModifications'
{ filters =
Prelude.Nothing,
nextToken = Prelude.Nothing,
reservedInstancesModificationIds =
Prelude.Nothing
}
-- | One or more filters.
--
-- - @client-token@ - The idempotency token for the modification request.
--
-- - @create-date@ - The time when the modification request was created.
--
-- - @effective-date@ - The time when the modification becomes effective.
--
-- - @modification-result.reserved-instances-id@ - The ID for the
-- Reserved Instances created as part of the modification request. This
-- ID is only available when the status of the modification is
-- @fulfilled@.
--
-- - @modification-result.target-configuration.availability-zone@ - The
-- Availability Zone for the new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-count @ - The
-- number of new Reserved Instances.
--
-- - @modification-result.target-configuration.instance-type@ - The
-- instance type of the new Reserved Instances.
--
-- - @modification-result.target-configuration.platform@ - The network
-- platform of the new Reserved Instances (@EC2-Classic@ | @EC2-VPC@).
--
-- - @reserved-instances-id@ - The ID of the Reserved Instances modified.
--
-- - @reserved-instances-modification-id@ - The ID of the modification
-- request.
--
-- - @status@ - The status of the Reserved Instances modification request
-- (@processing@ | @fulfilled@ | @failed@).
--
-- - @status-message@ - The reason for the status.
--
-- - @update-date@ - The time when the modification request was last
-- updated.
describeReservedInstancesModifications_filters :: Lens.Lens' DescribeReservedInstancesModifications (Prelude.Maybe [Filter])
describeReservedInstancesModifications_filters = Lens.lens (\DescribeReservedInstancesModifications' {filters} -> filters) (\s@DescribeReservedInstancesModifications' {} a -> s {filters = a} :: DescribeReservedInstancesModifications) Prelude.. Lens.mapping Lens.coerced
-- | The token to retrieve the next page of results.
describeReservedInstancesModifications_nextToken :: Lens.Lens' DescribeReservedInstancesModifications (Prelude.Maybe Prelude.Text)
describeReservedInstancesModifications_nextToken = Lens.lens (\DescribeReservedInstancesModifications' {nextToken} -> nextToken) (\s@DescribeReservedInstancesModifications' {} a -> s {nextToken = a} :: DescribeReservedInstancesModifications)
-- | IDs for the submitted modification request.
describeReservedInstancesModifications_reservedInstancesModificationIds :: Lens.Lens' DescribeReservedInstancesModifications (Prelude.Maybe [Prelude.Text])
describeReservedInstancesModifications_reservedInstancesModificationIds = Lens.lens (\DescribeReservedInstancesModifications' {reservedInstancesModificationIds} -> reservedInstancesModificationIds) (\s@DescribeReservedInstancesModifications' {} a -> s {reservedInstancesModificationIds = a} :: DescribeReservedInstancesModifications) Prelude.. Lens.mapping Lens.coerced
instance
Core.AWSPager
DescribeReservedInstancesModifications
where
page rq rs
| Core.stop
( rs
Lens.^? describeReservedInstancesModificationsResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? describeReservedInstancesModificationsResponse_reservedInstancesModifications
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& describeReservedInstancesModifications_nextToken
Lens..~ rs
Lens.^? describeReservedInstancesModificationsResponse_nextToken
Prelude.. Lens._Just
instance
Core.AWSRequest
DescribeReservedInstancesModifications
where
type
AWSResponse
DescribeReservedInstancesModifications =
DescribeReservedInstancesModificationsResponse
request overrides =
Request.postQuery (overrides defaultService)
response =
Response.receiveXML
( \s h x ->
DescribeReservedInstancesModificationsResponse'
Prelude.<$> (x Data..@? "nextToken")
Prelude.<*> ( x
Data..@? "reservedInstancesModificationsSet"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "item")
)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
DescribeReservedInstancesModifications
where
hashWithSalt
_salt
DescribeReservedInstancesModifications' {..} =
_salt
`Prelude.hashWithSalt` filters
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` reservedInstancesModificationIds
instance
Prelude.NFData
DescribeReservedInstancesModifications
where
rnf DescribeReservedInstancesModifications' {..} =
Prelude.rnf filters
`Prelude.seq` Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf reservedInstancesModificationIds
instance
Data.ToHeaders
DescribeReservedInstancesModifications
where
toHeaders = Prelude.const Prelude.mempty
instance
Data.ToPath
DescribeReservedInstancesModifications
where
toPath = Prelude.const "/"
instance
Data.ToQuery
DescribeReservedInstancesModifications
where
toQuery DescribeReservedInstancesModifications' {..} =
Prelude.mconcat
[ "Action"
Data.=: ( "DescribeReservedInstancesModifications" ::
Prelude.ByteString
),
"Version"
Data.=: ("2016-11-15" :: Prelude.ByteString),
Data.toQuery
(Data.toQueryList "Filter" Prelude.<$> filters),
"NextToken" Data.=: nextToken,
Data.toQuery
( Data.toQueryList "ReservedInstancesModificationId"
Prelude.<$> reservedInstancesModificationIds
)
]
-- | Contains the output of DescribeReservedInstancesModifications.
--
-- /See:/ 'newDescribeReservedInstancesModificationsResponse' smart constructor.
data DescribeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse'
{ -- | The token to use to retrieve the next page of results. This value is
-- @null@ when there are no more results to return.
nextToken :: Prelude.Maybe Prelude.Text,
-- | The Reserved Instance modification information.
reservedInstancesModifications :: Prelude.Maybe [ReservedInstancesModification],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeReservedInstancesModificationsResponse' 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:
--
-- 'nextToken', 'describeReservedInstancesModificationsResponse_nextToken' - The token to use to retrieve the next page of results. This value is
-- @null@ when there are no more results to return.
--
-- 'reservedInstancesModifications', 'describeReservedInstancesModificationsResponse_reservedInstancesModifications' - The Reserved Instance modification information.
--
-- 'httpStatus', 'describeReservedInstancesModificationsResponse_httpStatus' - The response's http status code.
newDescribeReservedInstancesModificationsResponse ::
-- | 'httpStatus'
Prelude.Int ->
DescribeReservedInstancesModificationsResponse
newDescribeReservedInstancesModificationsResponse
pHttpStatus_ =
DescribeReservedInstancesModificationsResponse'
{ nextToken =
Prelude.Nothing,
reservedInstancesModifications =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The token to use to retrieve the next page of results. This value is
-- @null@ when there are no more results to return.
describeReservedInstancesModificationsResponse_nextToken :: Lens.Lens' DescribeReservedInstancesModificationsResponse (Prelude.Maybe Prelude.Text)
describeReservedInstancesModificationsResponse_nextToken = Lens.lens (\DescribeReservedInstancesModificationsResponse' {nextToken} -> nextToken) (\s@DescribeReservedInstancesModificationsResponse' {} a -> s {nextToken = a} :: DescribeReservedInstancesModificationsResponse)
-- | The Reserved Instance modification information.
describeReservedInstancesModificationsResponse_reservedInstancesModifications :: Lens.Lens' DescribeReservedInstancesModificationsResponse (Prelude.Maybe [ReservedInstancesModification])
describeReservedInstancesModificationsResponse_reservedInstancesModifications = Lens.lens (\DescribeReservedInstancesModificationsResponse' {reservedInstancesModifications} -> reservedInstancesModifications) (\s@DescribeReservedInstancesModificationsResponse' {} a -> s {reservedInstancesModifications = a} :: DescribeReservedInstancesModificationsResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
describeReservedInstancesModificationsResponse_httpStatus :: Lens.Lens' DescribeReservedInstancesModificationsResponse Prelude.Int
describeReservedInstancesModificationsResponse_httpStatus = Lens.lens (\DescribeReservedInstancesModificationsResponse' {httpStatus} -> httpStatus) (\s@DescribeReservedInstancesModificationsResponse' {} a -> s {httpStatus = a} :: DescribeReservedInstancesModificationsResponse)
instance
Prelude.NFData
DescribeReservedInstancesModificationsResponse
where
rnf
DescribeReservedInstancesModificationsResponse' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf reservedInstancesModifications
`Prelude.seq` Prelude.rnf httpStatus