{-# 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.CreateOpsMetadata -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- If you create a new application in Application Manager, Amazon Web -- Services Systems Manager calls this API operation to specify information -- about the new application, including the application type. module Amazonka.SSM.CreateOpsMetadata ( -- * Creating a Request CreateOpsMetadata (..), newCreateOpsMetadata, -- * Request Lenses createOpsMetadata_metadata, createOpsMetadata_tags, createOpsMetadata_resourceId, -- * Destructuring the Response CreateOpsMetadataResponse (..), newCreateOpsMetadataResponse, -- * Response Lenses createOpsMetadataResponse_opsMetadataArn, createOpsMetadataResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.SSM.Types -- | /See:/ 'newCreateOpsMetadata' smart constructor. data CreateOpsMetadata = CreateOpsMetadata' { -- | Metadata for a new Application Manager application. metadata :: Prelude.Maybe (Prelude.HashMap Prelude.Text MetadataValue), -- | Optional metadata that you assign to a resource. You can specify a -- maximum of five tags for an OpsMetadata object. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag an OpsMetadata object to -- identify an environment or target Amazon Web Services Region. In this -- case, you could specify the following key-value pairs: -- -- - @Key=Environment,Value=Production@ -- -- - @Key=Region,Value=us-east-2@ tags :: Prelude.Maybe [Tag], -- | A resource ID for a new Application Manager application. resourceId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateOpsMetadata' 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: -- -- 'metadata', 'createOpsMetadata_metadata' - Metadata for a new Application Manager application. -- -- 'tags', 'createOpsMetadata_tags' - Optional metadata that you assign to a resource. You can specify a -- maximum of five tags for an OpsMetadata object. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag an OpsMetadata object to -- identify an environment or target Amazon Web Services Region. In this -- case, you could specify the following key-value pairs: -- -- - @Key=Environment,Value=Production@ -- -- - @Key=Region,Value=us-east-2@ -- -- 'resourceId', 'createOpsMetadata_resourceId' - A resource ID for a new Application Manager application. newCreateOpsMetadata :: -- | 'resourceId' Prelude.Text -> CreateOpsMetadata newCreateOpsMetadata pResourceId_ = CreateOpsMetadata' { metadata = Prelude.Nothing, tags = Prelude.Nothing, resourceId = pResourceId_ } -- | Metadata for a new Application Manager application. createOpsMetadata_metadata :: Lens.Lens' CreateOpsMetadata (Prelude.Maybe (Prelude.HashMap Prelude.Text MetadataValue)) createOpsMetadata_metadata = Lens.lens (\CreateOpsMetadata' {metadata} -> metadata) (\s@CreateOpsMetadata' {} a -> s {metadata = a} :: CreateOpsMetadata) Prelude.. Lens.mapping Lens.coerced -- | Optional metadata that you assign to a resource. You can specify a -- maximum of five tags for an OpsMetadata object. Tags enable you to -- categorize a resource in different ways, such as by purpose, owner, or -- environment. For example, you might want to tag an OpsMetadata object to -- identify an environment or target Amazon Web Services Region. In this -- case, you could specify the following key-value pairs: -- -- - @Key=Environment,Value=Production@ -- -- - @Key=Region,Value=us-east-2@ createOpsMetadata_tags :: Lens.Lens' CreateOpsMetadata (Prelude.Maybe [Tag]) createOpsMetadata_tags = Lens.lens (\CreateOpsMetadata' {tags} -> tags) (\s@CreateOpsMetadata' {} a -> s {tags = a} :: CreateOpsMetadata) Prelude.. Lens.mapping Lens.coerced -- | A resource ID for a new Application Manager application. createOpsMetadata_resourceId :: Lens.Lens' CreateOpsMetadata Prelude.Text createOpsMetadata_resourceId = Lens.lens (\CreateOpsMetadata' {resourceId} -> resourceId) (\s@CreateOpsMetadata' {} a -> s {resourceId = a} :: CreateOpsMetadata) instance Core.AWSRequest CreateOpsMetadata where type AWSResponse CreateOpsMetadata = CreateOpsMetadataResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> CreateOpsMetadataResponse' Prelude.<$> (x Data..?> "OpsMetadataArn") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable CreateOpsMetadata where hashWithSalt _salt CreateOpsMetadata' {..} = _salt `Prelude.hashWithSalt` metadata `Prelude.hashWithSalt` tags `Prelude.hashWithSalt` resourceId instance Prelude.NFData CreateOpsMetadata where rnf CreateOpsMetadata' {..} = Prelude.rnf metadata `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf resourceId instance Data.ToHeaders CreateOpsMetadata where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonSSM.CreateOpsMetadata" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON CreateOpsMetadata where toJSON CreateOpsMetadata' {..} = Data.object ( Prelude.catMaybes [ ("Metadata" Data..=) Prelude.<$> metadata, ("Tags" Data..=) Prelude.<$> tags, Prelude.Just ("ResourceId" Data..= resourceId) ] ) instance Data.ToPath CreateOpsMetadata where toPath = Prelude.const "/" instance Data.ToQuery CreateOpsMetadata where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newCreateOpsMetadataResponse' smart constructor. data CreateOpsMetadataResponse = CreateOpsMetadataResponse' { -- | The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created -- by the call. opsMetadataArn :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateOpsMetadataResponse' 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: -- -- 'opsMetadataArn', 'createOpsMetadataResponse_opsMetadataArn' - The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created -- by the call. -- -- 'httpStatus', 'createOpsMetadataResponse_httpStatus' - The response's http status code. newCreateOpsMetadataResponse :: -- | 'httpStatus' Prelude.Int -> CreateOpsMetadataResponse newCreateOpsMetadataResponse pHttpStatus_ = CreateOpsMetadataResponse' { opsMetadataArn = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created -- by the call. createOpsMetadataResponse_opsMetadataArn :: Lens.Lens' CreateOpsMetadataResponse (Prelude.Maybe Prelude.Text) createOpsMetadataResponse_opsMetadataArn = Lens.lens (\CreateOpsMetadataResponse' {opsMetadataArn} -> opsMetadataArn) (\s@CreateOpsMetadataResponse' {} a -> s {opsMetadataArn = a} :: CreateOpsMetadataResponse) -- | The response's http status code. createOpsMetadataResponse_httpStatus :: Lens.Lens' CreateOpsMetadataResponse Prelude.Int createOpsMetadataResponse_httpStatus = Lens.lens (\CreateOpsMetadataResponse' {httpStatus} -> httpStatus) (\s@CreateOpsMetadataResponse' {} a -> s {httpStatus = a} :: CreateOpsMetadataResponse) instance Prelude.NFData CreateOpsMetadataResponse where rnf CreateOpsMetadataResponse' {..} = Prelude.rnf opsMetadataArn `Prelude.seq` Prelude.rnf httpStatus