Class: AWSCDK::Kendra::CfnDataSource::S3DataSourceConfigurationProperty

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

Overview

Provides the configuration information to connect to an Amazon S3 bucket.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bucket_name:, access_control_list_configuration: nil, documents_metadata_configuration: nil, exclusion_patterns: nil, inclusion_patterns: nil, inclusion_prefixes: nil) ⇒ S3DataSourceConfigurationProperty

Returns a new instance of S3DataSourceConfigurationProperty.

Parameters:

  • bucket_name (String)

    The name of the bucket that contains the documents.

  • access_control_list_configuration (AWSCDK::IResolvable, AWSCDK::Kendra::CfnDataSource::AccessControlListConfigurationProperty, nil) (defaults to: nil)

    Provides the path to the S3 bucket that contains the user context filtering files for the data source.

  • documents_metadata_configuration (AWSCDK::IResolvable, AWSCDK::Kendra::CfnDataSource::DocumentsMetadataConfigurationProperty, nil) (defaults to: nil)

    Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes.

  • exclusion_patterns (Array<String>, nil) (defaults to: nil)

    A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index.

  • inclusion_patterns (Array<String>, nil) (defaults to: nil)

    A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index.

  • inclusion_prefixes (Array<String>, nil) (defaults to: nil)

    A list of S3 prefixes for the documents that should be included in the index.



2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
# File 'kendra/cfn_data_source.rb', line 2539

def initialize(bucket_name:, access_control_list_configuration: nil, documents_metadata_configuration: nil, exclusion_patterns: nil, inclusion_patterns: nil, inclusion_prefixes: nil)
  @bucket_name = bucket_name
  Jsii::Type.check_type(@bucket_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bucketName")
  @access_control_list_configuration = access_control_list_configuration.is_a?(Hash) ? ::AWSCDK::Kendra::CfnDataSource::AccessControlListConfigurationProperty.new(**access_control_list_configuration.transform_keys(&:to_sym)) : access_control_list_configuration
  Jsii::Type.check_type(@access_control_list_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19rZW5kcmEuQ2ZuRGF0YVNvdXJjZS5BY2Nlc3NDb250cm9sTGlzdENvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "accessControlListConfiguration") unless @access_control_list_configuration.nil?
  @documents_metadata_configuration = .is_a?(Hash) ? ::AWSCDK::Kendra::CfnDataSource::DocumentsMetadataConfigurationProperty.new(**.transform_keys(&:to_sym)) : 
  Jsii::Type.check_type(@documents_metadata_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19rZW5kcmEuQ2ZuRGF0YVNvdXJjZS5Eb2N1bWVudHNNZXRhZGF0YUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "documentsMetadataConfiguration") unless @documents_metadata_configuration.nil?
  @exclusion_patterns = exclusion_patterns
  Jsii::Type.check_type(@exclusion_patterns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "exclusionPatterns") unless @exclusion_patterns.nil?
  @inclusion_patterns = inclusion_patterns
  Jsii::Type.check_type(@inclusion_patterns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "inclusionPatterns") unless @inclusion_patterns.nil?
  @inclusion_prefixes = inclusion_prefixes
  Jsii::Type.check_type(@inclusion_prefixes, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "inclusionPrefixes") unless @inclusion_prefixes.nil?
end

Instance Attribute Details

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

Provides the path to the S3 bucket that contains the user context filtering files for the data source.

For the format of the file, see Access control for S3 data sources .



2565
2566
2567
# File 'kendra/cfn_data_source.rb', line 2565

def access_control_list_configuration
  @access_control_list_configuration
end

#bucket_nameString (readonly)

The name of the bucket that contains the documents.



2558
2559
2560
# File 'kendra/cfn_data_source.rb', line 2558

def bucket_name
  @bucket_name
end

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

Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes.

Each metadata file contains metadata about a single document.



2572
2573
2574
# File 'kendra/cfn_data_source.rb', line 2572

def 
  @documents_metadata_configuration
end

#exclusion_patternsArray<String>? (readonly)

A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index.

If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:

  • * /myapp/config/** —All files inside config directory.
  • *** /.png —All .png files in all directories.
  • *** /.ico, md —All .png, .ico or .md files in all directories.
  • * /myapp/src/** /.ts —All .ts files inside src directory (and all its subdirectories).
  • *** /!(.module).ts —All .ts files but not .module.ts
  • *.png , *.jpg —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
  • internal —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
  • *** /internal* —All internal-related files in a directory and its subdirectories.

For more examples, see Use of Exclude and Include Filters in the AWS CLI Command Reference.



2590
2591
2592
# File 'kendra/cfn_data_source.rb', line 2590

def exclusion_patterns
  @exclusion_patterns
end

#inclusion_patternsArray<String>? (readonly)

A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index.

If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:

  • * /myapp/config/** —All files inside config directory.
  • *** /.png —All .png files in all directories.
  • *** /.ico, md —All .png, .ico or .md files in all directories.
  • * /myapp/src/** /.ts —All .ts files inside src directory (and all its subdirectories).
  • *** /!(.module).ts —All .ts files but not .module.ts
  • *.png , *.jpg —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
  • internal —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
  • *** /internal* —All internal-related files in a directory and its subdirectories.

For more examples, see Use of Exclude and Include Filters in the AWS CLI Command Reference.



2608
2609
2610
# File 'kendra/cfn_data_source.rb', line 2608

def inclusion_patterns
  @inclusion_patterns
end

#inclusion_prefixesArray<String>? (readonly)

A list of S3 prefixes for the documents that should be included in the index.



2613
2614
2615
# File 'kendra/cfn_data_source.rb', line 2613

def inclusion_prefixes
  @inclusion_prefixes
end

Class Method Details

.jsii_propertiesObject



2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
# File 'kendra/cfn_data_source.rb', line 2615

def self.jsii_properties
  {
    :bucket_name => "bucketName",
    :access_control_list_configuration => "accessControlListConfiguration",
    :documents_metadata_configuration => "documentsMetadataConfiguration",
    :exclusion_patterns => "exclusionPatterns",
    :inclusion_patterns => "inclusionPatterns",
    :inclusion_prefixes => "inclusionPrefixes",
  }
end

Instance Method Details

#to_jsiiObject



2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
# File 'kendra/cfn_data_source.rb', line 2626

def to_jsii
  result = {}
  result.merge!({
    "bucketName" => @bucket_name,
    "accessControlListConfiguration" => @access_control_list_configuration,
    "documentsMetadataConfiguration" => @documents_metadata_configuration,
    "exclusionPatterns" => @exclusion_patterns,
    "inclusionPatterns" => @inclusion_patterns,
    "inclusionPrefixes" => @inclusion_prefixes,
  })
  result.compact
end