class Aws::Kendra::Types::CreateDataSourceRequest

@note When making an API call, you may pass CreateDataSourceRequest

data as a hash:

    {
      name: "DataSourceName", # required
      index_id: "IndexId", # required
      type: "S3", # required, accepts S3, SHAREPOINT, DATABASE, SALESFORCE, ONEDRIVE, SERVICENOW, CUSTOM, CONFLUENCE, GOOGLEDRIVE, WEBCRAWLER, WORKDOCS
      configuration: {
        s3_configuration: {
          bucket_name: "S3BucketName", # required
          inclusion_prefixes: ["DataSourceInclusionsExclusionsStringsMember"],
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          documents_metadata_configuration: {
            s3_prefix: "S3ObjectKey",
          },
          access_control_list_configuration: {
            key_path: "S3ObjectKey",
          },
        },
        share_point_configuration: {
          share_point_version: "SHAREPOINT_2013", # required, accepts SHAREPOINT_2013, SHAREPOINT_2016, SHAREPOINT_ONLINE
          urls: ["Url"], # required
          secret_arn: "SecretArn", # required
          crawl_attachments: false,
          use_change_log: false,
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          vpc_configuration: {
            subnet_ids: ["SubnetId"], # required
            security_group_ids: ["VpcSecurityGroupId"], # required
          },
          field_mappings: [
            {
              data_source_field_name: "DataSourceFieldName", # required
              date_field_format: "DataSourceDateFieldFormat",
              index_field_name: "IndexFieldName", # required
            },
          ],
          document_title_field_name: "DataSourceFieldName",
          disable_local_groups: false,
          ssl_certificate_s3_path: {
            bucket: "S3BucketName", # required
            key: "S3ObjectKey", # required
          },
        },
        database_configuration: {
          database_engine_type: "RDS_AURORA_MYSQL", # required, accepts RDS_AURORA_MYSQL, RDS_AURORA_POSTGRESQL, RDS_MYSQL, RDS_POSTGRESQL
          connection_configuration: { # required
            database_host: "DatabaseHost", # required
            database_port: 1, # required
            database_name: "DatabaseName", # required
            table_name: "TableName", # required
            secret_arn: "SecretArn", # required
          },
          vpc_configuration: {
            subnet_ids: ["SubnetId"], # required
            security_group_ids: ["VpcSecurityGroupId"], # required
          },
          column_configuration: { # required
            document_id_column_name: "ColumnName", # required
            document_data_column_name: "ColumnName", # required
            document_title_column_name: "ColumnName",
            field_mappings: [
              {
                data_source_field_name: "DataSourceFieldName", # required
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName", # required
              },
            ],
            change_detecting_columns: ["ColumnName"], # required
          },
          acl_configuration: {
            allowed_groups_column_name: "ColumnName", # required
          },
          sql_configuration: {
            query_identifiers_enclosing_option: "DOUBLE_QUOTES", # accepts DOUBLE_QUOTES, NONE
          },
        },
        salesforce_configuration: {
          server_url: "Url", # required
          secret_arn: "SecretArn", # required
          standard_object_configurations: [
            {
              name: "ACCOUNT", # required, accepts ACCOUNT, CAMPAIGN, CASE, CONTACT, CONTRACT, DOCUMENT, GROUP, IDEA, LEAD, OPPORTUNITY, PARTNER, PRICEBOOK, PRODUCT, PROFILE, SOLUTION, TASK, USER
              document_data_field_name: "DataSourceFieldName", # required
              document_title_field_name: "DataSourceFieldName",
              field_mappings: [
                {
                  data_source_field_name: "DataSourceFieldName", # required
                  date_field_format: "DataSourceDateFieldFormat",
                  index_field_name: "IndexFieldName", # required
                },
              ],
            },
          ],
          knowledge_article_configuration: {
            included_states: ["DRAFT"], # required, accepts DRAFT, PUBLISHED, ARCHIVED
            standard_knowledge_article_type_configuration: {
              document_data_field_name: "DataSourceFieldName", # required
              document_title_field_name: "DataSourceFieldName",
              field_mappings: [
                {
                  data_source_field_name: "DataSourceFieldName", # required
                  date_field_format: "DataSourceDateFieldFormat",
                  index_field_name: "IndexFieldName", # required
                },
              ],
            },
            custom_knowledge_article_type_configurations: [
              {
                name: "SalesforceCustomKnowledgeArticleTypeName", # required
                document_data_field_name: "DataSourceFieldName", # required
                document_title_field_name: "DataSourceFieldName",
                field_mappings: [
                  {
                    data_source_field_name: "DataSourceFieldName", # required
                    date_field_format: "DataSourceDateFieldFormat",
                    index_field_name: "IndexFieldName", # required
                  },
                ],
              },
            ],
          },
          chatter_feed_configuration: {
            document_data_field_name: "DataSourceFieldName", # required
            document_title_field_name: "DataSourceFieldName",
            field_mappings: [
              {
                data_source_field_name: "DataSourceFieldName", # required
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName", # required
              },
            ],
            include_filter_types: ["ACTIVE_USER"], # accepts ACTIVE_USER, STANDARD_USER
          },
          crawl_attachments: false,
          standard_object_attachment_configuration: {
            document_title_field_name: "DataSourceFieldName",
            field_mappings: [
              {
                data_source_field_name: "DataSourceFieldName", # required
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName", # required
              },
            ],
          },
          include_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclude_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
        },
        one_drive_configuration: {
          tenant_domain: "TenantDomain", # required
          secret_arn: "SecretArn", # required
          one_drive_users: { # required
            one_drive_user_list: ["OneDriveUser"],
            one_drive_user_s3_path: {
              bucket: "S3BucketName", # required
              key: "S3ObjectKey", # required
            },
          },
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          field_mappings: [
            {
              data_source_field_name: "DataSourceFieldName", # required
              date_field_format: "DataSourceDateFieldFormat",
              index_field_name: "IndexFieldName", # required
            },
          ],
          disable_local_groups: false,
        },
        service_now_configuration: {
          host_url: "ServiceNowHostUrl", # required
          secret_arn: "SecretArn", # required
          service_now_build_version: "LONDON", # required, accepts LONDON, OTHERS
          knowledge_article_configuration: {
            crawl_attachments: false,
            include_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
            exclude_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
            document_data_field_name: "DataSourceFieldName", # required
            document_title_field_name: "DataSourceFieldName",
            field_mappings: [
              {
                data_source_field_name: "DataSourceFieldName", # required
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName", # required
              },
            ],
            filter_query: "ServiceNowKnowledgeArticleFilterQuery",
          },
          service_catalog_configuration: {
            crawl_attachments: false,
            include_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
            exclude_attachment_file_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
            document_data_field_name: "DataSourceFieldName", # required
            document_title_field_name: "DataSourceFieldName",
            field_mappings: [
              {
                data_source_field_name: "DataSourceFieldName", # required
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName", # required
              },
            ],
          },
          authentication_type: "HTTP_BASIC", # accepts HTTP_BASIC, OAUTH2
        },
        confluence_configuration: {
          server_url: "Url", # required
          secret_arn: "SecretArn", # required
          version: "CLOUD", # required, accepts CLOUD, SERVER
          space_configuration: {
            crawl_personal_spaces: false,
            crawl_archived_spaces: false,
            include_spaces: ["ConfluenceSpaceIdentifier"],
            exclude_spaces: ["ConfluenceSpaceIdentifier"],
            space_field_mappings: [
              {
                data_source_field_name: "DISPLAY_URL", # accepts DISPLAY_URL, ITEM_TYPE, SPACE_KEY, URL
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName",
              },
            ],
          },
          page_configuration: {
            page_field_mappings: [
              {
                data_source_field_name: "AUTHOR", # accepts AUTHOR, CONTENT_STATUS, CREATED_DATE, DISPLAY_URL, ITEM_TYPE, LABELS, MODIFIED_DATE, PARENT_ID, SPACE_KEY, SPACE_NAME, URL, VERSION
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName",
              },
            ],
          },
          blog_configuration: {
            blog_field_mappings: [
              {
                data_source_field_name: "AUTHOR", # accepts AUTHOR, DISPLAY_URL, ITEM_TYPE, LABELS, PUBLISH_DATE, SPACE_KEY, SPACE_NAME, URL, VERSION
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName",
              },
            ],
          },
          attachment_configuration: {
            crawl_attachments: false,
            attachment_field_mappings: [
              {
                data_source_field_name: "AUTHOR", # accepts AUTHOR, CONTENT_TYPE, CREATED_DATE, DISPLAY_URL, FILE_SIZE, ITEM_TYPE, PARENT_ID, SPACE_KEY, SPACE_NAME, URL, VERSION
                date_field_format: "DataSourceDateFieldFormat",
                index_field_name: "IndexFieldName",
              },
            ],
          },
          vpc_configuration: {
            subnet_ids: ["SubnetId"], # required
            security_group_ids: ["VpcSecurityGroupId"], # required
          },
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
        },
        google_drive_configuration: {
          secret_arn: "SecretArn", # required
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          field_mappings: [
            {
              data_source_field_name: "DataSourceFieldName", # required
              date_field_format: "DataSourceDateFieldFormat",
              index_field_name: "IndexFieldName", # required
            },
          ],
          exclude_mime_types: ["MimeType"],
          exclude_user_accounts: ["UserAccount"],
          exclude_shared_drives: ["SharedDriveId"],
        },
        web_crawler_configuration: {
          urls: { # required
            seed_url_configuration: {
              seed_urls: ["SeedUrl"], # required
              web_crawler_mode: "HOST_ONLY", # accepts HOST_ONLY, SUBDOMAINS, EVERYTHING
            },
            site_maps_configuration: {
              site_maps: ["SiteMap"], # required
            },
          },
          crawl_depth: 1,
          max_links_per_page: 1,
          max_content_size_per_page_in_mega_bytes: 1.0,
          max_urls_per_minute_crawl_rate: 1,
          url_inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          url_exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          proxy_configuration: {
            host: "Host", # required
            port: 1, # required
            credentials: "SecretArn",
          },
          authentication_configuration: {
            basic_authentication: [
              {
                host: "Host", # required
                port: 1, # required
                credentials: "SecretArn", # required
              },
            ],
          },
        },
        work_docs_configuration: {
          organization_id: "OrganizationId", # required
          crawl_comments: false,
          use_change_log: false,
          inclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          exclusion_patterns: ["DataSourceInclusionsExclusionsStringsMember"],
          field_mappings: [
            {
              data_source_field_name: "DataSourceFieldName", # required
              date_field_format: "DataSourceDateFieldFormat",
              index_field_name: "IndexFieldName", # required
            },
          ],
        },
      },
      description: "Description",
      schedule: "ScanSchedule",
      role_arn: "RoleArn",
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue", # required
        },
      ],
      client_token: "ClientTokenName",
    }

@!attribute [rw] name

A unique name for the data source. A data source name can't be
changed without deleting and recreating the data source.
@return [String]

@!attribute [rw] index_id

The identifier of the index that should be associated with this data
source.
@return [String]

@!attribute [rw] type

The type of repository that contains the data source.
@return [String]

@!attribute [rw] configuration

The connector configuration information that is required to access
the repository.

You can't specify the `Configuration` parameter when the `Type`
parameter is set to `CUSTOM`. If you do, you receive a
`ValidationException` exception.

The `Configuration` parameter is required for all other data
sources.
@return [Types::DataSourceConfiguration]

@!attribute [rw] description

A description for the data source.
@return [String]

@!attribute [rw] schedule

Sets the frequency that Amazon Kendra will check the documents in
your repository and update the index. If you don't set a schedule
Amazon Kendra will not periodically update the index. You can call
the `StartDataSourceSyncJob` operation to update the index.

You can't specify the `Schedule` parameter when the `Type`
parameter is set to `CUSTOM`. If you do, you receive a
`ValidationException` exception.
@return [String]

@!attribute [rw] role_arn

The Amazon Resource Name (ARN) of a role with permission to access
the data source. For more information, see [IAM Roles for Amazon
Kendra][1].

You can't specify the `RoleArn` parameter when the `Type` parameter
is set to `CUSTOM`. If you do, you receive a `ValidationException`
exception.

The `RoleArn` parameter is required for all other data sources.

[1]: https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html
@return [String]

@!attribute [rw] tags

A list of key-value pairs that identify the data source. You can use
the tags to identify and organize your resources and to control
access to resources.
@return [Array<Types::Tag>]

@!attribute [rw] client_token

A token that you provide to identify the request to create a data
source. Multiple calls to the `CreateDataSource` operation with the
same client token will create only one data source.

**A suitable default value is auto-generated.** You should normally
not need to pass this option.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateDataSourceRequest AWS API Documentation

Constants

SENSITIVE