packages feed

stratosphere-ec2-1.0.0: gen/Stratosphere/EC2/VerifiedAccessTrustProvider/OidcOptionsProperty.hs

module Stratosphere.EC2.VerifiedAccessTrustProvider.OidcOptionsProperty (
        OidcOptionsProperty(..), mkOidcOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OidcOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html>
    OidcOptionsProperty {haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-authorizationendpoint>
                         authorizationEndpoint :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-clientid>
                         clientId :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-clientsecret>
                         clientSecret :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-issuer>
                         issuer :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-scope>
                         scope :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-tokenendpoint>
                         tokenEndpoint :: (Prelude.Maybe (Value Prelude.Text)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-userinfoendpoint>
                         userInfoEndpoint :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkOidcOptionsProperty :: OidcOptionsProperty
mkOidcOptionsProperty
  = OidcOptionsProperty
      {haddock_workaround_ = (), authorizationEndpoint = Prelude.Nothing,
       clientId = Prelude.Nothing, clientSecret = Prelude.Nothing,
       issuer = Prelude.Nothing, scope = Prelude.Nothing,
       tokenEndpoint = Prelude.Nothing,
       userInfoEndpoint = Prelude.Nothing}
instance ToResourceProperties OidcOptionsProperty where
  toResourceProperties OidcOptionsProperty {..}
    = ResourceProperties
        {awsType = "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AuthorizationEndpoint"
                              Prelude.<$> authorizationEndpoint,
                            (JSON..=) "ClientId" Prelude.<$> clientId,
                            (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
                            (JSON..=) "Issuer" Prelude.<$> issuer,
                            (JSON..=) "Scope" Prelude.<$> scope,
                            (JSON..=) "TokenEndpoint" Prelude.<$> tokenEndpoint,
                            (JSON..=) "UserInfoEndpoint" Prelude.<$> userInfoEndpoint])}
instance JSON.ToJSON OidcOptionsProperty where
  toJSON OidcOptionsProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AuthorizationEndpoint"
                 Prelude.<$> authorizationEndpoint,
               (JSON..=) "ClientId" Prelude.<$> clientId,
               (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
               (JSON..=) "Issuer" Prelude.<$> issuer,
               (JSON..=) "Scope" Prelude.<$> scope,
               (JSON..=) "TokenEndpoint" Prelude.<$> tokenEndpoint,
               (JSON..=) "UserInfoEndpoint" Prelude.<$> userInfoEndpoint]))
instance Property "AuthorizationEndpoint" OidcOptionsProperty where
  type PropertyType "AuthorizationEndpoint" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty
        {authorizationEndpoint = Prelude.pure newValue, ..}
instance Property "ClientId" OidcOptionsProperty where
  type PropertyType "ClientId" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty {clientId = Prelude.pure newValue, ..}
instance Property "ClientSecret" OidcOptionsProperty where
  type PropertyType "ClientSecret" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty {clientSecret = Prelude.pure newValue, ..}
instance Property "Issuer" OidcOptionsProperty where
  type PropertyType "Issuer" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty {issuer = Prelude.pure newValue, ..}
instance Property "Scope" OidcOptionsProperty where
  type PropertyType "Scope" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty {scope = Prelude.pure newValue, ..}
instance Property "TokenEndpoint" OidcOptionsProperty where
  type PropertyType "TokenEndpoint" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty {tokenEndpoint = Prelude.pure newValue, ..}
instance Property "UserInfoEndpoint" OidcOptionsProperty where
  type PropertyType "UserInfoEndpoint" OidcOptionsProperty = Value Prelude.Text
  set newValue OidcOptionsProperty {..}
    = OidcOptionsProperty
        {userInfoEndpoint = Prelude.pure newValue, ..}