@Stability(value=Experimental)
See: Description
| Interface | Description |
|---|---|
| ApplicationProps |
(experimental) Properties for a Service Catalog AppRegistry Application.
|
| AttributeGroupProps |
(experimental) Properties for a Service Catalog AppRegistry Attribute Group.
|
| IApplication |
(experimental) A Service Catalog AppRegistry Application.
|
| IApplication.Jsii$Default |
Internal default implementation for
IApplication. |
| IAttributeGroup |
(experimental) A Service Catalog AppRegistry Attribute Group.
|
| IAttributeGroup.Jsii$Default |
Internal default implementation for
IAttributeGroup. |
| ShareOptions |
(experimental) The options that are passed into a share of an Application or Attribute Group.
|
| Class | Description |
|---|---|
| Application |
(experimental) A Service Catalog AppRegistry Application.
|
| Application.Builder |
(experimental) A fluent builder for
Application. |
| ApplicationProps.Builder |
A builder for
ApplicationProps |
| ApplicationProps.Jsii$Proxy |
An implementation for
ApplicationProps |
| AttributeGroup |
(experimental) A Service Catalog AppRegistry Attribute Group.
|
| AttributeGroup.Builder |
(experimental) A fluent builder for
AttributeGroup. |
| AttributeGroupProps.Builder |
A builder for
AttributeGroupProps |
| AttributeGroupProps.Jsii$Proxy |
An implementation for
AttributeGroupProps |
| IApplication.Jsii$Proxy |
A proxy class which represents a concrete javascript instance of this type.
|
| IAttributeGroup.Jsii$Proxy |
A proxy class which represents a concrete javascript instance of this type.
|
| ShareOptions.Builder |
A builder for
ShareOptions |
| ShareOptions.Jsii$Proxy |
An implementation for
ShareOptions |
| Enum | Description |
|---|---|
| SharePermission |
(experimental) Supported permissions for sharing applications or attribute groups with principals using AWS RAM.
|
---
The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.
AWS Service Catalog App Registry enables organizations to create and manage repositores of applications and associated resources.
The @aws-cdk/aws-servicecatalogappregistry package contains resources that enable users to automate governance and management of their AWS resources at scale.
import software.amazon.awscdk.services.servicecatalogappregistry.alpha.*;
An AppRegistry application enables you to define your applications and associated resources. The application name must be unique at the account level, but is mutable.
Application application = Application.Builder.create(this, "MyFirstApplication")
.applicationName("MyFirstApplicationName")
.description("description for my application")
.build();
An application that has been created outside of the stack can be imported into your CDK app.
Applications can be imported by their ARN via the Application.fromApplicationArn() API:
IApplication importedApplication = Application.fromApplicationArn(this, "MyImportedApplication", "arn:aws:servicecatalog:us-east-1:012345678910:/applications/0aqmvxvgmry0ecc4mjhwypun6i");
An AppRegistry attribute group acts as a container for user-defined attributes for an application. Metadata is attached in a machine-readble format to integrate with automated workflows and tools.
AttributeGroup attributeGroup = AttributeGroup.Builder.create(this, "MyFirstAttributeGroup")
.attributeGroupName("MyFirstAttributeGroupName")
.description("description for my attribute group") // the description is optional,
.attributes(Map.of(
"project", "foo",
"team", List.of("member1", "member2", "member3"),
"public", false,
"stages", Map.of(
"alpha", "complete",
"beta", "incomplete",
"release", "not started")))
.build();
An attribute group that has been created outside of the stack can be imported into your CDK app.
Attribute groups can be imported by their ARN via the AttributeGroup.fromAttributeGroupArn() API:
IAttributeGroup importedAttributeGroup = AttributeGroup.fromAttributeGroupArn(this, "MyImportedAttrGroup", "arn:aws:servicecatalog:us-east-1:012345678910:/attribute-groups/0aqmvxvgmry0ecc4mjhwypun6i");
You can associate your appregistry application with attribute groups and resources. Resources are CloudFormation stacks that you can associate with an application to group relevant stacks together to enable metadata rich insights into your applications and resources. A Cloudformation stack can only be associated with one appregistry application. If a stack is associated with multiple applications in your app or is already associated with one, CDK will fail at deploy time.
You can associate an attribute group with an application with the associateAttributeGroup() API:
Application application; AttributeGroup attributeGroup; application.associateAttributeGroup(attributeGroup);
You can associate a stack with an application with the associateStack() API:
Application application; App app = new App(); Stack myStack = new Stack(app, "MyStack"); application.associateStack(myStack);
You 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.
import software.amazon.awscdk.services.iam.*;
Application application;
IRole myRole;
IUser myUser;
application.shareApplication(ShareOptions.builder()
.accounts(List.of("123456789012"))
.organizationArns(List.of("arn:aws:organizations::123456789012:organization/o-my-org-id"))
.roles(List.of(myRole))
.users(List.of(myUser))
.build());
E.g., sharing an application with multiple accounts and allowing the accounts to associate resources to the application.
import software.amazon.awscdk.services.iam.*;
Application application;
application.shareApplication(ShareOptions.builder()
.accounts(List.of("123456789012", "234567890123"))
.sharePermission(SharePermission.ALLOW_ACCESS)
.build());
import software.amazon.awscdk.services.iam.*;
AttributeGroup attributeGroup;
IRole myRole;
IUser myUser;
attributeGroup.shareAttributeGroup(ShareOptions.builder()
.accounts(List.of("123456789012"))
.organizationArns(List.of("arn:aws:organizations::123456789012:organization/o-my-org-id"))
.roles(List.of(myRole))
.users(List.of(myUser))
.build());
E.g., sharing an application with multiple accounts and allowing the accounts to associate applications to the attribute group.
import software.amazon.awscdk.services.iam.*;
AttributeGroup attributeGroup;
attributeGroup.shareAttributeGroup(ShareOptions.builder()
.accounts(List.of("123456789012", "234567890123"))
.sharePermission(SharePermission.ALLOW_ACCESS)
.build());
Copyright © 2022. All rights reserved.