{-# 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.Glue.GetSchemaVersion -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Get the specified schema by its unique ID assigned when a version of the -- schema is created or registered. Schema versions in Deleted status will -- not be included in the results. module Amazonka.Glue.GetSchemaVersion ( -- * Creating a Request GetSchemaVersion (..), newGetSchemaVersion, -- * Request Lenses getSchemaVersion_schemaId, getSchemaVersion_schemaVersionId, getSchemaVersion_schemaVersionNumber, -- * Destructuring the Response GetSchemaVersionResponse (..), newGetSchemaVersionResponse, -- * Response Lenses getSchemaVersionResponse_createdTime, getSchemaVersionResponse_dataFormat, getSchemaVersionResponse_schemaArn, getSchemaVersionResponse_schemaDefinition, getSchemaVersionResponse_schemaVersionId, getSchemaVersionResponse_status, getSchemaVersionResponse_versionNumber, getSchemaVersionResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Glue.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newGetSchemaVersion' smart constructor. data GetSchemaVersion = GetSchemaVersion' { -- | This is a wrapper structure to contain schema identity fields. The -- structure contains: -- -- - SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. -- Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be -- provided. -- -- - SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or -- @SchemaName@ and @RegistryName@ has to be provided. schemaId :: Prelude.Maybe SchemaId, -- | The @SchemaVersionId@ of the schema version. This field is required for -- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be -- provided. schemaVersionId :: Prelude.Maybe Prelude.Text, -- | The version number of the schema. schemaVersionNumber :: Prelude.Maybe SchemaVersionNumber } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetSchemaVersion' 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: -- -- 'schemaId', 'getSchemaVersion_schemaId' - This is a wrapper structure to contain schema identity fields. The -- structure contains: -- -- - SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. -- Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be -- provided. -- -- - SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or -- @SchemaName@ and @RegistryName@ has to be provided. -- -- 'schemaVersionId', 'getSchemaVersion_schemaVersionId' - The @SchemaVersionId@ of the schema version. This field is required for -- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be -- provided. -- -- 'schemaVersionNumber', 'getSchemaVersion_schemaVersionNumber' - The version number of the schema. newGetSchemaVersion :: GetSchemaVersion newGetSchemaVersion = GetSchemaVersion' { schemaId = Prelude.Nothing, schemaVersionId = Prelude.Nothing, schemaVersionNumber = Prelude.Nothing } -- | This is a wrapper structure to contain schema identity fields. The -- structure contains: -- -- - SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. -- Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be -- provided. -- -- - SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or -- @SchemaName@ and @RegistryName@ has to be provided. getSchemaVersion_schemaId :: Lens.Lens' GetSchemaVersion (Prelude.Maybe SchemaId) getSchemaVersion_schemaId = Lens.lens (\GetSchemaVersion' {schemaId} -> schemaId) (\s@GetSchemaVersion' {} a -> s {schemaId = a} :: GetSchemaVersion) -- | The @SchemaVersionId@ of the schema version. This field is required for -- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be -- provided. getSchemaVersion_schemaVersionId :: Lens.Lens' GetSchemaVersion (Prelude.Maybe Prelude.Text) getSchemaVersion_schemaVersionId = Lens.lens (\GetSchemaVersion' {schemaVersionId} -> schemaVersionId) (\s@GetSchemaVersion' {} a -> s {schemaVersionId = a} :: GetSchemaVersion) -- | The version number of the schema. getSchemaVersion_schemaVersionNumber :: Lens.Lens' GetSchemaVersion (Prelude.Maybe SchemaVersionNumber) getSchemaVersion_schemaVersionNumber = Lens.lens (\GetSchemaVersion' {schemaVersionNumber} -> schemaVersionNumber) (\s@GetSchemaVersion' {} a -> s {schemaVersionNumber = a} :: GetSchemaVersion) instance Core.AWSRequest GetSchemaVersion where type AWSResponse GetSchemaVersion = GetSchemaVersionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> GetSchemaVersionResponse' Prelude.<$> (x Data..?> "CreatedTime") Prelude.<*> (x Data..?> "DataFormat") Prelude.<*> (x Data..?> "SchemaArn") Prelude.<*> (x Data..?> "SchemaDefinition") Prelude.<*> (x Data..?> "SchemaVersionId") Prelude.<*> (x Data..?> "Status") Prelude.<*> (x Data..?> "VersionNumber") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable GetSchemaVersion where hashWithSalt _salt GetSchemaVersion' {..} = _salt `Prelude.hashWithSalt` schemaId `Prelude.hashWithSalt` schemaVersionId `Prelude.hashWithSalt` schemaVersionNumber instance Prelude.NFData GetSchemaVersion where rnf GetSchemaVersion' {..} = Prelude.rnf schemaId `Prelude.seq` Prelude.rnf schemaVersionId `Prelude.seq` Prelude.rnf schemaVersionNumber instance Data.ToHeaders GetSchemaVersion where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ("AWSGlue.GetSchemaVersion" :: Prelude.ByteString), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON GetSchemaVersion where toJSON GetSchemaVersion' {..} = Data.object ( Prelude.catMaybes [ ("SchemaId" Data..=) Prelude.<$> schemaId, ("SchemaVersionId" Data..=) Prelude.<$> schemaVersionId, ("SchemaVersionNumber" Data..=) Prelude.<$> schemaVersionNumber ] ) instance Data.ToPath GetSchemaVersion where toPath = Prelude.const "/" instance Data.ToQuery GetSchemaVersion where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newGetSchemaVersionResponse' smart constructor. data GetSchemaVersionResponse = GetSchemaVersionResponse' { -- | The date and time the schema version was created. createdTime :: Prelude.Maybe Prelude.Text, -- | The data format of the schema definition. Currently @AVRO@, @JSON@ and -- @PROTOBUF@ are supported. dataFormat :: Prelude.Maybe DataFormat, -- | The Amazon Resource Name (ARN) of the schema. schemaArn :: Prelude.Maybe Prelude.Text, -- | The schema definition for the schema ID. schemaDefinition :: Prelude.Maybe Prelude.Text, -- | The @SchemaVersionId@ of the schema version. schemaVersionId :: Prelude.Maybe Prelude.Text, -- | The status of the schema version. status :: Prelude.Maybe SchemaVersionStatus, -- | The version number of the schema. versionNumber :: Prelude.Maybe Prelude.Natural, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetSchemaVersionResponse' 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: -- -- 'createdTime', 'getSchemaVersionResponse_createdTime' - The date and time the schema version was created. -- -- 'dataFormat', 'getSchemaVersionResponse_dataFormat' - The data format of the schema definition. Currently @AVRO@, @JSON@ and -- @PROTOBUF@ are supported. -- -- 'schemaArn', 'getSchemaVersionResponse_schemaArn' - The Amazon Resource Name (ARN) of the schema. -- -- 'schemaDefinition', 'getSchemaVersionResponse_schemaDefinition' - The schema definition for the schema ID. -- -- 'schemaVersionId', 'getSchemaVersionResponse_schemaVersionId' - The @SchemaVersionId@ of the schema version. -- -- 'status', 'getSchemaVersionResponse_status' - The status of the schema version. -- -- 'versionNumber', 'getSchemaVersionResponse_versionNumber' - The version number of the schema. -- -- 'httpStatus', 'getSchemaVersionResponse_httpStatus' - The response's http status code. newGetSchemaVersionResponse :: -- | 'httpStatus' Prelude.Int -> GetSchemaVersionResponse newGetSchemaVersionResponse pHttpStatus_ = GetSchemaVersionResponse' { createdTime = Prelude.Nothing, dataFormat = Prelude.Nothing, schemaArn = Prelude.Nothing, schemaDefinition = Prelude.Nothing, schemaVersionId = Prelude.Nothing, status = Prelude.Nothing, versionNumber = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The date and time the schema version was created. getSchemaVersionResponse_createdTime :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text) getSchemaVersionResponse_createdTime = Lens.lens (\GetSchemaVersionResponse' {createdTime} -> createdTime) (\s@GetSchemaVersionResponse' {} a -> s {createdTime = a} :: GetSchemaVersionResponse) -- | The data format of the schema definition. Currently @AVRO@, @JSON@ and -- @PROTOBUF@ are supported. getSchemaVersionResponse_dataFormat :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe DataFormat) getSchemaVersionResponse_dataFormat = Lens.lens (\GetSchemaVersionResponse' {dataFormat} -> dataFormat) (\s@GetSchemaVersionResponse' {} a -> s {dataFormat = a} :: GetSchemaVersionResponse) -- | The Amazon Resource Name (ARN) of the schema. getSchemaVersionResponse_schemaArn :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text) getSchemaVersionResponse_schemaArn = Lens.lens (\GetSchemaVersionResponse' {schemaArn} -> schemaArn) (\s@GetSchemaVersionResponse' {} a -> s {schemaArn = a} :: GetSchemaVersionResponse) -- | The schema definition for the schema ID. getSchemaVersionResponse_schemaDefinition :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text) getSchemaVersionResponse_schemaDefinition = Lens.lens (\GetSchemaVersionResponse' {schemaDefinition} -> schemaDefinition) (\s@GetSchemaVersionResponse' {} a -> s {schemaDefinition = a} :: GetSchemaVersionResponse) -- | The @SchemaVersionId@ of the schema version. getSchemaVersionResponse_schemaVersionId :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text) getSchemaVersionResponse_schemaVersionId = Lens.lens (\GetSchemaVersionResponse' {schemaVersionId} -> schemaVersionId) (\s@GetSchemaVersionResponse' {} a -> s {schemaVersionId = a} :: GetSchemaVersionResponse) -- | The status of the schema version. getSchemaVersionResponse_status :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe SchemaVersionStatus) getSchemaVersionResponse_status = Lens.lens (\GetSchemaVersionResponse' {status} -> status) (\s@GetSchemaVersionResponse' {} a -> s {status = a} :: GetSchemaVersionResponse) -- | The version number of the schema. getSchemaVersionResponse_versionNumber :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Natural) getSchemaVersionResponse_versionNumber = Lens.lens (\GetSchemaVersionResponse' {versionNumber} -> versionNumber) (\s@GetSchemaVersionResponse' {} a -> s {versionNumber = a} :: GetSchemaVersionResponse) -- | The response's http status code. getSchemaVersionResponse_httpStatus :: Lens.Lens' GetSchemaVersionResponse Prelude.Int getSchemaVersionResponse_httpStatus = Lens.lens (\GetSchemaVersionResponse' {httpStatus} -> httpStatus) (\s@GetSchemaVersionResponse' {} a -> s {httpStatus = a} :: GetSchemaVersionResponse) instance Prelude.NFData GetSchemaVersionResponse where rnf GetSchemaVersionResponse' {..} = Prelude.rnf createdTime `Prelude.seq` Prelude.rnf dataFormat `Prelude.seq` Prelude.rnf schemaArn `Prelude.seq` Prelude.rnf schemaDefinition `Prelude.seq` Prelude.rnf schemaVersionId `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf versionNumber `Prelude.seq` Prelude.rnf httpStatus