@aws-cdk/aws-servicecatalogappregistry-alpha 2.72.1-alpha.0 → 2.73.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.72.1",
11
+ "aws-cdk-lib": "2.73.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3436,10 +3436,10 @@
3436
3436
  },
3437
3437
  "name": "@aws-cdk/aws-servicecatalogappregistry-alpha",
3438
3438
  "readme": {
3439
- "markdown": "# AWS ServiceCatalogAppRegistry Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[AWS Service Catalog App Registry](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/appregistry.html)\nenables organizations to create and manage repositories of applications and associated resources.\n\n## Table Of Contents\n\n- [Application](#application)\n- [Application-Associator](#application-associator)\n- [Attribute-Group](#attribute-group)\n- [Associations](#associations)\n - [Associating application with an attribute group](#attribute-group-association)\n - [Associating application with a stack](#resource-association)\n- [Sharing](#sharing)\n - [Sharing an application](#sharing-an-application)\n - [Sharing an attribute group](#sharing-an-attribute-group)\n\nThe `@aws-cdk/aws-servicecatalogappregistry` package contains resources that enable users to automate governance and management of their AWS resources at scale.\n\n```ts nofixture\nimport * as appreg from '@aws-cdk/aws-servicecatalogappregistry-alpha';\n```\n\n## Application\n\nAn AppRegistry application enables you to define your applications and associated resources.\nThe application name must be unique at the account level and it's immutable.\n\n```ts\nconst application = new appreg.Application(this, 'MyFirstApplication', {\n applicationName: 'MyFirstApplicationName',\n description: 'description for my application', // the description is optional\n});\n```\n\nAn application that has been created outside of the stack can be imported into your CDK app.\nApplications can be imported by their ARN via the `Application.fromApplicationArn()` API:\n\n```ts\nconst importedApplication = appreg.Application.fromApplicationArn(\n this,\n 'MyImportedApplication',\n 'arn:aws:servicecatalog:us-east-1:012345678910:/applications/0aqmvxvgmry0ecc4mjhwypun6i',\n);\n```\n\n## Application-Associator\n\nIf you want to create an Application named `MyAssociatedApplication` in account `123456789012` and region `us-east-1`\nand want to associate all stacks in the `App` scope to `MyAssociatedApplication`, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\nThis will create a stack `MyAssociatedApplicationStack` containing an application `MyAssociatedApplication`\nwith the `TagKey` as `managedBy` and `TagValue` as `CDK_Application_Associator`.\n\nBy default, the stack will have System Managed Application Manager console URL as its output for the application created.\nIf you want to remove the output, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // Disables emitting Application Manager url as output\n emitApplicationManagerUrlAsOutput: false,\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\nIf you want to re-use an existing Application with ARN: `arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId`\nand want to associate all stacks in the `App` scope to your imported application, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.existingApplicationFromArn({\n applicationArnValue: 'arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId',\n stackName: 'MyAssociatedApplicationStack',\n })],\n});\n```\n\nIf you want to associate an Attribute Group with application created by `ApplicationAssociator`, then use as shown in the example below:\n\n```ts\nimport * as cdk from \"aws-cdk-lib\";\n\nconst app = new App();\n\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n\n// Associate application to the attribute group.\nassociatedApp.appRegistryApplication.addAttributeGroup('MyAttributeGroup' , {\n attributeGroupName: 'MyAttributeGroupName',\n description: 'Test attribute group',\n attributes: {},\n});\n\n```\n\nIf you are using CDK Pipelines to deploy your application, the application stacks will be inside Stages, and\nApplicationAssociator will not be able to find them. Call `associateStage` on each Stage object before adding it to the\nPipeline, as shown in the example below:\n\n```ts\nimport * as cdk from \"aws-cdk-lib\";\nimport * as codepipeline from \"aws-cdk-lib/pipelines\";\nimport * as codecommit from \"aws-cdk-lib/aws-codecommit\";\ndeclare const repo: codecommit.Repository;\ndeclare const pipeline: codepipeline.CodePipeline;\ndeclare const beta: cdk.Stage;\nclass ApplicationPipelineStack extends cdk.Stack {\n constructor(scope: cdk.App, id: string, props: ApplicationPipelineStackProps) {\n super(scope, id, props);\n\n //associate the stage to application associator.\n props.application.associateStage(beta);\n pipeline.addStage(beta);\n }\n};\n\ninterface ApplicationPipelineStackProps extends cdk.StackProps {\n application: appreg.ApplicationAssociator;\n};\n\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyPipelineAssociatedApplication',\n stackName: 'MyPipelineAssociatedApplicationStack',\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n\nconst cdkPipeline = new ApplicationPipelineStack(app, 'CDKApplicationPipelineStack', {\n application: associatedApp,\n env: {account: '123456789012', region: 'us-east-1'},\n});\n```\n\nBy default, ApplicationAssociator will not perform cross-account stack associations with the target Application,\nto avoid deployment failures for accounts which have not been setup for cross-account associations.\nTo enable cross-account stack associations, make sure all accounts are in the same organization as the\ntarget Application's account and that resource sharing is enabled within the organization.\nIf you wish to turn on cross-account sharing and associations, set the `associateCrossAccountStacks` field to `true`,\nas shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n associateCrossAccountStacks: true,\n applicationName: 'MyAssociatedApplication',\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\n## Attribute Group\n\nAn AppRegistry attribute group acts as a container for user-defined attributes for an application.\nMetadata is attached in a machine-readable format to integrate with automated workflows and tools.\n\n```ts\nconst attributeGroup = new appreg.AttributeGroup(this, 'MyFirstAttributeGroup', {\n attributeGroupName: 'MyFirstAttributeGroupName',\n description: 'description for my attribute group', // the description is optional,\n attributes: {\n project: 'foo',\n team: ['member1', 'member2', 'member3'],\n public: false,\n stages: {\n alpha: 'complete',\n beta: 'incomplete',\n release: 'not started'\n }\n }\n});\n```\n\nAn attribute group that has been created outside of the stack can be imported into your CDK app.\nAttribute groups can be imported by their ARN via the `AttributeGroup.fromAttributeGroupArn()` API:\n\n```ts\nconst importedAttributeGroup = appreg.AttributeGroup.fromAttributeGroupArn(\n this,\n 'MyImportedAttrGroup',\n 'arn:aws:servicecatalog:us-east-1:012345678910:/attribute-groups/0aqmvxvgmry0ecc4mjhwypun6i',\n);\n```\n\n## Associations\n\nYou can associate your appregistry application with attribute groups and resources.\nResources are CloudFormation stacks that you can associate with an application to group relevant\nstacks together to enable metadata rich insights into your applications and resources.\nA Cloudformation stack can only be associated with one appregistry application.\nIf a stack is associated with multiple applications in your app or is already associated with one,\nCDK will fail at deploy time.\n\n### Associating application with an attribute group\n\nYou can associate an attribute group with an application with the `associateAttributeGroup()` API:\n\n```ts\ndeclare const application: appreg.Application;\ndeclare const attributeGroup: appreg.AttributeGroup;\napplication.associateAttributeGroup(attributeGroup);\n```\n\n### Associating an attribute group with application\n\nYou can associate an application with an attribute group with `associateWith`:\n\n```ts\ndeclare const application: appreg.Application;\ndeclare const attributeGroup: appreg.AttributeGroup;\nattributeGroup.associateWith(application);\n```\n\n### Associating application with a Stack\n\nYou can associate a stack with an application with the `associateStack()` API:\n\n```ts\nconst app = new App();\nconst myStack = new Stack(app, 'MyStack');\n\ndeclare const application: appreg.Application;\napplication.associateStack(myStack);\n```\n\n## Sharing\n\nYou can share your AppRegistry applications and attribute groups with AWS Organizations, Organizational Units (OUs), AWS accounts within an organization, as well as IAM roles and users. AppRegistry requires that AWS Organizations is enabled in an account before deploying a share of an application or attribute group.\n\n### Sharing an application\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const application: appreg.Application;\ndeclare const myRole: iam.IRole;\ndeclare const myUser: iam.IUser;\napplication.shareApplication('MyShareId', {\n name:'MyShare',\n accounts: ['123456789012'],\n organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],\n roles: [myRole],\n users: [myUser],\n});\n```\n\nE.g., sharing an application with multiple accounts and allowing the accounts to associate resources to the application.\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const application: appreg.Application;\napplication.shareApplication('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012', '234567890123'],\n sharePermission: appreg.SharePermission.ALLOW_ACCESS,\n});\n```\n\n### Sharing an attribute group\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const attributeGroup: appreg.AttributeGroup;\ndeclare const myRole: iam.IRole;\ndeclare const myUser: iam.IUser;\nattributeGroup.shareAttributeGroup('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012'],\n organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],\n roles: [myRole],\n users: [myUser],\n});\n```\n\nE.g., sharing an application with multiple accounts and allowing the accounts to associate applications to the attribute group.\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const attributeGroup: appreg.AttributeGroup;\nattributeGroup.shareAttributeGroup('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012', '234567890123'],\n sharePermission: appreg.SharePermission.ALLOW_ACCESS,\n});\n```\n"
3439
+ "markdown": "# AWS ServiceCatalogAppRegistry Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[AWS Service Catalog App Registry](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/appregistry.html)\nenables organizations to create and manage repositories of applications and associated resources.\n\n## Table Of Contents\n\n- [Application](#application)\n- [Application-Associator](#application-associator)\n- [Attribute-Group](#attribute-group)\n- [Associations](#associations)\n - [Associating application with an attribute group](#attribute-group-association)\n - [Associating application with a stack](#resource-association)\n- [Sharing](#sharing)\n - [Sharing an application](#sharing-an-application)\n - [Sharing an attribute group](#sharing-an-attribute-group)\n\nThe `@aws-cdk/aws-servicecatalogappregistry` package contains resources that enable users to automate governance and management of their AWS resources at scale.\n\n```ts nofixture\nimport * as appreg from '@aws-cdk/aws-servicecatalogappregistry-alpha';\n```\n\n## Application\n\nAn AppRegistry application enables you to define your applications and associated resources.\nThe application name must be unique at the account level and it's immutable.\n\n```ts\nconst application = new appreg.Application(this, 'MyFirstApplication', {\n applicationName: 'MyFirstApplicationName',\n description: 'description for my application', // the description is optional\n});\n```\n\nAn application that has been created outside of the stack can be imported into your CDK app.\nApplications can be imported by their ARN via the `Application.fromApplicationArn()` API:\n\n```ts\nconst importedApplication = appreg.Application.fromApplicationArn(\n this,\n 'MyImportedApplication',\n 'arn:aws:servicecatalog:us-east-1:012345678910:/applications/0aqmvxvgmry0ecc4mjhwypun6i',\n);\n```\n\n## Application-Associator\n\n`ApplicationAssociator` defines an AppRegistry application to contain all the stacks in deployed through your cdk package. This helps to manage all the\ncdk deployed resources.\n\n### Create a new application to associate all the stacks in the cdk.App scope\n\nIf you want to create an Application named `MyAssociatedApplication` in account `123456789012` and region `us-east-1`\nand want to associate all stacks in the `App` scope to `MyAssociatedApplication`, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\nThis will create a stack `MyAssociatedApplicationStack` containing an application `MyAssociatedApplication`\nwith the `TagKey` as `managedBy` and `TagValue` as `CDK_Application_Associator`.\n\nBy default, the stack will have System Managed Application Manager console URL as its output for the application created.\nIf you want to remove the output, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // Disables emitting Application Manager url as output\n emitApplicationManagerUrlAsOutput: false,\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\n### Import existing application to associate all the stacks in the cdk.App scope\n\nIf you want to re-use an existing Application with ARN: `arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId`\nand want to associate all stacks in the `App` scope to your imported application, then use as shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.existingApplicationFromArn({\n applicationArnValue: 'arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId',\n stackName: 'MyAssociatedApplicationStack',\n })],\n});\n```\n\n### Associate attribute group to the application used by `ApplicationAssociator`\n\nIf you want to associate an Attribute Group with application created by `ApplicationAssociator`, then use as shown in the example below:\n\n```ts\nimport * as cdk from \"aws-cdk-lib\";\n\nconst app = new App();\n\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyAssociatedApplication',\n // 'Application containing stacks deployed via CDK.' is the default\n applicationDescription: 'Associated Application description',\n stackName: 'MyAssociatedApplicationStack',\n // AWS Account and Region that are implied by the current CLI configuration is the default\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n\n// Associate application to the attribute group.\nassociatedApp.appRegistryApplication.addAttributeGroup('MyAttributeGroup' , {\n attributeGroupName: 'MyAttributeGroupName',\n description: 'Test attribute group',\n attributes: {},\n});\n\n```\n\n### Associate stacks deployed by CDK pipelines\n\nIf you are using CDK Pipelines to deploy your application, the application stacks will be inside Stages, and\nApplicationAssociator will not be able to find them. Call `associateStage` on each Stage object before adding it to the\nPipeline, as shown in the example below:\n\n```ts\nimport * as cdk from \"aws-cdk-lib\";\nimport * as codepipeline from \"aws-cdk-lib/pipelines\";\nimport * as codecommit from \"aws-cdk-lib/aws-codecommit\";\ndeclare const repo: codecommit.Repository;\ndeclare const pipeline: codepipeline.CodePipeline;\ndeclare const beta: cdk.Stage;\nclass ApplicationPipelineStack extends cdk.Stack {\n constructor(scope: cdk.App, id: string, props: ApplicationPipelineStackProps) {\n super(scope, id, props);\n\n //associate the stage to application associator.\n props.application.associateStage(beta);\n pipeline.addStage(beta);\n }\n};\n\ninterface ApplicationPipelineStackProps extends cdk.StackProps {\n application: appreg.ApplicationAssociator;\n};\n\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n applicationName: 'MyPipelineAssociatedApplication',\n stackName: 'MyPipelineAssociatedApplicationStack',\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n\nconst cdkPipeline = new ApplicationPipelineStack(app, 'CDKApplicationPipelineStack', {\n application: associatedApp,\n env: {account: '123456789012', region: 'us-east-1'},\n});\n```\n\n### Associate cross-account stack\n\nBy default, ApplicationAssociator will not perform cross-account stack associations with the target Application,\nto avoid deployment failures for accounts which have not been setup for cross-account associations.\nTo enable cross-account stack associations, make sure all accounts are in the same organization as the\ntarget Application's account and that resource sharing is enabled within the organization.\nIf you wish to turn on cross-account sharing and associations, set the `associateCrossAccountStacks` field to `true`,\nas shown in the example below:\n\n```ts\nconst app = new App();\nconst associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {\n applications: [appreg.TargetApplication.createApplicationStack({\n associateCrossAccountStacks: true,\n applicationName: 'MyAssociatedApplication',\n env: { account: '123456789012', region: 'us-east-1' },\n })],\n});\n```\n\n### Associate cross-region stack\n\nCurrently, cross-region stack association is not supported.\n\n## Attribute Group\n\nAn AppRegistry attribute group acts as a container for user-defined attributes for an application.\nMetadata is attached in a machine-readable format to integrate with automated workflows and tools.\nThe attribute group name must be unique at the account level and it's immutable.\n\n```ts\nconst attributeGroup = new appreg.AttributeGroup(this, 'MyFirstAttributeGroup', {\n attributeGroupName: 'MyFirstAttributeGroupName',\n description: 'description for my attribute group', // the description is optional,\n attributes: {\n project: 'foo',\n team: ['member1', 'member2', 'member3'],\n public: false,\n stages: {\n alpha: 'complete',\n beta: 'incomplete',\n release: 'not started'\n }\n }\n});\n```\n\nAn attribute group that has been created outside of the stack can be imported into your CDK app.\nAttribute groups can be imported by their ARN via the `AttributeGroup.fromAttributeGroupArn()` API:\n\n```ts\nconst importedAttributeGroup = appreg.AttributeGroup.fromAttributeGroupArn(\n this,\n 'MyImportedAttrGroup',\n 'arn:aws:servicecatalog:us-east-1:012345678910:/attribute-groups/0aqmvxvgmry0ecc4mjhwypun6i',\n);\n```\n\n## Associations\n\nYou can associate your appregistry application with attribute groups and resources.\nResources are CloudFormation stacks that you can associate with an application to group relevant\nstacks together to enable metadata rich insights into your applications and resources.\nA Cloudformation stack can only be associated with one appregistry application.\nIf a stack is associated with multiple applications in your app or is already associated with one,\nCDK will fail at deploy time.\n\n### Associating application with a new attribute group\n\nYou can create and associate an attribute group to an application with the `addAttributeGroup()` API:\n\n```ts\ndeclare const application: appreg.Application;\ndeclare const attributeGroup: appreg.AttributeGroup;\napplication.addAttributeGroup('MyAttributeGroupId' , {\n attributeGroupName: 'MyAttributeGroupName',\n description: 'Test attribute group',\n attributes: {},\n});\n```\n\n### Associating an attribute group with application\n\nYou can associate an application with an attribute group with `associateWith`:\n\n```ts\ndeclare const application: appreg.Application;\ndeclare const attributeGroup: appreg.AttributeGroup;\nattributeGroup.associateWith(application);\n```\n\n### Associating application with a Stack\n\nYou can associate a stack with an application with the `associateApplicationWithStack()` API:\n\n```ts\nconst app = new App();\nconst myStack = new Stack(app, 'MyStack');\n\ndeclare const application: appreg.Application;\napplication.associateApplicationWithStack(myStack);\n```\n\n## Sharing\n\nYou can share your AppRegistry applications and attribute groups with AWS Organizations, Organizational Units (OUs), AWS accounts within an organization, as well as IAM roles and users. AppRegistry requires that AWS Organizations is enabled in an account before deploying a share of an application or attribute group.\n\n### Sharing an application\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const application: appreg.Application;\ndeclare const myRole: iam.IRole;\ndeclare const myUser: iam.IUser;\napplication.shareApplication('MyShareId', {\n name:'MyShare',\n accounts: ['123456789012'],\n organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],\n roles: [myRole],\n users: [myUser],\n});\n```\n\nE.g., sharing an application with multiple accounts and allowing the accounts to associate resources to the application.\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const application: appreg.Application;\napplication.shareApplication('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012', '234567890123'],\n sharePermission: appreg.SharePermission.ALLOW_ACCESS,\n});\n```\n\n### Sharing an attribute group\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const attributeGroup: appreg.AttributeGroup;\ndeclare const myRole: iam.IRole;\ndeclare const myUser: iam.IUser;\nattributeGroup.shareAttributeGroup('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012'],\n organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],\n roles: [myRole],\n users: [myUser],\n});\n```\n\nE.g., sharing an application with multiple accounts and allowing the accounts to associate applications to the attribute group.\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const attributeGroup: appreg.AttributeGroup;\nattributeGroup.shareAttributeGroup('MyShareId', {\n name: 'MyShare',\n accounts: ['123456789012', '234567890123'],\n sharePermission: appreg.SharePermission.ALLOW_ACCESS,\n});\n```\n"
3440
3440
  },
3441
3441
  "repository": {
3442
- "directory": "packages/individual-packages/aws-servicecatalogappregistry",
3442
+ "directory": "packages/@aws-cdk/aws-servicecatalogappregistry",
3443
3443
  "type": "git",
3444
3444
  "url": "https://github.com/aws/aws-cdk.git"
3445
3445
  },
@@ -5288,6 +5288,6 @@
5288
5288
  "symbolId": "lib/target-application:TargetApplicationCommonOptions"
5289
5289
  }
5290
5290
  },
5291
- "version": "2.72.1-alpha.0",
5291
+ "version": "2.73.0-alpha.0",
5292
5292
  "fingerprint": "**********"
5293
5293
  }
Binary file
package/README.md CHANGED
@@ -61,6 +61,11 @@ const importedApplication = appreg.Application.fromApplicationArn(
61
61
 
62
62
  ## Application-Associator
63
63
 
64
+ `ApplicationAssociator` defines an AppRegistry application to contain all the stacks in deployed through your cdk package. This helps to manage all the
65
+ cdk deployed resources.
66
+
67
+ ### Create a new application to associate all the stacks in the cdk.App scope
68
+
64
69
  If you want to create an Application named `MyAssociatedApplication` in account `123456789012` and region `us-east-1`
65
70
  and want to associate all stacks in the `App` scope to `MyAssociatedApplication`, then use as shown in the example below:
66
71
 
@@ -100,6 +105,8 @@ const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplicati
100
105
  });
101
106
  ```
102
107
 
108
+ ### Import existing application to associate all the stacks in the cdk.App scope
109
+
103
110
  If you want to re-use an existing Application with ARN: `arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId`
104
111
  and want to associate all stacks in the `App` scope to your imported application, then use as shown in the example below:
105
112
 
@@ -113,6 +120,8 @@ const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplicati
113
120
  });
114
121
  ```
115
122
 
123
+ ### Associate attribute group to the application used by `ApplicationAssociator`
124
+
116
125
  If you want to associate an Attribute Group with application created by `ApplicationAssociator`, then use as shown in the example below:
117
126
 
118
127
  ```ts
@@ -140,6 +149,8 @@ associatedApp.appRegistryApplication.addAttributeGroup('MyAttributeGroup' , {
140
149
 
141
150
  ```
142
151
 
152
+ ### Associate stacks deployed by CDK pipelines
153
+
143
154
  If you are using CDK Pipelines to deploy your application, the application stacks will be inside Stages, and
144
155
  ApplicationAssociator will not be able to find them. Call `associateStage` on each Stage object before adding it to the
145
156
  Pipeline, as shown in the example below:
@@ -180,6 +191,8 @@ const cdkPipeline = new ApplicationPipelineStack(app, 'CDKApplicationPipelineSta
180
191
  });
181
192
  ```
182
193
 
194
+ ### Associate cross-account stack
195
+
183
196
  By default, ApplicationAssociator will not perform cross-account stack associations with the target Application,
184
197
  to avoid deployment failures for accounts which have not been setup for cross-account associations.
185
198
  To enable cross-account stack associations, make sure all accounts are in the same organization as the
@@ -198,10 +211,15 @@ const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplicati
198
211
  });
199
212
  ```
200
213
 
214
+ ### Associate cross-region stack
215
+
216
+ Currently, cross-region stack association is not supported.
217
+
201
218
  ## Attribute Group
202
219
 
203
220
  An AppRegistry attribute group acts as a container for user-defined attributes for an application.
204
221
  Metadata is attached in a machine-readable format to integrate with automated workflows and tools.
222
+ The attribute group name must be unique at the account level and it's immutable.
205
223
 
206
224
  ```ts
207
225
  const attributeGroup = new appreg.AttributeGroup(this, 'MyFirstAttributeGroup', {
@@ -240,14 +258,18 @@ A Cloudformation stack can only be associated with one appregistry application.
240
258
  If a stack is associated with multiple applications in your app or is already associated with one,
241
259
  CDK will fail at deploy time.
242
260
 
243
- ### Associating application with an attribute group
261
+ ### Associating application with a new attribute group
244
262
 
245
- You can associate an attribute group with an application with the `associateAttributeGroup()` API:
263
+ You can create and associate an attribute group to an application with the `addAttributeGroup()` API:
246
264
 
247
265
  ```ts
248
266
  declare const application: appreg.Application;
249
267
  declare const attributeGroup: appreg.AttributeGroup;
250
- application.associateAttributeGroup(attributeGroup);
268
+ application.addAttributeGroup('MyAttributeGroupId' , {
269
+ attributeGroupName: 'MyAttributeGroupName',
270
+ description: 'Test attribute group',
271
+ attributes: {},
272
+ });
251
273
  ```
252
274
 
253
275
  ### Associating an attribute group with application
@@ -262,14 +284,14 @@ attributeGroup.associateWith(application);
262
284
 
263
285
  ### Associating application with a Stack
264
286
 
265
- You can associate a stack with an application with the `associateStack()` API:
287
+ You can associate a stack with an application with the `associateApplicationWithStack()` API:
266
288
 
267
289
  ```ts
268
290
  const app = new App();
269
291
  const myStack = new Stack(app, 'MyStack');
270
292
 
271
293
  declare const application: appreg.Application;
272
- application.associateStack(myStack);
294
+ application.associateApplicationWithStack(myStack);
273
295
  ```
274
296
 
275
297
  ## Sharing
@@ -71,6 +71,6 @@ class ApplicationAssociator extends constructs_1.Construct {
71
71
  }
72
72
  }
73
73
  _a = JSII_RTTI_SYMBOL_1;
74
- ApplicationAssociator[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.ApplicationAssociator", version: "2.72.1-alpha.0" };
74
+ ApplicationAssociator[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.ApplicationAssociator", version: "2.73.0-alpha.0" };
75
75
  exports.ApplicationAssociator = ApplicationAssociator;
76
76
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tYXNzb2NpYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLWFzc29jaWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUF1QztBQUV2QyxpRUFBeUU7QUFlekU7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQVFsRCxZQUFZLEtBQWMsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUpGLHFCQUFnQixHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDOzs7Ozs7K0NBTG5ELHFCQUFxQjs7OztRQVc5QixJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGlLQUFpSyxDQUFDLENBQUM7U0FDcEw7UUFFRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDO1FBQ2hGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLDhDQUEyQixDQUFDLElBQUksRUFBRTtZQUM5RCwyQkFBMkIsRUFBRSxJQUFJLENBQUMsMkJBQTJCO1NBQzlELENBQUMsQ0FBQyxDQUFDO0tBQ0w7SUFFRDs7O09BR0c7SUFDSSxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSw4Q0FBMkIsQ0FBQyxJQUFJLEVBQUU7WUFDOUQsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtTQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxLQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7S0FDekI7Ozs7QUFsRFUsc0RBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnLi9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBDaGVja2VkU3RhZ2VTdGFja0Fzc29jaWF0b3IgfSBmcm9tICcuL2FzcGVjdHMvc3RhY2stYXNzb2NpYXRvcic7XG5pbXBvcnQgeyBUYXJnZXRBcHBsaWNhdGlvbiB9IGZyb20gJy4vdGFyZ2V0LWFwcGxpY2F0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBTZXJ2aWNlIENhdGFsb2cgQXBwUmVnaXN0cnkgQXBwbGljYXRpb24gQXNzb2NpYXRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uQXNzb2NpYXRvclByb3BzIHtcbiAgLyoqXG4gICAqIEFwcGxpY2F0aW9uIGFzc29jaWF0b3IgcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFbXB0eSBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uczogVGFyZ2V0QXBwbGljYXRpb25bXTtcbn1cblxuLyoqXG4gKiBBbiBBcHBSZWdpc3RyeSBjb25zdHJ1Y3QgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYW4gYXBwbGljYXRpb24gd2l0aCB0aGUgZ2l2ZW4gbmFtZSBhbmQgZGVzY3JpcHRpb24uXG4gKlxuICogVGhlIGFwcGxpY2F0aW9uIG5hbWUgbXVzdCBiZSB1bmlxdWUgYXQgdGhlIGFjY291bnQgbGV2ZWwgcGVyIHJlZ2lvbiBhbmQgaXQncyBpbW11dGFibGUuXG4gKiBUaGlzIGNvbnN0cnVjdCB3aWxsIGF1dG9tYXRpY2FsbHkgYXNzb2NpYXRlIGFsbCBzdGFja3MgaW4gdGhlIGdpdmVuIHNjb3BlLCBob3dldmVyXG4gKiBpbiBjYXNlIG9mIGEgYFBpcGVsaW5lYCBzdGFjaywgc3RhZ2UgdW5kZXJuZWF0aCB0aGUgcGlwZWxpbmUgd2lsbCBub3QgYXV0b21hdGljYWxseSBiZSBhc3NvY2lhdGVkIGFuZFxuICogbmVlZHMgdG8gYmUgYXNzb2NpYXRlZCBzZXBhcmF0ZWx5LlxuICpcbiAqIElmIGNyb3NzIGFjY291bnQgc3RhY2sgaXMgZGV0ZWN0ZWQgYW5kIGBhc3NvY2lhdGVDcm9zc0FjY291bnRTdGFja3NgIGluIGBUYXJnZXRBcHBsaWNhdGlvbk9wdGlvbnNgIGlzIGB0cnVlYCxcbiAqIHRoZW4gdGhlIGFwcGxpY2F0aW9uIHdpbGwgYXV0b21hdGljYWxseSBiZSBzaGFyZWQgd2l0aCB0aGUgY29uc3VtZXIgYWNjb3VudHMgdG8gYWxsb3cgYXNzb2NpYXRpb25zLlxuICogT3RoZXJ3aXNlLCB0aGUgYXBwbGljYXRpb24gd2lsbCBub3QgYmUgc2hhcmVkLlxuICogQ3Jvc3MgYWNjb3VudCBmZWF0dXJlIHdpbGwgb25seSB3b3JrIGZvciBub24gZW52aXJvbm1lbnQgYWdub3N0aWMgc3RhY2tzLlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25Bc3NvY2lhdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIENyZWF0ZWQgb3IgaW1wb3J0ZWQgYXBwbGljYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzb2NpYXRlZFN0YWdlczogU2V0PGNkay5TdGFnZT4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzb2NpYXRlQ3Jvc3NBY2NvdW50U3RhY2tzPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkFwcCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcGxpY2F0aW9uQXNzb2NpYXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcy5hcHBsaWNhdGlvbnMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHBhc3MgZXhhY3RseSAxIGluc3RhbmNlIG9mIFRhcmdldEFwcGxpY2F0aW9uLmNyZWF0ZUFwcGxpY2F0aW9uU3RhY2soKSBvciBUYXJnZXRBcHBsaWNhdGlvbi5leGlzdGluZ0FwcGxpY2F0aW9uRnJvbUFybigpIGludG8gdGhlIFwiYXBwbGljYXRpb25zXCIgcHJvcGVydHknKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRBcHBsaWNhdGlvbiA9IHByb3BzLmFwcGxpY2F0aW9uc1swXTtcbiAgICBjb25zdCB0YXJnZXRCaW5kUmVzdWx0ID0gdGFyZ2V0QXBwbGljYXRpb24uYmluZChzY29wZSk7XG4gICAgdGhpcy5hcHBsaWNhdGlvbiA9IHRhcmdldEJpbmRSZXN1bHQuYXBwbGljYXRpb247XG4gICAgdGhpcy5hc3NvY2lhdGVDcm9zc0FjY291bnRTdGFja3MgPSB0YXJnZXRCaW5kUmVzdWx0LmFzc29jaWF0ZUNyb3NzQWNjb3VudFN0YWNrcztcbiAgICBjZGsuQXNwZWN0cy5vZihzY29wZSkuYWRkKG5ldyBDaGVja2VkU3RhZ2VTdGFja0Fzc29jaWF0b3IodGhpcywge1xuICAgICAgYXNzb2NpYXRlQ3Jvc3NBY2NvdW50U3RhY2tzOiB0aGlzLmFzc29jaWF0ZUNyb3NzQWNjb3VudFN0YWNrcyxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlIHRoaXMgYXBwbGljYXRpb24gd2l0aCB0aGUgZ2l2ZW4gc3RhZ2UuXG4gICAqXG4gICAqL1xuICBwdWJsaWMgYXNzb2NpYXRlU3RhZ2Uoc3RhZ2U6IGNkay5TdGFnZSk6IGNkay5TdGFnZSB7XG4gICAgdGhpcy5hc3NvY2lhdGVkU3RhZ2VzLmFkZChzdGFnZSk7XG4gICAgY2RrLkFzcGVjdHMub2Yoc3RhZ2UpLmFkZChuZXcgQ2hlY2tlZFN0YWdlU3RhY2tBc3NvY2lhdG9yKHRoaXMsIHtcbiAgICAgIGFzc29jaWF0ZUNyb3NzQWNjb3VudFN0YWNrczogdGhpcy5hc3NvY2lhdGVDcm9zc0FjY291bnRTdGFja3MsXG4gICAgfSkpO1xuICAgIHJldHVybiBzdGFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgaWYgYSBzdGFnZSBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgdG8gdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKi9cbiAgcHVibGljIGlzU3RhZ2VBc3NvY2lhdGVkKHN0YWdlOiBjZGsuU3RhZ2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hc3NvY2lhdGVkU3RhZ2VzLmhhcyhzdGFnZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBBcHBSZWdpc3RyeSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBnZXQgYXBwUmVnaXN0cnlBcHBsaWNhdGlvbigpOiBJQXBwbGljYXRpb24ge1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uO1xuICB9XG59XG4iXX0=
@@ -208,6 +208,6 @@ class Application extends ApplicationBase {
208
208
  }
209
209
  }
210
210
  _a = JSII_RTTI_SYMBOL_1;
211
- Application[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.Application", version: "2.72.1-alpha.0" };
211
+ Application[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.Application", version: "2.73.0-alpha.0" };
212
212
  exports.Application = Application;
213
213
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpREFBdUQ7QUFDdkQsbUNBQW1DO0FBRW5DLGlFQUFrRTtBQUNsRSx1REFBb0U7QUFDcEUscUNBQThGO0FBQzlGLDJDQUFzRDtBQUN0RCxxREFBc0Q7QUFDdEQsNkZBQWlJO0FBRWpJLE1BQU0sd0NBQXdDLEdBQUcsMEZBQTBGLENBQUM7QUFDNUksTUFBTSwyQ0FBMkMsR0FBRyxrR0FBa0csQ0FBQztBQWdIdkosTUFBZSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBQW5EOztRQUltQiw4QkFBeUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuRCx3QkFBbUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTRJaEUsQ0FBQztJQTFJQzs7Ozs7T0FLRztJQUNJLHVCQUF1QixDQUFDLGNBQStCO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSw0REFBNEIsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLE1BQU0sRUFBRSxFQUFFO2dCQUMzRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQy9CLGNBQWMsRUFBRSxjQUFjLENBQUMsZ0JBQWdCO2FBQ2hELENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5RDtLQUNGO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FBQyxFQUFVLEVBQUUsS0FBcUM7UUFDeEUsTUFBTSxjQUFjLEdB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LFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLHFCQUFxQjtZQUN0QixXQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSw4RkFBOEYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0tBQ3BKO0lBRVMsa0JBQWtCLENBQUMsZUFBdUI7UUFDbEQsT0FBTyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztLQUN0RDtJQUVPLHdCQUF3QixDQUFDLEtBQXVCO1FBQ3RELDJCQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pHLDJCQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1RywyQkFBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUN0Rzs7OztBQXBFVSxrQ0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlU2hhcmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFN0YWdlU3RhY2tBc3NvY2lhdG9yIH0gZnJvbSAnLi9hc3BlY3RzL3N0YWNrLWFzc29jaWF0b3InO1xuaW1wb3J0IHsgQXR0cmlidXRlR3JvdXAsIElBdHRyaWJ1dGVHcm91cCB9IGZyb20gJy4vYXR0cmlidXRlLWdyb3VwJztcbmltcG9ydCB7IGdldFByaW5jaXBhbHNmb3JTaGFyaW5nLCBoYXNoVmFsdWVzLCBTaGFyZU9wdGlvbnMsIFNoYXJlUGVybWlzc2lvbiB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGlzQWNjb3VudFVucmVzb2x2ZWQgfSBmcm9tICcuL3ByaXZhdGUvdXRpbHMnO1xuaW1wb3J0IHsgSW5wdXRWYWxpZGF0b3IgfSBmcm9tICcuL3ByaXZhdGUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDZm5BcHBsaWNhdGlvbiwgQ2ZuQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbiwgQ2ZuUmVzb3VyY2VBc3NvY2lhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZXJ2aWNlY2F0YWxvZ2FwcHJlZ2lzdHJ5JztcblxuY29uc3QgQVBQTElDQVRJT05fUkVBRF9PTkxZX1JBTV9QRVJNSVNTSU9OX0FSTiA9ICdhcm46YXdzOnJhbTo6YXdzOnBlcm1pc3Npb24vQVdTUkFNUGVybWlzc2lvblNlcnZpY2VDYXRhbG9nQXBwUmVnaXN0cnlBcHBsaWNhdGlvblJlYWRPbmx5JztcbmNvbnN0IEFQUExJQ0FUSU9OX0FMTE9XX0FDQ0VTU19SQU1fUEVSTUlTU0lPTl9BUk4gPSAnYXJuOmF3czpyYW06OmF3czpwZXJtaXNzaW9uL0FXU1JBTVBlcm1pc3Npb25TZXJ2aWNlQ2F0YWxvZ0FwcFJlZ2lzdHJ5QXBwbGljYXRpb25BbGxvd0Fzc29jaWF0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFNlcnZpY2UgQ2F0YWxvZyBBcHBSZWdpc3RyeSBBdHRyaWJ1dGUgR3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVHcm91cEFzc29jaWF0aW9uUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBmb3IgYXR0cmlidXRlIGdyb3VwLlxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciBhdHRyaWJ1dGUgZ3JvdXAuXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb24gcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEpTT04gb2YgbmVzdGVkIGtleS12YWx1ZSBwYWlycyB0aGF0IHJlcHJlc2VudCB0aGUgYXR0cmlidXRlcyBpbiB0aGUgZ3JvdXAuXG4gICAqIEF0dHJpYnV0ZXMgbWF5YmUgYW4gZW1wdHkgSlNPTiAne30nLCBidXQgbXVzdCBiZSBleHBsaWNpdGx5IHN0YXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogQSBTZXJ2aWNlIENhdGFsb2cgQXBwUmVnaXN0cnkgQXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcGxpY2F0aW9uIGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQXNzb2NpYXRlIHRoaXMgYXBwbGljYXRpb24gd2l0aCBhbiBhdHRyaWJ1dGUgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGVHcm91cCBBcHBSZWdpc3RyeSBhdHRyaWJ1dGUgZ3JvdXBcbiAgICovXG4gIGFzc29jaWF0ZUF0dHJpYnV0ZUdyb3VwKGF0dHJpYnV0ZUdyb3VwOiBJQXR0cmlidXRlR3JvdXApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gYXR0cmlidXRlIGdyb3VwIGFuZCBhc3NvY2lhdGUgdGhpcyBhcHBsaWNhdGlvbiB3aXRoIHRoZSBjcmVhdGVkIGF0dHJpYnV0ZSBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGlkIG5hbWUgb2YgdGhlIEF0dHJpYnV0ZUdyb3VwIGNvbnN0cnVjdCB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gYXR0cmlidXRlR3JvdXBQcm9wcyBBcHBSZWdpc3RyeSBhdHRyaWJ1dGUgZ3JvdXAgcHJvcHNcbiAgICovXG4gIGFkZEF0dHJpYnV0ZUdyb3VwKGlkOiBzdHJpbmcsIGF0dHJpYnV0ZUdyb3VwUHJvcHM6IEF0dHJpYnV0ZUdyb3VwQXNzb2NpYXRpb25Qcm9wcyk6IElBdHRyaWJ1dGVHcm91cDtcblxuICAvKipcbiAgICogQXNzb2NpYXRlIHRoaXMgYXBwbGljYXRpb24gd2l0aCBhIENsb3VkRm9ybWF0aW9uIHN0YWNrLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGFzc29jaWF0ZUFwcGxpY2F0aW9uV2l0aFN0YWNrYCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gc3RhY2sgYSBDRk4gc3RhY2tcbiAgICovXG4gIGFzc29jaWF0ZVN0YWNrKHN0YWNrOiBjZGsuU3RhY2spOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgYSBDbG91ZGZvcm1hdGlvbiBzdGF0Y2sgd2l0aCB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGdpdmVuIHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2sgYSBDRk4gc3RhY2tcbiAgICovXG4gIGFzc29jaWF0ZUFwcGxpY2F0aW9uV2l0aFN0YWNrKHN0YWNrOiBjZGsuU3RhY2spOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTaGFyZSB0aGlzIGFwcGxpY2F0aW9uIHdpdGggb3RoZXIgSUFNIGVudGl0aWVzLCBhY2NvdW50cywgb3IgT1VzLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBuYW1lIGZvciB0aGUgc2hhcmUuXG4gICAqIEBwYXJhbSBzaGFyZU9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSBzaGFyZS5cbiAgICovXG4gIHNoYXJlQXBwbGljYXRpb24oaWQ6IHN0cmluZywgc2hhcmVPcHRpb25zOiBTaGFyZU9wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgdGhpcyBhcHBsaWNhdGlvbiB3aXRoIGFsbCBzdGFja3MgdW5kZXIgdGhlIGNvbnN0cnVjdCBub2RlLlxuICAgKiBOT1RFOiBUaGlzIG1ldGhvZCB3b24ndCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVyIHN0YWNrcyB1bmRlciBwaXBlbGluZSBzdGFnZXMsXG4gICAqIGFuZCByZXF1aXJlcyBhc3NvY2lhdGlvbiBvZiBlYWNoIHBpcGVsaW5lIHN0YWdlIGJ5IGNhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aCBzdGFnZSBDb25zdHJ1Y3QuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgY2RrIENvbnN0cnVjdFxuICAgKi9cbiAgYXNzb2NpYXRlQWxsU3RhY2tzSW5TY29wZShjb25zdHJ1Y3Q6IENvbnN0cnVjdCk6IHZvaWQ7XG5cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFNlcnZpY2UgQ2F0YWxvZyBBcHBSZWdpc3RyeSBBcHBsaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uUHJvcHMge1xuICAvKipcbiAgICogRW5mb3JjZXMgYSBwYXJ0aWN1bGFyIHBoeXNpY2FsIGFwcGxpY2F0aW9uIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gZm9yIGFwcGxpY2F0aW9uLlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgQXBwbGljYXRpb25CYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUFwcGxpY2F0aW9uIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFwcGxpY2F0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhcHBsaWNhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzb2NpYXRlZEF0dHJpYnV0ZUdyb3VwczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzb2NpYXRlZFJlc291cmNlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZSBhbiBhdHRyaWJ1dGUgZ3JvdXAgd2l0aCBhcHBsaWNhdGlvblxuICAgKiBJZiB0aGUgYXR0cmlidXRlIGdyb3VwIGlzIGFscmVhZHkgYXNzb2NpYXRlZCwgaXQgd2lsbCBpZ25vcmUgZHVwbGljYXRlIHJlcXVlc3QuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgQXR0cmlidXRlR3JvdXAuYXNzb2NpYXRlV2l0aGAgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBhc3NvY2lhdGVBdHRyaWJ1dGVHcm91cChhdHRyaWJ1dGVHcm91cDogSUF0dHJpYnV0ZUdyb3VwKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFzc29jaWF0ZWRBdHRyaWJ1dGVHcm91cHMuaGFzKGF0dHJpYnV0ZUdyb3VwLm5vZGUuYWRkcikpIHtcbiAgICAgIGNvbnN0IGhhc2hJZCA9IHRoaXMuZ2VuZXJhdGVVbmlxdWVIYXNoKGF0dHJpYnV0ZUdyb3VwLm5vZGUuYWRkcik7XG4gICAgICBuZXcgQ2ZuQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbih0aGlzLCBgQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbiR7aGFzaElkfWAsIHtcbiAgICAgICAgYXBwbGljYXRpb246IHRoaXMuYXBwbGljYXRpb25JZCxcbiAgICAgICAgYXR0cmlidXRlR3JvdXA6IGF0dHJpYnV0ZUdyb3VwLmF0dHJpYnV0ZUdyb3VwSWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXNzb2NpYXRlZEF0dHJpYnV0ZUdyb3Vwcy5hZGQoYXR0cmlidXRlR3JvdXAubm9kZS5hZGRyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGF0dHJpYnV0ZSBncm91cCBhbmQgYXNzb2NpYXRlIHRoaXMgYXBwbGljYXRpb24gd2l0aCB0aGUgY3JlYXRlZCBhdHRyaWJ1dGUgZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgYWRkQXR0cmlidXRlR3JvdXAoaWQ6IHN0cmluZywgcHJvcHM6IEF0dHJpYnV0ZUdyb3VwQXNzb2NpYXRpb25Qcm9wcyk6IElBdHRyaWJ1dGVHcm91cCB7XG4gICAgY29uc3QgYXR0cmlidXRlR3JvdXAgPSBuZXcgQXR0cmlidXRlR3JvdXAodGhpcywgaWQsIHtcbiAgICAgIGF0dHJpYnV0ZUdyb3VwTmFtZTogcHJvcHMuYXR0cmlidXRlR3JvdXBOYW1lLFxuICAgICAgYXR0cmlidXRlczogcHJvcHMuYXR0cmlidXRlcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgICBuZXcgQ2ZuQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbih0aGlzLCBgQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbiR7dGhpcy5nZW5lcmF0ZVVuaXF1ZUhhc2goYXR0cmlidXRlR3JvdXAubm9kZS5hZGRyKX1gLCB7XG4gICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbklkLFxuICAgICAgYXR0cmlidXRlR3JvdXA6IGF0dHJpYnV0ZUdyb3VwLmF0dHJpYnV0ZUdyb3VwSWQsXG4gICAgfSk7XG4gICAgdGhpcy5hc3NvY2lhdGVkQXR0cmlidXRlR3JvdXBzLmFkZChhdHRyaWJ1dGVHcm91cC5ub2RlLmFkZHIpO1xuICAgIHJldHVybiBhdHRyaWJ1dGVHcm91cDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgYSBzdGFjayB3aXRoIHRoZSBhcHBsaWNhdGlvblxuICAgKiBJZiB0aGUgcmVzb3VyY2UgaXMgYWxyZWFkeSBhc3NvY2lhdGVkLCBpdCB3aWxsIGlnbm9yZSBkdXBsaWNhdGUgcmVxdWVzdC5cbiAgICogQSBzdGFjayBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb25lIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGFzc29jaWF0ZUFwcGxpY2F0aW9uV2l0aFN0YWNrYCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIGFzc29jaWF0ZVN0YWNrKHN0YWNrOiBjZGsuU3RhY2spOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJlc291cmNlcy5oYXMoc3RhY2subm9kZS5hZGRyKSkge1xuICAgICAgY29uc3QgaGFzaElkID0gdGhpcy5nZW5lcmF0ZVVuaXF1ZUhhc2goc3RhY2subm9kZS5hZGRyKTtcbiAgICAgIG5ldyBDZm5SZXNvdXJjZUFzc29jaWF0aW9uKHRoaXMsIGBSZXNvdXJjZUFzc29jaWF0aW9uJHtoYXNoSWR9YCwge1xuICAgICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbklkLFxuICAgICAgICByZXNvdXJjZTogc3RhY2suc3RhY2tJZCxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiAnQ0ZOX1NUQUNLJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmVzb3VyY2VzLmFkZChzdGFjay5ub2RlLmFkZHIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgc3RhY2sgd2l0aCB0aGUgYXBwbGljYXRpb24gaW4gdGhlIHN0YWNrIHBhc3NlZCBhcyBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEEgc3RhY2sgY2FuIG9ubHkgYmUgYXNzb2NpYXRlZCB3aXRoIG9uZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhc3NvY2lhdGVBcHBsaWNhdGlvbldpdGhTdGFjayhzdGFjazogY2RrLlN0YWNrKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFzc29jaWF0ZWRSZXNvdXJjZXMuaGFzKHN0YWNrLm5vZGUuYWRkcikpIHtcbiAgICAgIG5ldyBDZm5SZXNvdXJjZUFzc29jaWF0aW9uKHN0YWNrLCAnQXBwUmVnaXN0cnlBc3NvY2lhdGlvbicsIHtcbiAgICAgICAgYXBwbGljYXRpb246IHN0YWNrID09PSBjZGsuU3RhY2sub2YodGhpcykgPyB0aGlzLmFwcGxpY2F0aW9uSWQgOiB0aGlzLmFwcGxpY2F0aW9uTmFtZSA/PyB0aGlzLmFwcGxpY2F0aW9uSWQsXG4gICAgICAgIHJlc291cmNlOiBzdGFjay5zdGFja0lkLFxuICAgICAgICByZXNvdXJjZVR5cGU6ICdDRk5fU1RBQ0snLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYXNzb2NpYXRlZFJlc291cmNlcy5hZGQoc3RhY2subm9kZS5hZGRyKTtcbiAgICAgIGlmIChzdGFjayAhPT0gY2RrLlN0YWNrLm9mKHRoaXMpICYmIHRoaXMuaXNTYW1lQWNjb3VudChzdGFjaykgJiYgIXRoaXMuaXNTdGFnZVNjb3BlKHN0YWNrKSAmJiAhc3RhY2submVzdGVkKSB7XG4gICAgICAgIHN0YWNrLmFkZERlcGVuZGVuY3koY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2hhcmUgYW4gYXBwbGljYXRpb24gd2l0aCBhY2NvdW50cywgb3JnYW5pemF0aW9ucyBhbmQgT1VzLCBhbmQgSUFNIHJvbGVzIGFuZCB1c2Vycy5cbiAgICogVGhlIGFwcGxpY2F0aW9uIHdpbGwgYmVjb21lIGF2YWlsYWJsZSB0byBlbmQgdXNlcnMgd2l0aGluIHRob3NlIHByaW5jaXBhbHMuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IG5hbWUgZm9yIHRoZSBzaGFyZS5cbiAgICogQHBhcmFtIHNoYXJlT3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHNoYXJlLlxuICAgKi9cbiAgcHVibGljIHNoYXJlQXBwbGljYXRpb24oaWQ6IHN0cmluZywgc2hhcmVPcHRpb25zOiBTaGFyZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBwcmluY2lwYWxzID0gZ2V0UHJpbmNpcGFsc2ZvclNoYXJpbmcoc2hhcmVPcHRpb25zKTtcbiAgICBuZXcgQ2ZuUmVzb3VyY2VTaGFyZSh0aGlzLCBpZCwge1xuICAgICAgbmFtZTogc2hhcmVPcHRpb25zLm5hbWUsXG4gICAgICBhbGxvd0V4dGVybmFsUHJpbmNpcGFsczogZmFsc2UsXG4gICAgICBwcmluY2lwYWxzOiBwcmluY2lwYWxzLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5hcHBsaWNhdGlvbkFybl0sXG4gICAgICBwZXJtaXNzaW9uQXJuczogW3RoaXMuZ2V0QXBwbGljYXRpb25TaGFyZVBlcm1pc3Npb25BUk4oc2hhcmVPcHRpb25zKV0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlIGFsbCBzdGFja3MgcHJlc2VudCBpbiBjb25zdHJ1Y3QncyBhc3BlY3Qgd2l0aCBhcHBsaWNhdGlvbiwgaW5jbHVkaW5nIGNyb3NzLWFjY291bnQgc3RhY2tzLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIG1ldGhvZCB3b24ndCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVyIHN0YWNrcyB1bmRlciBwaXBlbGluZSBzdGFnZXMsXG4gICAqIGFuZCByZXF1aXJlcyBhc3NvY2lhdGlvbiBvZiBlYWNoIHBpcGVsaW5lIHN0YWdlIGJ5IGNhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aCBzdGFnZSBDb25zdHJ1Y3QuXG4gICAqXG4gICAqL1xuICBwdWJsaWMgYXNzb2NpYXRlQWxsU3RhY2tzSW5TY29wZShzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY2RrLkFzcGVjdHMub2Yoc2NvcGUpLmFkZChuZXcgU3RhZ2VTdGFja0Fzc29jaWF0b3IodGhpcywge1xuICAgICAgYXNzb2NpYXRlQ3Jvc3NBY2NvdW50U3RhY2tzOiB0cnVlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB1bmlxdWUgaWRcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZW5lcmF0ZVVuaXF1ZUhhc2gocmVzb3VyY2VBZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29ycmVjdCBwZXJtaXNzaW9uIEFSTiBiYXNlZCBvbiB0aGUgU2hhcmVQZXJtaXNzaW9uXG4gICAqL1xuICBwcml2YXRlIGdldEFwcGxpY2F0aW9uU2hhcmVQZXJtaXNzaW9uQVJOKHNoYXJlT3B0aW9uczogU2hhcmVPcHRpb25zKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHNoYXJlT3B0aW9ucy5zaGFyZVBlcm1pc3Npb24pIHtcbiAgICAgIGNhc2UgU2hhcmVQZXJtaXNzaW9uLkFMTE9XX0FDQ0VTUzpcbiAgICAgICAgcmV0dXJuIEFQUExJQ0FUSU9OX0FMTE9XX0FDQ0VTU19SQU1fUEVSTUlTU0lPTl9BUk47XG4gICAgICBjYXNlIFNoYXJlUGVybWlzc2lvbi5SRUFEX09OTFk6XG4gICAgICAgIHJldHVybiBBUFBMSUNBVElPTl9SRUFEX09OTFlfUkFNX1BFUk1JU1NJT05fQVJOO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gc2hhcmVPcHRpb25zLnNoYXJlUGVybWlzc2lvbiA/PyBBUFBMSUNBVElPTl9SRUFEX09OTFlfUkFNX1BFUk1JU1NJT05fQVJOO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAqICBDaGVja3Mgd2hldGhlciBhIHN0YWNrIGlzIGRlZmluZWQgaW4gYSBTdGFnZSBvciBub3QuXG4gICovXG4gIHByaXZhdGUgaXNTdGFnZVNjb3BlKHN0YWNrIDogY2RrLlN0YWNrKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEoc3RhY2subm9kZS5zY29wZSBpbnN0YW5jZW9mIGNkay5BcHApICYmIChzdGFjay5ub2RlLnNjb3BlIGluc3RhbmNlb2YgY2RrLlN0YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBhcHBsaWNhdGlvbiBhbmQgdGhlIHZpc2l0ZWQgbm9kZSBpcyBkZXBsb3llZCBpbiBkaWZmZXJlbnQgYWNjb3VudC5cbiAgICovXG4gIHByaXZhdGUgaXNTYW1lQWNjb3VudChzdGFjazogY2RrLlN0YWNrKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQWNjb3VudFVucmVzb2x2ZWQodGhpcy5lbnYuYWNjb3VudCwgc3RhY2suYWNjb3VudCkgfHwgdGhpcy5lbnYuYWNjb3VudCA9PT0gc3RhY2suYWNjb3VudDtcbiAgfVxuXG59XG5cbi8qKlxuICogQSBTZXJ2aWNlIENhdGFsb2cgQXBwUmVnaXN0cnkgQXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFwcGxpY2F0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWUuXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbkFybiB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgb2YgdGhlIGV4aXN0aW5nIEFwcFJlZ2lzdHJ5IEFwcGxpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BcHBsaWNhdGlvbkFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhcHBsaWNhdGlvbkFybjogc3RyaW5nKTogSUFwcGxpY2F0aW9uIHtcbiAgICBjb25zdCBhcm4gPSBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKGFwcGxpY2F0aW9uQXJuLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX1NMQVNIX1JFU09VUkNFX05BTUUpO1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSBhcm4ucmVzb3VyY2VOYW1lO1xuXG4gICAgaWYgKCFhcHBsaWNhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgQXBwbGljYXRpb24gSUQgZnJvbSBBcHBsaWNhdGlvbiBBUk46ICcgKyBhcHBsaWNhdGlvbkFybik7XG4gICAgfVxuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXBwbGljYXRpb25CYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbkFybiA9IGFwcGxpY2F0aW9uQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbklkITtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbk5hbWUgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHByb3RlY3RlZCBnZW5lcmF0ZVVuaXF1ZUhhc2gocmVzb3VyY2VBZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaGFzaFZhbHVlcyh0aGlzLmFwcGxpY2F0aW9uQXJuLCByZXNvdXJjZUFkZHJlc3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge1xuICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBhcHBsaWNhdGlvbkFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBtYW5hZ2VyIFVSTCBmb3IgdGhlIEFwcGxpY2F0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25NYW5hZ2VyVXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25Bcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBub2RlQWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBsaWNhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudmFsaWRhdGVBcHBsaWNhdGlvblByb3BzKHByb3BzKTtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gbmV3IENmbkFwcGxpY2F0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25Bcm4gPSBhcHBsaWNhdGlvbi5hdHRyQXJuO1xuICAgIHRoaXMuYXBwbGljYXRpb25JZCA9IGFwcGxpY2F0aW9uLmF0dHJJZDtcbiAgICB0aGlzLmFwcGxpY2F0aW9uTmFtZSA9IHByb3BzLmFwcGxpY2F0aW9uTmFtZTtcbiAgICB0aGlzLm5vZGVBZGRyZXNzID0gY2RrLk5hbWVzLm5vZGVVbmlxdWVJZChhcHBsaWNhdGlvbi5ub2RlKTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25NYW5hZ2VyVXJsID1cbiAgICAgICAgYGh0dHBzOi8vJHt0aGlzLmVudi5yZWdpb259LmNvbnNvbGUuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2FwcG1hbmFnZXIvYXBwbGljYXRpb24vQVdTX0FwcFJlZ2lzdHJ5X0FwcGxpY2F0aW9uLSR7dGhpcy5hcHBsaWNhdGlvbk5hbWV9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZW5lcmF0ZVVuaXF1ZUhhc2gocmVzb3VyY2VBZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBoYXNoVmFsdWVzKHRoaXMubm9kZUFkZHJlc3MsIHJlc291cmNlQWRkcmVzcyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQXBwbGljYXRpb25Qcm9wcyhwcm9wczogQXBwbGljYXRpb25Qcm9wcykge1xuICAgIElucHV0VmFsaWRhdG9yLnZhbGlkYXRlTGVuZ3RoKHRoaXMubm9kZS5wYXRoLCAnYXBwbGljYXRpb24gbmFtZScsIDEsIDI1NiwgcHJvcHMuYXBwbGljYXRpb25OYW1lKTtcbiAgICBJbnB1dFZhbGlkYXRvci52YWxpZGF0ZVJlZ2V4KHRoaXMubm9kZS5wYXRoLCAnYXBwbGljYXRpb24gbmFtZScsIC9eW2EtekEtWjAtOS1fXSskLywgcHJvcHMuYXBwbGljYXRpb25OYW1lKTtcbiAgICBJbnB1dFZhbGlkYXRvci52YWxpZGF0ZUxlbmd0aCh0aGlzLm5vZGUucGF0aCwgJ2FwcGxpY2F0aW9uIGRlc2NyaXB0aW9uJywgMCwgMTAyNCwgcHJvcHMuZGVzY3JpcHRpb24pO1xuICB9XG59XG4iXX0=
@@ -116,6 +116,6 @@ class AttributeGroup extends AttributeGroupBase {
116
116
  }
117
117
  }
118
118
  _a = JSII_RTTI_SYMBOL_1;
119
- AttributeGroup[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.AttributeGroup", version: "2.72.1-alpha.0" };
119
+ AttributeGroup[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.AttributeGroup", version: "2.73.0-alpha.0" };
120
120
  exports.AttributeGroup = AttributeGroup;
121
121
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXR0cmlidXRlLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUF1RDtBQUN2RCxtQ0FBbUM7QUFHbkMscUNBQThGO0FBQzlGLHFEQUFzRDtBQUN0RCw2RkFBNEc7QUFFNUcsTUFBTSw0Q0FBNEMsR0FBRyw2RkFBNkYsQ0FBQztBQUNuSixNQUFNLCtDQUErQyxHQUFHLHFHQUFxRyxDQUFDO0FBaUQ5SixNQUFlLGtCQUFtQixTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBQXREOztRQUdtQiwyQkFBc0IsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWdEbkUsQ0FBQztJQTlDQzs7O09BR0c7SUFDSSxhQUFhLENBQUMsV0FBeUI7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RCxJQUFJLDREQUE0QixDQUFDLElBQUksRUFBRSx1Q0FBdUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3RGLFdBQVcsRUFBRSxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQyxhQUFhO2dCQUM1SSxjQUFjLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN0QyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEQ7S0FDRjtJQUVNLG1CQUFtQixDQUFDLEVBQVUsRUFBRSxZQUEwQjtRQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFBLGdDQUF1QixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksMEJBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUM3QixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixVQUFVLEVBQUUsVUFBVTtZQUN0QixZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDdEMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pFLENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDTyxtQ0FBbUMsQ0FBQyxZQUEwQjtRQUN0RSxRQUFRLFlBQVksQ0FBQyxlQUFlLEVBQUU7WUFDcEMsS0FBSyx3QkFBZSxDQUFDLFlBQVk7Z0JBQy9CLE9BQU8sK0NBQStDLENBQUM7WUFDekQsS0FBSyx3QkFBZSxDQUFDLFNBQVM7Z0JBQzVCLE9BQU8sNENBQTRDLENBQUM7WUFFdEQ7Z0JBQ0UsT0FBTyxZQUFZLENBQUMsZUFBZSxJQUFJLDRDQUE0QyxDQUFDO1NBQ3ZGO0tBQ0Y7Q0FNRjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsa0JBQWtCO0lBQ3BEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxpQkFBeUI7UUFDekYsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM5RyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFFMUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztTQUN2RztRQUVELE1BQU0sTUFBTyxTQUFRLGtCQUFrQjtZQUF2Qzs7Z0JBQ2tCLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO2dCQUN0QyxxQkFBZ0IsR0FBRyxnQkFBaUIsQ0FBQztZQUt2RCxDQUFDO1lBSFcsa0JBQWtCLENBQUMsZUFBdUI7Z0JBQ2xELE9BQU8sSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM3RCxDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDM0Isa0JBQWtCLEVBQUUsaUJBQWlCO1NBQ3RDLENBQUMsQ0FBQztLQUNKO0lBTUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7K0NBbkNSLGNBQWM7Ozs7UUFxQ3ZCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxNQUFNLGNBQWMsR0FBRyxJQUFJLGlEQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDOUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNoRTtJQUVTLGtCQUFrQixDQUFDLGVBQXVCO1FBQ2xELE9BQU8sSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDdEQ7SUFFTywyQkFBMkIsQ0FBQyxLQUEwQjtRQUM1RCwyQkFBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hHLDJCQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25ILDJCQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQzFHOzs7O0FBMURVLHdDQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUmVzb3VyY2VTaGFyZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnLi9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBnZXRQcmluY2lwYWxzZm9yU2hhcmluZywgaGFzaFZhbHVlcywgU2hhcmVPcHRpb25zLCBTaGFyZVBlcm1pc3Npb24gfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBJbnB1dFZhbGlkYXRvciB9IGZyb20gJy4vcHJpdmF0ZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IENmbkF0dHJpYnV0ZUdyb3VwLCBDZm5BdHRyaWJ1dGVHcm91cEFzc29jaWF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlcnZpY2VjYXRhbG9nYXBwcmVnaXN0cnknO1xuXG5jb25zdCBBVFRSSUJVVEVfR1JPVVBfUkVBRF9PTkxZX1JBTV9QRVJNSVNTSU9OX0FSTiA9ICdhcm46YXdzOnJhbTo6YXdzOnBlcm1pc3Npb24vQVdTUkFNUGVybWlzc2lvblNlcnZpY2VDYXRhbG9nQXBwUmVnaXN0cnlBdHRyaWJ1dGVHcm91cFJlYWRPbmx5JztcbmNvbnN0IEFUVFJJQlVURV9HUk9VUF9BTExPV19BQ0NFU1NfUkFNX1BFUk1JU1NJT05fQVJOID0gJ2Fybjphd3M6cmFtOjphd3M6cGVybWlzc2lvbi9BV1NSQU1QZXJtaXNzaW9uU2VydmljZUNhdGFsb2dBcHBSZWdpc3RyeUF0dHJpYnV0ZUdyb3VwQWxsb3dBc3NvY2lhdGlvbic7XG5cbi8qKlxuICogQSBTZXJ2aWNlIENhdGFsb2cgQXBwUmVnaXN0cnkgQXR0cmlidXRlIEdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBdHRyaWJ1dGVHcm91cCBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYXR0cmlidXRlIGdyb3VwLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhdHRyaWJ1dGVHcm91cEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGF0dHJpYnV0ZSBncm91cC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZSB0aGUgYXR0cmlidXRlIGdyb3VwIHJlc291cmNlIHdpdGggb3RoZXIgSUFNIGVudGl0aWVzLCBhY2NvdW50cywgb3IgT1VzLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBuYW1lIGZvciB0aGUgc2hhcmUuXG4gICAqIEBwYXJhbSBzaGFyZU9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSBzaGFyZS5cbiAgICovXG4gIHNoYXJlQXR0cmlidXRlR3JvdXAoaWQ6IHN0cmluZywgc2hhcmVPcHRpb25zOiBTaGFyZU9wdGlvbnMpOiB2b2lkO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU2VydmljZSBDYXRhbG9nIEFwcFJlZ2lzdHJ5IEF0dHJpYnV0ZSBHcm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZUdyb3VwUHJvcHMge1xuICAvKipcbiAgICogRW5mb3JjZXMgYSBwYXJ0aWN1bGFyIHBoeXNpY2FsIGF0dHJpYnV0ZSBncm91cCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciBhdHRyaWJ1dGUgZ3JvdXAuXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb24gcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEpTT04gb2YgbmVzdGVkIGtleS12YWx1ZSBwYWlycyB0aGF0IHJlcHJlc2VudCB0aGUgYXR0cmlidXRlcyBpbiB0aGUgZ3JvdXAuXG4gICAqIEF0dHJpYnV0ZXMgbWF5YmUgYW4gZW1wdHkgSlNPTiAne30nLCBidXQgbXVzdCBiZSBleHBsaWNpdGx5IHN0YXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbmFic3RyYWN0IGNsYXNzIEF0dHJpYnV0ZUdyb3VwQmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElBdHRyaWJ1dGVHcm91cCB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdHRyaWJ1dGVHcm91cEFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc29jaWF0ZWRBcHBsaWNhdGlvbnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgYW4gYXBwbGljYXRpb24gd2l0aCBhdHRyaWJ1dGUgZ3JvdXBcbiAgICogSWYgdGhlIGF0dHJpYnV0ZSBncm91cCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQsIGl0IHdpbGwgaWdub3JlIGR1cGxpY2F0ZSByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIGFzc29jaWF0ZVdpdGgoYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5hc3NvY2lhdGVkQXBwbGljYXRpb25zLmhhcyhhcHBsaWNhdGlvbi5ub2RlLmFkZHIpKSB7XG4gICAgICBjb25zdCBoYXNoSWQgPSB0aGlzLmdlbmVyYXRlVW5pcXVlSGFzaChhcHBsaWNhdGlvbi5ub2RlLmFkZHIpO1xuICAgICAgbmV3IENmbkF0dHJpYnV0ZUdyb3VwQXNzb2NpYXRpb24odGhpcywgYEFwcGxpY2F0aW9uQXR0cmlidXRlR3JvdXBBc3NvY2lhdGlvbiR7aGFzaElkfWAsIHtcbiAgICAgICAgYXBwbGljYXRpb246IGFwcGxpY2F0aW9uLnN0YWNrID09PSBjZGsuU3RhY2sub2YodGhpcykgPyBhcHBsaWNhdGlvbi5hcHBsaWNhdGlvbklkIDogYXBwbGljYXRpb24uYXBwbGljYXRpb25OYW1lID8/IGFwcGxpY2F0aW9uLmFwcGxpY2F0aW9uSWQsXG4gICAgICAgIGF0dHJpYnV0ZUdyb3VwOiB0aGlzLmF0dHJpYnV0ZUdyb3VwSWQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5hc3NvY2lhdGVkQXBwbGljYXRpb25zLmFkZChhcHBsaWNhdGlvbi5ub2RlLmFkZHIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaGFyZUF0dHJpYnV0ZUdyb3VwKGlkOiBzdHJpbmcsIHNoYXJlT3B0aW9uczogU2hhcmVPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3QgcHJpbmNpcGFscyA9IGdldFByaW5jaXBhbHNmb3JTaGFyaW5nKHNoYXJlT3B0aW9ucyk7XG4gICAgbmV3IENmblJlc291cmNlU2hhcmUodGhpcywgaWQsIHtcbiAgICAgIG5hbWU6IHNoYXJlT3B0aW9ucy5uYW1lLFxuICAgICAgYWxsb3dFeHRlcm5hbFByaW5jaXBhbHM6IGZhbHNlLFxuICAgICAgcHJpbmNpcGFsczogcHJpbmNpcGFscyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuYXR0cmlidXRlR3JvdXBBcm5dLFxuICAgICAgcGVybWlzc2lvbkFybnM6IFt0aGlzLmdldEF0dHJpYnV0ZUdyb3VwU2hhcmVQZXJtaXNzaW9uQVJOKHNoYXJlT3B0aW9ucyldLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29ycmVjdCBwZXJtaXNzaW9uIEFSTiBiYXNlZCBvbiB0aGUgU2hhcmVQZXJtaXNzaW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0QXR0cmlidXRlR3JvdXBTaGFyZVBlcm1pc3Npb25BUk4oc2hhcmVPcHRpb25zOiBTaGFyZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoc2hhcmVPcHRpb25zLnNoYXJlUGVybWlzc2lvbikge1xuICAgICAgY2FzZSBTaGFyZVBlcm1pc3Npb24uQUxMT1dfQUNDRVNTOlxuICAgICAgICByZXR1cm4gQVRUUklCVVRFX0dST1VQX0FMTE9XX0FDQ0VTU19SQU1fUEVSTUlTU0lPTl9BUk47XG4gICAgICBjYXNlIFNoYXJlUGVybWlzc2lvbi5SRUFEX09OTFk6XG4gICAgICAgIHJldHVybiBBVFRSSUJVVEVfR1JPVVBfUkVBRF9PTkxZX1JBTV9QRVJNSVNTSU9OX0FSTjtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNoYXJlT3B0aW9ucy5zaGFyZVBlcm1pc3Npb24gPz8gQVRUUklCVVRFX0dST1VQX1JFQURfT05MWV9SQU1fUEVSTUlTU0lPTl9BUk47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHVuaXF1ZSBoYXNoXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2VuZXJhdGVVbmlxdWVIYXNoKHJlc291cmNlQWRkcmVzczogc3RyaW5nKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgU2VydmljZSBDYXRhbG9nIEFwcFJlZ2lzdHJ5IEF0dHJpYnV0ZSBHcm91cC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZUdyb3VwIGV4dGVuZHMgQXR0cmlidXRlR3JvdXBCYXNlIGltcGxlbWVudHMgSUF0dHJpYnV0ZUdyb3VwIHtcbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gYXR0cmlidXRlIGdyb3VwIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgYXR0cmlidXRlIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gYXR0cmlidXRlR3JvdXBBcm4gdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIG9mIHRoZSBleGlzdGluZyBBcHBSZWdpc3RyeSBhdHRyaWJ1dGUgZ3JvdXBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF0dHJpYnV0ZUdyb3VwQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJpYnV0ZUdyb3VwQXJuOiBzdHJpbmcpOiBJQXR0cmlidXRlR3JvdXAge1xuICAgIGNvbnN0IGFybiA9IGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXR0cmlidXRlR3JvdXBBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfU0xBU0hfUkVTT1VSQ0VfTkFNRSk7XG4gICAgY29uc3QgYXR0cmlidXRlR3JvdXBJZCA9IGFybi5yZXNvdXJjZU5hbWU7XG5cbiAgICBpZiAoIWF0dHJpYnV0ZUdyb3VwSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1aXJlZCBBdHRyaWJ1dGUgR3JvdXAgSUQgZnJvbSBBdHRyaWJ1dGUgR3JvdXAgQVJOOiAnICsgYXR0cmlidXRlR3JvdXBBcm4pO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEF0dHJpYnV0ZUdyb3VwQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBBcm4gPSBhdHRyaWJ1dGVHcm91cEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVHcm91cElkID0gYXR0cmlidXRlR3JvdXBJZCE7XG5cbiAgICAgIHByb3RlY3RlZCBnZW5lcmF0ZVVuaXF1ZUhhc2gocmVzb3VyY2VBZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaGFzaFZhbHVlcyh0aGlzLmF0dHJpYnV0ZUdyb3VwQXJuLCByZXNvdXJjZUFkZHJlc3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge1xuICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBhdHRyaWJ1dGVHcm91cEFybixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVHcm91cEFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlR3JvdXBJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVBZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF0dHJpYnV0ZUdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52YWxpZGF0ZUF0dHJpYnV0ZUdyb3VwUHJvcHMocHJvcHMpO1xuXG4gICAgY29uc3QgYXR0cmlidXRlR3JvdXAgPSBuZXcgQ2ZuQXR0cmlidXRlR3JvdXAodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogcHJvcHMuYXR0cmlidXRlR3JvdXBOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczogcHJvcHMuYXR0cmlidXRlcyxcbiAgICB9KTtcblxuICAgIHRoaXMuYXR0cmlidXRlR3JvdXBBcm4gPSBhdHRyaWJ1dGVHcm91cC5hdHRyQXJuO1xuICAgIHRoaXMuYXR0cmlidXRlR3JvdXBJZCA9IGF0dHJpYnV0ZUdyb3VwLmF0dHJJZDtcbiAgICB0aGlzLm5vZGVBZGRyZXNzID0gY2RrLk5hbWVzLm5vZGVVbmlxdWVJZChhdHRyaWJ1dGVHcm91cC5ub2RlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZW5lcmF0ZVVuaXF1ZUhhc2gocmVzb3VyY2VBZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBoYXNoVmFsdWVzKHRoaXMubm9kZUFkZHJlc3MsIHJlc291cmNlQWRkcmVzcyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQXR0cmlidXRlR3JvdXBQcm9wcyhwcm9wczogQXR0cmlidXRlR3JvdXBQcm9wcykge1xuICAgIElucHV0VmFsaWRhdG9yLnZhbGlkYXRlTGVuZ3RoKHRoaXMubm9kZS5wYXRoLCAnYXR0cmlidXRlIGdyb3VwIG5hbWUnLCAxLCAyNTYsIHByb3BzLmF0dHJpYnV0ZUdyb3VwTmFtZSk7XG4gICAgSW5wdXRWYWxpZGF0b3IudmFsaWRhdGVSZWdleCh0aGlzLm5vZGUucGF0aCwgJ2F0dHJpYnV0ZSBncm91cCBuYW1lJywgL15bYS16QS1aMC05LV9dKyQvLCBwcm9wcy5hdHRyaWJ1dGVHcm91cE5hbWUpO1xuICAgIElucHV0VmFsaWRhdG9yLnZhbGlkYXRlTGVuZ3RoKHRoaXMubm9kZS5wYXRoLCAnYXR0cmlidXRlIGdyb3VwIGRlc2NyaXB0aW9uJywgMCwgMTAyNCwgcHJvcHMuZGVzY3JpcHRpb24pO1xuICB9XG59XG4iXX0=
@@ -46,7 +46,7 @@ class TargetApplication {
46
46
  }
47
47
  }
48
48
  _a = JSII_RTTI_SYMBOL_1;
49
- TargetApplication[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.TargetApplication", version: "2.72.1-alpha.0" };
49
+ TargetApplication[_a] = { fqn: "@aws-cdk/aws-servicecatalogappregistry-alpha.TargetApplication", version: "2.73.0-alpha.0" };
50
50
  exports.TargetApplication = TargetApplication;
51
51
  /**
52
52
  * Class which constructs the input from provided application name and stack props.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-servicecatalogappregistry-alpha",
3
- "version": "2.72.1-alpha.0",
3
+ "version": "2.73.0-alpha.0",
4
4
  "description": "The CDK Construct Library for AWS::ServiceCatalogAppRegistry",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -46,7 +46,7 @@
46
46
  "repository": {
47
47
  "type": "git",
48
48
  "url": "https://github.com/aws/aws-cdk.git",
49
- "directory": "packages/individual-packages/aws-servicecatalogappregistry"
49
+ "directory": "packages/@aws-cdk/aws-servicecatalogappregistry"
50
50
  },
51
51
  "homepage": "https://github.com/aws/aws-cdk",
52
52
  "scripts": {
@@ -84,18 +84,18 @@
84
84
  },
85
85
  "license": "Apache-2.0",
86
86
  "devDependencies": {
87
- "@aws-cdk/cdk-build-tools": "2.72.1",
88
- "@aws-cdk/integ-runner": "2.72.1",
89
- "@aws-cdk/cfn2ts": "2.72.1",
90
- "@aws-cdk/pkglint": "2.72.1",
87
+ "@aws-cdk/cdk-build-tools": "2.73.0-alpha.0",
88
+ "@aws-cdk/integ-runner": "2.73.0-alpha.0",
89
+ "@aws-cdk/cfn2ts": "2.73.0-alpha.0",
90
+ "@aws-cdk/pkglint": "2.73.0-alpha.0",
91
91
  "@types/jest": "^27.5.2",
92
- "aws-cdk-lib": "2.72.1",
92
+ "aws-cdk-lib": "2.73.0",
93
93
  "constructs": "^10.0.0",
94
- "@aws-cdk/integ-tests-alpha": "2.72.1-alpha.0"
94
+ "@aws-cdk/integ-tests-alpha": "2.73.0-alpha.0"
95
95
  },
96
96
  "dependencies": {},
97
97
  "peerDependencies": {
98
- "aws-cdk-lib": "^2.72.1",
98
+ "aws-cdk-lib": "2.73.0",
99
99
  "constructs": "^10.0.0"
100
100
  },
101
101
  "engines": {
@@ -121,4 +121,4 @@
121
121
  "assert/assert-dependency"
122
122
  ]
123
123
  }
124
- }
124
+ }