module Stratosphere.BedrockAgentCore.Runtime ( module Exports, Runtime(..), mkRuntime ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Runtime.AgentRuntimeArtifactProperty as Exports import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Runtime.AuthorizerConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Runtime.NetworkConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data Runtime = -- | See: Runtime {haddock_workaround_ :: (), -- | See: agentRuntimeArtifact :: AgentRuntimeArtifactProperty, -- | See: agentRuntimeName :: (Value Prelude.Text), -- | See: authorizerConfiguration :: (Prelude.Maybe AuthorizerConfigurationProperty), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: environmentVariables :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))), -- | See: networkConfiguration :: NetworkConfigurationProperty, -- | See: protocolConfiguration :: (Prelude.Maybe (Value Prelude.Text)), -- | See: roleArn :: (Value Prelude.Text), -- | See: tags :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text)))} deriving stock (Prelude.Eq, Prelude.Show) mkRuntime :: AgentRuntimeArtifactProperty -> Value Prelude.Text -> NetworkConfigurationProperty -> Value Prelude.Text -> Runtime mkRuntime agentRuntimeArtifact agentRuntimeName networkConfiguration roleArn = Runtime {haddock_workaround_ = (), agentRuntimeArtifact = agentRuntimeArtifact, agentRuntimeName = agentRuntimeName, networkConfiguration = networkConfiguration, roleArn = roleArn, authorizerConfiguration = Prelude.Nothing, description = Prelude.Nothing, environmentVariables = Prelude.Nothing, protocolConfiguration = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties Runtime where toResourceProperties Runtime {..} = ResourceProperties {awsType = "AWS::BedrockAgentCore::Runtime", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["AgentRuntimeArtifact" JSON..= agentRuntimeArtifact, "AgentRuntimeName" JSON..= agentRuntimeName, "NetworkConfiguration" JSON..= networkConfiguration, "RoleArn" JSON..= roleArn] (Prelude.catMaybes [(JSON..=) "AuthorizerConfiguration" Prelude.<$> authorizerConfiguration, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "EnvironmentVariables" Prelude.<$> environmentVariables, (JSON..=) "ProtocolConfiguration" Prelude.<$> protocolConfiguration, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON Runtime where toJSON Runtime {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AgentRuntimeArtifact" JSON..= agentRuntimeArtifact, "AgentRuntimeName" JSON..= agentRuntimeName, "NetworkConfiguration" JSON..= networkConfiguration, "RoleArn" JSON..= roleArn] (Prelude.catMaybes [(JSON..=) "AuthorizerConfiguration" Prelude.<$> authorizerConfiguration, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "EnvironmentVariables" Prelude.<$> environmentVariables, (JSON..=) "ProtocolConfiguration" Prelude.<$> protocolConfiguration, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "AgentRuntimeArtifact" Runtime where type PropertyType "AgentRuntimeArtifact" Runtime = AgentRuntimeArtifactProperty set newValue Runtime {..} = Runtime {agentRuntimeArtifact = newValue, ..} instance Property "AgentRuntimeName" Runtime where type PropertyType "AgentRuntimeName" Runtime = Value Prelude.Text set newValue Runtime {..} = Runtime {agentRuntimeName = newValue, ..} instance Property "AuthorizerConfiguration" Runtime where type PropertyType "AuthorizerConfiguration" Runtime = AuthorizerConfigurationProperty set newValue Runtime {..} = Runtime {authorizerConfiguration = Prelude.pure newValue, ..} instance Property "Description" Runtime where type PropertyType "Description" Runtime = Value Prelude.Text set newValue Runtime {..} = Runtime {description = Prelude.pure newValue, ..} instance Property "EnvironmentVariables" Runtime where type PropertyType "EnvironmentVariables" Runtime = Prelude.Map Prelude.Text (Value Prelude.Text) set newValue Runtime {..} = Runtime {environmentVariables = Prelude.pure newValue, ..} instance Property "NetworkConfiguration" Runtime where type PropertyType "NetworkConfiguration" Runtime = NetworkConfigurationProperty set newValue Runtime {..} = Runtime {networkConfiguration = newValue, ..} instance Property "ProtocolConfiguration" Runtime where type PropertyType "ProtocolConfiguration" Runtime = Value Prelude.Text set newValue Runtime {..} = Runtime {protocolConfiguration = Prelude.pure newValue, ..} instance Property "RoleArn" Runtime where type PropertyType "RoleArn" Runtime = Value Prelude.Text set newValue Runtime {..} = Runtime {roleArn = newValue, ..} instance Property "Tags" Runtime where type PropertyType "Tags" Runtime = Prelude.Map Prelude.Text (Value Prelude.Text) set newValue Runtime {..} = Runtime {tags = Prelude.pure newValue, ..}