module Stratosphere.Bedrock.KnowledgeBase.OpenSearchServerlessConfigurationProperty (
        module Exports, OpenSearchServerlessConfigurationProperty(..),
        mkOpenSearchServerlessConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.KnowledgeBase.OpenSearchServerlessFieldMappingProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OpenSearchServerlessConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-opensearchserverlessconfiguration.html>
    OpenSearchServerlessConfigurationProperty {OpenSearchServerlessConfigurationProperty -> ()
haddock_workaround_ :: (),
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-opensearchserverlessconfiguration.html#cfn-bedrock-knowledgebase-opensearchserverlessconfiguration-collectionarn>
                                               OpenSearchServerlessConfigurationProperty -> Value Text
collectionArn :: (Value Prelude.Text),
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-opensearchserverlessconfiguration.html#cfn-bedrock-knowledgebase-opensearchserverlessconfiguration-fieldmapping>
                                               OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
fieldMapping :: OpenSearchServerlessFieldMappingProperty,
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-opensearchserverlessconfiguration.html#cfn-bedrock-knowledgebase-opensearchserverlessconfiguration-vectorindexname>
                                               OpenSearchServerlessConfigurationProperty -> Value Text
vectorIndexName :: (Value Prelude.Text)}
  deriving stock (OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty -> Bool
(OpenSearchServerlessConfigurationProperty
 -> OpenSearchServerlessConfigurationProperty -> Bool)
-> (OpenSearchServerlessConfigurationProperty
    -> OpenSearchServerlessConfigurationProperty -> Bool)
-> Eq OpenSearchServerlessConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty -> Bool
== :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty -> Bool
$c/= :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty -> Bool
/= :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty -> Bool
Prelude.Eq, Int -> OpenSearchServerlessConfigurationProperty -> ShowS
[OpenSearchServerlessConfigurationProperty] -> ShowS
OpenSearchServerlessConfigurationProperty -> String
(Int -> OpenSearchServerlessConfigurationProperty -> ShowS)
-> (OpenSearchServerlessConfigurationProperty -> String)
-> ([OpenSearchServerlessConfigurationProperty] -> ShowS)
-> Show OpenSearchServerlessConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OpenSearchServerlessConfigurationProperty -> ShowS
showsPrec :: Int -> OpenSearchServerlessConfigurationProperty -> ShowS
$cshow :: OpenSearchServerlessConfigurationProperty -> String
show :: OpenSearchServerlessConfigurationProperty -> String
$cshowList :: [OpenSearchServerlessConfigurationProperty] -> ShowS
showList :: [OpenSearchServerlessConfigurationProperty] -> ShowS
Prelude.Show)
mkOpenSearchServerlessConfigurationProperty ::
  Value Prelude.Text
  -> OpenSearchServerlessFieldMappingProperty
     -> Value Prelude.Text -> OpenSearchServerlessConfigurationProperty
mkOpenSearchServerlessConfigurationProperty :: Value Text
-> OpenSearchServerlessFieldMappingProperty
-> Value Text
-> OpenSearchServerlessConfigurationProperty
mkOpenSearchServerlessConfigurationProperty
  Value Text
collectionArn
  OpenSearchServerlessFieldMappingProperty
fieldMapping
  Value Text
vectorIndexName
  = OpenSearchServerlessConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), collectionArn :: Value Text
collectionArn = Value Text
collectionArn,
       fieldMapping :: OpenSearchServerlessFieldMappingProperty
fieldMapping = OpenSearchServerlessFieldMappingProperty
fieldMapping, vectorIndexName :: Value Text
vectorIndexName = Value Text
vectorIndexName}
instance ToResourceProperties OpenSearchServerlessConfigurationProperty where
  toResourceProperties :: OpenSearchServerlessConfigurationProperty -> ResourceProperties
toResourceProperties OpenSearchServerlessConfigurationProperty {()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: OpenSearchServerlessConfigurationProperty -> ()
collectionArn :: OpenSearchServerlessConfigurationProperty -> Value Text
fieldMapping :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
vectorIndexName :: OpenSearchServerlessConfigurationProperty -> Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Bedrock::KnowledgeBase.OpenSearchServerlessConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"CollectionArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
collectionArn,
                       Key
"FieldMapping" Key -> OpenSearchServerlessFieldMappingProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= OpenSearchServerlessFieldMappingProperty
fieldMapping,
                       Key
"VectorIndexName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
vectorIndexName]}
instance JSON.ToJSON OpenSearchServerlessConfigurationProperty where
  toJSON :: OpenSearchServerlessConfigurationProperty -> Value
toJSON OpenSearchServerlessConfigurationProperty {()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: OpenSearchServerlessConfigurationProperty -> ()
collectionArn :: OpenSearchServerlessConfigurationProperty -> Value Text
fieldMapping :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
vectorIndexName :: OpenSearchServerlessConfigurationProperty -> Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"CollectionArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
collectionArn,
         Key
"FieldMapping" Key -> OpenSearchServerlessFieldMappingProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= OpenSearchServerlessFieldMappingProperty
fieldMapping,
         Key
"VectorIndexName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
vectorIndexName]
instance Property "CollectionArn" OpenSearchServerlessConfigurationProperty where
  type PropertyType "CollectionArn" OpenSearchServerlessConfigurationProperty = Value Prelude.Text
  set :: PropertyType
  "CollectionArn" OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
set PropertyType
  "CollectionArn" OpenSearchServerlessConfigurationProperty
newValue OpenSearchServerlessConfigurationProperty {()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: OpenSearchServerlessConfigurationProperty -> ()
collectionArn :: OpenSearchServerlessConfigurationProperty -> Value Text
fieldMapping :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
vectorIndexName :: OpenSearchServerlessConfigurationProperty -> Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
    = OpenSearchServerlessConfigurationProperty
        {collectionArn :: Value Text
collectionArn = PropertyType
  "CollectionArn" OpenSearchServerlessConfigurationProperty
Value Text
newValue, ()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: ()
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
haddock_workaround_ :: ()
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
instance Property "FieldMapping" OpenSearchServerlessConfigurationProperty where
  type PropertyType "FieldMapping" OpenSearchServerlessConfigurationProperty = OpenSearchServerlessFieldMappingProperty
  set :: PropertyType
  "FieldMapping" OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
set PropertyType
  "FieldMapping" OpenSearchServerlessConfigurationProperty
newValue OpenSearchServerlessConfigurationProperty {()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: OpenSearchServerlessConfigurationProperty -> ()
collectionArn :: OpenSearchServerlessConfigurationProperty -> Value Text
fieldMapping :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
vectorIndexName :: OpenSearchServerlessConfigurationProperty -> Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
    = OpenSearchServerlessConfigurationProperty
        {fieldMapping :: OpenSearchServerlessFieldMappingProperty
fieldMapping = PropertyType
  "FieldMapping" OpenSearchServerlessConfigurationProperty
OpenSearchServerlessFieldMappingProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
vectorIndexName :: Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
vectorIndexName :: Value Text
..}
instance Property "VectorIndexName" OpenSearchServerlessConfigurationProperty where
  type PropertyType "VectorIndexName" OpenSearchServerlessConfigurationProperty = Value Prelude.Text
  set :: PropertyType
  "VectorIndexName" OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessConfigurationProperty
set PropertyType
  "VectorIndexName" OpenSearchServerlessConfigurationProperty
newValue OpenSearchServerlessConfigurationProperty {()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: OpenSearchServerlessConfigurationProperty -> ()
collectionArn :: OpenSearchServerlessConfigurationProperty -> Value Text
fieldMapping :: OpenSearchServerlessConfigurationProperty
-> OpenSearchServerlessFieldMappingProperty
vectorIndexName :: OpenSearchServerlessConfigurationProperty -> Value Text
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
vectorIndexName :: Value Text
..}
    = OpenSearchServerlessConfigurationProperty
        {vectorIndexName :: Value Text
vectorIndexName = PropertyType
  "VectorIndexName" OpenSearchServerlessConfigurationProperty
Value Text
newValue, ()
Value Text
OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
haddock_workaround_ :: ()
collectionArn :: Value Text
fieldMapping :: OpenSearchServerlessFieldMappingProperty
..}