Skip to content

Commit

Permalink
feat(client-kendra): Amazon Kendra now provides a data source connect…
Browse files Browse the repository at this point in the history
  • Loading branch information
awstools committed Apr 19, 2022
1 parent a39c581 commit d1aebb8
Show file tree
Hide file tree
Showing 3 changed files with 397 additions and 2 deletions.
117 changes: 116 additions & 1 deletion clients/client-kendra/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1685,7 +1685,7 @@ export interface BoxConfiguration {

/**
* <p>Configuration information for an Amazon VPC to connect to your Box. For
* more information, see <a href="https://docs.aws.amazon.com/endra/latest/dg/vpc-configuration.html">Configuring a VPC</a>.</p>
* more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html">Configuring a VPC</a>.</p>
*/
VpcConfiguration?: DataSourceVpcConfiguration;
}
Expand Down Expand Up @@ -2594,6 +2594,114 @@ export namespace OneDriveConfiguration {
});
}

/**
* <p>Provides the configuration information to connect to Quip as your data source.</p>
*/
export interface QuipConfiguration {
/**
* <p>The configuration information to connect to your Quip data source domain.</p>
*/
Domain: string | undefined;

/**
* <p>The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the
* key-value pairs
* that are
* required to connect to your Quip file system. Windows is currently the
* only supported type. The secret must contain a JSON structure with the following
* keys:</p>
* <ul>
* <li>
* <p>username—The Active Directory user name, along with the Domain Name
* System (DNS) domain
* name. For example,
* <i>user@corp.example.com</i>.
* The Active Directory user account must have read and mounting access to the Quip
* file system for Windows.</p>
* </li>
* <li>
* <p>password—The password of the Active Directory user account with
* read and mounting access to the Quip Windows file system.</p>
* </li>
* </ul>
*/
SecretArn: string | undefined;

/**
* <p>Specify whether to crawl file comments in your Quip data source.
* You can specify one or more of these options.</p>
*/
CrawlFileComments?: boolean;

/**
* <p>Specify whether to crawl chat rooms in your Quip data source.
* You can specify one or more of these options.</p>
*/
CrawlChatRooms?: boolean;

/**
* <p>Specify whether to crawl attachments in your Quip data source.
* You can specify one or more of these options.</p>
*/
CrawlAttachments?: boolean;

/**
* <p>The identifier of the Quip folder IDs to index.</p>
*/
FolderIds?: string[];

/**
* <p>A list of field mappings to apply when indexing Quip threads.</p>
*/
ThreadFieldMappings?: DataSourceToIndexFieldMapping[];

/**
* <p>A list of field mappings to apply when indexing Quip messages.</p>
*/
MessageFieldMappings?: DataSourceToIndexFieldMapping[];

/**
* <p>A list of field mappings to apply when indexing Quip attachments.</p>
*/
AttachmentFieldMappings?: DataSourceToIndexFieldMapping[];

/**
* <p>A list of regular expression patterns to include certain files in your Quip file
* system. Files that match the patterns are included in the index. Files that don't match
* the patterns are excluded from the index. If a file matches both an inclusion pattern
* and an exclusion pattern, the exclusion pattern takes
* precedence,
* and the file isn't included in the index.</p>
*/
InclusionPatterns?: string[];

/**
* <p>A list of regular expression patterns to exclude certain files in your Quip file
* system. Files that match the patterns are excluded from the index. Files that don’t
* match the patterns are included in the index. If a file matches both an inclusion
* pattern and an exclusion pattern, the exclusion pattern takes
* precedence,
* and the file isn't included in the index.</p>
*/
ExclusionPatterns?: string[];

/**
* <p>Configuration information for connecting to an Amazon Virtual Private Cloud
* (VPC)
* for your Quip. Your Quip instance must reside inside your VPC.</p>
*/
VpcConfiguration?: DataSourceVpcConfiguration;
}

export namespace QuipConfiguration {
/**
* @internal
*/
export const filterSensitiveLog = (obj: QuipConfiguration): any => ({
...obj,
});
}

/**
* <p>Document metadata files that contain information such as the
* document access control information, source URI, document author,
Expand Down Expand Up @@ -3979,6 +4087,12 @@ export interface DataSourceConfiguration {
* <p>Provides the configuration information to connect to Box as your data source.</p>
*/
BoxConfiguration?: BoxConfiguration;

/**
* <p>Provides the configuration information to connect to Quip as your
* data source.</p>
*/
QuipConfiguration?: QuipConfiguration;
}

export namespace DataSourceConfiguration {
Expand Down Expand Up @@ -4026,6 +4140,7 @@ export enum DataSourceType {
FSX = "FSX",
GOOGLEDRIVE = "GOOGLEDRIVE",
ONEDRIVE = "ONEDRIVE",
QUIP = "QUIP",
S3 = "S3",
SALESFORCE = "SALESFORCE",
SERVICENOW = "SERVICENOW",
Expand Down
115 changes: 115 additions & 0 deletions clients/client-kendra/src/protocols/Aws_json1_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ import {
QueryResult,
QueryResultItem,
QuerySuggestionsBlockListSummary,
QuipConfiguration,
Relevance,
RelevanceFeedback,
ResourceAlreadyExistException,
Expand Down Expand Up @@ -5096,6 +5097,10 @@ const serializeAws_json1_1DataSourceConfiguration = (input: DataSourceConfigurat
input.OneDriveConfiguration !== null && {
OneDriveConfiguration: serializeAws_json1_1OneDriveConfiguration(input.OneDriveConfiguration, context),
}),
...(input.QuipConfiguration !== undefined &&
input.QuipConfiguration !== null && {
QuipConfiguration: serializeAws_json1_1QuipConfiguration(input.QuipConfiguration, context),
}),
...(input.S3Configuration !== undefined &&
input.S3Configuration !== null && {
S3Configuration: serializeAws_json1_1S3DataSourceConfiguration(input.S3Configuration, context),
Expand Down Expand Up @@ -5729,6 +5734,17 @@ const serializeAws_json1_1FaqIdsList = (input: string[], context: __SerdeContext
});
};

const serializeAws_json1_1FolderIdList = (input: string[], context: __SerdeContext): any => {
return input
.filter((e: any) => e != null)
.map((entry) => {
if (entry === null) {
return null as any;
}
return entry;
});
};

const serializeAws_json1_1FsxConfiguration = (input: FsxConfiguration, context: __SerdeContext): any => {
return {
...(input.ExclusionPatterns !== undefined &&
Expand Down Expand Up @@ -6233,6 +6249,51 @@ const serializeAws_json1_1QueryRequest = (input: QueryRequest, context: __SerdeC
};
};

const serializeAws_json1_1QuipConfiguration = (input: QuipConfiguration, context: __SerdeContext): any => {
return {
...(input.AttachmentFieldMappings !== undefined &&
input.AttachmentFieldMappings !== null && {
AttachmentFieldMappings: serializeAws_json1_1DataSourceToIndexFieldMappingList(
input.AttachmentFieldMappings,
context
),
}),
...(input.CrawlAttachments !== undefined &&
input.CrawlAttachments !== null && { CrawlAttachments: input.CrawlAttachments }),
...(input.CrawlChatRooms !== undefined &&
input.CrawlChatRooms !== null && { CrawlChatRooms: input.CrawlChatRooms }),
...(input.CrawlFileComments !== undefined &&
input.CrawlFileComments !== null && { CrawlFileComments: input.CrawlFileComments }),
...(input.Domain !== undefined && input.Domain !== null && { Domain: input.Domain }),
...(input.ExclusionPatterns !== undefined &&
input.ExclusionPatterns !== null && {
ExclusionPatterns: serializeAws_json1_1DataSourceInclusionsExclusionsStrings(input.ExclusionPatterns, context),
}),
...(input.FolderIds !== undefined &&
input.FolderIds !== null && { FolderIds: serializeAws_json1_1FolderIdList(input.FolderIds, context) }),
...(input.InclusionPatterns !== undefined &&
input.InclusionPatterns !== null && {
InclusionPatterns: serializeAws_json1_1DataSourceInclusionsExclusionsStrings(input.InclusionPatterns, context),
}),
...(input.MessageFieldMappings !== undefined &&
input.MessageFieldMappings !== null && {
MessageFieldMappings: serializeAws_json1_1DataSourceToIndexFieldMappingList(
input.MessageFieldMappings,
context
),
}),
...(input.SecretArn !== undefined && input.SecretArn !== null && { SecretArn: input.SecretArn }),
...(input.ThreadFieldMappings !== undefined &&
input.ThreadFieldMappings !== null && {
ThreadFieldMappings: serializeAws_json1_1DataSourceToIndexFieldMappingList(input.ThreadFieldMappings, context),
}),
...(input.VpcConfiguration !== undefined &&
input.VpcConfiguration !== null && {
VpcConfiguration: serializeAws_json1_1DataSourceVpcConfiguration(input.VpcConfiguration, context),
}),
};
};

const serializeAws_json1_1Relevance = (input: Relevance, context: __SerdeContext): any => {
return {
...(input.Duration !== undefined && input.Duration !== null && { Duration: input.Duration }),
Expand Down Expand Up @@ -7919,6 +7980,10 @@ const deserializeAws_json1_1DataSourceConfiguration = (
output.OneDriveConfiguration !== undefined && output.OneDriveConfiguration !== null
? deserializeAws_json1_1OneDriveConfiguration(output.OneDriveConfiguration, context)
: undefined,
QuipConfiguration:
output.QuipConfiguration !== undefined && output.QuipConfiguration !== null
? deserializeAws_json1_1QuipConfiguration(output.QuipConfiguration, context)
: undefined,
S3Configuration:
output.S3Configuration !== undefined && output.S3Configuration !== null
? deserializeAws_json1_1S3DataSourceConfiguration(output.S3Configuration, context)
Expand Down Expand Up @@ -8754,6 +8819,18 @@ const deserializeAws_json1_1FaqSummaryItems = (output: any, context: __SerdeCont
return retVal;
};

const deserializeAws_json1_1FolderIdList = (output: any, context: __SerdeContext): string[] => {
const retVal = (output || [])
.filter((e: any) => e != null)
.map((entry: any) => {
if (entry === null) {
return null as any;
}
return __expectString(entry) as any;
});
return retVal;
};

const deserializeAws_json1_1FsxConfiguration = (output: any, context: __SerdeContext): FsxConfiguration => {
return {
ExclusionPatterns:
Expand Down Expand Up @@ -9388,6 +9465,44 @@ const deserializeAws_json1_1QuerySuggestionsBlockListSummaryItems = (
return retVal;
};

const deserializeAws_json1_1QuipConfiguration = (output: any, context: __SerdeContext): QuipConfiguration => {
return {
AttachmentFieldMappings:
output.AttachmentFieldMappings !== undefined && output.AttachmentFieldMappings !== null
? deserializeAws_json1_1DataSourceToIndexFieldMappingList(output.AttachmentFieldMappings, context)
: undefined,
CrawlAttachments: __expectBoolean(output.CrawlAttachments),
CrawlChatRooms: __expectBoolean(output.CrawlChatRooms),
CrawlFileComments: __expectBoolean(output.CrawlFileComments),
Domain: __expectString(output.Domain),
ExclusionPatterns:
output.ExclusionPatterns !== undefined && output.ExclusionPatterns !== null
? deserializeAws_json1_1DataSourceInclusionsExclusionsStrings(output.ExclusionPatterns, context)
: undefined,
FolderIds:
output.FolderIds !== undefined && output.FolderIds !== null
? deserializeAws_json1_1FolderIdList(output.FolderIds, context)
: undefined,
InclusionPatterns:
output.InclusionPatterns !== undefined && output.InclusionPatterns !== null
? deserializeAws_json1_1DataSourceInclusionsExclusionsStrings(output.InclusionPatterns, context)
: undefined,
MessageFieldMappings:
output.MessageFieldMappings !== undefined && output.MessageFieldMappings !== null
? deserializeAws_json1_1DataSourceToIndexFieldMappingList(output.MessageFieldMappings, context)
: undefined,
SecretArn: __expectString(output.SecretArn),
ThreadFieldMappings:
output.ThreadFieldMappings !== undefined && output.ThreadFieldMappings !== null
? deserializeAws_json1_1DataSourceToIndexFieldMappingList(output.ThreadFieldMappings, context)
: undefined,
VpcConfiguration:
output.VpcConfiguration !== undefined && output.VpcConfiguration !== null
? deserializeAws_json1_1DataSourceVpcConfiguration(output.VpcConfiguration, context)
: undefined,
} as any;
};

const deserializeAws_json1_1Relevance = (output: any, context: __SerdeContext): Relevance => {
return {
Duration: __expectString(output.Duration),
Expand Down

0 comments on commit d1aebb8

Please sign in to comment.