AWS Service Catalog

2020/12/17 - AWS Service Catalog - 2 new 7 updated api methods

Changes  Support TagOptions sharing with Service Catalog portfolio sharing.

DescribePortfolioShares (new) Link ¶

Returns a summary of each of the portfolio shares that were created for the specified portfolio.

You can use this API to determine which accounts or organizational nodes this portfolio have been shared, whether the recipient entity has imported the share, and whether TagOptions are included with the share.

The PortfolioId and Type parameters are both required.

See also: AWS API Documentation

Request Syntax

client.describe_portfolio_shares(
    PortfolioId='string',
    Type='ACCOUNT'|'ORGANIZATION'|'ORGANIZATIONAL_UNIT'|'ORGANIZATION_MEMBER_ACCOUNT',
    PageToken='string',
    PageSize=123
)
type PortfolioId

string

param PortfolioId

[REQUIRED]

The unique identifier of the portfolio for which shares will be retrieved.

type Type

string

param Type

[REQUIRED]

The type of portfolio share to summarize. This field acts as a filter on the type of portfolio share, which can be one of the following:

  1. ACCOUNT - Represents an external account to account share.

  2. ORGANIZATION - Represents a share to an organization. This share is available to every account in the organization.

  3. ORGANIZATIONAL_UNIT - Represents a share to an organizational unit.

  4. ORGANIZATION_MEMBER_ACCOUNT - Represents a share to an account in the organization.

type PageToken

string

param PageToken

The page token for the next set of results. To retrieve the first set of results, use null.

type PageSize

integer

param PageSize

The maximum number of items to return with this call.

rtype

dict

returns

Response Syntax

{
    'NextPageToken': 'string',
    'PortfolioShareDetails': [
        {
            'PrincipalId': 'string',
            'Type': 'ACCOUNT'|'ORGANIZATION'|'ORGANIZATIONAL_UNIT'|'ORGANIZATION_MEMBER_ACCOUNT',
            'Accepted': True|False,
            'ShareTagOptions': True|False
        },
    ]
}

Response Structure

  • (dict) --

    • NextPageToken (string) --

      The page token to use to retrieve the next set of results. If there are no additional results, this value is null.

    • PortfolioShareDetails (list) --

      Summaries about each of the portfolio shares.

      • (dict) --

        Information about the portfolio share.

        • PrincipalId (string) --

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

          1. An external account.

          2. An organziation member account.

          3. An organzational unit (OU).

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

        • Type (string) --

          The type of the portfolio share.

        • Accepted (boolean) --

          Indicates whether the shared portfolio is imported by the recipient account. If the recipient is in an organization node, the share is automatically imported, and the field is always set to true.

        • ShareTagOptions (boolean) --

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

UpdatePortfolioShare (new) Link ¶

Updates the specified portfolio share. You can use this API to enable or disable TagOptions 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.

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.

See also: AWS API Documentation

Request Syntax

client.update_portfolio_share(
    AcceptLanguage='string',
    PortfolioId='string',
    AccountId='string',
    OrganizationNode={
        'Type': 'ORGANIZATION'|'ORGANIZATIONAL_UNIT'|'ACCOUNT',
        'Value': 'string'
    },
    ShareTagOptions=True|False
)
type AcceptLanguage

string

param AcceptLanguage

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

type PortfolioId

string

param PortfolioId

[REQUIRED]

The unique identifier of the portfolio for which the share will be updated.

type AccountId

string

param AccountId

The AWS Account Id of the recipient account. This field is required when updating an external account to account type share.

type OrganizationNode

dict

param OrganizationNode

Information about the organization node.

  • Type (string) --

    The organization node type.

  • Value (string) --

    The identifier of the organization node.

type ShareTagOptions

boolean

param ShareTagOptions

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.

rtype

dict

returns

Response Syntax

{
    'PortfolioShareToken': 'string',
    'Status': 'NOT_STARTED'|'IN_PROGRESS'|'COMPLETED'|'COMPLETED_WITH_ERRORS'|'ERROR'
}

Response Structure

  • (dict) --

    • PortfolioShareToken (string) --

      The token that tracks the status of the UpdatePortfolioShare operation for external account to account or organizational type sharing.

    • Status (string) --

      The status of UpdatePortfolioShare operation. You can also obtain the operation status using DescribePortfolioShareStatus API.

CreatePortfolioShare (updated) Link ¶
Changes (request)
{'ShareTagOptions': 'boolean'}

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

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

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.

See also: AWS API Documentation

Request Syntax

client.create_portfolio_share(
    AcceptLanguage='string',
    PortfolioId='string',
    AccountId='string',
    OrganizationNode={
        'Type': 'ORGANIZATION'|'ORGANIZATIONAL_UNIT'|'ACCOUNT',
        'Value': 'string'
    },
    ShareTagOptions=True|False
)
type AcceptLanguage

string

param AcceptLanguage

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

type PortfolioId

string

param PortfolioId

[REQUIRED]

The portfolio identifier.

type AccountId

string

param AccountId

The AWS account ID. For example, 123456789012 .

type OrganizationNode

dict

param OrganizationNode

The organization node to whom you are going to share. If OrganizationNode is passed in, PortfolioShare will be created for the node an ListOrganizationPortfolioAccessd its children (when applies), and a PortfolioShareToken will be returned in the output in order for the administrator to monitor the status of the PortfolioShare creation process.

  • Type (string) --

    The organization node type.

  • Value (string) --

    The identifier of the organization node.

type ShareTagOptions

boolean

param ShareTagOptions

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

rtype

dict

returns

Response Syntax

{
    'PortfolioShareToken': 'string'
}

Response Structure

  • (dict) --

    • PortfolioShareToken (string) --

      The portfolio shares a unique identifier that only returns if the portfolio is shared to an organization node.

CreateTagOption (updated) Link ¶
Changes (response)
{'TagOptionDetail': {'Owner': 'string'}}

Creates a TagOption.

See also: AWS API Documentation

Request Syntax

client.create_tag_option(
    Key='string',
    Value='string'
)
type Key

string

param Key

[REQUIRED]

The TagOption key.

type Value

string

param Value

[REQUIRED]

The TagOption value.

rtype

dict

returns

Response Syntax

{
    'TagOptionDetail': {
        'Key': 'string',
        'Value': 'string',
        'Active': True|False,
        'Id': 'string',
        'Owner': 'string'
    }
}

Response Structure

  • (dict) --

    • TagOptionDetail (dict) --

      Information about the TagOption.

      • Key (string) --

        The TagOption key.

      • Value (string) --

        The TagOption value.

      • Active (boolean) --

        The TagOption active state.

      • Id (string) --

        The TagOption identifier.

      • Owner (string) --

        The AWS account Id of the owner account that created the TagOption.

DescribePortfolio (updated) Link ¶
Changes (response)
{'TagOptions': {'Owner': 'string'}}

Gets information about the specified portfolio.

A delegated admin is authorized to invoke this command.

See also: AWS API Documentation

Request Syntax

client.describe_portfolio(
    AcceptLanguage='string',
    Id='string'
)
type AcceptLanguage

string

param AcceptLanguage

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

type Id

string

param Id

[REQUIRED]

The portfolio identifier.

rtype

dict

returns

Response Syntax

{
    'PortfolioDetail': {
        'Id': 'string',
        'ARN': 'string',
        'DisplayName': 'string',
        'Description': 'string',
        'CreatedTime': datetime(2015, 1, 1),
        'ProviderName': 'string'
    },
    'Tags': [
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    'TagOptions': [
        {
            'Key': 'string',
            'Value': 'string',
            'Active': True|False,
            'Id': 'string',
            'Owner': 'string'
        },
    ],
    'Budgets': [
        {
            'BudgetName': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • PortfolioDetail (dict) --

      Information about the portfolio.

      • Id (string) --

        The portfolio identifier.

      • ARN (string) --

        The ARN assigned to the portfolio.

      • DisplayName (string) --

        The name to use for display purposes.

      • Description (string) --

        The description of the portfolio.

      • CreatedTime (datetime) --

        The UTC time stamp of the creation time.

      • ProviderName (string) --

        The name of the portfolio provider.

    • Tags (list) --

      Information about the tags associated with the portfolio.

      • (dict) --

        Information about a tag. A tag is a key-value pair. Tags are propagated to the resources created when provisioning a product.

        • Key (string) --

          The tag key.

        • Value (string) --

          The value for this key.

    • TagOptions (list) --

      Information about the TagOptions associated with the portfolio.

      • (dict) --

        Information about a TagOption.

        • Key (string) --

          The TagOption key.

        • Value (string) --

          The TagOption value.

        • Active (boolean) --

          The TagOption active state.

        • Id (string) --

          The TagOption identifier.

        • Owner (string) --

          The AWS account Id of the owner account that created the TagOption.

    • Budgets (list) --

      Information about the associated budgets.

      • (dict) --

        Information about a budget.

        • BudgetName (string) --

          Name of the associated budget.

DescribeProductAsAdmin (updated) Link ¶
Changes (request, response)
Request
{'SourcePortfolioId': 'string'}
Response
{'TagOptions': {'Owner': 'string'}}

Gets information about the specified product. This operation is run with administrator access.

See also: AWS API Documentation

Request Syntax

client.describe_product_as_admin(
    AcceptLanguage='string',
    Id='string',
    Name='string',
    SourcePortfolioId='string'
)
type AcceptLanguage

string

param AcceptLanguage

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

type Id

string

param Id

The product identifier.

type Name

string

param Name

The product name.

type SourcePortfolioId

string

param SourcePortfolioId

The unique identifier of the shared portfolio that the specified product is associated with.

You can provide this parameter to retrieve the shared TagOptions associated with the product. If this parameter is provided and if TagOptions sharing is enabled in the portfolio share, the API returns both local and shared TagOptions associated with the product. Otherwise only local TagOptions will be returned.

rtype

dict

returns

Response Syntax

{
    'ProductViewDetail': {
        'ProductViewSummary': {
            'Id': 'string',
            'ProductId': 'string',
            'Name': 'string',
            'Owner': 'string',
            'ShortDescription': 'string',
            'Type': 'CLOUD_FORMATION_TEMPLATE'|'MARKETPLACE',
            'Distributor': 'string',
            'HasDefaultPath': True|False,
            'SupportEmail': 'string',
            'SupportDescription': 'string',
            'SupportUrl': 'string'
        },
        'Status': 'AVAILABLE'|'CREATING'|'FAILED',
        'ProductARN': 'string',
        'CreatedTime': datetime(2015, 1, 1)
    },
    'ProvisioningArtifactSummaries': [
        {
            'Id': 'string',
            'Name': 'string',
            'Description': 'string',
            'CreatedTime': datetime(2015, 1, 1),
            'ProvisioningArtifactMetadata': {
                'string': 'string'
            }
        },
    ],
    'Tags': [
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    'TagOptions': [
        {
            'Key': 'string',
            'Value': 'string',
            'Active': True|False,
            'Id': 'string',
            'Owner': 'string'
        },
    ],
    'Budgets': [
        {
            'BudgetName': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • ProductViewDetail (dict) --

      Information about the product view.

      • ProductViewSummary (dict) --

        Summary information about the product view.

        • Id (string) --

          The product view identifier.

        • ProductId (string) --

          The product identifier.

        • Name (string) --

          The name of the product.

        • Owner (string) --

          The owner of the product. Contact the product administrator for the significance of this value.

        • ShortDescription (string) --

          Short description of the product.

        • Type (string) --

          The product type. Contact the product administrator for the significance of this value. If this value is MARKETPLACE , the product was created by AWS Marketplace.

        • Distributor (string) --

          The distributor of the product. Contact the product administrator for the significance of this value.

        • HasDefaultPath (boolean) --

          Indicates whether the product has a default path. If the product does not have a default path, call ListLaunchPaths to disambiguate between paths. Otherwise, ListLaunchPaths is not required, and the output of ProductViewSummary can be used directly with DescribeProvisioningParameters .

        • SupportEmail (string) --

          The email contact information to obtain support for this Product.

        • SupportDescription (string) --

          The description of the support for this Product.

        • SupportUrl (string) --

          The URL information to obtain support for this Product.

      • Status (string) --

        The status of the product.

        • AVAILABLE - The product is ready for use.

        • CREATING - Product creation has started; the product is not ready for use.

        • FAILED - An action failed.

      • ProductARN (string) --

        The ARN of the product.

      • CreatedTime (datetime) --

        The UTC time stamp of the creation time.

    • ProvisioningArtifactSummaries (list) --

      Information about the provisioning artifacts (also known as versions) for the specified product.

      • (dict) --

        Summary information about a provisioning artifact (also known as a version) for a product.

        • Id (string) --

          The identifier of the provisioning artifact.

        • Name (string) --

          The name of the provisioning artifact.

        • Description (string) --

          The description of the provisioning artifact.

        • CreatedTime (datetime) --

          The UTC time stamp of the creation time.

        • ProvisioningArtifactMetadata (dict) --

          The metadata for the provisioning artifact. This is used with AWS Marketplace products.

          • (string) --

            • (string) --

    • Tags (list) --

      Information about the tags associated with the product.

      • (dict) --

        Information about a tag. A tag is a key-value pair. Tags are propagated to the resources created when provisioning a product.

        • Key (string) --

          The tag key.

        • Value (string) --

          The value for this key.

    • TagOptions (list) --

      Information about the TagOptions associated with the product.

      • (dict) --

        Information about a TagOption.

        • Key (string) --

          The TagOption key.

        • Value (string) --

          The TagOption value.

        • Active (boolean) --

          The TagOption active state.

        • Id (string) --

          The TagOption identifier.

        • Owner (string) --

          The AWS account Id of the owner account that created the TagOption.

    • Budgets (list) --

      Information about the associated budgets.

      • (dict) --

        Information about a budget.

        • BudgetName (string) --

          Name of the associated budget.

DescribeTagOption (updated) Link ¶
Changes (response)
{'TagOptionDetail': {'Owner': 'string'}}

Gets information about the specified TagOption.

See also: AWS API Documentation

Request Syntax

client.describe_tag_option(
    Id='string'
)
type Id

string

param Id

[REQUIRED]

The TagOption identifier.

rtype

dict

returns

Response Syntax

{
    'TagOptionDetail': {
        'Key': 'string',
        'Value': 'string',
        'Active': True|False,
        'Id': 'string',
        'Owner': 'string'
    }
}

Response Structure

  • (dict) --

    • TagOptionDetail (dict) --

      Information about the TagOption.

      • Key (string) --

        The TagOption key.

      • Value (string) --

        The TagOption value.

      • Active (boolean) --

        The TagOption active state.

      • Id (string) --

        The TagOption identifier.

      • Owner (string) --

        The AWS account Id of the owner account that created the TagOption.

ListTagOptions (updated) Link ¶
Changes (response)
{'TagOptionDetails': {'Owner': 'string'}}

Lists the specified TagOptions or all TagOptions.

See also: AWS API Documentation

Request Syntax

client.list_tag_options(
    Filters={
        'Key': 'string',
        'Value': 'string',
        'Active': True|False
    },
    PageSize=123,
    PageToken='string'
)
type Filters

dict

param Filters

The search filters. If no search filters are specified, the output includes all TagOptions.

  • Key (string) --

    The TagOption key.

  • Value (string) --

    The TagOption value.

  • Active (boolean) --

    The active state.

type PageSize

integer

param PageSize

The maximum number of items to return with this call.

type PageToken

string

param PageToken

The page token for the next set of results. To retrieve the first set of results, use null.

rtype

dict

returns

Response Syntax

{
    'TagOptionDetails': [
        {
            'Key': 'string',
            'Value': 'string',
            'Active': True|False,
            'Id': 'string',
            'Owner': 'string'
        },
    ],
    'PageToken': 'string'
}

Response Structure

  • (dict) --

    • TagOptionDetails (list) --

      Information about the TagOptions.

      • (dict) --

        Information about a TagOption.

        • Key (string) --

          The TagOption key.

        • Value (string) --

          The TagOption value.

        • Active (boolean) --

          The TagOption active state.

        • Id (string) --

          The TagOption identifier.

        • Owner (string) --

          The AWS account Id of the owner account that created the TagOption.

    • PageToken (string) --

      The page token for the next set of results. To retrieve the first set of results, use null.

UpdateTagOption (updated) Link ¶
Changes (response)
{'TagOptionDetail': {'Owner': 'string'}}

Updates the specified TagOption.

See also: AWS API Documentation

Request Syntax

client.update_tag_option(
    Id='string',
    Value='string',
    Active=True|False
)
type Id

string

param Id

[REQUIRED]

The TagOption identifier.

type Value

string

param Value

The updated value.

type Active

boolean

param Active

The updated active state.

rtype

dict

returns

Response Syntax

{
    'TagOptionDetail': {
        'Key': 'string',
        'Value': 'string',
        'Active': True|False,
        'Id': 'string',
        'Owner': 'string'
    }
}

Response Structure

  • (dict) --

    • TagOptionDetail (dict) --

      Information about the TagOption.

      • Key (string) --

        The TagOption key.

      • Value (string) --

        The TagOption value.

      • Active (boolean) --

        The TagOption active state.

      • Id (string) --

        The TagOption identifier.

      • Owner (string) --

        The AWS account Id of the owner account that created the TagOption.