text:
# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: service_catalog
using AWS.Compat
using AWS.UUIDs
"""
    AcceptPortfolioShare()

Accepts an offer to share the specified portfolio.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PortfolioShareType`: The type of shared portfolios to accept. The default is to accept imported portfolios.    AWS_ORGANIZATIONS - Accept portfolios shared by the management account of your organization.    IMPORTED - Accept imported portfolios.    AWS_SERVICECATALOG - Not supported. (Throws ResourceNotFoundException.)   For example, aws servicecatalog accept-portfolio-share --portfolio-id \"port-2qwzkwxt3y5fk\" --portfolio-share-type AWS_ORGANIZATIONS
"""

accept_portfolio_share(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("AcceptPortfolioShare", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
accept_portfolio_share(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AcceptPortfolioShare", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    AssociateBudgetWithResource()

Associates the specified budget with the specified resource.

# Required Parameters
- `BudgetName`: The name of the budget you want to associate.
- `ResourceId`:  The resource identifier. Either a portfolio-id or a product-id.

"""

associate_budget_with_resource(BudgetName, ResourceId; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateBudgetWithResource", Dict{String, Any}("BudgetName"=>BudgetName, "ResourceId"=>ResourceId); aws_config=aws_config)
associate_budget_with_resource(BudgetName, ResourceId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateBudgetWithResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("BudgetName"=>BudgetName, "ResourceId"=>ResourceId), args)); aws_config=aws_config)

"""
    AssociatePrincipalWithPortfolio()

Associates the specified principal ARN with the specified portfolio.

# Required Parameters
- `PortfolioId`: The portfolio identifier.
- `PrincipalARN`: The ARN of the principal (IAM user, role, or group).
- `PrincipalType`: The principal type. The supported value is IAM.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

associate_principal_with_portfolio(PortfolioId, PrincipalARN, PrincipalType; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociatePrincipalWithPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId, "PrincipalARN"=>PrincipalARN, "PrincipalType"=>PrincipalType); aws_config=aws_config)
associate_principal_with_portfolio(PortfolioId, PrincipalARN, PrincipalType, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociatePrincipalWithPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId, "PrincipalARN"=>PrincipalARN, "PrincipalType"=>PrincipalType), args)); aws_config=aws_config)

"""
    AssociateProductWithPortfolio()

Associates the specified product with the specified portfolio. A delegated admin is authorized to invoke this command.

# Required Parameters
- `PortfolioId`: The portfolio identifier.
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `SourcePortfolioId`: The identifier of the source portfolio.
"""

associate_product_with_portfolio(PortfolioId, ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateProductWithPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId, "ProductId"=>ProductId); aws_config=aws_config)
associate_product_with_portfolio(PortfolioId, ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateProductWithPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId, "ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    AssociateServiceActionWithProvisioningArtifact()

Associates a self-service action with a provisioning artifact.

# Required Parameters
- `ProductId`: The product identifier. For example, prod-abcdzk7xy33qa.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact. For example, pa-4abcdjnxjj6ne.
- `ServiceActionId`: The self-service action identifier. For example, act-fs7abcd89wxyz.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

associate_service_action_with_provisioning_artifact(ProductId, ProvisioningArtifactId, ServiceActionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateServiceActionWithProvisioningArtifact", Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId, "ServiceActionId"=>ServiceActionId); aws_config=aws_config)
associate_service_action_with_provisioning_artifact(ProductId, ProvisioningArtifactId, ServiceActionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateServiceActionWithProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId, "ServiceActionId"=>ServiceActionId), args)); aws_config=aws_config)

"""
    AssociateTagOptionWithResource()

Associate the specified TagOption with the specified portfolio or product.

# Required Parameters
- `ResourceId`: The resource identifier.
- `TagOptionId`: The TagOption identifier.

"""

associate_tag_option_with_resource(ResourceId, TagOptionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateTagOptionWithResource", Dict{String, Any}("ResourceId"=>ResourceId, "TagOptionId"=>TagOptionId); aws_config=aws_config)
associate_tag_option_with_resource(ResourceId, TagOptionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("AssociateTagOptionWithResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ResourceId"=>ResourceId, "TagOptionId"=>TagOptionId), args)); aws_config=aws_config)

"""
    BatchAssociateServiceActionWithProvisioningArtifact()

Associates multiple self-service actions with provisioning artifacts.

# Required Parameters
- `ServiceActionAssociations`: One or more associations, each consisting of the Action ID, the Product ID, and the Provisioning Artifact ID.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

batch_associate_service_action_with_provisioning_artifact(ServiceActionAssociations; aws_config::AWSConfig=global_aws_config()) = service_catalog("BatchAssociateServiceActionWithProvisioningArtifact", Dict{String, Any}("ServiceActionAssociations"=>ServiceActionAssociations); aws_config=aws_config)
batch_associate_service_action_with_provisioning_artifact(ServiceActionAssociations, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("BatchAssociateServiceActionWithProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ServiceActionAssociations"=>ServiceActionAssociations), args)); aws_config=aws_config)

"""
    BatchDisassociateServiceActionFromProvisioningArtifact()

Disassociates a batch of self-service actions from the specified provisioning artifact.

# Required Parameters
- `ServiceActionAssociations`: One or more associations, each consisting of the Action ID, the Product ID, and the Provisioning Artifact ID.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

batch_disassociate_service_action_from_provisioning_artifact(ServiceActionAssociations; aws_config::AWSConfig=global_aws_config()) = service_catalog("BatchDisassociateServiceActionFromProvisioningArtifact", Dict{String, Any}("ServiceActionAssociations"=>ServiceActionAssociations); aws_config=aws_config)
batch_disassociate_service_action_from_provisioning_artifact(ServiceActionAssociations, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("BatchDisassociateServiceActionFromProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ServiceActionAssociations"=>ServiceActionAssociations), args)); aws_config=aws_config)

"""
    CopyProduct()

Copies the specified source product to the specified target product or a new product. You can copy a product to the same account or another account. You can copy a product to the same region or another region. This operation is performed asynchronously. To track the progress of the operation, use DescribeCopyProductStatus.

# Required Parameters
- `IdempotencyToken`:  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.
- `SourceProductArn`: The Amazon Resource Name (ARN) of the source product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `CopyOptions`: The copy options. If the value is CopyTags, the tags from the source product are copied to the target product.
- `SourceProvisioningArtifactIdentifiers`: The identifiers of the provisioning artifacts (also known as versions) of the product to copy. By default, all provisioning artifacts are copied.
- `TargetProductId`: The identifier of the target product. By default, a new product is created.
- `TargetProductName`: A name for the target product. The default is the name of the source product.
"""

copy_product(IdempotencyToken, SourceProductArn; aws_config::AWSConfig=global_aws_config()) = service_catalog("CopyProduct", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "SourceProductArn"=>SourceProductArn); aws_config=aws_config)
copy_product(IdempotencyToken, SourceProductArn, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CopyProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "SourceProductArn"=>SourceProductArn), args)); aws_config=aws_config)

"""
    CreateConstraint()

Creates a constraint. A delegated admin is authorized to invoke this command.

# Required Parameters
- `IdempotencyToken`: 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.
- `Parameters`: The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:  LAUNCH  You are required to specify either the RoleArn or the LocalRoleName but can't use both. Specify the RoleArn property as follows:  {\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}  Specify the LocalRoleName property as follows:  {\"LocalRoleName\": \"SCBasicLaunchRole\"}  If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.  The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.  You cannot have both a LAUNCH and a STACKSET constraint. You also cannot have more than one LAUNCH constraint on a product and portfolio.  NOTIFICATION  Specify the NotificationArns property as follows:  {\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}   RESOURCE_UPDATE  Specify the TagUpdatesOnProvisionedProduct property as follows:  {\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}  The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.  STACKSET  Specify the Parameters property as follows:  {\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}  You cannot have both a LAUNCH and a STACKSET constraint. You also cannot have more than one STACKSET constraint on a product and portfolio. Products with a STACKSET constraint will launch an AWS CloudFormation stack set.  TEMPLATE  Specify the Rules property. For more information, see Template Constraint Rules.
- `PortfolioId`: The portfolio identifier.
- `ProductId`: The product identifier.
- `Type`: The type of constraint.    LAUNCH     NOTIFICATION     RESOURCE_UPDATE     STACKSET     TEMPLATE

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Description`: The description of the constraint.
"""

create_constraint(IdempotencyToken, Parameters, PortfolioId, ProductId, Type; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateConstraint", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Parameters"=>Parameters, "PortfolioId"=>PortfolioId, "ProductId"=>ProductId, "Type"=>Type); aws_config=aws_config)
create_constraint(IdempotencyToken, Parameters, PortfolioId, ProductId, Type, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateConstraint", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Parameters"=>Parameters, "PortfolioId"=>PortfolioId, "ProductId"=>ProductId, "Type"=>Type), args)); aws_config=aws_config)

"""
    CreatePortfolio()

Creates a portfolio. A delegated admin is authorized to invoke this command.

# Required Parameters
- `DisplayName`: The name to use for display purposes.
- `IdempotencyToken`: 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.
- `ProviderName`: The name of the portfolio provider.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Description`: The description of the portfolio.
- `Tags`: One or more tags.
"""

create_portfolio(DisplayName, IdempotencyToken, ProviderName; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreatePortfolio", Dict{String, Any}("DisplayName"=>DisplayName, "IdempotencyToken"=>IdempotencyToken, "ProviderName"=>ProviderName); aws_config=aws_config)
create_portfolio(DisplayName, IdempotencyToken, ProviderName, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreatePortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("DisplayName"=>DisplayName, "IdempotencyToken"=>IdempotencyToken, "ProviderName"=>ProviderName), args)); aws_config=aws_config)

"""
    CreatePortfolioShare()

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. This includes portfolios that contain a shared product.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccountId`: The AWS account ID. For example, 123456789012.
- `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.
"""

create_portfolio_share(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreatePortfolioShare", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
create_portfolio_share(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreatePortfolioShare", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    CreateProduct()

Creates a product. A delegated admin is authorized to invoke this command.

# Required Parameters
- `IdempotencyToken`: 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.
- `Name`: The name of the product.
- `Owner`: The owner of the product.
- `ProductType`: The type of product.
- `ProvisioningArtifactParameters`: The configuration of the provisioning artifact.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Description`: The description of the product.
- `Distributor`: The distributor of the product.
- `SupportDescription`: The support information about the product.
- `SupportEmail`: The contact email for product support.
- `SupportUrl`: The contact URL for product support.
- `Tags`: One or more tags.
"""

create_product(IdempotencyToken, Name, Owner, ProductType, ProvisioningArtifactParameters; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProduct", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Name"=>Name, "Owner"=>Owner, "ProductType"=>ProductType, "ProvisioningArtifactParameters"=>ProvisioningArtifactParameters); aws_config=aws_config)
create_product(IdempotencyToken, Name, Owner, ProductType, ProvisioningArtifactParameters, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Name"=>Name, "Owner"=>Owner, "ProductType"=>ProductType, "ProvisioningArtifactParameters"=>ProvisioningArtifactParameters), args)); aws_config=aws_config)

"""
    CreateProvisionedProductPlan()

Creates a plan. A plan includes the list of resources to be created (when provisioning a new product) or modified (when updating a provisioned product) when the plan is executed. You can create one plan per provisioned product. To create a plan for an existing provisioned product, the product status must be AVAILBLE or TAINTED. To view the resource changes in the change set, use DescribeProvisionedProductPlan. To create or modify the provisioned product, use ExecuteProvisionedProductPlan.

# Required Parameters
- `IdempotencyToken`: 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.
- `PlanName`: The name of the plan.
- `PlanType`: The plan type.
- `ProductId`: The product identifier.
- `ProvisionedProductName`: A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `NotificationArns`: Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
- `PathId`: The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use ListLaunchPaths.
- `ProvisioningParameters`: Parameters specified by the administrator that are required for provisioning the product.
- `Tags`: One or more tags. If the plan is for an existing provisioned product, the product must have a RESOURCE_UPDATE constraint with TagUpdatesOnProvisionedProduct set to ALLOWED to allow tag updates.
"""

create_provisioned_product_plan(IdempotencyToken, PlanName, PlanType, ProductId, ProvisionedProductName, ProvisioningArtifactId; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProvisionedProductPlan", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "PlanName"=>PlanName, "PlanType"=>PlanType, "ProductId"=>ProductId, "ProvisionedProductName"=>ProvisionedProductName, "ProvisioningArtifactId"=>ProvisioningArtifactId); aws_config=aws_config)
create_provisioned_product_plan(IdempotencyToken, PlanName, PlanType, ProductId, ProvisionedProductName, ProvisioningArtifactId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProvisionedProductPlan", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "PlanName"=>PlanName, "PlanType"=>PlanType, "ProductId"=>ProductId, "ProvisionedProductName"=>ProvisionedProductName, "ProvisioningArtifactId"=>ProvisioningArtifactId), args)); aws_config=aws_config)

"""
    CreateProvisioningArtifact()

Creates a provisioning artifact (also known as a version) for the specified product. You cannot create a provisioning artifact for a product that was shared with you.

# Required Parameters
- `IdempotencyToken`: 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.
- `Parameters`: The configuration for the provisioning artifact.
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

create_provisioning_artifact(IdempotencyToken, Parameters, ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProvisioningArtifact", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Parameters"=>Parameters, "ProductId"=>ProductId); aws_config=aws_config)
create_provisioning_artifact(IdempotencyToken, Parameters, ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "Parameters"=>Parameters, "ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    CreateServiceAction()

Creates a self-service action.

# Required Parameters
- `Definition`: The self-service action definition. Can be one of the following:  Name  The name of the AWS Systems Manager document (SSM document). For example, AWS-RestartEC2Instance. If you are using a shared SSM document, you must provide the ARN instead of the name.  Version  The AWS Systems Manager automation document version. For example, \"Version\": \"1\"   AssumeRole  The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, \"AssumeRole\": \"arn:aws:iam::12345678910:role/ActionRole\". To reuse the provisioned product launch role, set to \"AssumeRole\": \"LAUNCH_ROLE\".  Parameters  The list of parameters in JSON format. For example: [{\"Name\":\"InstanceId\",\"Type\":\"TARGET\"}] or [{\"Name\":\"InstanceId\",\"Type\":\"TEXT_VALUE\"}].
- `DefinitionType`: The service action definition type. For example, SSM_AUTOMATION.
- `IdempotencyToken`: 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.
- `Name`: The self-service action name.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Description`: The self-service action description.
"""

create_service_action(Definition, DefinitionType, IdempotencyToken, Name; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateServiceAction", Dict{String, Any}("Definition"=>Definition, "DefinitionType"=>DefinitionType, "IdempotencyToken"=>IdempotencyToken, "Name"=>Name); aws_config=aws_config)
create_service_action(Definition, DefinitionType, IdempotencyToken, Name, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Definition"=>Definition, "DefinitionType"=>DefinitionType, "IdempotencyToken"=>IdempotencyToken, "Name"=>Name), args)); aws_config=aws_config)

"""
    CreateTagOption()

Creates a TagOption.

# Required Parameters
- `Key`: The TagOption key.
- `Value`: The TagOption value.

"""

create_tag_option(Key, Value; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateTagOption", Dict{String, Any}("Key"=>Key, "Value"=>Value); aws_config=aws_config)
create_tag_option(Key, Value, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("CreateTagOption", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Key"=>Key, "Value"=>Value), args)); aws_config=aws_config)

"""
    DeleteConstraint()

Deletes the specified constraint. A delegated admin is authorized to invoke this command.

# Required Parameters
- `Id`: The identifier of the constraint.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

delete_constraint(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteConstraint", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
delete_constraint(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteConstraint", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DeletePortfolio()

Deletes the specified portfolio. You cannot delete a portfolio if it was shared with you or if it has associated products, users, constraints, or shared accounts. A delegated admin is authorized to invoke this command.

# Required Parameters
- `Id`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

delete_portfolio(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeletePortfolio", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
delete_portfolio(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeletePortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DeletePortfolioShare()

Stops sharing the specified portfolio with the specified account or organization node. Shares to an organization node can only be deleted by the management account of an organization or by a delegated administrator. Note that if a delegated admin is de-registered, portfolio shares created from that account are removed.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccountId`: The AWS account ID.
- `OrganizationNode`: The organization node to whom you are going to stop sharing.
"""

delete_portfolio_share(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeletePortfolioShare", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
delete_portfolio_share(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeletePortfolioShare", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    DeleteProduct()

Deletes the specified product. You cannot delete a product if it was shared with you or is associated with a portfolio. A delegated admin is authorized to invoke this command.

# Required Parameters
- `Id`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

delete_product(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProduct", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
delete_product(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DeleteProvisionedProductPlan()

Deletes the specified plan.

# Required Parameters
- `PlanId`: The plan identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `IgnoreErrors`: If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.
"""

delete_provisioned_product_plan(PlanId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProvisionedProductPlan", Dict{String, Any}("PlanId"=>PlanId); aws_config=aws_config)
delete_provisioned_product_plan(PlanId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProvisionedProductPlan", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PlanId"=>PlanId), args)); aws_config=aws_config)

"""
    DeleteProvisioningArtifact()

Deletes the specified provisioning artifact (also known as a version) for the specified product. You cannot delete a provisioning artifact associated with a product that was shared with you. You cannot delete the last provisioning artifact for a product, because a product must have at least one provisioning artifact.

# Required Parameters
- `ProductId`: The product identifier.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

delete_provisioning_artifact(ProductId, ProvisioningArtifactId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProvisioningArtifact", Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId); aws_config=aws_config)
delete_provisioning_artifact(ProductId, ProvisioningArtifactId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId), args)); aws_config=aws_config)

"""
    DeleteServiceAction()

Deletes a self-service action.

# Required Parameters
- `Id`: The self-service action identifier. For example, act-fs7abcd89wxyz.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

delete_service_action(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteServiceAction", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
delete_service_action(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DeleteTagOption()

Deletes the specified TagOption. You cannot delete a TagOption if it is associated with a product or portfolio.

# Required Parameters
- `Id`: The TagOption identifier.

"""

delete_tag_option(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteTagOption", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
delete_tag_option(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DeleteTagOption", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribeConstraint()

Gets information about the specified constraint.

# Required Parameters
- `Id`: The identifier of the constraint.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_constraint(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeConstraint", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_constraint(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeConstraint", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribeCopyProductStatus()

Gets the status of the specified copy product operation.

# Required Parameters
- `CopyProductToken`: The token for the copy product operation. This token is returned by CopyProduct.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_copy_product_status(CopyProductToken; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeCopyProductStatus", Dict{String, Any}("CopyProductToken"=>CopyProductToken); aws_config=aws_config)
describe_copy_product_status(CopyProductToken, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeCopyProductStatus", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("CopyProductToken"=>CopyProductToken), args)); aws_config=aws_config)

"""
    DescribePortfolio()

Gets information about the specified portfolio. A delegated admin is authorized to invoke this command.

# Required Parameters
- `Id`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_portfolio(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribePortfolio", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_portfolio(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribePortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribePortfolioShareStatus()

Gets the status of the specified portfolio share operation. This API can only be called by the management account in the organization or by a delegated admin.

# Required Parameters
- `PortfolioShareToken`: The token for the portfolio share operation. This token is returned either by CreatePortfolioShare or by DeletePortfolioShare.

"""

describe_portfolio_share_status(PortfolioShareToken; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribePortfolioShareStatus", Dict{String, Any}("PortfolioShareToken"=>PortfolioShareToken); aws_config=aws_config)
describe_portfolio_share_status(PortfolioShareToken, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribePortfolioShareStatus", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioShareToken"=>PortfolioShareToken), args)); aws_config=aws_config)

"""
    DescribeProduct()

Gets information about the specified product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Id`: The product identifier.
- `Name`: The product name.
"""

describe_product(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProduct"; aws_config=aws_config)
describe_product(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProduct", args; aws_config=aws_config)

"""
    DescribeProductAsAdmin()

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

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Id`: The product identifier.
- `Name`: The product name.
"""

describe_product_as_admin(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProductAsAdmin"; aws_config=aws_config)
describe_product_as_admin(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProductAsAdmin", args; aws_config=aws_config)

"""
    DescribeProductView()

Gets information about the specified product.

# Required Parameters
- `Id`: The product view identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_product_view(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProductView", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_product_view(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProductView", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribeProvisionedProduct()

Gets information about the specified provisioned product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Id`: The provisioned product identifier.
- `Name`: The name of the provisioned product.
"""

describe_provisioned_product(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisionedProduct"; aws_config=aws_config)
describe_provisioned_product(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisionedProduct", args; aws_config=aws_config)

"""
    DescribeProvisionedProductPlan()

Gets information about the resource changes for the specified plan.

# Required Parameters
- `PlanId`: The plan identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

describe_provisioned_product_plan(PlanId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisionedProductPlan", Dict{String, Any}("PlanId"=>PlanId); aws_config=aws_config)
describe_provisioned_product_plan(PlanId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisionedProductPlan", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PlanId"=>PlanId), args)); aws_config=aws_config)

"""
    DescribeProvisioningArtifact()

Gets information about the specified provisioning artifact (also known as a version) for the specified product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `ProductId`: The product identifier.
- `ProductName`: The product name.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact.
- `ProvisioningArtifactName`: The provisioning artifact name.
- `Verbose`: Indicates whether a verbose level of detail is enabled.
"""

describe_provisioning_artifact(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisioningArtifact"; aws_config=aws_config)
describe_provisioning_artifact(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisioningArtifact", args; aws_config=aws_config)

"""
    DescribeProvisioningParameters()

Gets information about the configuration required to provision the specified product using the specified provisioning artifact. If the output contains a TagOption key with an empty list of values, there is a TagOption conflict for that key. The end user cannot take action to fix the conflict, and launch is not blocked. In subsequent calls to ProvisionProduct, do not include conflicted TagOption keys as tags, or this causes the error \"Parameter validation failed: Missing required parameter in Tags[N]:Value\". Tag the provisioned product with the value sc-tagoption-conflict-portfolioId-productId.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PathId`: The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use ListLaunchPaths. You must provide the name or ID, but not both.
- `PathName`: The name of the path. You must provide the name or ID, but not both.
- `ProductId`: The product identifier. You must provide the product name or ID, but not both.
- `ProductName`: The name of the product. You must provide the name or ID, but not both.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact. You must provide the name or ID, but not both.
- `ProvisioningArtifactName`: The name of the provisioning artifact. You must provide the name or ID, but not both.
"""

describe_provisioning_parameters(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisioningParameters"; aws_config=aws_config)
describe_provisioning_parameters(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeProvisioningParameters", args; aws_config=aws_config)

"""
    DescribeRecord()

Gets information about the specified request operation. Use this operation after calling a request operation (for example, ProvisionProduct, TerminateProvisionedProduct, or UpdateProvisionedProduct).   If a provisioned product was transferred to a new owner using UpdateProvisionedProductProperties, the new owner will be able to describe all past records for that product. The previous owner will no longer be able to describe the records, but will be able to use ListRecordHistory to see the product's history from when he was the owner.

# Required Parameters
- `Id`: The record identifier of the provisioned product. This identifier is returned by the request operation.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

describe_record(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeRecord", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_record(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeRecord", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribeServiceAction()

Describes a self-service action.

# Required Parameters
- `Id`: The self-service action identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_service_action(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeServiceAction", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_service_action(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DescribeServiceActionExecutionParameters()

Finds the default parameters for a specific self-service action on a specific provisioned product and returns a map of the results to the user.

# Required Parameters
- `ProvisionedProductId`: The identifier of the provisioned product.
- `ServiceActionId`: The self-service action identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

describe_service_action_execution_parameters(ProvisionedProductId, ServiceActionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeServiceActionExecutionParameters", Dict{String, Any}("ProvisionedProductId"=>ProvisionedProductId, "ServiceActionId"=>ServiceActionId); aws_config=aws_config)
describe_service_action_execution_parameters(ProvisionedProductId, ServiceActionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeServiceActionExecutionParameters", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProvisionedProductId"=>ProvisionedProductId, "ServiceActionId"=>ServiceActionId), args)); aws_config=aws_config)

"""
    DescribeTagOption()

Gets information about the specified TagOption.

# Required Parameters
- `Id`: The TagOption identifier.

"""

describe_tag_option(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeTagOption", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
describe_tag_option(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DescribeTagOption", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    DisableAWSOrganizationsAccess()

Disable portfolio sharing through AWS Organizations feature. This feature will not delete your current shares but it will prevent you from creating new shares throughout your organization. Current shares will not be in sync with your organization structure if it changes after calling this API. This API can only be called by the management account in the organization. This API can't be invoked if there are active delegated administrators in the organization. Note that a delegated administrator is not authorized to invoke DisableAWSOrganizationsAccess.

"""

disable_awsorganizations_access(; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisableAWSOrganizationsAccess"; aws_config=aws_config)
disable_awsorganizations_access(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisableAWSOrganizationsAccess", args; aws_config=aws_config)

"""
    DisassociateBudgetFromResource()

Disassociates the specified budget from the specified resource.

# Required Parameters
- `BudgetName`: The name of the budget you want to disassociate.
- `ResourceId`: The resource identifier you want to disassociate from. Either a portfolio-id or a product-id.

"""

disassociate_budget_from_resource(BudgetName, ResourceId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateBudgetFromResource", Dict{String, Any}("BudgetName"=>BudgetName, "ResourceId"=>ResourceId); aws_config=aws_config)
disassociate_budget_from_resource(BudgetName, ResourceId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateBudgetFromResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("BudgetName"=>BudgetName, "ResourceId"=>ResourceId), args)); aws_config=aws_config)

"""
    DisassociatePrincipalFromPortfolio()

Disassociates a previously associated principal ARN from a specified portfolio.

# Required Parameters
- `PortfolioId`: The portfolio identifier.
- `PrincipalARN`: The ARN of the principal (IAM user, role, or group).

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

disassociate_principal_from_portfolio(PortfolioId, PrincipalARN; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociatePrincipalFromPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId, "PrincipalARN"=>PrincipalARN); aws_config=aws_config)
disassociate_principal_from_portfolio(PortfolioId, PrincipalARN, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociatePrincipalFromPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId, "PrincipalARN"=>PrincipalARN), args)); aws_config=aws_config)

"""
    DisassociateProductFromPortfolio()

Disassociates the specified product from the specified portfolio.  A delegated admin is authorized to invoke this command.

# Required Parameters
- `PortfolioId`: The portfolio identifier.
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

disassociate_product_from_portfolio(PortfolioId, ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateProductFromPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId, "ProductId"=>ProductId); aws_config=aws_config)
disassociate_product_from_portfolio(PortfolioId, ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateProductFromPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId, "ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    DisassociateServiceActionFromProvisioningArtifact()

Disassociates the specified self-service action association from the specified provisioning artifact.

# Required Parameters
- `ProductId`: The product identifier. For example, prod-abcdzk7xy33qa.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact. For example, pa-4abcdjnxjj6ne.
- `ServiceActionId`: The self-service action identifier. For example, act-fs7abcd89wxyz.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

disassociate_service_action_from_provisioning_artifact(ProductId, ProvisioningArtifactId, ServiceActionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateServiceActionFromProvisioningArtifact", Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId, "ServiceActionId"=>ServiceActionId); aws_config=aws_config)
disassociate_service_action_from_provisioning_artifact(ProductId, ProvisioningArtifactId, ServiceActionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateServiceActionFromProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId, "ServiceActionId"=>ServiceActionId), args)); aws_config=aws_config)

"""
    DisassociateTagOptionFromResource()

Disassociates the specified TagOption from the specified resource.

# Required Parameters
- `ResourceId`: The resource identifier.
- `TagOptionId`: The TagOption identifier.

"""

disassociate_tag_option_from_resource(ResourceId, TagOptionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateTagOptionFromResource", Dict{String, Any}("ResourceId"=>ResourceId, "TagOptionId"=>TagOptionId); aws_config=aws_config)
disassociate_tag_option_from_resource(ResourceId, TagOptionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("DisassociateTagOptionFromResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ResourceId"=>ResourceId, "TagOptionId"=>TagOptionId), args)); aws_config=aws_config)

"""
    EnableAWSOrganizationsAccess()

Enable portfolio sharing feature through AWS Organizations. This API will allow Service Catalog to receive updates on your organization in order to sync your shares with the current structure. This API can only be called by the management account in the organization. By calling this API Service Catalog will make a call to organizations:EnableAWSServiceAccess on your behalf so that your shares can be in sync with any changes in your AWS Organizations structure. Note that a delegated administrator is not authorized to invoke EnableAWSOrganizationsAccess.

"""

enable_awsorganizations_access(; aws_config::AWSConfig=global_aws_config()) = service_catalog("EnableAWSOrganizationsAccess"; aws_config=aws_config)
enable_awsorganizations_access(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("EnableAWSOrganizationsAccess", args; aws_config=aws_config)

"""
    ExecuteProvisionedProductPlan()

Provisions or modifies a product based on the resource changes for the specified plan.

# Required Parameters
- `IdempotencyToken`: 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.
- `PlanId`: The plan identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

execute_provisioned_product_plan(IdempotencyToken, PlanId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ExecuteProvisionedProductPlan", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "PlanId"=>PlanId); aws_config=aws_config)
execute_provisioned_product_plan(IdempotencyToken, PlanId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ExecuteProvisionedProductPlan", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "PlanId"=>PlanId), args)); aws_config=aws_config)

"""
    ExecuteProvisionedProductServiceAction()

Executes a self-service action against a provisioned product.

# Required Parameters
- `ExecuteToken`: An idempotency token that uniquely identifies the execute request.
- `ProvisionedProductId`: The identifier of the provisioned product.
- `ServiceActionId`: The self-service action identifier. For example, act-fs7abcd89wxyz.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Parameters`: A map of all self-service action parameters and their values. If a provided parameter is of a special type, such as TARGET, the provided value will override the default value generated by AWS Service Catalog. If the parameters field is not provided, no additional parameters are passed and default values will be used for any special parameters such as TARGET.
"""

execute_provisioned_product_service_action(ExecuteToken, ProvisionedProductId, ServiceActionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ExecuteProvisionedProductServiceAction", Dict{String, Any}("ExecuteToken"=>ExecuteToken, "ProvisionedProductId"=>ProvisionedProductId, "ServiceActionId"=>ServiceActionId); aws_config=aws_config)
execute_provisioned_product_service_action(ExecuteToken, ProvisionedProductId, ServiceActionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ExecuteProvisionedProductServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ExecuteToken"=>ExecuteToken, "ProvisionedProductId"=>ProvisionedProductId, "ServiceActionId"=>ServiceActionId), args)); aws_config=aws_config)

"""
    GetAWSOrganizationsAccessStatus()

Get the Access Status for AWS Organization portfolio share feature. This API can only be called by the management account in the organization or by a delegated admin.

"""

get_awsorganizations_access_status(; aws_config::AWSConfig=global_aws_config()) = service_catalog("GetAWSOrganizationsAccessStatus"; aws_config=aws_config)
get_awsorganizations_access_status(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("GetAWSOrganizationsAccessStatus", args; aws_config=aws_config)

"""
    GetProvisionedProductOutputs()

This API takes either a ProvisonedProductId or a ProvisionedProductName, along with a list of one or more output keys, and responds with the key/value pairs of those outputs.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `OutputKeys`: The list of keys that the API should return with their values. If none are provided, the API will return all outputs of the provisioned product.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `ProvisionedProductId`: The identifier of the provisioned product that you want the outputs from.
- `ProvisionedProductName`: The name of the provisioned product that you want the outputs from.
"""

get_provisioned_product_outputs(; aws_config::AWSConfig=global_aws_config()) = service_catalog("GetProvisionedProductOutputs"; aws_config=aws_config)
get_provisioned_product_outputs(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("GetProvisionedProductOutputs", args; aws_config=aws_config)

"""
    ListAcceptedPortfolioShares()

Lists all portfolios for which sharing was accepted by this account.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `PortfolioShareType`: The type of shared portfolios to list. The default is to list imported portfolios.    AWS_ORGANIZATIONS - List portfolios shared by the management account of your organization    AWS_SERVICECATALOG - List default portfolios    IMPORTED - List imported portfolios
"""

list_accepted_portfolio_shares(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListAcceptedPortfolioShares"; aws_config=aws_config)
list_accepted_portfolio_shares(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListAcceptedPortfolioShares", args; aws_config=aws_config)

"""
    ListBudgetsForResource()

Lists all the budgets associated to the specified resource.

# Required Parameters
- `ResourceId`: The resource identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_budgets_for_resource(ResourceId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListBudgetsForResource", Dict{String, Any}("ResourceId"=>ResourceId); aws_config=aws_config)
list_budgets_for_resource(ResourceId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListBudgetsForResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ResourceId"=>ResourceId), args)); aws_config=aws_config)

"""
    ListConstraintsForPortfolio()

Lists the constraints for the specified portfolio and product.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `ProductId`: The product identifier.
"""

list_constraints_for_portfolio(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListConstraintsForPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
list_constraints_for_portfolio(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListConstraintsForPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    ListLaunchPaths()

Lists the paths to the specified product. A path is how the user has access to a specified product, and is necessary when provisioning a product. A path also determines the constraints put on the product.

# Required Parameters
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_launch_paths(ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListLaunchPaths", Dict{String, Any}("ProductId"=>ProductId); aws_config=aws_config)
list_launch_paths(ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListLaunchPaths", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    ListOrganizationPortfolioAccess()

Lists the organization nodes that have access to the specified portfolio. This API can only be called by the management account in the organization or by a delegated admin. If a delegated admin is de-registered, they can no longer perform this operation.

# Required Parameters
- `OrganizationNodeType`: The organization node type that will be returned in the output.    ORGANIZATION - Organization that has access to the portfolio.     ORGANIZATIONAL_UNIT - Organizational unit that has access to the portfolio within your organization.    ACCOUNT - Account that has access to the portfolio within your organization.
- `PortfolioId`: The portfolio identifier. For example, port-2abcdext3y5fk.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_organization_portfolio_access(OrganizationNodeType, PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListOrganizationPortfolioAccess", Dict{String, Any}("OrganizationNodeType"=>OrganizationNodeType, "PortfolioId"=>PortfolioId); aws_config=aws_config)
list_organization_portfolio_access(OrganizationNodeType, PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListOrganizationPortfolioAccess", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("OrganizationNodeType"=>OrganizationNodeType, "PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    ListPortfolioAccess()

Lists the account IDs that have access to the specified portfolio. A delegated admin can list the accounts that have access to the shared portfolio. Note that if a delegated admin is de-registered, they can no longer perform this operation.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `OrganizationParentId`: The ID of an organization node the portfolio is shared with. All children of this node with an inherited portfolio share will be returned.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_portfolio_access(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfolioAccess", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
list_portfolio_access(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfolioAccess", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    ListPortfolios()

Lists all portfolios in the catalog.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_portfolios(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfolios"; aws_config=aws_config)
list_portfolios(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfolios", args; aws_config=aws_config)

"""
    ListPortfoliosForProduct()

Lists all portfolios that the specified product is associated with.

# Required Parameters
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_portfolios_for_product(ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfoliosForProduct", Dict{String, Any}("ProductId"=>ProductId); aws_config=aws_config)
list_portfolios_for_product(ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPortfoliosForProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    ListPrincipalsForPortfolio()

Lists all principal ARNs associated with the specified portfolio.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_principals_for_portfolio(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPrincipalsForPortfolio", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
list_principals_for_portfolio(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListPrincipalsForPortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    ListProvisionedProductPlans()

Lists the plans for the specified provisioned product or all plans to which the user has access.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccessLevelFilter`: The access level to use to obtain results. The default is User.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `ProvisionProductId`: The product identifier.
"""

list_provisioned_product_plans(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisionedProductPlans"; aws_config=aws_config)
list_provisioned_product_plans(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisionedProductPlans", args; aws_config=aws_config)

"""
    ListProvisioningArtifacts()

Lists all provisioning artifacts (also known as versions) for the specified product.

# Required Parameters
- `ProductId`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

list_provisioning_artifacts(ProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisioningArtifacts", Dict{String, Any}("ProductId"=>ProductId); aws_config=aws_config)
list_provisioning_artifacts(ProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisioningArtifacts", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId), args)); aws_config=aws_config)

"""
    ListProvisioningArtifactsForServiceAction()

Lists all provisioning artifacts (also known as versions) for the specified self-service action.

# Required Parameters
- `ServiceActionId`: The self-service action identifier. For example, act-fs7abcd89wxyz.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_provisioning_artifacts_for_service_action(ServiceActionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisioningArtifactsForServiceAction", Dict{String, Any}("ServiceActionId"=>ServiceActionId); aws_config=aws_config)
list_provisioning_artifacts_for_service_action(ServiceActionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListProvisioningArtifactsForServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ServiceActionId"=>ServiceActionId), args)); aws_config=aws_config)

"""
    ListRecordHistory()

Lists the specified requests or all performed requests.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccessLevelFilter`: The access level to use to obtain results. The default is User.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `SearchFilter`: The search filter to scope the results.
"""

list_record_history(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListRecordHistory"; aws_config=aws_config)
list_record_history(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListRecordHistory", args; aws_config=aws_config)

"""
    ListResourcesForTagOption()

Lists the resources associated with the specified TagOption.

# Required Parameters
- `TagOptionId`: The TagOption identifier.

# Optional Parameters
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `ResourceType`: The resource type.    Portfolio     Product
"""

list_resources_for_tag_option(TagOptionId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListResourcesForTagOption", Dict{String, Any}("TagOptionId"=>TagOptionId); aws_config=aws_config)
list_resources_for_tag_option(TagOptionId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListResourcesForTagOption", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("TagOptionId"=>TagOptionId), args)); aws_config=aws_config)

"""
    ListServiceActions()

Lists all self-service actions.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_service_actions(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListServiceActions"; aws_config=aws_config)
list_service_actions(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListServiceActions", args; aws_config=aws_config)

"""
    ListServiceActionsForProvisioningArtifact()

Returns a paginated list of self-service actions associated with the specified Product ID and Provisioning Artifact ID.

# Required Parameters
- `ProductId`: The product identifier. For example, prod-abcdzk7xy33qa.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact. For example, pa-4abcdjnxjj6ne.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_service_actions_for_provisioning_artifact(ProductId, ProvisioningArtifactId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListServiceActionsForProvisioningArtifact", Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId); aws_config=aws_config)
list_service_actions_for_provisioning_artifact(ProductId, ProvisioningArtifactId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListServiceActionsForProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId), args)); aws_config=aws_config)

"""
    ListStackInstancesForProvisionedProduct()

Returns summary information about stack instances that are associated with the specified CFN_STACKSET type provisioned product. You can filter for stack instances that are associated with a specific AWS account name or region.

# Required Parameters
- `ProvisionedProductId`: The identifier of the provisioned product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_stack_instances_for_provisioned_product(ProvisionedProductId; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListStackInstancesForProvisionedProduct", Dict{String, Any}("ProvisionedProductId"=>ProvisionedProductId); aws_config=aws_config)
list_stack_instances_for_provisioned_product(ProvisionedProductId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListStackInstancesForProvisionedProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProvisionedProductId"=>ProvisionedProductId), args)); aws_config=aws_config)

"""
    ListTagOptions()

Lists the specified TagOptions or all TagOptions.

# Optional Parameters
- `Filters`: The search filters. If no search filters are specified, the output includes all TagOptions.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

list_tag_options(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListTagOptions"; aws_config=aws_config)
list_tag_options(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ListTagOptions", args; aws_config=aws_config)

"""
    ProvisionProduct()

Provisions the specified product. A provisioned product is a resourced instance of a product. For example, provisioning a product based on a CloudFormation template launches a CloudFormation stack and its underlying resources. You can check the status of this request using DescribeRecord. If the request contains a tag key with an empty list of values, there is a tag conflict for that key. Do not include conflicted keys as tags, or this causes the error \"Parameter validation failed: Missing required parameter in Tags[N]:Value\".

# Required Parameters
- `ProvisionToken`: An idempotency token that uniquely identifies the provisioning request.
- `ProvisionedProductName`: A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `NotificationArns`: Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
- `PathId`: The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use ListLaunchPaths. You must provide the name or ID, but not both.
- `PathName`: The name of the path. You must provide the name or ID, but not both.
- `ProductId`: The product identifier. You must provide the name or ID, but not both.
- `ProductName`: The name of the product. You must provide the name or ID, but not both.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact. You must provide the name or ID, but not both.
- `ProvisioningArtifactName`: The name of the provisioning artifact. You must provide the name or ID, but not both.
- `ProvisioningParameters`: Parameters specified by the administrator that are required for provisioning the product.
- `ProvisioningPreferences`: An object that contains information about the provisioning preferences for a stack set.
- `Tags`: One or more tags.
"""

provision_product(ProvisionToken, ProvisionedProductName; aws_config::AWSConfig=global_aws_config()) = service_catalog("ProvisionProduct", Dict{String, Any}("ProvisionToken"=>ProvisionToken, "ProvisionedProductName"=>ProvisionedProductName); aws_config=aws_config)
provision_product(ProvisionToken, ProvisionedProductName, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ProvisionProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProvisionToken"=>ProvisionToken, "ProvisionedProductName"=>ProvisionedProductName), args)); aws_config=aws_config)

"""
    RejectPortfolioShare()

Rejects an offer to share the specified portfolio.

# Required Parameters
- `PortfolioId`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PortfolioShareType`: The type of shared portfolios to reject. The default is to reject imported portfolios.    AWS_ORGANIZATIONS - Reject portfolios shared by the management account of your organization.    IMPORTED - Reject imported portfolios.    AWS_SERVICECATALOG - Not supported. (Throws ResourceNotFoundException.)   For example, aws servicecatalog reject-portfolio-share --portfolio-id \"port-2qwzkwxt3y5fk\" --portfolio-share-type AWS_ORGANIZATIONS
"""

reject_portfolio_share(PortfolioId; aws_config::AWSConfig=global_aws_config()) = service_catalog("RejectPortfolioShare", Dict{String, Any}("PortfolioId"=>PortfolioId); aws_config=aws_config)
reject_portfolio_share(PortfolioId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("RejectPortfolioShare", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("PortfolioId"=>PortfolioId), args)); aws_config=aws_config)

"""
    ScanProvisionedProducts()

Lists the provisioned products that are available (not terminated). To use additional filtering, see SearchProvisionedProducts.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccessLevelFilter`: The access level to use to obtain results. The default is User.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
"""

scan_provisioned_products(; aws_config::AWSConfig=global_aws_config()) = service_catalog("ScanProvisionedProducts"; aws_config=aws_config)
scan_provisioned_products(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("ScanProvisionedProducts", args; aws_config=aws_config)

"""
    SearchProducts()

Gets information about the products to which the caller has access.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Filters`: The search filters. If no search filters are specified, the output includes all products to which the caller has access.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `SortBy`: The sort field. If no value is specified, the results are not sorted.
- `SortOrder`: The sort order. If no value is specified, the results are not sorted.
"""

search_products(; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProducts"; aws_config=aws_config)
search_products(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProducts", args; aws_config=aws_config)

"""
    SearchProductsAsAdmin()

Gets information about the products for the specified portfolio or all products.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Filters`: The search filters. If no search filters are specified, the output includes all products to which the administrator has access.
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `PortfolioId`: The portfolio identifier.
- `ProductSource`: Access level of the source of the product.
- `SortBy`: The sort field. If no value is specified, the results are not sorted.
- `SortOrder`: The sort order. If no value is specified, the results are not sorted.
"""

search_products_as_admin(; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProductsAsAdmin"; aws_config=aws_config)
search_products_as_admin(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProductsAsAdmin", args; aws_config=aws_config)

"""
    SearchProvisionedProducts()

Gets information about the provisioned products that meet the specified criteria.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AccessLevelFilter`: The access level to use to obtain results. The default is User.
- `Filters`: The search filters. When the key is SearchQuery, the searchable fields are arn, createdTime, id, lastRecordId, idempotencyToken, name, physicalId, productId, provisioningArtifact, type, status, tags, userArn, userArnSession, lastProvisioningRecordId, lastSuccessfulProvisioningRecordId, productName, and provisioningArtifactName. Example: \"SearchQuery\":[\"status:AVAILABLE\"]
- `PageSize`: The maximum number of items to return with this call.
- `PageToken`: The page token for the next set of results. To retrieve the first set of results, use null.
- `SortBy`: The sort field. If no value is specified, the results are not sorted. The valid values are arn, id, name, and lastRecordId.
- `SortOrder`: The sort order. If no value is specified, the results are not sorted.
"""

search_provisioned_products(; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProvisionedProducts"; aws_config=aws_config)
search_provisioned_products(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("SearchProvisionedProducts", args; aws_config=aws_config)

"""
    TerminateProvisionedProduct()

Terminates the specified provisioned product. This operation does not delete any records associated with the provisioned product. You can check the status of this request using DescribeRecord.

# Required Parameters
- `TerminateToken`: An idempotency token that uniquely identifies the termination request. This token is only valid during the termination process. After the provisioned product is terminated, subsequent requests to terminate the same provisioned product always return ResourceNotFound.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `IgnoreErrors`: If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.
- `ProvisionedProductId`: The identifier of the provisioned product. You cannot specify both ProvisionedProductName and ProvisionedProductId.
- `ProvisionedProductName`: The name of the provisioned product. You cannot specify both ProvisionedProductName and ProvisionedProductId.
"""

terminate_provisioned_product(TerminateToken; aws_config::AWSConfig=global_aws_config()) = service_catalog("TerminateProvisionedProduct", Dict{String, Any}("TerminateToken"=>TerminateToken); aws_config=aws_config)
terminate_provisioned_product(TerminateToken, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("TerminateProvisionedProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("TerminateToken"=>TerminateToken), args)); aws_config=aws_config)

"""
    UpdateConstraint()

Updates the specified constraint.

# Required Parameters
- `Id`: The identifier of the constraint.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Description`: The updated description of the constraint.
- `Parameters`: The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:  LAUNCH  You are required to specify either the RoleArn or the LocalRoleName but can't use both. Specify the RoleArn property as follows:  {\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}  Specify the LocalRoleName property as follows:  {\"LocalRoleName\": \"SCBasicLaunchRole\"}  If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.  The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.  You cannot have both a LAUNCH and a STACKSET constraint. You also cannot have more than one LAUNCH constraint on a product and portfolio.  NOTIFICATION  Specify the NotificationArns property as follows:  {\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}   RESOURCE_UPDATE  Specify the TagUpdatesOnProvisionedProduct property as follows:  {\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}  The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.  STACKSET  Specify the Parameters property as follows:  {\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}  You cannot have both a LAUNCH and a STACKSET constraint. You also cannot have more than one STACKSET constraint on a product and portfolio. Products with a STACKSET constraint will launch an AWS CloudFormation stack set.  TEMPLATE  Specify the Rules property. For more information, see Template Constraint Rules.
"""

update_constraint(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateConstraint", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
update_constraint(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateConstraint", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    UpdatePortfolio()

Updates the specified portfolio. You cannot update a product that was shared with you.

# Required Parameters
- `Id`: The portfolio identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AddTags`: The tags to add.
- `Description`: The updated description of the portfolio.
- `DisplayName`: The name to use for display purposes.
- `ProviderName`: The updated name of the portfolio provider.
- `RemoveTags`: The tags to remove.
"""

update_portfolio(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdatePortfolio", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
update_portfolio(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdatePortfolio", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    UpdateProduct()

Updates the specified product.

# Required Parameters
- `Id`: The product identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `AddTags`: The tags to add to the product.
- `Description`: The updated description of the product.
- `Distributor`: The updated distributor of the product.
- `Name`: The updated product name.
- `Owner`: The updated owner of the product.
- `RemoveTags`: The tags to remove from the product.
- `SupportDescription`: The updated support description for the product.
- `SupportEmail`: The updated support email for the product.
- `SupportUrl`: The updated support URL for the product.
"""

update_product(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProduct", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
update_product(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    UpdateProvisionedProduct()

Requests updates to the configuration of the specified provisioned product. If there are tags associated with the object, they cannot be updated or added. Depending on the specific updates requested, this operation can update with no interruption, with some interruption, or replace the provisioned product entirely. You can check the status of this request using DescribeRecord.

# Required Parameters
- `UpdateToken`: The idempotency token that uniquely identifies the provisioning update request.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `PathId`: The path identifier. This value is optional if the product has a default path, and required if the product has more than one path. You must provide the name or ID, but not both.
- `PathName`: The name of the path. You must provide the name or ID, but not both.
- `ProductId`: The identifier of the product. You must provide the name or ID, but not both.
- `ProductName`: The name of the product. You must provide the name or ID, but not both.
- `ProvisionedProductId`: The identifier of the provisioned product. You must provide the name or ID, but not both.
- `ProvisionedProductName`: The name of the provisioned product. You cannot specify both ProvisionedProductName and ProvisionedProductId.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact.
- `ProvisioningArtifactName`: The name of the provisioning artifact. You must provide the name or ID, but not both.
- `ProvisioningParameters`: The new parameters.
- `ProvisioningPreferences`: An object that contains information about the provisioning preferences for a stack set.
- `Tags`: One or more tags. Requires the product to have RESOURCE_UPDATE constraint with TagUpdatesOnProvisionedProduct set to ALLOWED to allow tag updates.
"""

update_provisioned_product(UpdateToken; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisionedProduct", Dict{String, Any}("UpdateToken"=>UpdateToken); aws_config=aws_config)
update_provisioned_product(UpdateToken, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisionedProduct", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("UpdateToken"=>UpdateToken), args)); aws_config=aws_config)

"""
    UpdateProvisionedProductProperties()

Requests updates to the properties of the specified provisioned product.

# Required Parameters
- `IdempotencyToken`: The idempotency token that uniquely identifies the provisioning product update request.
- `ProvisionedProductId`: The identifier of the provisioned product.
- `ProvisionedProductProperties`: A map that contains the provisioned product properties to be updated. The OWNER key accepts user ARNs and role ARNs. The owner is the user that is allowed to see, update, terminate, and execute service actions in the provisioned product. The administrator can change the owner of a provisioned product to another IAM user within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the ListRecordHistory API. The new owner can describe all past records for the provisioned product using the DescribeRecord API. The previous owner can no longer use DescribeRecord, but can still see the product's history from when he was an owner using ListRecordHistory. If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
"""

update_provisioned_product_properties(IdempotencyToken, ProvisionedProductId, ProvisionedProductProperties; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisionedProductProperties", Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "ProvisionedProductId"=>ProvisionedProductId, "ProvisionedProductProperties"=>ProvisionedProductProperties); aws_config=aws_config)
update_provisioned_product_properties(IdempotencyToken, ProvisionedProductId, ProvisionedProductProperties, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisionedProductProperties", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("IdempotencyToken"=>IdempotencyToken, "ProvisionedProductId"=>ProvisionedProductId, "ProvisionedProductProperties"=>ProvisionedProductProperties), args)); aws_config=aws_config)

"""
    UpdateProvisioningArtifact()

Updates the specified provisioning artifact (also known as a version) for the specified product. You cannot update a provisioning artifact for a product that was shared with you.

# Required Parameters
- `ProductId`: The product identifier.
- `ProvisioningArtifactId`: The identifier of the provisioning artifact.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Active`: Indicates whether the product version is active. Inactive provisioning artifacts are invisible to end users. End users cannot launch or update a provisioned product from an inactive provisioning artifact.
- `Description`: The updated description of the provisioning artifact.
- `Guidance`: Information set by the administrator to provide guidance to end users about which provisioning artifacts to use. The DEFAULT value indicates that the product version is active. The administrator can set the guidance to DEPRECATED to inform users that the product version is deprecated. Users are able to make updates to a provisioned product of a deprecated version but cannot launch new provisioned products using a deprecated version.
- `Name`: The updated name of the provisioning artifact.
"""

update_provisioning_artifact(ProductId, ProvisioningArtifactId; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisioningArtifact", Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId); aws_config=aws_config)
update_provisioning_artifact(ProductId, ProvisioningArtifactId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateProvisioningArtifact", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ProductId"=>ProductId, "ProvisioningArtifactId"=>ProvisioningArtifactId), args)); aws_config=aws_config)

"""
    UpdateServiceAction()

Updates a self-service action.

# Required Parameters
- `Id`: The self-service action identifier.

# Optional Parameters
- `AcceptLanguage`: The language code.    en - English (default)    jp - Japanese    zh - Chinese
- `Definition`: A map that defines the self-service action.
- `Description`: The self-service action description.
- `Name`: The self-service action name.
"""

update_service_action(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateServiceAction", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
update_service_action(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateServiceAction", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)

"""
    UpdateTagOption()

Updates the specified TagOption.

# Required Parameters
- `Id`: The TagOption identifier.

# Optional Parameters
- `Active`: The updated active state.
- `Value`: The updated value.
"""

update_tag_option(Id; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateTagOption", Dict{String, Any}("Id"=>Id); aws_config=aws_config)
update_tag_option(Id, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = service_catalog("UpdateTagOption", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Id"=>Id), args)); aws_config=aws_config)


text:
"""
    predict(x, A, Q)

PREDICT step in Kalman filtering for linear dynamics models:
```math
m_{n+1}^P = A*m_n
C_{n+1}^P = A*C_n*A^T + Q
```

This function provides a very simple PREDICT implementation.
In the solvers, we recommend to use the non-allocating [`predict!`](@ref).
"""
predict(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix) =
    Gaussian(predict_mean(x, A), predict_cov(x, A, Q))
predict_mean(x::Gaussian, A::AbstractMatrix) = A * x.μ
predict_cov(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix) = A * x.Σ * A' + Q

"""Square-root implementation of [`predict_cov!`](@ref)."""
predict_cov(x::SRGaussian, A::AbstractMatrix, Q::SRMatrix) =
    SRMatrix(qr([A * x.Σ.squareroot Q.squareroot]').R')

"""
    predict!(x_out, x_curr, Ah, Qh, cachemat)

PREDICT step in Kalman filtering for linear dynamics models.
In-place implementation of [`predict`](@ref), saving the result in `x_out`.

```math
m_{n+1}^P = A(h)*m_n
P_{n+1}^P = A(h)*P_n*A(h) + Q(h)
```

See also: [`predict`](@ref)
"""
function predict!(
    x_out::SRGaussian,
    x_curr::SRGaussian,
    Ah::AbstractMatrix,
    Qh::SRMatrix,
    cachemat::SRMatrix,
    diffusion=1,
)
    predict_mean!(x_out, x_curr, Ah)
    predict_cov!(x_out, x_curr, Ah, Qh, cachemat, diffusion)
    return x_out
end
function predict_mean!(x_out::Gaussian, x_curr::Gaussian, Ah::AbstractMatrix)
    mul!(x_out.μ, Ah, x_curr.μ)
    return x_out.μ
end

function predict_cov!(
    x_out::SRGaussian,
    x_curr::SRGaussian,
    Ah::AbstractMatrix,
    Qh::SRMatrix,
    cachemat::SRMatrix,
    diffusion=1,
)
    M, L = cachemat.mat, cachemat.squareroot
    D, D = size(Qh.mat)

    _matmul!(view(L, 1:D, 1:D), Ah, x_curr.Σ.squareroot)
    _matmul!(view(L, 1:D, D+1:2D), sqrt.(diffusion), Qh.squareroot)
    _matmul!(M, L, L')
    chol = cholesky!(Symmetric(M), check=false)

    QL =
        issuccess(chol) ? Matrix(chol.U)' :
        eltype(L) <: Union{Float16,Float32,Float64} ? lq!(L).L : qr(L').R'
    copy!(x_out.Σ.squareroot, QL)
    _matmul!(x_out.Σ.mat, QL, QL')
    return x_out.Σ
end

ext: jl