Class: AWSCDK::Kendra::CfnIndexProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
kendra/cfn_index_props.rb

Overview

Properties for defining a CfnIndex.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(edition:, name:, role_arn:, capacity_units: nil, description: nil, document_metadata_configurations: nil, server_side_encryption_configuration: nil, tags: nil, user_context_policy: nil, user_token_configurations: nil) ⇒ CfnIndexProps

Returns a new instance of CfnIndexProps.

Parameters:



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'kendra/cfn_index_props.rb', line 19

def initialize(edition:, name:, role_arn:, capacity_units: nil, description: nil, document_metadata_configurations: nil, server_side_encryption_configuration: nil, tags: nil, user_context_policy: nil, user_token_configurations: nil)
  @edition = edition
  Jsii::Type.check_type(@edition, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "edition")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @role_arn = role_arn
  Jsii::Type.check_type(@role_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "roleArn")
  @capacity_units = capacity_units.is_a?(Hash) ? ::AWSCDK::Kendra::CfnIndex::CapacityUnitsConfigurationProperty.new(**capacity_units.transform_keys(&:to_sym)) : capacity_units
  Jsii::Type.check_type(@capacity_units, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19rZW5kcmEuQ2ZuSW5kZXguQ2FwYWNpdHlVbml0c0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "capacityUnits") unless @capacity_units.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @document_metadata_configurations = 
  Jsii::Type.check_type(@document_metadata_configurations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2VuZHJhLkNmbkluZGV4LkRvY3VtZW50TWV0YWRhdGFDb25maWd1cmF0aW9uUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "documentMetadataConfigurations") unless @document_metadata_configurations.nil?
  @server_side_encryption_configuration = server_side_encryption_configuration.is_a?(Hash) ? ::AWSCDK::Kendra::CfnIndex::ServerSideEncryptionConfigurationProperty.new(**server_side_encryption_configuration.transform_keys(&:to_sym)) : server_side_encryption_configuration
  Jsii::Type.check_type(@server_side_encryption_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19rZW5kcmEuQ2ZuSW5kZXguU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "serverSideEncryptionConfiguration") unless @server_side_encryption_configuration.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @user_context_policy = user_context_policy
  Jsii::Type.check_type(@user_context_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "userContextPolicy") unless @user_context_policy.nil?
  @user_token_configurations = user_token_configurations
  Jsii::Type.check_type(@user_token_configurations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2VuZHJhLkNmbkluZGV4LlVzZXJUb2tlbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "userTokenConfigurations") unless @user_token_configurations.nil?
end

Instance Attribute Details

#capacity_unitsAWSCDK::IResolvable, ... (readonly)

Specifies additional capacity units configured for your Enterprise Edition index.

You can add and remove capacity units to fit your usage requirements.



65
66
67
# File 'kendra/cfn_index_props.rb', line 65

def capacity_units
  @capacity_units
end

#descriptionString? (readonly)

A description for the index.



70
71
72
# File 'kendra/cfn_index_props.rb', line 70

def description
  @description
end

#document_metadata_configurationsAWSCDK::IResolvable, ... (readonly)

Specifies the properties of an index field.

You can add either a custom or a built-in field. You can add and remove built-in fields at any time. When a built-in field is removed it's configuration reverts to the default for the field. Custom fields can't be removed from an index after they are added.



77
78
79
# File 'kendra/cfn_index_props.rb', line 77

def 
  @document_metadata_configurations
end

#editionString (readonly)

Indicates whether the index is a Enterprise Edition index, a Developer Edition index, or a GenAI Enterprise Edition index.



46
47
48
# File 'kendra/cfn_index_props.rb', line 46

def edition
  @edition
end

#nameString (readonly)

The name of the index.



51
52
53
# File 'kendra/cfn_index_props.rb', line 51

def name
  @name
end

#role_arnString, AWSCDK::Interfaces::AWSIAM::IRoleRef (readonly)

An IAM role that gives Amazon Kendra permissions to access your Amazon CloudWatch logs and metrics.

This is also the role used when you use the BatchPutDocument operation to index documents from an Amazon S3 bucket.



58
59
60
# File 'kendra/cfn_index_props.rb', line 58

def role_arn
  @role_arn
end

#server_side_encryption_configurationAWSCDK::IResolvable, ... (readonly)

The identifier of the AWS KMS customer managed key (CMK) to use to encrypt data indexed by Amazon Kendra.

Amazon Kendra doesn't support asymmetric CMKs.



84
85
86
# File 'kendra/cfn_index_props.rb', line 84

def server_side_encryption_configuration
  @server_side_encryption_configuration
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

An array of key-value pairs to apply to this resource.

For more information, see Tag .



91
92
93
# File 'kendra/cfn_index_props.rb', line 91

def tags
  @tags
end

#user_context_policyString? (readonly)

The user context policy.

ATTRIBUTE_FILTER

  • All indexed content is searchable and displayable for all users. If you want to filter search results on user context, you can use the attribute filters of _user_id and _group_ids or you can provide user and group information in UserContext .

USER_TOKEN

  • Enables token-based user access control to filter search results on user context. All documents with no access control and all documents accessible to the user will be searchable and displayable.


104
105
106
# File 'kendra/cfn_index_props.rb', line 104

def user_context_policy
  @user_context_policy
end

#user_token_configurationsAWSCDK::IResolvable, ... (readonly)

Defines the type of user token used for the index.



109
110
111
# File 'kendra/cfn_index_props.rb', line 109

def user_token_configurations
  @user_token_configurations
end

Class Method Details

.jsii_propertiesObject



111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'kendra/cfn_index_props.rb', line 111

def self.jsii_properties
  {
    :edition => "edition",
    :name => "name",
    :role_arn => "roleArn",
    :capacity_units => "capacityUnits",
    :description => "description",
    :document_metadata_configurations => "documentMetadataConfigurations",
    :server_side_encryption_configuration => "serverSideEncryptionConfiguration",
    :tags => "tags",
    :user_context_policy => "userContextPolicy",
    :user_token_configurations => "userTokenConfigurations",
  }
end

Instance Method Details

#to_jsiiObject



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'kendra/cfn_index_props.rb', line 126

def to_jsii
  result = {}
  result.merge!({
    "edition" => @edition,
    "name" => @name,
    "roleArn" => @role_arn,
    "capacityUnits" => @capacity_units,
    "description" => @description,
    "documentMetadataConfigurations" => @document_metadata_configurations,
    "serverSideEncryptionConfiguration" => @server_side_encryption_configuration,
    "tags" => @tags,
    "userContextPolicy" => @user_context_policy,
    "userTokenConfigurations" => @user_token_configurations,
  })
  result.compact
end