{-# 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.SageMaker.CreateContext -- 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 a /context/. A context is a lineage tracking entity that -- represents a logical grouping of other tracking or experiment entities. -- Some examples are an endpoint and a model package. For more information, -- see -- . module Amazonka.SageMaker.CreateContext ( -- * Creating a Request CreateContext (..), newCreateContext, -- * Request Lenses createContext_description, createContext_properties, createContext_tags, createContext_contextName, createContext_source, createContext_contextType, -- * Destructuring the Response CreateContextResponse (..), newCreateContextResponse, -- * Response Lenses createContextResponse_contextArn, createContextResponse_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.SageMaker.Types -- | /See:/ 'newCreateContext' smart constructor. data CreateContext = CreateContext' { -- | The description of the context. description :: Prelude.Maybe Prelude.Text, -- | A list of properties to add to the context. properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | A list of tags to apply to the context. tags :: Prelude.Maybe [Tag], -- | The name of the context. Must be unique to your account in an Amazon Web -- Services Region. contextName :: Prelude.Text, -- | The source type, ID, and URI. source :: ContextSource, -- | The context type. contextType :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateContext' 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: -- -- 'description', 'createContext_description' - The description of the context. -- -- 'properties', 'createContext_properties' - A list of properties to add to the context. -- -- 'tags', 'createContext_tags' - A list of tags to apply to the context. -- -- 'contextName', 'createContext_contextName' - The name of the context. Must be unique to your account in an Amazon Web -- Services Region. -- -- 'source', 'createContext_source' - The source type, ID, and URI. -- -- 'contextType', 'createContext_contextType' - The context type. newCreateContext :: -- | 'contextName' Prelude.Text -> -- | 'source' ContextSource -> -- | 'contextType' Prelude.Text -> CreateContext newCreateContext pContextName_ pSource_ pContextType_ = CreateContext' { description = Prelude.Nothing, properties = Prelude.Nothing, tags = Prelude.Nothing, contextName = pContextName_, source = pSource_, contextType = pContextType_ } -- | The description of the context. createContext_description :: Lens.Lens' CreateContext (Prelude.Maybe Prelude.Text) createContext_description = Lens.lens (\CreateContext' {description} -> description) (\s@CreateContext' {} a -> s {description = a} :: CreateContext) -- | A list of properties to add to the context. createContext_properties :: Lens.Lens' CreateContext (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) createContext_properties = Lens.lens (\CreateContext' {properties} -> properties) (\s@CreateContext' {} a -> s {properties = a} :: CreateContext) Prelude.. Lens.mapping Lens.coerced -- | A list of tags to apply to the context. createContext_tags :: Lens.Lens' CreateContext (Prelude.Maybe [Tag]) createContext_tags = Lens.lens (\CreateContext' {tags} -> tags) (\s@CreateContext' {} a -> s {tags = a} :: CreateContext) Prelude.. Lens.mapping Lens.coerced -- | The name of the context. Must be unique to your account in an Amazon Web -- Services Region. createContext_contextName :: Lens.Lens' CreateContext Prelude.Text createContext_contextName = Lens.lens (\CreateContext' {contextName} -> contextName) (\s@CreateContext' {} a -> s {contextName = a} :: CreateContext) -- | The source type, ID, and URI. createContext_source :: Lens.Lens' CreateContext ContextSource createContext_source = Lens.lens (\CreateContext' {source} -> source) (\s@CreateContext' {} a -> s {source = a} :: CreateContext) -- | The context type. createContext_contextType :: Lens.Lens' CreateContext Prelude.Text createContext_contextType = Lens.lens (\CreateContext' {contextType} -> contextType) (\s@CreateContext' {} a -> s {contextType = a} :: CreateContext) instance Core.AWSRequest CreateContext where type AWSResponse CreateContext = CreateContextResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> CreateContextResponse' Prelude.<$> (x Data..?> "ContextArn") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable CreateContext where hashWithSalt _salt CreateContext' {..} = _salt `Prelude.hashWithSalt` description `Prelude.hashWithSalt` properties `Prelude.hashWithSalt` tags `Prelude.hashWithSalt` contextName `Prelude.hashWithSalt` source `Prelude.hashWithSalt` contextType instance Prelude.NFData CreateContext where rnf CreateContext' {..} = Prelude.rnf description `Prelude.seq` Prelude.rnf properties `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf contextName `Prelude.seq` Prelude.rnf source `Prelude.seq` Prelude.rnf contextType instance Data.ToHeaders CreateContext where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ("SageMaker.CreateContext" :: Prelude.ByteString), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON CreateContext where toJSON CreateContext' {..} = Data.object ( Prelude.catMaybes [ ("Description" Data..=) Prelude.<$> description, ("Properties" Data..=) Prelude.<$> properties, ("Tags" Data..=) Prelude.<$> tags, Prelude.Just ("ContextName" Data..= contextName), Prelude.Just ("Source" Data..= source), Prelude.Just ("ContextType" Data..= contextType) ] ) instance Data.ToPath CreateContext where toPath = Prelude.const "/" instance Data.ToQuery CreateContext where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newCreateContextResponse' smart constructor. data CreateContextResponse = CreateContextResponse' { -- | The Amazon Resource Name (ARN) of the context. contextArn :: 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 'CreateContextResponse' 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: -- -- 'contextArn', 'createContextResponse_contextArn' - The Amazon Resource Name (ARN) of the context. -- -- 'httpStatus', 'createContextResponse_httpStatus' - The response's http status code. newCreateContextResponse :: -- | 'httpStatus' Prelude.Int -> CreateContextResponse newCreateContextResponse pHttpStatus_ = CreateContextResponse' { contextArn = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The Amazon Resource Name (ARN) of the context. createContextResponse_contextArn :: Lens.Lens' CreateContextResponse (Prelude.Maybe Prelude.Text) createContextResponse_contextArn = Lens.lens (\CreateContextResponse' {contextArn} -> contextArn) (\s@CreateContextResponse' {} a -> s {contextArn = a} :: CreateContextResponse) -- | The response's http status code. createContextResponse_httpStatus :: Lens.Lens' CreateContextResponse Prelude.Int createContextResponse_httpStatus = Lens.lens (\CreateContextResponse' {httpStatus} -> httpStatus) (\s@CreateContextResponse' {} a -> s {httpStatus = a} :: CreateContextResponse) instance Prelude.NFData CreateContextResponse where rnf CreateContextResponse' {..} = Prelude.rnf contextArn `Prelude.seq` Prelude.rnf httpStatus