{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.APIGateway.Types.GatewayResponse -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.APIGateway.Types.GatewayResponse where import Amazonka.APIGateway.Types.GatewayResponseType 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 -- | A gateway response of a given response type and status code, with -- optional response parameters and mapping templates. -- -- /See:/ 'newGatewayResponse' smart constructor. data GatewayResponse = GatewayResponse' { -- | A Boolean flag to indicate whether this GatewayResponse is the default -- gateway response (@true@) or not (@false@). A default gateway response -- is one generated by API Gateway without any customization by an API -- developer. defaultResponse :: Prelude.Maybe Prelude.Bool, -- | Response parameters (paths, query strings and headers) of the -- GatewayResponse as a string-to-string map of key-value pairs. responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | Response templates of the GatewayResponse as a string-to-string map of -- key-value pairs. responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The response type of the associated GatewayResponse. responseType :: Prelude.Maybe GatewayResponseType, -- | The HTTP status code for this GatewayResponse. statusCode :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GatewayResponse' 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: -- -- 'defaultResponse', 'gatewayResponse_defaultResponse' - A Boolean flag to indicate whether this GatewayResponse is the default -- gateway response (@true@) or not (@false@). A default gateway response -- is one generated by API Gateway without any customization by an API -- developer. -- -- 'responseParameters', 'gatewayResponse_responseParameters' - Response parameters (paths, query strings and headers) of the -- GatewayResponse as a string-to-string map of key-value pairs. -- -- 'responseTemplates', 'gatewayResponse_responseTemplates' - Response templates of the GatewayResponse as a string-to-string map of -- key-value pairs. -- -- 'responseType', 'gatewayResponse_responseType' - The response type of the associated GatewayResponse. -- -- 'statusCode', 'gatewayResponse_statusCode' - The HTTP status code for this GatewayResponse. newGatewayResponse :: GatewayResponse newGatewayResponse = GatewayResponse' { defaultResponse = Prelude.Nothing, responseParameters = Prelude.Nothing, responseTemplates = Prelude.Nothing, responseType = Prelude.Nothing, statusCode = Prelude.Nothing } -- | A Boolean flag to indicate whether this GatewayResponse is the default -- gateway response (@true@) or not (@false@). A default gateway response -- is one generated by API Gateway without any customization by an API -- developer. gatewayResponse_defaultResponse :: Lens.Lens' GatewayResponse (Prelude.Maybe Prelude.Bool) gatewayResponse_defaultResponse = Lens.lens (\GatewayResponse' {defaultResponse} -> defaultResponse) (\s@GatewayResponse' {} a -> s {defaultResponse = a} :: GatewayResponse) -- | Response parameters (paths, query strings and headers) of the -- GatewayResponse as a string-to-string map of key-value pairs. gatewayResponse_responseParameters :: Lens.Lens' GatewayResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) gatewayResponse_responseParameters = Lens.lens (\GatewayResponse' {responseParameters} -> responseParameters) (\s@GatewayResponse' {} a -> s {responseParameters = a} :: GatewayResponse) Prelude.. Lens.mapping Lens.coerced -- | Response templates of the GatewayResponse as a string-to-string map of -- key-value pairs. gatewayResponse_responseTemplates :: Lens.Lens' GatewayResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) gatewayResponse_responseTemplates = Lens.lens (\GatewayResponse' {responseTemplates} -> responseTemplates) (\s@GatewayResponse' {} a -> s {responseTemplates = a} :: GatewayResponse) Prelude.. Lens.mapping Lens.coerced -- | The response type of the associated GatewayResponse. gatewayResponse_responseType :: Lens.Lens' GatewayResponse (Prelude.Maybe GatewayResponseType) gatewayResponse_responseType = Lens.lens (\GatewayResponse' {responseType} -> responseType) (\s@GatewayResponse' {} a -> s {responseType = a} :: GatewayResponse) -- | The HTTP status code for this GatewayResponse. gatewayResponse_statusCode :: Lens.Lens' GatewayResponse (Prelude.Maybe Prelude.Text) gatewayResponse_statusCode = Lens.lens (\GatewayResponse' {statusCode} -> statusCode) (\s@GatewayResponse' {} a -> s {statusCode = a} :: GatewayResponse) instance Data.FromJSON GatewayResponse where parseJSON = Data.withObject "GatewayResponse" ( \x -> GatewayResponse' Prelude.<$> (x Data..:? "defaultResponse") Prelude.<*> ( x Data..:? "responseParameters" Data..!= Prelude.mempty ) Prelude.<*> ( x Data..:? "responseTemplates" Data..!= Prelude.mempty ) Prelude.<*> (x Data..:? "responseType") Prelude.<*> (x Data..:? "statusCode") ) instance Prelude.Hashable GatewayResponse where hashWithSalt _salt GatewayResponse' {..} = _salt `Prelude.hashWithSalt` defaultResponse `Prelude.hashWithSalt` responseParameters `Prelude.hashWithSalt` responseTemplates `Prelude.hashWithSalt` responseType `Prelude.hashWithSalt` statusCode instance Prelude.NFData GatewayResponse where rnf GatewayResponse' {..} = Prelude.rnf defaultResponse `Prelude.seq` Prelude.rnf responseParameters `Prelude.seq` Prelude.rnf responseTemplates `Prelude.seq` Prelude.rnf responseType `Prelude.seq` Prelude.rnf statusCode