cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
902 lines • 75.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AwsExternalAnthropic = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [aws-external-anthropic](https://docs.aws.amazon.com/service-authorization/latest/reference/list_claudeplatformonaws.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class AwsExternalAnthropic extends shared_1.PolicyStatement {
/**
* Grants permission to archive a managed agent
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveAgent() {
return this.to('ArchiveAgent');
}
/**
* Grants permission to archive a managed agent environment
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveEnvironment() {
return this.to('ArchiveEnvironment');
}
/**
* Grants permission to archive a memory store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveMemoryStore() {
return this.to('ArchiveMemoryStore');
}
/**
* Grants permission to archive a managed agent session
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveSession() {
return this.to('ArchiveSession');
}
/**
* Grants permission to archive a credential vault
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveVault() {
return this.to('ArchiveVault');
}
/**
* Grants permission to archive a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toArchiveWorkspace() {
return this.to('ArchiveWorkspace');
}
/**
* Grants permission to assume console access on Claude Platform
*
* Access Level: Write
*
* Possible conditions:
* - .ifCapability()
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toAssumeConsole() {
return this.to('AssumeConsole');
}
/**
* Grants permission to make API calls using bearer token authentication
*
* Access Level: List
*
* Possible conditions:
* - .ifBearerTokenType()
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html
*/
toCallWithBearerToken() {
return this.to('CallWithBearerToken');
}
/**
* Grants permission to cancel an in-progress batch inference request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCancelBatchInference() {
return this.to('CancelBatchInference');
}
/**
* Grants permission to count tokens for a message request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCountTokens() {
return this.to('CountTokens');
}
/**
* Grants permission to create a managed agent in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateAgent() {
return this.to('CreateAgent');
}
/**
* Grants permission to create a batch inference request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateBatchInference() {
return this.to('CreateBatchInference');
}
/**
* Grants permission to create a managed agent environment in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateEnvironment() {
return this.to('CreateEnvironment');
}
/**
* Grants permission to upload a file to a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateFile() {
return this.to('CreateFile');
}
/**
* Grants permission to create a chat completion inference request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateInference() {
return this.to('CreateInference');
}
/**
* Grants permission to create a managed agent memory store in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateMemoryStore() {
return this.to('CreateMemoryStore');
}
/**
* Grants permission to create a managed agent session in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateSession() {
return this.to('CreateSession');
}
/**
* Grants permission to create a skill in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateSkill() {
return this.to('CreateSkill');
}
/**
* Grants permission to create a user profile in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateUserProfile() {
return this.to('CreateUserProfile');
}
/**
* Grants permission to create an enrollment URL for a user profile
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateUserProfileEnrollmentUrl() {
return this.to('CreateUserProfileEnrollmentUrl');
}
/**
* Grants permission to create a managed agent credential vault in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateVault() {
return this.to('CreateVault');
}
/**
* Grants permission to create a workspace in an organization
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toCreateWorkspace() {
return this.to('CreateWorkspace');
}
/**
* Grants permission to delete a batch inference request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteBatchInference() {
return this.to('DeleteBatchInference');
}
/**
* Grants permission to delete a managed agent environment
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteEnvironment() {
return this.to('DeleteEnvironment');
}
/**
* Grants permission to delete a file from a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteFile() {
return this.to('DeleteFile');
}
/**
* Grants permission to delete a memory store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteMemoryStore() {
return this.to('DeleteMemoryStore');
}
/**
* Grants permission to delete a managed agent session
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteSession() {
return this.to('DeleteSession');
}
/**
* Grants permission to delete a skill from a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteSkill() {
return this.to('DeleteSkill');
}
/**
* Grants permission to delete a credential vault
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toDeleteVault() {
return this.to('DeleteVault');
}
/**
* Grants permission to retrieve the status of account setup and AWS Marketplace registration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetAccountStatus() {
return this.to('GetAccountStatus');
}
/**
* Grants permission to retrieve details or versions of a managed agent
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetAgent() {
return this.to('GetAgent');
}
/**
* Grants permission to retrieve details of a batch inference request
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetBatchInference() {
return this.to('GetBatchInference');
}
/**
* Grants permission to retrieve details of a managed agent environment
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetEnvironment() {
return this.to('GetEnvironment');
}
/**
* Grants permission to retrieve a file or its content from a workspace
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetFile() {
return this.to('GetFile');
}
/**
* Grants permission to retrieve details of a memory store, its memories, or its memory versions
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetMemoryStore() {
return this.to('GetMemoryStore');
}
/**
* Grants permission to retrieve information about a specific model
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetModel() {
return this.to('GetModel');
}
/**
* Grants permission to retrieve details, events, or resources of a managed agent session
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetSession() {
return this.to('GetSession');
}
/**
* Grants permission to retrieve details of a skill or its versions
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetSkill() {
return this.to('GetSkill');
}
/**
* Grants permission to retrieve details of a user profile
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetUserProfile() {
return this.to('GetUserProfile');
}
/**
* Grants permission to retrieve details of a credential vault or its credentials
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetVault() {
return this.to('GetVault');
}
/**
* Grants permission to retrieve details of a workspace
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toGetWorkspace() {
return this.to('GetWorkspace');
}
/**
* Grants permission to list managed agents in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListAgents() {
return this.to('ListAgents');
}
/**
* Grants permission to list batch inference requests in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListBatchInferences() {
return this.to('ListBatchInferences');
}
/**
* Grants permission to list managed agent environments in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListEnvironments() {
return this.to('ListEnvironments');
}
/**
* Grants permission to list files in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListFiles() {
return this.to('ListFiles');
}
/**
* Grants permission to list managed agent memory stores in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListMemoryStores() {
return this.to('ListMemoryStores');
}
/**
* Grants permission to list available models in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListModels() {
return this.to('ListModels');
}
/**
* Grants permission to list managed agent sessions in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListSessions() {
return this.to('ListSessions');
}
/**
* Grants permission to list skills in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListSkills() {
return this.to('ListSkills');
}
/**
* Grants permission to list tags for a resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to list user profiles in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListUserProfiles() {
return this.to('ListUserProfiles');
}
/**
* Grants permission to list managed agent credential vaults in a workspace
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListVaults() {
return this.to('ListVaults');
}
/**
* Grants permission to list workspaces in an organization
*
* Access Level: List
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toListWorkspaces() {
return this.to('ListWorkspaces');
}
/**
* Grants permission to tag a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to untag a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update a managed agent
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateAgent() {
return this.to('UpdateAgent');
}
/**
* Grants permission to update a managed agent environment
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateEnvironment() {
return this.to('UpdateEnvironment');
}
/**
* Grants permission to update a memory store, mutate its memories, or redact a memory version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateMemoryStore() {
return this.to('UpdateMemoryStore');
}
/**
* Grants permission to update a managed agent session, append session events, or manage its resources
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateSession() {
return this.to('UpdateSession');
}
/**
* Grants permission to create or delete a skill version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateSkill() {
return this.to('UpdateSkill');
}
/**
* Grants permission to update a user profile in a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateUserProfile() {
return this.to('UpdateUserProfile');
}
/**
* Grants permission to update a credential vault or manage its stored credentials
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateVault() {
return this.to('UpdateVault');
}
/**
* Grants permission to update a workspace
*
* Access Level: Write
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-actions.html#iam-actions
*/
toUpdateWorkspace() {
return this.to('UpdateWorkspace');
}
/**
* Adds a resource of type workspace to the statement
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/workspaces.html#workspaces
*
* @param resourceId - Identifier for the resourceId.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onWorkspace(resourceId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:aws-external-anthropic:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:workspace/${resourceId}`);
}
/**
* Filters access by the Short-term or Long-term bearer tokens
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-policies.html
*
* Applies to actions:
* - .toCallWithBearerToken()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifBearerTokenType(value, operator) {
return this.if(`BearerTokenType`, value, operator ?? 'StringLike');
}
/**
* Filters access by the use of the Claude Platform console
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-policies.html
*
* @param value `true` or `false`. **Default:** `true`
*/
ifCalledViaConsole(value) {
return this.if(`CalledViaConsole`, (typeof value !== 'undefined' ? value : true), 'Bool');
}
/**
* Filters access by the Claude Platform role used for the console session
*
* https://docs.aws.amazon.com/claude-platform/latest/userguide/iam-policies.html
*
* Applies to actions:
* - .toAssumeConsole()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifCapability(value, operator) {
return this.if(`Capability`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tags that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toCreateWorkspace()
* - .toTagResource()
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsRequestTag(tagKey, value, operator) {
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tags associated with the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toArchiveAgent()
* - .toArchiveEnvironment()
* - .toArchiveMemoryStore()
* - .toArchiveSession()
* - .toArchiveVault()
* - .toArchiveWorkspace()
* - .toCancelBatchInference()
* - .toCountTokens()
* - .toCreateAgent()
* - .toCreateBatchInference()
* - .toCreateEnvironment()
* - .toCreateFile()
* - .toCreateInference()
* - .toCreateMemoryStore()
* - .toCreateSession()
* - .toCreateSkill()
* - .toCreateUserProfile()
* - .toCreateUserProfileEnrollmentUrl()
* - .toCreateVault()
* - .toDeleteBatchInference()
* - .toDeleteEnvironment()
* - .toDeleteFile()
* - .toDeleteMemoryStore()
* - .toDeleteSession()
* - .toDeleteSkill()
* - .toDeleteVault()
* - .toGetAgent()
* - .toGetBatchInference()
* - .toGetEnvironment()
* - .toGetFile()
* - .toGetMemoryStore()
* - .toGetModel()
* - .toGetSession()
* - .toGetSkill()
* - .toGetUserProfile()
* - .toGetVault()
* - .toGetWorkspace()
* - .toListAgents()
* - .toListBatchInferences()
* - .toListEnvironments()
* - .toListFiles()
* - .toListMemoryStores()
* - .toListModels()
* - .toListSessions()
* - .toListSkills()
* - .toListTagsForResource()
* - .toListUserProfiles()
* - .toListVaults()
* - .toTagResource()
* - .toUntagResource()
* - .toUpdateAgent()
* - .toUpdateEnvironment()
* - .toUpdateMemoryStore()
* - .toUpdateSession()
* - .toUpdateSkill()
* - .toUpdateUserProfile()
* - .toUpdateVault()
* - .toUpdateWorkspace()
*
* Applies to resource types:
* - workspace
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsResourceTag(tagKey, value, operator) {
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tag keys that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toCreateWorkspace()
* - .toTagResource()
* - .toUntagResource()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsTagKeys(value, operator) {
return this.if(`aws:TagKeys`, value, operator ?? 'StringLike');
}
/**
* Statement provider for service [aws-external-anthropic](https://docs.aws.amazon.com/service-authorization/latest/reference/list_claudeplatformonaws.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'aws-external-anthropic';
this.accessLevelList = {
Write: [
'ArchiveAgent',
'ArchiveEnvironment',
'ArchiveMemoryStore',
'ArchiveSession',
'ArchiveVault',
'ArchiveWorkspace',
'AssumeConsole',
'CancelBatchInference',
'CountTokens',
'CreateAgent',
'CreateBatchInference',
'CreateEnvironment',
'CreateFile',
'CreateInference',
'CreateMemoryStore',
'CreateSession',
'CreateSkill',
'CreateUserProfile',
'CreateUserProfileEnrollmentUrl',
'CreateVault',
'CreateWorkspace',
'DeleteBatchInference',
'DeleteEnvironment',
'DeleteFile',
'DeleteMemoryStore',
'DeleteSession',
'DeleteSkill',
'DeleteVault',
'UpdateAgent',
'UpdateEnvironment',
'UpdateMemoryStore',
'UpdateSession',
'UpdateSkill',
'UpdateUserProfile',
'UpdateVault',
'UpdateWorkspace'
],
List: [
'CallWithBearerToken',
'ListAgents',
'ListBatchInferences',
'ListEnvironments',
'ListFiles',
'ListMemoryStores',
'ListModels',
'ListSessions',
'ListSkills',
'ListUserProfiles',
'ListVaults',
'ListWorkspaces'
],
Read: [
'GetAccountStatus',
'GetAgent',
'GetBatchInference',
'GetEnvironment',
'GetFile',
'GetMemoryStore',
'GetModel',
'GetSession',
'GetSkill',
'GetUserProfile',
'GetVault',
'GetWorkspace',
'ListTagsForResource'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.AwsExternalAnthropic = AwsExternalAnthropic;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhdWRlcGxhdGZvcm1vbmF3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsYXVkZXBsYXRmb3Jtb25hd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHdCQUFlO0lBR3ZEOzs7Ozs7T0FNRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJ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QkFBbUI7Z0JBQ25CLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZixhQUFhO2dCQUNiLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixpQkFBaUI7YUFDbEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0oscUJBQXFCO2dCQUNyQixZQUFZO2dCQUNaLHFCQUFxQjtnQkFDckIsa0JBQWtCO2dCQUNsQixXQUFXO2dCQUNYLGtCQUFrQjtnQkFDbEIsWUFBWTtnQkFDWixjQUFjO2dCQUNkLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixZQUFZO2dCQUNaLGdCQUFnQjthQUNqQjtZQUNELElBQUksRUFBRTtnQkFDSixrQkFBa0I7Z0JBQ2xCLFVBQVU7Z0JBQ1YsbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLFNBQVM7Z0JBQ1QsZ0JBQWdCO2dCQUNoQixVQUFVO2dCQUNWLFlBQVk7Z0JBQ1osVUFBVTtnQkFDVixnQkFBZ0I7Z0JBQ2hCLFVBQVU7Z0JBQ1YsY0FBYztnQkFDZCxxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQWdMRixDQUFDO0NBQ0Y7QUFsOEJELG9EQWs4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2F3cy1leHRlcm5hbC1hbnRocm9waWNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2NsYXVkZXBsYXRmb3Jtb25hd3MuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NFeHRlcm5hbEFudGhyb3BpYyBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2F3cy1leHRlcm5hbC1hbnRocm9waWMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhcmNoaXZlIGEgbWFuYWdlZCBhZ2VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9BcmNoaXZlQWdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FyY2hpdmVBZ2VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFyY2hpdmUgYSBtYW5hZ2VkIGFnZW50IGVudmlyb25tZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0FyY2hpdmVFbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXJjaGl2ZUVudmlyb25tZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXJjaGl2ZSBhIG1lbW9yeSBzdG9yZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9BcmNoaXZlTWVtb3J5U3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FyY2hpdmVNZW1vcnlTdG9yZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFyY2hpdmUgYSBtYW5hZ2VkIGFnZW50IHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQXJjaGl2ZVNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FyY2hpdmVTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXJjaGl2ZSBhIGNyZWRlbnRpYWwgdmF1bHRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQXJjaGl2ZVZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBcmNoaXZlVmF1bHQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhcmNoaXZlIGEgd29ya3NwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0FyY2hpdmVXb3Jrc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FyY2hpdmVXb3Jrc3BhY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhc3N1bWUgY29uc29sZSBhY2Nlc3Mgb24gQ2xhdWRlIFBsYXRmb3JtXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZDYXBhYmlsaXR5KClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0Fzc3VtZUNvbnNvbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Fzc3VtZUNvbnNvbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtYWtlIEFQSSBjYWxscyB1c2luZyBiZWFyZXIgdG9rZW4gYXV0aGVudGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQmVhcmVyVG9rZW5UeXBlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NhbGxXaXRoQmVhcmVyVG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbGxXaXRoQmVhcmVyVG9rZW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYW4gaW4tcHJvZ3Jlc3MgYmF0Y2ggaW5mZXJlbmNlIHJlcXVlc3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsQmF0Y2hJbmZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbmNlbEJhdGNoSW5mZXJlbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY291bnQgdG9rZW5zIGZvciBhIG1lc3NhZ2UgcmVxdWVzdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9Db3VudFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ291bnRUb2tlbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBtYW5hZ2VkIGFnZW50IGluIGEgd29ya3NwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGJhdGNoIGluZmVyZW5jZSByZXF1ZXN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUJhdGNoSW5mZXJlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVCYXRjaEluZmVyZW5jZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG1hbmFnZWQgYWdlbnQgZW52aXJvbm1lbnQgaW4gYSB3b3Jrc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRW52aXJvbm1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUVudmlyb25tZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBsb2FkIGEgZmlsZSB0byBhIHdvcmtzcGFjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVGaWxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVGaWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgY2hhdCBjb21wbGV0aW9uIGluZmVyZW5jZSByZXF1ZXN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUluZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlSW5mZXJlbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgbWFuYWdlZCBhZ2VudCBtZW1vcnkgc3RvcmUgaW4gYSB3b3Jrc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlTWVtb3J5U3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU1lbW9yeVN0b3JlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgbWFuYWdlZCBhZ2VudCBzZXNzaW9uIGluIGEgd29ya3NwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBza2lsbCBpbiBhIHdvcmtzcGFjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVTa2lsbCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlU2tpbGwnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSB1c2VyIHByb2ZpbGUgaW4gYSB3b3Jrc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlVXNlclByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVVzZXJQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIGVucm9sbG1lbnQgVVJMIGZvciBhIHVzZXIgcHJvZmlsZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVVc2VyUHJvZmlsZUVucm9sbG1lbnRVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVVzZXJQcm9maWxlRW5yb2xsbWVudFVybCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG1hbmFnZWQgYWdlbnQgY3JlZGVudGlhbCB2YXVsdCBpbiBhIHdvcmtzcGFjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVWYXVsdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlVmF1bHQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSB3b3Jrc3BhY2UgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsYXVkZS1wbGF0Zm9ybS9sYXRlc3QvdXNlcmd1aWRlL2lhbS1hY3Rpb25zLmh0bWwjaWFtLWFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVdvcmtzcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlV29ya3NwYWNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgYmF0Y2ggaW5mZXJlbmNlIHJlcXVlc3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQmF0Y2hJbmZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUJhdGNoSW5mZXJlbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgbWFuYWdlZCBhZ2VudCBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRW52aXJvbm1lbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBmaWxlIGZyb20gYSB3b3Jrc3BhY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xhdWRlLXBsYXRmb3JtL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWFjdGlvbnMuaHRtbCNpYW0tYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIG1lbW9yeSBzdG9yZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGF1ZGUtcGxhdGZvcm0vbGF0ZXN0L3VzZXJndWlkZS9pYW0tYWN0aW9ucy5odG1sI2lhbS1hY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNZW1vcnlTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTWVtb3J5U3RvcmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFud