diff --git a/clients/client-service-catalog/README.md b/clients/client-service-catalog/README.md index c8d6196c60b5..f03986ee3d72 100644 --- a/clients/client-service-catalog/README.md +++ b/clients/client-service-catalog/README.md @@ -9,10 +9,10 @@ AWS SDK for JavaScript ServiceCatalog Client for Node.js, Browser and React Native. -AWS Service Catalog +Service Catalog

-Service Catalog enables +Service Catalog enables organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To get the most out of this documentation, you should be familiar with the terminology discussed in Service Catalog diff --git a/clients/client-service-catalog/src/ServiceCatalog.ts b/clients/client-service-catalog/src/ServiceCatalog.ts index 080f858d9577..e61c39c36bf1 100644 --- a/clients/client-service-catalog/src/ServiceCatalog.ts +++ b/clients/client-service-catalog/src/ServiceCatalog.ts @@ -435,9 +435,9 @@ import { import { ServiceCatalogClient } from "./ServiceCatalogClient"; /** - * AWS Service Catalog + * Service Catalog *

- * Service Catalog enables + * Service Catalog enables * organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To * get the most out of this documentation, you should be familiar with the terminology * discussed in Service Catalog @@ -510,6 +510,22 @@ export class ServiceCatalog extends ServiceCatalogClient { /** *

Associates the specified principal ARN with the specified portfolio.

+ *

If you share the portfolio with principal name sharing enabled, the PrincipalARN association is + * included in the share.

+ *

The PortfolioID, PrincipalARN, and PrincipalType parameters are + * required.

+ *

You can associate a maximum of 10 Principals with a portfolio using PrincipalType as IAM_PATTERN + *

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
*/ public associatePrincipalWithPortfolio( args: AssociatePrincipalWithPortfolioCommandInput, @@ -814,7 +830,18 @@ export class ServiceCatalog extends ServiceCatalogClient { *

* AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

*

You can't share a shared resource, including portfolios that contain a shared product.

- *

If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

+ *

If the portfolio share with the specified account or organization node already exists, this action will have no effect + * and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
*/ public createPortfolioShare( args: CreatePortfolioShareCommandInput, @@ -1906,6 +1933,13 @@ export class ServiceCatalog extends ServiceCatalogClient { /** *

Disassociates a previously associated principal ARN from a specified * portfolio.

+ *

The PrincipalType and PrincipalARN must match the + * AssociatePrincipalWithPortfolio call request details. For example, + * to disassociate an association created with a PrincipalARN of PrincipalType + * IAM you must use the PrincipalType IAM when calling DisassociatePrincipalFromPortfolio.

+ *

For portfolios that have been shared with principal name sharing enabled: after disassociating a principal, + * share recipient accounts will no longer be able to provision products in this portfolio using a role matching the name + * of the associated principal.

*/ public disassociatePrincipalFromPortfolio( args: DisassociatePrincipalFromPortfolioCommandInput, @@ -2211,9 +2245,9 @@ export class ServiceCatalog extends ServiceCatalogClient { } /** - *

Requests the import of a resource as a Amazon Web Services Service Catalog provisioned product that is - * associated to a Amazon Web Services Service Catalog product and provisioning artifact. Once imported, all - * supported Amazon Web Services Service Catalog governance actions are supported on the provisioned + *

Requests the import of a resource as an Service Catalog provisioned product that is + * associated to an Service Catalog product and provisioning artifact. Once imported, all + * supported Service Catalog governance actions are supported on the provisioned * product.

*

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and * non-root nested stacks are not supported.

@@ -2221,7 +2255,7 @@ export class ServiceCatalog extends ServiceCatalogClient { * CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, * IMPORT_ROLLBACK_COMPLETE.

*

Import of the resource requires that the CloudFormation stack template matches the - * associated Amazon Web Services Service Catalog product provisioning artifact.

+ * associated Service Catalog product provisioning artifact.

* *

The user or role that performs this operation must have the cloudformation:GetTemplate * and cloudformation:DescribeStacks IAM policy permissions.

@@ -2520,7 +2554,7 @@ export class ServiceCatalog extends ServiceCatalogClient { } /** - *

Lists all principal ARNs associated with the specified portfolio.

+ *

Lists all PrincipalARNs and corresponding PrincipalTypes associated with the specified portfolio.

*/ public listPrincipalsForPortfolio( args: ListPrincipalsForPortfolioCommandInput, @@ -3156,15 +3190,26 @@ export class ServiceCatalog extends ServiceCatalogClient { } /** - *

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share.

+ *

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing + * or Principal sharing for an existing portfolio share.

* - *

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

+ *

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

* *

You must provide the accountId or organization node in the input, but not both.

* *

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

* *

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
*/ public updatePortfolioShare( args: UpdatePortfolioShareCommandInput, diff --git a/clients/client-service-catalog/src/ServiceCatalogClient.ts b/clients/client-service-catalog/src/ServiceCatalogClient.ts index 8fdbff54f056..828bc2cc8646 100644 --- a/clients/client-service-catalog/src/ServiceCatalogClient.ts +++ b/clients/client-service-catalog/src/ServiceCatalogClient.ts @@ -656,9 +656,9 @@ type ServiceCatalogClientResolvedConfigType = __SmithyResolvedConfiguration<__Ht export interface ServiceCatalogClientResolvedConfig extends ServiceCatalogClientResolvedConfigType {} /** - * AWS Service Catalog + * Service Catalog *

- * Service Catalog enables + * Service Catalog enables * organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To * get the most out of this documentation, you should be familiar with the terminology * discussed in Service Catalog diff --git a/clients/client-service-catalog/src/commands/AssociatePrincipalWithPortfolioCommand.ts b/clients/client-service-catalog/src/commands/AssociatePrincipalWithPortfolioCommand.ts index 241fc4e6d340..469de8638a1a 100644 --- a/clients/client-service-catalog/src/commands/AssociatePrincipalWithPortfolioCommand.ts +++ b/clients/client-service-catalog/src/commands/AssociatePrincipalWithPortfolioCommand.ts @@ -32,6 +32,22 @@ export interface AssociatePrincipalWithPortfolioCommandOutput /** *

Associates the specified principal ARN with the specified portfolio.

+ *

If you share the portfolio with principal name sharing enabled, the PrincipalARN association is + * included in the share.

+ *

The PortfolioID, PrincipalARN, and PrincipalType parameters are + * required.

+ *

You can associate a maximum of 10 Principals with a portfolio using PrincipalType as IAM_PATTERN + *

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-service-catalog/src/commands/CreatePortfolioShareCommand.ts b/clients/client-service-catalog/src/commands/CreatePortfolioShareCommand.ts index 0014943d97a2..31470caeee39 100644 --- a/clients/client-service-catalog/src/commands/CreatePortfolioShareCommand.ts +++ b/clients/client-service-catalog/src/commands/CreatePortfolioShareCommand.ts @@ -37,7 +37,18 @@ export interface CreatePortfolioShareCommandOutput extends CreatePortfolioShareO *

* AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

*

You can't share a shared resource, including portfolios that contain a shared product.

- *

If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

+ *

If the portfolio share with the specified account or organization node already exists, this action will have no effect + * and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-service-catalog/src/commands/DisassociatePrincipalFromPortfolioCommand.ts b/clients/client-service-catalog/src/commands/DisassociatePrincipalFromPortfolioCommand.ts index afe9981dc981..38d4835d61f8 100644 --- a/clients/client-service-catalog/src/commands/DisassociatePrincipalFromPortfolioCommand.ts +++ b/clients/client-service-catalog/src/commands/DisassociatePrincipalFromPortfolioCommand.ts @@ -33,6 +33,13 @@ export interface DisassociatePrincipalFromPortfolioCommandOutput /** *

Disassociates a previously associated principal ARN from a specified * portfolio.

+ *

The PrincipalType and PrincipalARN must match the + * AssociatePrincipalWithPortfolio call request details. For example, + * to disassociate an association created with a PrincipalARN of PrincipalType + * IAM you must use the PrincipalType IAM when calling DisassociatePrincipalFromPortfolio.

+ *

For portfolios that have been shared with principal name sharing enabled: after disassociating a principal, + * share recipient accounts will no longer be able to provision products in this portfolio using a role matching the name + * of the associated principal.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-service-catalog/src/commands/ImportAsProvisionedProductCommand.ts b/clients/client-service-catalog/src/commands/ImportAsProvisionedProductCommand.ts index f82bfdf9ff7b..f14f4dcb53a4 100644 --- a/clients/client-service-catalog/src/commands/ImportAsProvisionedProductCommand.ts +++ b/clients/client-service-catalog/src/commands/ImportAsProvisionedProductCommand.ts @@ -29,9 +29,9 @@ export interface ImportAsProvisionedProductCommandInput extends ImportAsProvisio export interface ImportAsProvisionedProductCommandOutput extends ImportAsProvisionedProductOutput, __MetadataBearer {} /** - *

Requests the import of a resource as a Amazon Web Services Service Catalog provisioned product that is - * associated to a Amazon Web Services Service Catalog product and provisioning artifact. Once imported, all - * supported Amazon Web Services Service Catalog governance actions are supported on the provisioned + *

Requests the import of a resource as an Service Catalog provisioned product that is + * associated to an Service Catalog product and provisioning artifact. Once imported, all + * supported Service Catalog governance actions are supported on the provisioned * product.

*

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and * non-root nested stacks are not supported.

@@ -39,7 +39,7 @@ export interface ImportAsProvisionedProductCommandOutput extends ImportAsProvisi * CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, * IMPORT_ROLLBACK_COMPLETE.

*

Import of the resource requires that the CloudFormation stack template matches the - * associated Amazon Web Services Service Catalog product provisioning artifact.

+ * associated Service Catalog product provisioning artifact.

* *

The user or role that performs this operation must have the cloudformation:GetTemplate * and cloudformation:DescribeStacks IAM policy permissions.

diff --git a/clients/client-service-catalog/src/commands/ListPrincipalsForPortfolioCommand.ts b/clients/client-service-catalog/src/commands/ListPrincipalsForPortfolioCommand.ts index e64777945adb..74ce59acb761 100644 --- a/clients/client-service-catalog/src/commands/ListPrincipalsForPortfolioCommand.ts +++ b/clients/client-service-catalog/src/commands/ListPrincipalsForPortfolioCommand.ts @@ -29,7 +29,7 @@ export interface ListPrincipalsForPortfolioCommandInput extends ListPrincipalsFo export interface ListPrincipalsForPortfolioCommandOutput extends ListPrincipalsForPortfolioOutput, __MetadataBearer {} /** - *

Lists all principal ARNs associated with the specified portfolio.

+ *

Lists all PrincipalARNs and corresponding PrincipalTypes associated with the specified portfolio.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-service-catalog/src/commands/UpdatePortfolioShareCommand.ts b/clients/client-service-catalog/src/commands/UpdatePortfolioShareCommand.ts index b818d4cabed3..d4617859d937 100644 --- a/clients/client-service-catalog/src/commands/UpdatePortfolioShareCommand.ts +++ b/clients/client-service-catalog/src/commands/UpdatePortfolioShareCommand.ts @@ -29,15 +29,26 @@ export interface UpdatePortfolioShareCommandInput extends UpdatePortfolioShareIn export interface UpdatePortfolioShareCommandOutput extends UpdatePortfolioShareOutput, __MetadataBearer {} /** - *

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share.

+ *

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing + * or Principal sharing for an existing portfolio share.

* - *

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

+ *

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

* *

You must provide the accountId or organization node in the input, but not both.

* *

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

* *

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

+ * + * + *

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is + * then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, + * but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal + * name association for the portfolio. Although this user may not know which principal names are associated through + * Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then + * Service Catalog recommends using PrincipalType as IAM. With this configuration, + * the PrincipalARN must already exist in the recipient account before it can be associated.

+ *
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-service-catalog/src/models/models_0.ts b/clients/client-service-catalog/src/models/models_0.ts index 2ebe217ace25..8d8ed7dfb605 100644 --- a/clients/client-service-catalog/src/models/models_0.ts +++ b/clients/client-service-catalog/src/models/models_0.ts @@ -217,6 +217,7 @@ export class DuplicateResourceException extends __BaseException { export enum PrincipalType { IAM = "IAM", + IAM_PATTERN = "IAM_PATTERN", } export interface AssociatePrincipalWithPortfolioInput { @@ -245,12 +246,17 @@ export interface AssociatePrincipalWithPortfolioInput { PortfolioId: string | undefined; /** - *

The ARN of the principal (IAM user, role, or group).

+ *

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if + * PrincipalType is IAM_PATTERN.

+ *

You can associate multiple IAM patterns even if the account has no principal with that name. + * This is useful in Principal Name Sharing if you want to share a principal without creating it in the + * account that owns the portfolio.

*/ PrincipalARN: string | undefined; /** - *

The principal type. The supported value is IAM.

+ *

The principal type. The supported value is IAM if you use a fully defined ARN, + * or IAM_PATTERN if you use an ARN with no accountID.

*/ PrincipalType: PrincipalType | string | undefined; } @@ -945,9 +951,22 @@ export interface CreatePortfolioShareInput { OrganizationNode?: OrganizationNode; /** - *

Enables or disables TagOptions sharing when creating the portfolio share. If this flag is not provided, TagOptions sharing is disabled.

+ *

Enables or disables TagOptions sharing when creating the portfolio share. If this flag is not + * provided, TagOptions sharing is disabled.

*/ ShareTagOptions?: boolean; + + /** + *

Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, + * principal sharing is disabled.

+ *

When you enable Principal Name Sharing for a portfolio share, the share recipient + * account end users with a principal that matches any of the associated IAM + * patterns can provision products from the portfolio. Once + * shared, the share recipient can view associations of PrincipalType: + * IAM_PATTERN on their portfolio. You can create the principals in the recipient account before or + * after creating the share.

+ */ + SharePrincipals?: boolean; } export interface CreatePortfolioShareOutput { @@ -1006,7 +1025,7 @@ export interface ProvisioningArtifactProperties { /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ]

- *

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format. + *

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format. * Specify the URL in JSON format as follows:

*

* "LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..." @@ -1017,7 +1036,7 @@ export interface ProvisioningArtifactProperties { * format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ - Info: Record | undefined; + Info?: Record; /** *

The type of provisioning artifact.

@@ -1039,11 +1058,71 @@ export interface ProvisioningArtifactProperties { Type?: ProvisioningArtifactType | string; /** - *

If set to true, Amazon Web Services Service Catalog stops validating the specified provisioning artifact even if it is invalid.

+ *

If set to true, Service Catalog stops validating the specified provisioning artifact even if it is invalid.

*/ DisableTemplateValidation?: boolean; } +/** + *

The subtype containing details about the Codestar connection Type.

+ */ +export interface CodeStarParameters { + /** + *

The CodeStar ARN, which is the connection between Service Catalog and the external repository.

+ */ + ConnectionArn: string | undefined; + + /** + *

The specific repository where the product’s artifact-to-be-synced resides, formatted as + * "Account/Repo."

+ */ + Repository: string | undefined; + + /** + *

The specific branch where the artifact resides.

+ */ + Branch: string | undefined; + + /** + *

The absolute path wehre the artifact resides within the repo and branch, formatted as + * "folder/file.json."

+ */ + ArtifactPath: string | undefined; +} + +/** + *

Provides connection details.

+ */ +export interface SourceConnectionParameters { + /** + *

Provides ConnectionType details.

+ */ + CodeStar?: CodeStarParameters; +} + +export enum SourceType { + CODESTAR = "CODESTAR", +} + +/** + *

A top level ProductViewDetail response containing details about the product’s connection. + * Service Catalog returns this field for the CreateProduct, UpdateProduct, + * DescribeProductAsAdmin, and SearchProductAsAdmin APIs. + * This response contains the same fields as the ConnectionParameters request, with the + * addition of the LastSync response.

+ */ +export interface SourceConnection { + /** + *

The only supported SourceConnection type is Codestar.

+ */ + Type?: SourceType | string; + + /** + *

The connection details based on the connection Type.

+ */ + ConnectionParameters: SourceConnectionParameters | undefined; +} + export interface CreateProductInput { /** *

The language code.

@@ -1114,13 +1193,32 @@ export interface CreateProductInput { /** *

The configuration of the provisioning artifact.

*/ - ProvisioningArtifactParameters: ProvisioningArtifactProperties | undefined; + ProvisioningArtifactParameters?: ProvisioningArtifactProperties; /** *

A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, * the same response is returned for each repeated request.

*/ IdempotencyToken?: string; + + /** + *

Specifies connection details for the created product and syncs the product to the connection source + * artifact. This automatically manages the product's artifacts based on changes to the source. + * The SourceConnection parameter consists of the following sub-fields.

+ *
    + *
  • + *

    + * Type + *

    + *
  • + *
  • + *

    + * ConnectionParamters + *

    + *
  • + *
+ */ + SourceConnection?: SourceConnection; } /** @@ -1190,6 +1288,115 @@ export interface ProductViewSummary { SupportUrl?: string; } +export enum LastSyncStatus { + FAILED = "FAILED", + SUCCEEDED = "SUCCEEDED", +} + +/** + *

Provides details about the product's connection sync and contains the following sub-fields.

+ *
    + *
  • + *

    + * LastSyncTime + *

    + *
  • + *
  • + *

    + * LastSyncStatus + *

    + *
  • + *
  • + *

    + * LastSyncStatusMessage + *

    + *
  • + *
  • + *

    + * LastSuccessfulSyncTime + *

    + *
  • + *
  • + *

    + * LastSuccessfulSyncProvisioningArtifactID + *

    + *
  • + *
+ */ +export interface LastSync { + /** + *

The time of the last attempted sync from the repository to the Service Catalog product.

+ */ + LastSyncTime?: Date; + + /** + *

The current status of the sync. Responses include SUCCEEDED or FAILED.

+ */ + LastSyncStatus?: LastSyncStatus | string; + + /** + *

The sync's status message.

+ */ + LastSyncStatusMessage?: string; + + /** + *

The time of the latest successful sync from the source repo artifact to the Service Catalog product.

+ */ + LastSuccessfulSyncTime?: Date; + + /** + *

The ProvisioningArtifactID of the ProvisioningArtifact created from the latest successful sync.

+ */ + LastSuccessfulSyncProvisioningArtifactId?: string; +} + +/** + *

Provides details about the configured SourceConnection.

+ */ +export interface SourceConnectionDetail { + /** + *

The only supported SourceConnection type is Codestar.

+ */ + Type?: SourceType | string; + + /** + *

The connection details based on the connection Type.

+ */ + ConnectionParameters?: SourceConnectionParameters; + + /** + *

Provides details about the product's connection sync and contains the following sub-fields.

+ *
    + *
  • + *

    + * LastSyncTime + *

    + *
  • + *
  • + *

    + * LastSyncStatus + *

    + *
  • + *
  • + *

    + * LastSyncStatusMessage + *

    + *
  • + *
  • + *

    + * LastSuccessfulSyncTime + *

    + *
  • + *
  • + *

    + * LastSuccessfulSyncProvisioningArtifactID + *

    + *
  • + *
+ */ + LastSync?: LastSync; +} + /** *

Information about a product view.

*/ @@ -1227,6 +1434,15 @@ export interface ProductViewDetail { *

The UTC time stamp of the creation time.

*/ CreatedTime?: Date; + + /** + *

A top level ProductViewDetail response containing details about the product’s connection. + * Service Catalog returns this field for the CreateProduct, UpdateProduct, + * DescribeProductAsAdmin, and SearchProductAsAdmin APIs. + * This response contains the same fields as the ConnectionParameters request, with the + * addition of the LastSync response.

+ */ + SourceConnection?: SourceConnectionDetail; } export enum ProvisioningArtifactGuidance { @@ -1286,6 +1502,17 @@ export interface ProvisioningArtifactDetail { *

Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.

*/ Guidance?: ProvisioningArtifactGuidance | string; + + /** + *

Specifies the revision of the external artifact that was used to automatically sync the Service Catalog product + * and create the provisioning artifact. Service Catalog includes this response parameter as a high level + * field to the existing ProvisioningArtifactDetail type, which is returned as part of the + * response for CreateProduct, UpdateProduct, DescribeProductAsAdmin, + * DescribeProvisioningArtifact, ListProvisioningArtifact, + * and UpdateProvisioningArticat APIs.

+ *

This field only exists for Repo-Synced products.

+ */ + SourceRevision?: string; } export interface CreateProductOutput { @@ -1480,11 +1707,11 @@ export interface CreateProvisioningArtifactOutput { /** *

Specify the template source with one of the following options, but not both. Keys * accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ].

- *

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

+ *

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

*

* LoadTemplateFromURL *

- *

Use the URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

+ *

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

*

* ImportFromPhysicalId *

@@ -2115,8 +2342,7 @@ export interface DescribePortfolioSharesInput { export interface PortfolioShareDetail { /** *

The identifier of the recipient entity that received the portfolio share. - * The recipient entities can be one of the following: - *

+ * The recipient entity can be one of the following:

*

1. An external account.

*

2. An organziation member account.

*

3. An organzational unit (OU).

@@ -2138,6 +2364,11 @@ export interface PortfolioShareDetail { *

Indicates whether TagOptions sharing is enabled or disabled for the portfolio share.

*/ ShareTagOptions?: boolean; + + /** + *

Indicates if Principal sharing is enabled or disabled for the portfolio share.

+ */ + SharePrincipals?: boolean; } export interface DescribePortfolioSharesOutput { @@ -2788,7 +3019,7 @@ export interface ProvisionedProductPlanDetails { Status?: ProvisionedProductPlanStatus | string; /** - *

The time when the plan was last updated.

+ *

The UTC time stamp when the plan was last updated.

*/ UpdatedTime?: Date; @@ -3001,7 +3232,7 @@ export interface DescribeProvisioningArtifactOutput { ProvisioningArtifactDetail?: ProvisioningArtifactDetail; /** - *

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

+ *

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

*/ Info?: Record; @@ -3667,9 +3898,16 @@ export interface DisassociatePrincipalFromPortfolioInput { PortfolioId: string | undefined; /** - *

The ARN of the principal (IAM user, role, or group).

+ *

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if + * PrincipalType is IAM_PATTERN.

*/ PrincipalARN: string | undefined; + + /** + *

The supported value is IAM if you use a fully defined ARN, or IAM_PATTERN + * if you use no accountID.

+ */ + PrincipalType?: PrincipalType | string; } export interface DisassociatePrincipalFromPortfolioOutput {} @@ -4464,19 +4702,21 @@ export interface ListPrincipalsForPortfolioInput { */ export interface Principal { /** - *

The ARN of the principal (IAM user, role, or group).

+ *

The ARN of the principal (IAM user, role, or group). This field allows for an ARN with no accountID if the + * PrincipalType is an IAM_PATTERN.

*/ PrincipalARN?: string; /** - *

The principal type. The supported value is IAM.

+ *

The principal type. The supported value is IAM if you use a fully defined ARN, or + * IAM_PATTERN if you use an ARN with no accountID.

*/ PrincipalType?: PrincipalType | string; } export interface ListPrincipalsForPortfolioOutput { /** - *

The IAM principals (users or roles) associated with the portfolio.

+ *

The PrincipalARNs and corresponding PrincipalTypes associated with the portfolio.

*/ Principals?: Principal[]; @@ -6023,9 +6263,16 @@ export interface UpdatePortfolioShareInput { OrganizationNode?: OrganizationNode; /** - *

A flag to enable or disable TagOptions sharing for the portfolio share. If this field is not provided, the current state of TagOptions sharing on the portfolio share will not be modified.

+ *

Enables or disables TagOptions sharing for the portfolio share. If this field is not provided, the current state of + * TagOptions sharing on the portfolio share will not be modified.

*/ ShareTagOptions?: boolean; + + /** + *

A flag to enables or disables Principals sharing in the portfolio. If this field is not provided, + * the current state of the Principals sharing on the portfolio share will not be modified.

+ */ + SharePrincipals?: boolean; } export interface UpdatePortfolioShareOutput { @@ -6111,6 +6358,25 @@ export interface UpdateProductInput { *

The tags to remove from the product.

*/ RemoveTags?: string[]; + + /** + *

Specifies connection details for the updated product and syncs the product to the connection source + * artifact. This automatically manages the product's artifacts based on changes to the source. + * The SourceConnection parameter consists of the following sub-fields.

+ *
    + *
  • + *

    + * Type + *

    + *
  • + *
  • + *

    + * ConnectionParamters + *

    + *
  • + *
+ */ + SourceConnection?: SourceConnection; } export interface UpdateProductOutput { @@ -6125,7 +6391,11 @@ export interface UpdateProductOutput { Tags?: Tag[]; } -export type StackSetOperationType = "CREATE" | "DELETE" | "UPDATE"; +export enum StackSetOperationType { + CREATE = "CREATE", + DELETE = "DELETE", + UPDATE = "UPDATE", +} /** *

The user-defined preferences that will be applied when updating a provisioned product. Not all preferences are applicable to all provisioned product types.

@@ -6437,7 +6707,7 @@ export interface UpdateProvisioningArtifactOutput { ProvisioningArtifactDetail?: ProvisioningArtifactDetail; /** - *

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

+ *

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

*/ Info?: Record; @@ -6765,6 +7035,27 @@ export const ProvisioningArtifactPropertiesFilterSensitiveLog = (obj: Provisioni ...obj, }); +/** + * @internal + */ +export const CodeStarParametersFilterSensitiveLog = (obj: CodeStarParameters): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const SourceConnectionParametersFilterSensitiveLog = (obj: SourceConnectionParameters): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const SourceConnectionFilterSensitiveLog = (obj: SourceConnection): any => ({ + ...obj, +}); + /** * @internal */ @@ -6779,6 +7070,20 @@ export const ProductViewSummaryFilterSensitiveLog = (obj: ProductViewSummary): a ...obj, }); +/** + * @internal + */ +export const LastSyncFilterSensitiveLog = (obj: LastSync): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const SourceConnectionDetailFilterSensitiveLog = (obj: SourceConnectionDetail): any => ({ + ...obj, +}); + /** * @internal */ diff --git a/clients/client-service-catalog/src/protocols/Aws_json1_1.ts b/clients/client-service-catalog/src/protocols/Aws_json1_1.ts index 465bc5e403c3..4028f738d0e4 100644 --- a/clients/client-service-catalog/src/protocols/Aws_json1_1.ts +++ b/clients/client-service-catalog/src/protocols/Aws_json1_1.ts @@ -311,6 +311,7 @@ import { BatchDisassociateServiceActionFromProvisioningArtifactOutput, BudgetDetail, CloudWatchDashboard, + CodeStarParameters, ConstraintDetail, ConstraintSummary, CopyOption, @@ -409,6 +410,7 @@ import { ImportAsProvisionedProductOutput, InvalidParametersException, InvalidStateException, + LastSync, LaunchPath, LaunchPathSummary, LimitExceededException, @@ -506,6 +508,9 @@ import { ServiceActionSummary, ShareDetails, ShareError, + SourceConnection, + SourceConnectionDetail, + SourceConnectionParameters, StackInstance, Tag, TagOptionDetail, @@ -5804,6 +5809,15 @@ const serializeAws_json1_1BatchDisassociateServiceActionFromProvisioningArtifact }; }; +const serializeAws_json1_1CodeStarParameters = (input: CodeStarParameters, context: __SerdeContext): any => { + return { + ...(input.ArtifactPath != null && { ArtifactPath: input.ArtifactPath }), + ...(input.Branch != null && { Branch: input.Branch }), + ...(input.ConnectionArn != null && { ConnectionArn: input.ConnectionArn }), + ...(input.Repository != null && { Repository: input.Repository }), + }; +}; + const serializeAws_json1_1CopyOptions = (input: (CopyOption | string)[], context: __SerdeContext): any => { return input .filter((e: any) => e != null) @@ -5863,6 +5877,7 @@ const serializeAws_json1_1CreatePortfolioShareInput = ( OrganizationNode: serializeAws_json1_1OrganizationNode(input.OrganizationNode, context), }), ...(input.PortfolioId != null && { PortfolioId: input.PortfolioId }), + ...(input.SharePrincipals != null && { SharePrincipals: input.SharePrincipals }), ...(input.ShareTagOptions != null && { ShareTagOptions: input.ShareTagOptions }), }; }; @@ -5882,6 +5897,9 @@ const serializeAws_json1_1CreateProductInput = (input: CreateProductInput, conte context ), }), + ...(input.SourceConnection != null && { + SourceConnection: serializeAws_json1_1SourceConnection(input.SourceConnection, context), + }), ...(input.SupportDescription != null && { SupportDescription: input.SupportDescription }), ...(input.SupportEmail != null && { SupportEmail: input.SupportEmail }), ...(input.SupportUrl != null && { SupportUrl: input.SupportUrl }), @@ -6210,6 +6228,7 @@ const serializeAws_json1_1DisassociatePrincipalFromPortfolioInput = ( ...(input.AcceptLanguage != null && { AcceptLanguage: input.AcceptLanguage }), ...(input.PortfolioId != null && { PortfolioId: input.PortfolioId }), ...(input.PrincipalARN != null && { PrincipalARN: input.PrincipalARN }), + ...(input.PrincipalType != null && { PrincipalType: input.PrincipalType }), }; }; @@ -6828,6 +6847,24 @@ const serializeAws_json1_1ServiceActionDefinitionMap = ( ); }; +const serializeAws_json1_1SourceConnection = (input: SourceConnection, context: __SerdeContext): any => { + return { + ...(input.ConnectionParameters != null && { + ConnectionParameters: serializeAws_json1_1SourceConnectionParameters(input.ConnectionParameters, context), + }), + ...(input.Type != null && { Type: input.Type }), + }; +}; + +const serializeAws_json1_1SourceConnectionParameters = ( + input: SourceConnectionParameters, + context: __SerdeContext +): any => { + return { + ...(input.CodeStar != null && { CodeStar: serializeAws_json1_1CodeStarParameters(input.CodeStar, context) }), + }; +}; + const serializeAws_json1_1SourceProvisioningArtifactProperties = ( input: Record[], context: __SerdeContext @@ -6940,6 +6977,7 @@ const serializeAws_json1_1UpdatePortfolioShareInput = ( OrganizationNode: serializeAws_json1_1OrganizationNode(input.OrganizationNode, context), }), ...(input.PortfolioId != null && { PortfolioId: input.PortfolioId }), + ...(input.SharePrincipals != null && { SharePrincipals: input.SharePrincipals }), ...(input.ShareTagOptions != null && { ShareTagOptions: input.ShareTagOptions }), }; }; @@ -6954,6 +6992,9 @@ const serializeAws_json1_1UpdateProductInput = (input: UpdateProductInput, conte ...(input.Name != null && { Name: input.Name }), ...(input.Owner != null && { Owner: input.Owner }), ...(input.RemoveTags != null && { RemoveTags: serializeAws_json1_1TagKeys(input.RemoveTags, context) }), + ...(input.SourceConnection != null && { + SourceConnection: serializeAws_json1_1SourceConnection(input.SourceConnection, context), + }), ...(input.SupportDescription != null && { SupportDescription: input.SupportDescription }), ...(input.SupportEmail != null && { SupportEmail: input.SupportEmail }), ...(input.SupportUrl != null && { SupportUrl: input.SupportUrl }), @@ -7218,6 +7259,15 @@ const deserializeAws_json1_1CloudWatchDashboards = (output: any, context: __Serd return retVal; }; +const deserializeAws_json1_1CodeStarParameters = (output: any, context: __SerdeContext): CodeStarParameters => { + return { + ArtifactPath: __expectString(output.ArtifactPath), + Branch: __expectString(output.Branch), + ConnectionArn: __expectString(output.ConnectionArn), + Repository: __expectString(output.Repository), + } as any; +}; + const deserializeAws_json1_1ConstraintDetail = (output: any, context: __SerdeContext): ConstraintDetail => { return { ConstraintId: __expectString(output.ConstraintId), @@ -7836,6 +7886,22 @@ const deserializeAws_json1_1InvalidStateException = (output: any, context: __Ser } as any; }; +const deserializeAws_json1_1LastSync = (output: any, context: __SerdeContext): LastSync => { + return { + LastSuccessfulSyncProvisioningArtifactId: __expectString(output.LastSuccessfulSyncProvisioningArtifactId), + LastSuccessfulSyncTime: + output.LastSuccessfulSyncTime != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastSuccessfulSyncTime))) + : undefined, + LastSyncStatus: __expectString(output.LastSyncStatus), + LastSyncStatusMessage: __expectString(output.LastSyncStatusMessage), + LastSyncTime: + output.LastSyncTime != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastSyncTime))) + : undefined, + } as any; +}; + const deserializeAws_json1_1LaunchPath = (output: any, context: __SerdeContext): LaunchPath => { return { Id: __expectString(output.Id), @@ -8192,6 +8258,7 @@ const deserializeAws_json1_1PortfolioShareDetail = (output: any, context: __Serd return { Accepted: __expectBoolean(output.Accepted), PrincipalId: __expectString(output.PrincipalId), + SharePrincipals: __expectBoolean(output.SharePrincipals), ShareTagOptions: __expectBoolean(output.ShareTagOptions), Type: __expectString(output.Type), } as any; @@ -8280,6 +8347,10 @@ const deserializeAws_json1_1ProductViewDetail = (output: any, context: __SerdeCo output.ProductViewSummary != null ? deserializeAws_json1_1ProductViewSummary(output.ProductViewSummary, context) : undefined, + SourceConnection: + output.SourceConnection != null + ? deserializeAws_json1_1SourceConnectionDetail(output.SourceConnection, context) + : undefined, Status: __expectString(output.Status), } as any; }; @@ -8513,6 +8584,7 @@ const deserializeAws_json1_1ProvisioningArtifactDetail = ( Guidance: __expectString(output.Guidance), Id: __expectString(output.Id), Name: __expectString(output.Name), + SourceRevision: __expectString(output.SourceRevision), Type: __expectString(output.Type), } as any; }; @@ -9047,6 +9119,26 @@ const deserializeAws_json1_1ShareErrors = (output: any, context: __SerdeContext) return retVal; }; +const deserializeAws_json1_1SourceConnectionDetail = (output: any, context: __SerdeContext): SourceConnectionDetail => { + return { + ConnectionParameters: + output.ConnectionParameters != null + ? deserializeAws_json1_1SourceConnectionParameters(output.ConnectionParameters, context) + : undefined, + LastSync: output.LastSync != null ? deserializeAws_json1_1LastSync(output.LastSync, context) : undefined, + Type: __expectString(output.Type), + } as any; +}; + +const deserializeAws_json1_1SourceConnectionParameters = ( + output: any, + context: __SerdeContext +): SourceConnectionParameters => { + return { + CodeStar: output.CodeStar != null ? deserializeAws_json1_1CodeStarParameters(output.CodeStar, context) : undefined, + } as any; +}; + const deserializeAws_json1_1StackInstance = (output: any, context: __SerdeContext): StackInstance => { return { Account: __expectString(output.Account), diff --git a/codegen/sdk-codegen/aws-models/service-catalog.json b/codegen/sdk-codegen/aws-models/service-catalog.json index 9a7bbd41d970..63d1a25fea0a 100644 --- a/codegen/sdk-codegen/aws-models/service-catalog.json +++ b/codegen/sdk-codegen/aws-models/service-catalog.json @@ -307,7 +307,7 @@ "name": "servicecatalog" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Service Catalog\n

\n Service Catalog enables\n organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To\n get the most out of this documentation, you should be familiar with the terminology\n discussed in Service Catalog\n Concepts.

", + "smithy.api#documentation": "Service Catalog\n

\n Service Catalog enables\n organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To\n get the most out of this documentation, you should be familiar with the terminology\n discussed in Service Catalog\n Concepts.

", "smithy.api#title": "AWS Service Catalog", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -634,9 +634,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-south-1" } }, { @@ -647,9 +647,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-south-1" } }, { @@ -660,9 +660,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-south-1" } }, { @@ -673,9 +673,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-south-1" } }, { @@ -686,9 +686,9 @@ } }, "params": { - "Region": "eu-south-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-south-1" } }, { @@ -699,9 +699,9 @@ } }, "params": { - "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-south-1" } }, { @@ -712,9 +712,9 @@ } }, "params": { - "Region": "eu-south-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-south-1" } }, { @@ -725,9 +725,9 @@ } }, "params": { - "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-south-1" } }, { @@ -738,9 +738,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -751,9 +751,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -764,9 +764,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -777,9 +777,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -790,9 +790,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ca-central-1" } }, { @@ -803,9 +803,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ca-central-1" } }, { @@ -816,9 +816,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ca-central-1" } }, { @@ -829,9 +829,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ca-central-1" } }, { @@ -842,9 +842,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-central-1" } }, { @@ -855,9 +855,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-central-1" } }, { @@ -868,9 +868,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { @@ -881,9 +881,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { @@ -894,9 +894,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-1" } }, { @@ -907,9 +907,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-1" } }, { @@ -920,9 +920,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-1" } }, { @@ -933,9 +933,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-1" } }, { @@ -946,9 +946,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-2" } }, { @@ -959,9 +959,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-2" } }, { @@ -972,9 +972,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-2" } }, { @@ -985,9 +985,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-2" } }, { @@ -998,9 +998,9 @@ } }, "params": { - "Region": "af-south-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "af-south-1" } }, { @@ -1011,9 +1011,9 @@ } }, "params": { - "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "af-south-1" } }, { @@ -1024,9 +1024,9 @@ } }, "params": { - "Region": "af-south-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "af-south-1" } }, { @@ -1037,9 +1037,9 @@ } }, "params": { - "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "af-south-1" } }, { @@ -1050,9 +1050,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-north-1" } }, { @@ -1063,9 +1063,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-north-1" } }, { @@ -1076,9 +1076,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-north-1" } }, { @@ -1089,9 +1089,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-north-1" } }, { @@ -1102,9 +1102,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-3" } }, { @@ -1115,9 +1115,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-3" } }, { @@ -1128,9 +1128,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-3" } }, { @@ -1141,9 +1141,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-3" } }, { @@ -1154,9 +1154,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-2" } }, { @@ -1167,9 +1167,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-2" } }, { @@ -1180,9 +1180,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { @@ -1193,9 +1193,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { @@ -1206,9 +1206,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-1" } }, { @@ -1219,9 +1219,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "eu-west-1" } }, { @@ -1232,9 +1232,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-1" } }, { @@ -1245,9 +1245,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-1" } }, { @@ -1258,9 +1258,9 @@ } }, "params": { - "Region": "ap-northeast-3", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-3" } }, { @@ -1271,9 +1271,9 @@ } }, "params": { - "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-3" } }, { @@ -1284,9 +1284,9 @@ } }, "params": { - "Region": "ap-northeast-3", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-3" } }, { @@ -1297,9 +1297,9 @@ } }, "params": { - "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-3" } }, { @@ -1310,9 +1310,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-2" } }, { @@ -1323,9 +1323,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-2" } }, { @@ -1336,9 +1336,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { @@ -1349,9 +1349,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { @@ -1362,9 +1362,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-1" } }, { @@ -1375,9 +1375,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-northeast-1" } }, { @@ -1388,9 +1388,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { @@ -1401,9 +1401,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { @@ -1414,9 +1414,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "me-south-1" } }, { @@ -1427,9 +1427,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "me-south-1" } }, { @@ -1440,9 +1440,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "me-south-1" } }, { @@ -1453,9 +1453,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "me-south-1" } }, { @@ -1466,9 +1466,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "sa-east-1" } }, { @@ -1479,9 +1479,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "sa-east-1" } }, { @@ -1492,9 +1492,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "sa-east-1" } }, { @@ -1505,9 +1505,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "sa-east-1" } }, { @@ -1518,9 +1518,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-east-1" } }, { @@ -1531,9 +1531,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-east-1" } }, { @@ -1544,9 +1544,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-east-1" } }, { @@ -1557,9 +1557,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-east-1" } }, { @@ -1570,9 +1570,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -1583,9 +1583,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -1596,9 +1596,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -1609,9 +1609,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -1622,9 +1622,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { @@ -1635,9 +1635,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { @@ -1648,9 +1648,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { @@ -1661,9 +1661,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { @@ -1674,9 +1674,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-1" } }, { @@ -1687,9 +1687,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-1" } }, { @@ -1700,9 +1700,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { @@ -1713,9 +1713,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { @@ -1726,9 +1726,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-2" } }, { @@ -1739,9 +1739,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-2" } }, { @@ -1752,9 +1752,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { @@ -1765,9 +1765,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { @@ -1778,9 +1778,9 @@ } }, "params": { - "Region": "ap-southeast-3", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-3" } }, { @@ -1791,9 +1791,9 @@ } }, "params": { - "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ap-southeast-3" } }, { @@ -1804,9 +1804,9 @@ } }, "params": { - "Region": "ap-southeast-3", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-3" } }, { @@ -1817,9 +1817,9 @@ } }, "params": { - "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-3" } }, { @@ -1830,9 +1830,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -1843,9 +1843,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -1856,9 +1856,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -1869,9 +1869,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -1882,9 +1882,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-2" } }, { @@ -1895,9 +1895,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-2" } }, { @@ -1908,9 +1908,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-2" } }, { @@ -1921,9 +1921,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-2" } }, { @@ -1934,9 +1934,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-northwest-1" } }, { @@ -1947,9 +1947,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-northwest-1" } }, { @@ -1960,9 +1960,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { @@ -1973,9 +1973,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { @@ -1986,9 +1986,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1998,9 +1998,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -2010,9 +2010,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } } @@ -2102,44 +2102,52 @@ } }, "com.amazonaws.servicecatalog#AccessLevelFilterKey": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "Account", - "name": "ACCOUNT" - }, - { - "value": "Role", - "name": "ROLE" - }, - { - "value": "User", - "name": "USER" + "type": "enum", + "members": { + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Account" } - ] + }, + "ROLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Role" + } + }, + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "User" + } + } } }, "com.amazonaws.servicecatalog#AccessLevelFilterValue": { "type": "string" }, "com.amazonaws.servicecatalog#AccessStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ENABLED", - "name": "ENABLED" - }, - { - "value": "UNDER_CHANGE", - "name": "UNDER_CHANGE" - }, - { - "value": "DISABLED", - "name": "DISABLED" + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "UNDER_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNDER_CHANGE" } - ] + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } } }, "com.amazonaws.servicecatalog#AccountId": { @@ -2247,7 +2255,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates the specified principal ARN with the specified portfolio.

" + "smithy.api#documentation": "

Associates the specified principal ARN with the specified portfolio.

\n

If you share the portfolio with principal name sharing enabled, the PrincipalARN association is \n included in the share.

\n

The PortfolioID, PrincipalARN, and PrincipalType parameters are\n required.

\n

You can associate a maximum of 10 Principals with a portfolio using PrincipalType as IAM_PATTERN\n

\n \n \n

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is \n then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, \n but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal \n name association for the portfolio. Although this user may not know which principal names are associated through \n Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then \n Service Catalog recommends using PrincipalType as IAM. With this configuration, \n the PrincipalARN must already exist in the recipient account before it can be associated.

\n
" } }, "com.amazonaws.servicecatalog#AssociatePrincipalWithPortfolioInput": { @@ -2269,14 +2277,14 @@ "PrincipalARN": { "target": "com.amazonaws.servicecatalog#PrincipalARN", "traits": { - "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group).

", + "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if \n PrincipalType is IAM_PATTERN.

\n

You can associate multiple IAM patterns even if the account has no principal with that name.\n This is useful in Principal Name Sharing if you want to share a principal without creating it in the \n account that owns the portfolio.

", "smithy.api#required": {} } }, "PrincipalType": { "target": "com.amazonaws.servicecatalog#PrincipalType", "traits": { - "smithy.api#documentation": "

The principal type. The supported value is IAM.

", + "smithy.api#documentation": "

The principal type. The supported value is IAM if you use a fully defined ARN, \n or IAM_PATTERN if you use an ARN with no accountID.

", "smithy.api#required": {} } } @@ -2592,22 +2600,26 @@ "type": "string" }, "com.amazonaws.servicecatalog#ChangeAction": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ADD", - "name": "ADD" - }, - { - "value": "MODIFY", - "name": "MODIFY" - }, - { - "value": "REMOVE", - "name": "REMOVE" + "type": "enum", + "members": { + "ADD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADD" + } + }, + "MODIFY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODIFY" + } + }, + "REMOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE" } - ] + } } }, "com.amazonaws.servicecatalog#CloudWatchDashboard": { @@ -2633,6 +2645,52 @@ "target": "com.amazonaws.servicecatalog#CloudWatchDashboard" } }, + "com.amazonaws.servicecatalog#CodeStarConnectionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1224 + }, + "smithy.api#pattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:codestar-connections:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:[^/].{0,1023}$" + } + }, + "com.amazonaws.servicecatalog#CodeStarParameters": { + "type": "structure", + "members": { + "ConnectionArn": { + "target": "com.amazonaws.servicecatalog#CodeStarConnectionArn", + "traits": { + "smithy.api#documentation": "

The CodeStar ARN, which is the connection between Service Catalog and the external repository.

", + "smithy.api#required": {} + } + }, + "Repository": { + "target": "com.amazonaws.servicecatalog#Repository", + "traits": { + "smithy.api#documentation": "

The specific repository where the product’s artifact-to-be-synced resides, formatted as \n \"Account/Repo.\"

", + "smithy.api#required": {} + } + }, + "Branch": { + "target": "com.amazonaws.servicecatalog#RepositoryBranch", + "traits": { + "smithy.api#documentation": "

The specific branch where the artifact resides.

", + "smithy.api#required": {} + } + }, + "ArtifactPath": { + "target": "com.amazonaws.servicecatalog#RepositoryArtifactPath", + "traits": { + "smithy.api#documentation": "

The absolute path wehre the artifact resides within the repo and branch, formatted as \n \"folder/file.json.\"

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The subtype containing details about the Codestar connection Type.

" + } + }, "com.amazonaws.servicecatalog#ConstraintDescription": { "type": "string", "traits": { @@ -2731,14 +2789,14 @@ } }, "com.amazonaws.servicecatalog#CopyOption": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CopyTags", - "name": "CopyTags" + "type": "enum", + "members": { + "CopyTags": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CopyTags" } - ] + } } }, "com.amazonaws.servicecatalog#CopyOptions": { @@ -2829,22 +2887,26 @@ } }, "com.amazonaws.servicecatalog#CopyProductStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "SUCCEEDED", - "name": "SUCCEEDED" - }, - { - "value": "IN_PROGRESS", - "name": "IN_PROGRESS" - }, - { - "value": "FAILED", - "name": "FAILED" + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" } - ] + } } }, "com.amazonaws.servicecatalog#CreateConstraint": { @@ -3060,7 +3122,7 @@ } ], "traits": { - "smithy.api#documentation": "

Shares the specified portfolio with the specified account or organization node.\n Shares to an organization node can only be created by the management account of an\n organization or by a delegated administrator. You can share portfolios to an organization,\n an organizational unit, or a specific account.

\n

Note that if a delegated admin is de-registered, they can no longer create portfolio shares.

\n

\n AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

\n

You can't share a shared resource, including portfolios that contain a shared product.

\n

If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

" + "smithy.api#documentation": "

Shares the specified portfolio with the specified account or organization node.\n Shares to an organization node can only be created by the management account of an\n organization or by a delegated administrator. You can share portfolios to an organization,\n an organizational unit, or a specific account.

\n

Note that if a delegated admin is de-registered, they can no longer create portfolio shares.

\n

\n AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

\n

You can't share a shared resource, including portfolios that contain a shared product.

\n

If the portfolio share with the specified account or organization node already exists, this action will have no effect \n and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

\n \n \n

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is \n then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, \n but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal \n name association for the portfolio. Although this user may not know which principal names are associated through \n Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then \n Service Catalog recommends using PrincipalType as IAM. With this configuration, \n the PrincipalARN must already exist in the recipient account before it can be associated.

\n
" } }, "com.amazonaws.servicecatalog#CreatePortfolioShareInput": { @@ -3095,7 +3157,14 @@ "target": "com.amazonaws.servicecatalog#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Enables or disables TagOptions sharing when creating the portfolio share. If this flag is not provided, TagOptions sharing is disabled.

" + "smithy.api#documentation": "

Enables or disables TagOptions sharing when creating the portfolio share. If this flag is not \n provided, TagOptions sharing is disabled.

" + } + }, + "SharePrincipals": { + "target": "com.amazonaws.servicecatalog#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided,\n principal sharing is disabled.

\n

When you enable Principal Name Sharing for a portfolio share, the share recipient\n account end users with a principal that matches any of the associated IAM\n patterns can provision products from the portfolio. Once\n shared, the share recipient can view associations of PrincipalType: \n IAM_PATTERN on their portfolio. You can create the principals in the recipient account before or \n after creating the share.

" } } } @@ -3203,8 +3272,7 @@ "ProvisioningArtifactParameters": { "target": "com.amazonaws.servicecatalog#ProvisioningArtifactProperties", "traits": { - "smithy.api#documentation": "

The configuration of the provisioning artifact.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The configuration of the provisioning artifact.

" } }, "IdempotencyToken": { @@ -3214,6 +3282,12 @@ "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } + }, + "SourceConnection": { + "target": "com.amazonaws.servicecatalog#SourceConnection", + "traits": { + "smithy.api#documentation": "

Specifies connection details for the created product and syncs the product to the connection source\n artifact. This automatically manages the product's artifacts based on changes to the source.\n The SourceConnection parameter consists of the following sub-fields.

\n " + } } } }, @@ -3444,7 +3518,7 @@ "Info": { "target": "com.amazonaws.servicecatalog#ProvisioningArtifactInfo", "traits": { - "smithy.api#documentation": "

Specify the template source with one of the following options, but not both. Keys\n accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ].

\n

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

\n

\n LoadTemplateFromURL\n

\n

Use the URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

\n

\n ImportFromPhysicalId\n

\n

Use the physical id of the resource that contains the template; currently supports CloudFormation stack ARN.

" + "smithy.api#documentation": "

Specify the template source with one of the following options, but not both. Keys\n accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ].

\n

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

\n

\n LoadTemplateFromURL\n

\n

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

\n

\n ImportFromPhysicalId\n

\n

Use the physical id of the resource that contains the template; currently supports CloudFormation stack ARN.

" } }, "Status": { @@ -4233,26 +4307,32 @@ } }, "com.amazonaws.servicecatalog#DescribePortfolioShareType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ACCOUNT", - "name": "ACCOUNT" - }, - { - "value": "ORGANIZATION", - "name": "ORGANIZATION" - }, - { - "value": "ORGANIZATIONAL_UNIT", - "name": "ORGANIZATIONAL_UNIT" - }, - { - "value": "ORGANIZATION_MEMBER_ACCOUNT", - "name": "ORGANIZATION_MEMBER_ACCOUNT" + "type": "enum", + "members": { + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCOUNT" + } + }, + "ORGANIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORGANIZATION" + } + }, + "ORGANIZATIONAL_UNIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORGANIZATIONAL_UNIT" + } + }, + "ORGANIZATION_MEMBER_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORGANIZATION_MEMBER_ACCOUNT" } - ] + } } }, "com.amazonaws.servicecatalog#DescribePortfolioShares": { @@ -4751,7 +4831,7 @@ "Info": { "target": "com.amazonaws.servicecatalog#ProvisioningArtifactInfo", "traits": { - "smithy.api#documentation": "

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

" + "smithy.api#documentation": "

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

" } }, "Status": { @@ -5193,7 +5273,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disassociates a previously associated principal ARN from a specified\n portfolio.

" + "smithy.api#documentation": "

Disassociates a previously associated principal ARN from a specified\n portfolio.

\n

The PrincipalType and PrincipalARN must match the \n AssociatePrincipalWithPortfolio call request details. For example,\n to disassociate an association created with a PrincipalARN of PrincipalType\n IAM you must use the PrincipalType IAM when calling DisassociatePrincipalFromPortfolio.

\n

For portfolios that have been shared with principal name sharing enabled: after disassociating a principal,\n share recipient accounts will no longer be able to provision products in this portfolio using a role matching the name \n of the associated principal.

" } }, "com.amazonaws.servicecatalog#DisassociatePrincipalFromPortfolioInput": { @@ -5215,9 +5295,15 @@ "PrincipalARN": { "target": "com.amazonaws.servicecatalog#PrincipalARN", "traits": { - "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group).

", + "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if \n PrincipalType is IAM_PATTERN.

", "smithy.api#required": {} } + }, + "PrincipalType": { + "target": "com.amazonaws.servicecatalog#PrincipalType", + "traits": { + "smithy.api#documentation": "

The supported value is IAM if you use a fully defined ARN, or IAM_PATTERN\n if you use no accountID.

" + } } } }, @@ -5437,18 +5523,20 @@ } }, "com.amazonaws.servicecatalog#EvaluationType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "STATIC", - "name": "STATIC" - }, - { - "value": "DYNAMIC", - "name": "DYNAMIC" + "type": "enum", + "members": { + "STATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATIC" + } + }, + "DYNAMIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DYNAMIC" } - ] + } } }, "com.amazonaws.servicecatalog#ExecuteProvisionedProductPlan": { @@ -5894,7 +5982,7 @@ } ], "traits": { - "smithy.api#documentation": "

Requests the import of a resource as a Amazon Web Services Service Catalog provisioned product that is\n associated to a Amazon Web Services Service Catalog product and provisioning artifact. Once imported, all\n supported Amazon Web Services Service Catalog governance actions are supported on the provisioned\n product.

\n

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and\n non-root nested stacks are not supported.

\n

The CloudFormation stack must have one of the following statuses to be imported:\n CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE,\n IMPORT_ROLLBACK_COMPLETE.

\n

Import of the resource requires that the CloudFormation stack template matches the\n associated Amazon Web Services Service Catalog product provisioning artifact.

\n \n

The user or role that performs this operation must have the cloudformation:GetTemplate\n and cloudformation:DescribeStacks IAM policy permissions.

" + "smithy.api#documentation": "

Requests the import of a resource as an Service Catalog provisioned product that is\n associated to an Service Catalog product and provisioning artifact. Once imported, all\n supported Service Catalog governance actions are supported on the provisioned\n product.

\n

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and\n non-root nested stacks are not supported.

\n

The CloudFormation stack must have one of the following statuses to be imported:\n CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE,\n IMPORT_ROLLBACK_COMPLETE.

\n

Import of the resource requires that the CloudFormation stack template matches the\n associated Service Catalog product provisioning artifact.

\n \n

The user or role that performs this operation must have the cloudformation:GetTemplate\n and cloudformation:DescribeStacks IAM policy permissions.

" } }, "com.amazonaws.servicecatalog#ImportAsProvisionedProductInput": { @@ -5985,26 +6073,90 @@ "com.amazonaws.servicecatalog#LastRequestId": { "type": "string" }, - "com.amazonaws.servicecatalog#LaunchPath": { + "com.amazonaws.servicecatalog#LastSuccessfulSyncTime": { + "type": "timestamp" + }, + "com.amazonaws.servicecatalog#LastSync": { "type": "structure", "members": { - "Id": { - "target": "com.amazonaws.servicecatalog#Id", + "LastSyncTime": { + "target": "com.amazonaws.servicecatalog#LastSyncTime", "traits": { - "smithy.api#documentation": "

The identifier of the launch path.

" + "smithy.api#documentation": "

The time of the last attempted sync from the repository to the Service Catalog product.

" } }, - "Name": { - "target": "com.amazonaws.servicecatalog#PortfolioName", + "LastSyncStatus": { + "target": "com.amazonaws.servicecatalog#LastSyncStatus", "traits": { - "smithy.api#documentation": "

The name of the launch path.

" + "smithy.api#documentation": "

The current status of the sync. Responses include SUCCEEDED or FAILED.

" } - } - }, - "traits": { - "smithy.api#documentation": "

A launch path object.

" - } - }, + }, + "LastSyncStatusMessage": { + "target": "com.amazonaws.servicecatalog#LastSyncStatusMessage", + "traits": { + "smithy.api#documentation": "

The sync's status message.

" + } + }, + "LastSuccessfulSyncTime": { + "target": "com.amazonaws.servicecatalog#LastSuccessfulSyncTime", + "traits": { + "smithy.api#documentation": "

The time of the latest successful sync from the source repo artifact to the Service Catalog product.

" + } + }, + "LastSuccessfulSyncProvisioningArtifactId": { + "target": "com.amazonaws.servicecatalog#Id", + "traits": { + "smithy.api#documentation": "

The ProvisioningArtifactID of the ProvisioningArtifact created from the latest successful sync.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides details about the product's connection sync and contains the following sub-fields.

\n " + } + }, + "com.amazonaws.servicecatalog#LastSyncStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.servicecatalog#LastSyncStatusMessage": { + "type": "string" + }, + "com.amazonaws.servicecatalog#LastSyncTime": { + "type": "timestamp" + }, + "com.amazonaws.servicecatalog#LaunchPath": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.servicecatalog#Id", + "traits": { + "smithy.api#documentation": "

The identifier of the launch path.

" + } + }, + "Name": { + "target": "com.amazonaws.servicecatalog#PortfolioName", + "traits": { + "smithy.api#documentation": "

The name of the launch path.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A launch path object.

" + } + }, "com.amazonaws.servicecatalog#LaunchPathSummaries": { "type": "list", "member": { @@ -6673,7 +6825,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all principal ARNs associated with the specified portfolio.

", + "smithy.api#documentation": "

Lists all PrincipalARNs and corresponding PrincipalTypes associated with the specified portfolio.

", "smithy.api#paginated": { "inputToken": "PageToken", "outputToken": "NextPageToken", @@ -6718,7 +6870,7 @@ "Principals": { "target": "com.amazonaws.servicecatalog#Principals", "traits": { - "smithy.api#documentation": "

The IAM principals (users or roles) associated with the portfolio.

" + "smithy.api#documentation": "

The PrincipalARNs and corresponding PrincipalTypes associated with the portfolio.

" } }, "NextPageToken": { @@ -7479,22 +7631,26 @@ } }, "com.amazonaws.servicecatalog#OrganizationNodeType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ORGANIZATION", - "name": "ORGANIZATION" - }, - { - "value": "ORGANIZATIONAL_UNIT", - "name": "ORGANIZATIONAL_UNIT" - }, - { - "value": "ACCOUNT", - "name": "ACCOUNT" + "type": "enum", + "members": { + "ORGANIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORGANIZATION" } - ] + }, + "ORGANIZATIONAL_UNIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORGANIZATIONAL_UNIT" + } + }, + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCOUNT" + } + } } }, "com.amazonaws.servicecatalog#OrganizationNodeValue": { @@ -7732,7 +7888,7 @@ "PrincipalId": { "target": "com.amazonaws.servicecatalog#Id", "traits": { - "smithy.api#documentation": "

The identifier of the recipient entity that received the portfolio share. \n The recipient entities can be one of the following:\n

\n

1. An external account.

\n

2. An organziation member account.

\n

3. An organzational unit (OU).

\n

4. The organization itself. (This shares with every account in the organization).

" + "smithy.api#documentation": "

The identifier of the recipient entity that received the portfolio share. \n The recipient entity can be one of the following:

\n

1. An external account.

\n

2. An organziation member account.

\n

3. An organzational unit (OU).

\n

4. The organization itself. (This shares with every account in the organization).

" } }, "Type": { @@ -7754,6 +7910,13 @@ "smithy.api#default": false, "smithy.api#documentation": "

Indicates whether TagOptions sharing is enabled or disabled for the portfolio share.

" } + }, + "SharePrincipals": { + "target": "com.amazonaws.servicecatalog#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates if Principal sharing is enabled or disabled for the portfolio share.

" + } } }, "traits": { @@ -7767,22 +7930,26 @@ } }, "com.amazonaws.servicecatalog#PortfolioShareType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "IMPORTED", - "name": "IMPORTED" - }, - { - "value": "AWS_SERVICECATALOG", - "name": "AWS_SERVICECATALOG" - }, - { - "value": "AWS_ORGANIZATIONS", - "name": "AWS_ORGANIZATIONS" + "type": "enum", + "members": { + "IMPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORTED" + } + }, + "AWS_SERVICECATALOG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SERVICECATALOG" } - ] + }, + "AWS_ORGANIZATIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_ORGANIZATIONS" + } + } } }, "com.amazonaws.servicecatalog#Principal": { @@ -7791,13 +7958,13 @@ "PrincipalARN": { "target": "com.amazonaws.servicecatalog#PrincipalARN", "traits": { - "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group).

" + "smithy.api#documentation": "

The ARN of the principal (IAM user, role, or group). This field allows for an ARN with no accountID if the\n PrincipalType is an IAM_PATTERN.

" } }, "PrincipalType": { "target": "com.amazonaws.servicecatalog#PrincipalType", "traits": { - "smithy.api#documentation": "

The principal type. The supported value is IAM.

" + "smithy.api#documentation": "

The principal type. The supported value is IAM if you use a fully defined ARN, or\n IAM_PATTERN if you use an ARN with no accountID.

" } } }, @@ -7815,14 +7982,20 @@ } }, "com.amazonaws.servicecatalog#PrincipalType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "IAM", - "name": "IAM" + "type": "enum", + "members": { + "IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM" } - ] + }, + "IAM_PATTERN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM_PATTERN" + } + } } }, "com.amazonaws.servicecatalog#Principals": { @@ -7842,29 +8015,33 @@ } }, "com.amazonaws.servicecatalog#ProductSource": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "ACCOUNT", - "name": "ACCOUNT" + "type": "enum", + "members": { + "ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCOUNT" } - ] + } } }, "com.amazonaws.servicecatalog#ProductType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CLOUD_FORMATION_TEMPLATE", - "name": "CLOUD_FORMATION_TEMPLATE" - }, - { - "value": "MARKETPLACE", - "name": "MARKETPLACE" + "type": "enum", + "members": { + "CLOUD_FORMATION_TEMPLATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUD_FORMATION_TEMPLATE" + } + }, + "MARKETPLACE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MARKETPLACE" } - ], + } + }, + "traits": { "smithy.api#length": { "min": 0, "max": 8191 @@ -7936,6 +8113,12 @@ "traits": { "smithy.api#documentation": "

The UTC time stamp of the creation time.

" } + }, + "SourceConnection": { + "target": "com.amazonaws.servicecatalog#SourceConnectionDetail", + "traits": { + "smithy.api#documentation": "

A top level ProductViewDetail response containing details about the product’s connection.\n Service Catalog returns this field for the CreateProduct, UpdateProduct, \n DescribeProductAsAdmin, and SearchProductAsAdmin APIs. \n This response contains the same fields as the ConnectionParameters request, with the \n addition of the LastSync response.

" + } } }, "traits": { @@ -7952,26 +8135,32 @@ "type": "string" }, "com.amazonaws.servicecatalog#ProductViewFilterBy": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "FullTextSearch", - "name": "FullTextSearch" - }, - { - "value": "Owner", - "name": "Owner" - }, - { - "value": "ProductType", - "name": "ProductType" - }, - { - "value": "SourceProductId", - "name": "SourceProductId" + "type": "enum", + "members": { + "FullTextSearch": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FullTextSearch" + } + }, + "Owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Owner" } - ] + }, + "ProductType": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ProductType" + } + }, + "SourceProductId": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SourceProductId" + } + } } }, "com.amazonaws.servicecatalog#ProductViewFilterValue": { @@ -8020,22 +8209,26 @@ } }, "com.amazonaws.servicecatalog#ProductViewSortBy": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "Title", - "name": "Title" - }, - { - "value": "VersionCount", - "name": "VersionCount" - }, - { - "value": "CreationDate", - "name": "CreationDate" + "type": "enum", + "members": { + "Title": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Title" + } + }, + "VersionCount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VersionCount" } - ] + }, + "CreationDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreationDate" + } + } } }, "com.amazonaws.servicecatalog#ProductViewSummaries": { @@ -8120,18 +8313,22 @@ } }, "com.amazonaws.servicecatalog#PropertyKey": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "OWNER", - "name": "Owner" - }, - { - "value": "LAUNCH_ROLE", - "name": "LaunchRole" + "type": "enum", + "members": { + "Owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OWNER" + } + }, + "LaunchRole": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAUNCH_ROLE" } - ], + } + }, + "traits": { "smithy.api#length": { "min": 1, "max": 128 @@ -8603,7 +8800,7 @@ "UpdatedTime": { "target": "com.amazonaws.servicecatalog#UpdatedTime", "traits": { - "smithy.api#documentation": "

The time when the plan was last updated.

" + "smithy.api#documentation": "

The UTC time stamp when the plan was last updated.

" } }, "NotificationArns": { @@ -8639,34 +8836,44 @@ "type": "string" }, "com.amazonaws.servicecatalog#ProvisionedProductPlanStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CREATE_IN_PROGRESS", - "name": "CREATE_IN_PROGRESS" - }, - { - "value": "CREATE_SUCCESS", - "name": "CREATE_SUCCESS" - }, - { - "value": "CREATE_FAILED", - "name": "CREATE_FAILED" - }, - { - "value": "EXECUTE_IN_PROGRESS", - "name": "EXECUTE_IN_PROGRESS" - }, - { - "value": "EXECUTE_SUCCESS", - "name": "EXECUTE_SUCCESS" - }, - { - "value": "EXECUTE_FAILED", - "name": "EXECUTE_FAILED" + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_SUCCESS" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "EXECUTE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_IN_PROGRESS" + } + }, + "EXECUTE_SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_SUCCESS" + } + }, + "EXECUTE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_FAILED" } - ] + } } }, "com.amazonaws.servicecatalog#ProvisionedProductPlanSummary": { @@ -8714,14 +8921,14 @@ } }, "com.amazonaws.servicecatalog#ProvisionedProductPlanType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CLOUDFORMATION", - "name": "CLOUDFORMATION" + "type": "enum", + "members": { + "CLOUDFORMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUDFORMATION" } - ] + } } }, "com.amazonaws.servicecatalog#ProvisionedProductPlans": { @@ -8746,30 +8953,38 @@ } }, "com.amazonaws.servicecatalog#ProvisionedProductStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "AVAILABLE", - "name": "AVAILABLE" - }, - { - "value": "UNDER_CHANGE", - "name": "UNDER_CHANGE" - }, - { - "value": "TAINTED", - "name": "TAINTED" - }, - { - "value": "ERROR", - "name": "ERROR" - }, - { - "value": "PLAN_IN_PROGRESS", - "name": "PLAN_IN_PROGRESS" + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" } - ] + }, + "UNDER_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNDER_CHANGE" + } + }, + "TAINTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAINTED" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERROR" + } + }, + "PLAN_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLAN_IN_PROGRESS" + } + } } }, "com.amazonaws.servicecatalog#ProvisionedProductStatusMessage": { @@ -8779,14 +8994,14 @@ "type": "string" }, "com.amazonaws.servicecatalog#ProvisionedProductViewFilterBy": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "SearchQuery", - "name": "SearchQuery" + "type": "enum", + "members": { + "SearchQuery": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SearchQuery" } - ] + } } }, "com.amazonaws.servicecatalog#ProvisionedProductViewFilterValue": { @@ -8895,6 +9110,12 @@ "traits": { "smithy.api#documentation": "

Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.

" } + }, + "SourceRevision": { + "target": "com.amazonaws.servicecatalog#SourceRevision", + "traits": { + "smithy.api#documentation": "

Specifies the revision of the external artifact that was used to automatically sync the Service Catalog product \n and create the provisioning artifact. Service Catalog includes this response parameter as a high level \n field to the existing ProvisioningArtifactDetail type, which is returned as part of the\n response for CreateProduct, UpdateProduct, DescribeProductAsAdmin, \n DescribeProvisioningArtifact, ListProvisioningArtifact, \n and UpdateProvisioningArticat APIs.

\n

This field only exists for Repo-Synced products.

" + } } }, "traits": { @@ -8908,18 +9129,20 @@ } }, "com.amazonaws.servicecatalog#ProvisioningArtifactGuidance": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "DEFAULT", - "name": "DEFAULT" - }, - { - "value": "DEPRECATED", - "name": "DEPRECATED" + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEFAULT" + } + }, + "DEPRECATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEPRECATED" } - ] + } } }, "com.amazonaws.servicecatalog#ProvisioningArtifactInfo": { @@ -9083,8 +9306,7 @@ "Info": { "target": "com.amazonaws.servicecatalog#ProvisioningArtifactInfo", "traits": { - "smithy.api#documentation": "

Specify the template source with one of the following options, but not both.\n Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ]

\n

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.\n Specify the URL in JSON format as follows:

\n

\n \"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"\n

\n

\n ImportFromPhysicalId: The physical id of the resource that contains the\n template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON\n format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]\n

", - "smithy.api#required": {} + "smithy.api#documentation": "

Specify the template source with one of the following options, but not both.\n Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ]

\n

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.\n Specify the URL in JSON format as follows:

\n

\n \"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"\n

\n

\n ImportFromPhysicalId: The physical id of the resource that contains the\n template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON\n format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]\n

" } }, "Type": { @@ -9097,7 +9319,7 @@ "target": "com.amazonaws.servicecatalog#DisableTemplateValidation", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

If set to true, Amazon Web Services Service Catalog stops validating the specified provisioning artifact even if it is invalid.

" + "smithy.api#documentation": "

If set to true, Service Catalog stops validating the specified provisioning artifact even if it is invalid.

" } } }, @@ -9106,14 +9328,14 @@ } }, "com.amazonaws.servicecatalog#ProvisioningArtifactPropertyName": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "Id", - "name": "Id" + "type": "enum", + "members": { + "Id": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Id" } - ] + } } }, "com.amazonaws.servicecatalog#ProvisioningArtifactPropertyValue": { @@ -9164,22 +9386,26 @@ } }, "com.amazonaws.servicecatalog#ProvisioningArtifactType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CLOUD_FORMATION_TEMPLATE", - "name": "CLOUD_FORMATION_TEMPLATE" - }, - { - "value": "MARKETPLACE_AMI", - "name": "MARKETPLACE_AMI" - }, - { - "value": "MARKETPLACE_CAR", - "name": "MARKETPLACE_CAR" + "type": "enum", + "members": { + "CLOUD_FORMATION_TEMPLATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUD_FORMATION_TEMPLATE" + } + }, + "MARKETPLACE_AMI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MARKETPLACE_AMI" } - ] + }, + "MARKETPLACE_CAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MARKETPLACE_CAR" + } + } } }, "com.amazonaws.servicecatalog#ProvisioningArtifactView": { @@ -9441,30 +9667,38 @@ } }, "com.amazonaws.servicecatalog#RecordStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CREATED", - "name": "CREATED" - }, - { - "value": "IN_PROGRESS", - "name": "IN_PROGRESS" - }, - { - "value": "IN_PROGRESS_IN_ERROR", - "name": "IN_PROGRESS_IN_ERROR" - }, - { - "value": "SUCCEEDED", - "name": "SUCCEEDED" - }, - { - "value": "FAILED", - "name": "FAILED" + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED" } - ] + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "IN_PROGRESS_IN_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS_IN_ERROR" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } } }, "com.amazonaws.servicecatalog#RecordTag": { @@ -9571,41 +9805,76 @@ "members": {} }, "com.amazonaws.servicecatalog#Replacement": { + "type": "enum", + "members": { + "TRUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRUE" + } + }, + "FALSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FALSE" + } + }, + "CONDITIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONDITIONAL" + } + } + } + }, + "com.amazonaws.servicecatalog#Repository": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "TRUE", - "name": "TRUE" - }, - { - "value": "FALSE", - "name": "FALSE" - }, - { - "value": "CONDITIONAL", - "name": "CONDITIONAL" - } - ] + "smithy.api#length": { + "min": 1, + "max": 100 + } } }, - "com.amazonaws.servicecatalog#RequiresRecreation": { + "com.amazonaws.servicecatalog#RepositoryArtifactPath": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "NEVER", - "name": "NEVER" - }, - { - "value": "CONDITIONALLY", - "name": "CONDITIONALLY" - }, - { - "value": "ALWAYS", - "name": "ALWAYS" + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, + "com.amazonaws.servicecatalog#RepositoryBranch": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 250 + } + } + }, + "com.amazonaws.servicecatalog#RequiresRecreation": { + "type": "enum", + "members": { + "NEVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEVER" } - ] + }, + "CONDITIONALLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONDITIONALLY" + } + }, + "ALWAYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALWAYS" + } + } } }, "com.amazonaws.servicecatalog#ResourceARN": { @@ -9618,34 +9887,44 @@ } }, "com.amazonaws.servicecatalog#ResourceAttribute": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PROPERTIES", - "name": "PROPERTIES" - }, - { - "value": "METADATA", - "name": "METADATA" - }, - { - "value": "CREATIONPOLICY", - "name": "CREATIONPOLICY" - }, - { - "value": "UPDATEPOLICY", - "name": "UPDATEPOLICY" - }, - { - "value": "DELETIONPOLICY", - "name": "DELETIONPOLICY" - }, - { - "value": "TAGS", - "name": "TAGS" + "type": "enum", + "members": { + "PROPERTIES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROPERTIES" } - ] + }, + "METADATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "METADATA" + } + }, + "CREATIONPOLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATIONPOLICY" + } + }, + "UPDATEPOLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATEPOLICY" + } + }, + "DELETIONPOLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETIONPOLICY" + } + }, + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } } }, "com.amazonaws.servicecatalog#ResourceChange": { @@ -10260,30 +10539,38 @@ } }, "com.amazonaws.servicecatalog#ServiceActionAssociationErrorCode": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "DUPLICATE_RESOURCE", - "name": "DuplicateResourceException" - }, - { - "value": "INTERNAL_FAILURE", - "name": "InternalFailure" - }, - { - "value": "LIMIT_EXCEEDED", - "name": "LimitExceededException" - }, - { - "value": "RESOURCE_NOT_FOUND", - "name": "ResourceNotFoundException" - }, - { - "value": "THROTTLING", - "name": "ThrottlingException" + "type": "enum", + "members": { + "DuplicateResourceException": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DUPLICATE_RESOURCE" + } + }, + "InternalFailure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_FAILURE" + } + }, + "LimitExceededException": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIMIT_EXCEEDED" + } + }, + "ResourceNotFoundException": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE_NOT_FOUND" + } + }, + "ThrottlingException": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "THROTTLING" } - ] + } } }, "com.amazonaws.servicecatalog#ServiceActionAssociationErrorMessage": { @@ -10308,26 +10595,32 @@ } }, "com.amazonaws.servicecatalog#ServiceActionDefinitionKey": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "Name", - "name": "Name" - }, - { - "value": "Version", - "name": "Version" - }, - { - "value": "AssumeRole", - "name": "AssumeRole" - }, - { - "value": "Parameters", - "name": "Parameters" + "type": "enum", + "members": { + "Name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Name" + } + }, + "Version": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Version" } - ] + }, + "AssumeRole": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AssumeRole" + } + }, + "Parameters": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Parameters" + } + } } }, "com.amazonaws.servicecatalog#ServiceActionDefinitionMap": { @@ -10346,14 +10639,14 @@ } }, "com.amazonaws.servicecatalog#ServiceActionDefinitionType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "SSM_AUTOMATION", - "name": "SsmAutomation" + "type": "enum", + "members": { + "SsmAutomation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSM_AUTOMATION" } - ] + } } }, "com.amazonaws.servicecatalog#ServiceActionDefinitionValue": { @@ -10495,48 +10788,119 @@ } }, "com.amazonaws.servicecatalog#ShareStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "NOT_STARTED", - "name": "NOT_STARTED" - }, - { - "value": "IN_PROGRESS", - "name": "IN_PROGRESS" - }, - { - "value": "COMPLETED", - "name": "COMPLETED" - }, - { - "value": "COMPLETED_WITH_ERRORS", - "name": "COMPLETED_WITH_ERRORS" - }, - { - "value": "ERROR", - "name": "ERROR" + "type": "enum", + "members": { + "NOT_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_STARTED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "COMPLETED_WITH_ERRORS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED_WITH_ERRORS" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERROR" } - ] + } } }, "com.amazonaws.servicecatalog#SortField": { "type": "string" }, "com.amazonaws.servicecatalog#SortOrder": { - "type": "string", + "type": "enum", + "members": { + "ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASCENDING" + } + }, + "DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESCENDING" + } + } + } + }, + "com.amazonaws.servicecatalog#SourceConnection": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.servicecatalog#SourceType", + "traits": { + "smithy.api#documentation": "

The only supported SourceConnection type is Codestar.

" + } + }, + "ConnectionParameters": { + "target": "com.amazonaws.servicecatalog#SourceConnectionParameters", + "traits": { + "smithy.api#documentation": "

The connection details based on the connection Type.

", + "smithy.api#required": {} + } + } + }, "traits": { - "smithy.api#enum": [ - { - "value": "ASCENDING", - "name": "ASCENDING" - }, - { - "value": "DESCENDING", - "name": "DESCENDING" + "smithy.api#documentation": "

A top level ProductViewDetail response containing details about the product’s connection.\n Service Catalog returns this field for the CreateProduct, UpdateProduct, \n DescribeProductAsAdmin, and SearchProductAsAdmin APIs. \n This response contains the same fields as the ConnectionParameters request, with the \n addition of the LastSync response.

" + } + }, + "com.amazonaws.servicecatalog#SourceConnectionDetail": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.servicecatalog#SourceType", + "traits": { + "smithy.api#documentation": "

The only supported SourceConnection type is Codestar.

" } - ] + }, + "ConnectionParameters": { + "target": "com.amazonaws.servicecatalog#SourceConnectionParameters", + "traits": { + "smithy.api#documentation": "

The connection details based on the connection Type.

" + } + }, + "LastSync": { + "target": "com.amazonaws.servicecatalog#LastSync", + "traits": { + "smithy.api#documentation": "

Provides details about the product's connection sync and contains the following sub-fields.

\n " + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides details about the configured SourceConnection.

" + } + }, + "com.amazonaws.servicecatalog#SourceConnectionParameters": { + "type": "structure", + "members": { + "CodeStar": { + "target": "com.amazonaws.servicecatalog#CodeStarParameters", + "traits": { + "smithy.api#documentation": "

Provides ConnectionType details.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides connection details.

" } }, "com.amazonaws.servicecatalog#SourceProvisioningArtifactProperties": { @@ -10554,6 +10918,26 @@ "target": "com.amazonaws.servicecatalog#ProvisioningArtifactPropertyValue" } }, + "com.amazonaws.servicecatalog#SourceRevision": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + } + } + }, + "com.amazonaws.servicecatalog#SourceType": { + "type": "enum", + "members": { + "CODESTAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODESTAR" + } + } + } + }, "com.amazonaws.servicecatalog#StackInstance": { "type": "structure", "members": { @@ -10581,22 +10965,26 @@ } }, "com.amazonaws.servicecatalog#StackInstanceStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CURRENT", - "name": "CURRENT" - }, - { - "value": "OUTDATED", - "name": "OUTDATED" - }, - { - "value": "INOPERABLE", - "name": "INOPERABLE" + "type": "enum", + "members": { + "CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CURRENT" } - ] + }, + "OUTDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OUTDATED" + } + }, + "INOPERABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INOPERABLE" + } + } } }, "com.amazonaws.servicecatalog#StackInstances": { @@ -10646,22 +11034,26 @@ } }, "com.amazonaws.servicecatalog#StackSetOperationType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CREATE", - "name": "CREATE" - }, - { - "value": "UPDATE", - "name": "UPDATE" - }, - { - "value": "DELETE", - "name": "DELETE" + "type": "enum", + "members": { + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE" + } + }, + "UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" } - ] + } } }, "com.amazonaws.servicecatalog#StackSetRegions": { @@ -10671,22 +11063,26 @@ } }, "com.amazonaws.servicecatalog#Status": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "AVAILABLE", - "name": "AVAILABLE" - }, - { - "value": "CREATING", - "name": "CREATING" - }, - { - "value": "FAILED", - "name": "FAILED" + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" } - ] + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } } }, "com.amazonaws.servicecatalog#StatusDetail": { @@ -11180,7 +11576,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share.

\n \n

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

\n \n

You must provide the accountId or organization node in the input, but not both.

\n \n

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

\n \n

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

" + "smithy.api#documentation": "

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing \n or Principal sharing for an existing portfolio share.

\n \n

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

\n \n

You must provide the accountId or organization node in the input, but not both.

\n \n

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

\n \n

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

\n \n \n

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is \n then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, \n but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal \n name association for the portfolio. Although this user may not know which principal names are associated through \n Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then \n Service Catalog recommends using PrincipalType as IAM. With this configuration, \n the PrincipalARN must already exist in the recipient account before it can be associated.

\n
" } }, "com.amazonaws.servicecatalog#UpdatePortfolioShareInput": { @@ -11211,7 +11607,13 @@ "ShareTagOptions": { "target": "com.amazonaws.servicecatalog#NullableBoolean", "traits": { - "smithy.api#documentation": "

A flag to enable or disable TagOptions sharing for the portfolio share. If this field is not provided, the current state of TagOptions sharing on the portfolio share will not be modified.

" + "smithy.api#documentation": "

Enables or disables TagOptions sharing for the portfolio share. If this field is not provided, the current state of \n TagOptions sharing on the portfolio share will not be modified.

" + } + }, + "SharePrincipals": { + "target": "com.amazonaws.servicecatalog#NullableBoolean", + "traits": { + "smithy.api#documentation": "

A flag to enables or disables Principals sharing in the portfolio. If this field is not provided,\n the current state of the Principals sharing on the portfolio share will not be modified.

" } } } @@ -11325,6 +11727,12 @@ "traits": { "smithy.api#documentation": "

The tags to remove from the product.

" } + }, + "SourceConnection": { + "target": "com.amazonaws.servicecatalog#SourceConnection", + "traits": { + "smithy.api#documentation": "

Specifies connection details for the updated product and syncs the product to the connection source\n artifact. This automatically manages the product's artifacts based on changes to the source.\n The SourceConnection parameter consists of the following sub-fields.

\n " + } } } }, @@ -11627,7 +12035,7 @@ "Info": { "target": "com.amazonaws.servicecatalog#ProvisioningArtifactInfo", "traits": { - "smithy.api#documentation": "

The URL of the CloudFormation template in Amazon S3, Amazon Web Services CodeCommit, or GitHub in JSON format.

" + "smithy.api#documentation": "

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

" } }, "Status": { @@ -11897,4 +12305,4 @@ } } } -} \ No newline at end of file +}