{-# 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.FMS.PutResourceSet -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates the resource set. -- -- An Firewall Manager resource set defines the resources to import into an -- Firewall Manager policy from another Amazon Web Services service. module Amazonka.FMS.PutResourceSet ( -- * Creating a Request PutResourceSet (..), newPutResourceSet, -- * Request Lenses putResourceSet_tagList, putResourceSet_resourceSet, -- * Destructuring the Response PutResourceSetResponse (..), newPutResourceSetResponse, -- * Response Lenses putResourceSetResponse_httpStatus, putResourceSetResponse_resourceSet, putResourceSetResponse_resourceSetArn, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.FMS.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newPutResourceSet' smart constructor. data PutResourceSet = PutResourceSet' { -- | Retrieves the tags associated with the specified resource set. Tags are -- key:value pairs that you can use to categorize and manage your -- resources, for purposes like billing. For example, you might set the tag -- key to \"customer\" and the value to the customer name or ID. You can -- specify one or more tags to add to each Amazon Web Services resource, up -- to 50 tags for a resource. tagList :: Prelude.Maybe [Tag], -- | Details about the resource set to be created or updated.> resourceSet :: ResourceSet } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutResourceSet' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'tagList', 'putResourceSet_tagList' - Retrieves the tags associated with the specified resource set. Tags are -- key:value pairs that you can use to categorize and manage your -- resources, for purposes like billing. For example, you might set the tag -- key to \"customer\" and the value to the customer name or ID. You can -- specify one or more tags to add to each Amazon Web Services resource, up -- to 50 tags for a resource. -- -- 'resourceSet', 'putResourceSet_resourceSet' - Details about the resource set to be created or updated.> newPutResourceSet :: -- | 'resourceSet' ResourceSet -> PutResourceSet newPutResourceSet pResourceSet_ = PutResourceSet' { tagList = Prelude.Nothing, resourceSet = pResourceSet_ } -- | Retrieves the tags associated with the specified resource set. Tags are -- key:value pairs that you can use to categorize and manage your -- resources, for purposes like billing. For example, you might set the tag -- key to \"customer\" and the value to the customer name or ID. You can -- specify one or more tags to add to each Amazon Web Services resource, up -- to 50 tags for a resource. putResourceSet_tagList :: Lens.Lens' PutResourceSet (Prelude.Maybe [Tag]) putResourceSet_tagList = Lens.lens (\PutResourceSet' {tagList} -> tagList) (\s@PutResourceSet' {} a -> s {tagList = a} :: PutResourceSet) Prelude.. Lens.mapping Lens.coerced -- | Details about the resource set to be created or updated.> putResourceSet_resourceSet :: Lens.Lens' PutResourceSet ResourceSet putResourceSet_resourceSet = Lens.lens (\PutResourceSet' {resourceSet} -> resourceSet) (\s@PutResourceSet' {} a -> s {resourceSet = a} :: PutResourceSet) instance Core.AWSRequest PutResourceSet where type AWSResponse PutResourceSet = PutResourceSetResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> PutResourceSetResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "ResourceSet") Prelude.<*> (x Data..:> "ResourceSetArn") ) instance Prelude.Hashable PutResourceSet where hashWithSalt _salt PutResourceSet' {..} = _salt `Prelude.hashWithSalt` tagList `Prelude.hashWithSalt` resourceSet instance Prelude.NFData PutResourceSet where rnf PutResourceSet' {..} = Prelude.rnf tagList `Prelude.seq` Prelude.rnf resourceSet instance Data.ToHeaders PutResourceSet where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AWSFMS_20180101.PutResourceSet" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON PutResourceSet where toJSON PutResourceSet' {..} = Data.object ( Prelude.catMaybes [ ("TagList" Data..=) Prelude.<$> tagList, Prelude.Just ("ResourceSet" Data..= resourceSet) ] ) instance Data.ToPath PutResourceSet where toPath = Prelude.const "/" instance Data.ToQuery PutResourceSet where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newPutResourceSetResponse' smart constructor. data PutResourceSetResponse = PutResourceSetResponse' { -- | The response's http status code. httpStatus :: Prelude.Int, -- | Details about the resource set. resourceSet :: ResourceSet, -- | The Amazon Resource Name (ARN) of the resource set. resourceSetArn :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutResourceSetResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'httpStatus', 'putResourceSetResponse_httpStatus' - The response's http status code. -- -- 'resourceSet', 'putResourceSetResponse_resourceSet' - Details about the resource set. -- -- 'resourceSetArn', 'putResourceSetResponse_resourceSetArn' - The Amazon Resource Name (ARN) of the resource set. newPutResourceSetResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'resourceSet' ResourceSet -> -- | 'resourceSetArn' Prelude.Text -> PutResourceSetResponse newPutResourceSetResponse pHttpStatus_ pResourceSet_ pResourceSetArn_ = PutResourceSetResponse' { httpStatus = pHttpStatus_, resourceSet = pResourceSet_, resourceSetArn = pResourceSetArn_ } -- | The response's http status code. putResourceSetResponse_httpStatus :: Lens.Lens' PutResourceSetResponse Prelude.Int putResourceSetResponse_httpStatus = Lens.lens (\PutResourceSetResponse' {httpStatus} -> httpStatus) (\s@PutResourceSetResponse' {} a -> s {httpStatus = a} :: PutResourceSetResponse) -- | Details about the resource set. putResourceSetResponse_resourceSet :: Lens.Lens' PutResourceSetResponse ResourceSet putResourceSetResponse_resourceSet = Lens.lens (\PutResourceSetResponse' {resourceSet} -> resourceSet) (\s@PutResourceSetResponse' {} a -> s {resourceSet = a} :: PutResourceSetResponse) -- | The Amazon Resource Name (ARN) of the resource set. putResourceSetResponse_resourceSetArn :: Lens.Lens' PutResourceSetResponse Prelude.Text putResourceSetResponse_resourceSetArn = Lens.lens (\PutResourceSetResponse' {resourceSetArn} -> resourceSetArn) (\s@PutResourceSetResponse' {} a -> s {resourceSetArn = a} :: PutResourceSetResponse) instance Prelude.NFData PutResourceSetResponse where rnf PutResourceSetResponse' {..} = Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf resourceSet `Prelude.seq` Prelude.rnf resourceSetArn