/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*
 * Do not modify this file. This file is generated from the servicecatalog-2015-12-10.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.ServiceCatalog.Model;
namespace Amazon.ServiceCatalog
{
    /// 
    /// Interface for accessing ServiceCatalog
    ///
    /// Service Catalog 
    /// 
    ///  Service Catalog enables organizations
    /// to create and manage catalogs of IT services that are approved for Amazon Web Services.
    /// To get the most out of this documentation, you should be familiar with the terminology
    /// discussed in Service
    /// Catalog Concepts.
    /// 
    /// 
    public partial interface IAmazonServiceCatalog : IAmazonService, IDisposable
    {
#if AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IServiceCatalogPaginatorFactory Paginators { get; }
#endif
                
        #region  AcceptPortfolioShare
        /// 
        /// Accepts an offer to share the specified portfolio.
        /// 
        /// Container for the necessary parameters to execute the AcceptPortfolioShare service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AcceptPortfolioShare service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for AcceptPortfolioShare Operation
        Task AcceptPortfolioShareAsync(AcceptPortfolioShareRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateBudgetWithResource
        /// 
        /// Associates the specified budget with the specified resource.
        /// 
        /// Container for the necessary parameters to execute the AssociateBudgetWithResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateBudgetWithResource service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for AssociateBudgetWithResource Operation
        Task AssociateBudgetWithResourceAsync(AssociateBudgetWithResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociatePrincipalWithPortfolio
        /// 
        /// Associates the specified principal ARN with the specified portfolio.
        /// 
        ///  
        /// 
        /// If you share the portfolio with principal name sharing enabled, the PrincipalARN
        /// association is included in the share. 
        /// 
        ///  
        /// 
        /// The PortfolioID, PrincipalARN, and PrincipalType
        /// parameters are required. 
        /// 
        ///  
        /// 
        /// You can associate a maximum of 10 Principals with a portfolio using PrincipalType
        /// as IAM_PATTERN 
        /// 
        ///   
        /// 
        /// When you associate a principal with portfolio, a potential privilege escalation path
        /// may occur when that portfolio is then shared with other accounts. For a user in a
        /// recipient account who is not an Service Catalog Admin, but still has the ability
        /// to create Principals (Users/Groups/Roles), that user could create a role that matches
        /// a principal name association for the portfolio. Although this user may not know which
        /// principal names are associated through Service Catalog, they may be able to guess
        /// the user. If this potential escalation path is a concern, then Service Catalog recommends
        /// using PrincipalType as IAM. With this configuration, the
        /// PrincipalARN must already exist in the recipient account before it can
        /// be associated. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the AssociatePrincipalWithPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociatePrincipalWithPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for AssociatePrincipalWithPortfolio Operation
        Task AssociatePrincipalWithPortfolioAsync(AssociatePrincipalWithPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateProductWithPortfolio
        /// 
        /// Associates the specified product with the specified portfolio.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateProductWithPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateProductWithPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for AssociateProductWithPortfolio Operation
        Task AssociateProductWithPortfolioAsync(AssociateProductWithPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateServiceActionWithProvisioningArtifact
        /// 
        /// Associates a self-service action with a provisioning artifact.
        /// 
        /// Container for the necessary parameters to execute the AssociateServiceActionWithProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateServiceActionWithProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for AssociateServiceActionWithProvisioningArtifact Operation
        Task AssociateServiceActionWithProvisioningArtifactAsync(AssociateServiceActionWithProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateTagOptionWithResource
        /// 
        /// Associate the specified TagOption with the specified portfolio or product.
        /// 
        /// Container for the necessary parameters to execute the AssociateTagOptionWithResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateTagOptionWithResource service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for AssociateTagOptionWithResource Operation
        Task AssociateTagOptionWithResourceAsync(AssociateTagOptionWithResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  BatchAssociateServiceActionWithProvisioningArtifact
        /// 
        /// Associates multiple self-service actions with provisioning artifacts.
        /// 
        /// Container for the necessary parameters to execute the BatchAssociateServiceActionWithProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the BatchAssociateServiceActionWithProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for BatchAssociateServiceActionWithProvisioningArtifact Operation
        Task BatchAssociateServiceActionWithProvisioningArtifactAsync(BatchAssociateServiceActionWithProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  BatchDisassociateServiceActionFromProvisioningArtifact
        /// 
        /// Disassociates a batch of self-service actions from the specified provisioning artifact.
        /// 
        /// Container for the necessary parameters to execute the BatchDisassociateServiceActionFromProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the BatchDisassociateServiceActionFromProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for BatchDisassociateServiceActionFromProvisioningArtifact Operation
        Task BatchDisassociateServiceActionFromProvisioningArtifactAsync(BatchDisassociateServiceActionFromProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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. If you copy a product to another account, you
        /// must first share the product in a portfolio using CreatePortfolioShare.
        /// 
        ///  
        /// 
        /// This operation is performed asynchronously. To track the progress of the operation,
        /// use DescribeCopyProductStatus.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CopyProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CopyProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for CopyProduct Operation
        Task CopyProductAsync(CopyProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateConstraint
        /// 
        /// Creates a constraint.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateConstraint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateConstraint service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for CreateConstraint Operation
        Task CreateConstraintAsync(CreateConstraintRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreatePortfolio
        /// 
        /// Creates a portfolio.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreatePortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreatePortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for CreatePortfolio Operation
        Task CreatePortfolioAsync(CreatePortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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, including portfolios that contain a shared product.
        /// 
        ///  
        /// 
        /// If the portfolio share with the specified account or organization node already exists,
        /// this action will have no effect and will not return an error. To update an existing
        /// share, you must use the  UpdatePortfolioShare API instead. 
        /// 
        ///   
        /// 
        /// When you associate a principal with portfolio, a potential privilege escalation path
        /// may occur when that portfolio is then shared with other accounts. For a user in a
        /// recipient account who is not an Service Catalog Admin, but still has the ability
        /// to create Principals (Users/Groups/Roles), that user could create a role that matches
        /// a principal name association for the portfolio. Although this user may not know which
        /// principal names are associated through Service Catalog, they may be able to guess
        /// the user. If this potential escalation path is a concern, then Service Catalog recommends
        /// using PrincipalType as IAM. With this configuration, the
        /// PrincipalARN must already exist in the recipient account before it can
        /// be associated. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreatePortfolioShare service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreatePortfolioShare service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for CreatePortfolioShare Operation
        Task CreatePortfolioShareAsync(CreatePortfolioShareRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateProduct
        /// 
        /// Creates a product.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        ///  
        /// 
        /// The user or role that performs this operation must have the cloudformation:GetTemplate
        /// IAM policy permission. This policy permission is required when using the ImportFromPhysicalId
        /// template source in the information data section.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for CreateProduct Operation
        Task CreateProductAsync(CreateProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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 for each provisioned product. To create a plan for an existing
        /// provisioned product, the product status must be AVAILABLE or TAINTED.
        /// 
        ///  
        /// 
        /// To view the resource changes in the change set, use DescribeProvisionedProductPlan.
        /// To create or modify the provisioned product, use ExecuteProvisionedProductPlan.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateProvisionedProductPlan service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProvisionedProductPlan service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for CreateProvisionedProductPlan Operation
        Task CreateProvisionedProductPlanAsync(CreateProvisionedProductPlanRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        ///  
        /// 
        /// The user or role that performs this operation must have the cloudformation:GetTemplate
        /// IAM policy permission. This policy permission is required when using the ImportFromPhysicalId
        /// template source in the information data section.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for CreateProvisioningArtifact Operation
        Task CreateProvisioningArtifactAsync(CreateProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateServiceAction
        /// 
        /// Creates a self-service action.
        /// 
        /// Container for the necessary parameters to execute the CreateServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// REST API Reference for CreateServiceAction Operation
        Task CreateServiceActionAsync(CreateServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateTagOption
        /// 
        /// Creates a TagOption.
        /// 
        /// Container for the necessary parameters to execute the CreateTagOption service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateTagOption service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for CreateTagOption Operation
        Task CreateTagOptionAsync(CreateTagOptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteConstraint
        /// 
        /// Deletes the specified constraint.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteConstraint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteConstraint service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DeleteConstraint Operation
        Task DeleteConstraintAsync(DeleteConstraintRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeletePortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for DeletePortfolio Operation
        Task DeletePortfolioAsync(DeletePortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePortfolioShare service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeletePortfolioShare service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DeletePortfolioShare Operation
        Task DeletePortfolioShareAsync(DeletePortfolioShareRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for DeleteProduct Operation
        Task DeleteProductAsync(DeleteProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteProvisionedProductPlan
        /// 
        /// Deletes the specified plan.
        /// 
        /// Container for the necessary parameters to execute the DeleteProvisionedProductPlan service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProvisionedProductPlan service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DeleteProvisionedProductPlan Operation
        Task DeleteProvisionedProductPlanAsync(DeleteProvisionedProductPlanRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DeleteProvisioningArtifact Operation
        Task DeleteProvisioningArtifactAsync(DeleteProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteServiceAction
        /// 
        /// Deletes a self-service action.
        /// 
        /// Container for the necessary parameters to execute the DeleteServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DeleteServiceAction Operation
        Task DeleteServiceActionAsync(DeleteServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteTagOption
        /// 
        /// Deletes the specified TagOption.
        /// 
        ///  
        /// 
        /// You cannot delete a TagOption if it is associated with a product or portfolio.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteTagOption service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteTagOption service method, as returned by ServiceCatalog.
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for DeleteTagOption Operation
        Task DeleteTagOptionAsync(DeleteTagOptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeConstraint
        /// 
        /// Gets information about the specified constraint.
        /// 
        /// Container for the necessary parameters to execute the DescribeConstraint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeConstraint service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeConstraint Operation
        Task DescribeConstraintAsync(DescribeConstraintRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeCopyProductStatus
        /// 
        /// Gets the status of the specified copy product operation.
        /// 
        /// Container for the necessary parameters to execute the DescribeCopyProductStatus service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeCopyProductStatus service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeCopyProductStatus Operation
        Task DescribeCopyProductStatusAsync(DescribeCopyProductStatusRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribePortfolio
        /// 
        /// Gets information about the specified portfolio.
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribePortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribePortfolio service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribePortfolio Operation
        Task DescribePortfolioAsync(DescribePortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribePortfolioShares
        /// 
        /// Returns a summary of each of the portfolio shares that were created for the specified
        /// portfolio.
        /// 
        ///  
        /// 
        /// You can use this API to determine which accounts or organizational nodes this portfolio
        /// have been shared, whether the recipient entity has imported the share, and whether
        /// TagOptions are included with the share.
        /// 
        ///  
        /// 
        /// The PortfolioId and Type parameters are both required.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribePortfolioShares service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribePortfolioShares service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribePortfolioShares Operation
        Task DescribePortfolioSharesAsync(DescribePortfolioSharesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// Container for the necessary parameters to execute the DescribePortfolioShareStatus service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribePortfolioShareStatus service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribePortfolioShareStatus Operation
        Task DescribePortfolioShareStatusAsync(DescribePortfolioShareStatusRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProduct
        /// 
        /// Gets information about the specified product.
        /// 
        ///   
        /// 
        ///  Running this operation with administrator access results in a failure. DescribeProductAsAdmin
        /// should be used instead. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DescribeProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProduct Operation
        Task DescribeProductAsync(DescribeProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProductAsAdmin
        /// 
        /// Gets information about the specified product. This operation is run with administrator
        /// access.
        /// 
        /// Container for the necessary parameters to execute the DescribeProductAsAdmin service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProductAsAdmin service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProductAsAdmin Operation
        Task DescribeProductAsAdminAsync(DescribeProductAsAdminRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProductView
        /// 
        /// Gets information about the specified product.
        /// 
        /// Container for the necessary parameters to execute the DescribeProductView service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProductView service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProductView Operation
        Task DescribeProductViewAsync(DescribeProductViewRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProvisionedProduct
        /// 
        /// Gets information about the specified provisioned product.
        /// 
        /// Container for the necessary parameters to execute the DescribeProvisionedProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProvisionedProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProvisionedProduct Operation
        Task DescribeProvisionedProductAsync(DescribeProvisionedProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProvisionedProductPlan
        /// 
        /// Gets information about the resource changes for the specified plan.
        /// 
        /// Container for the necessary parameters to execute the DescribeProvisionedProductPlan service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProvisionedProductPlan service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProvisionedProductPlan Operation
        Task DescribeProvisionedProductPlanAsync(DescribeProvisionedProductPlanRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProvisioningArtifact
        /// 
        /// Gets information about the specified provisioning artifact (also known as a version)
        /// for the specified product.
        /// 
        /// Container for the necessary parameters to execute the DescribeProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProvisioningArtifact Operation
        Task DescribeProvisioningArtifactAsync(DescribeProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeProvisioningParameters service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProvisioningParameters service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeProvisioningParameters Operation
        Task DescribeProvisioningParametersAsync(DescribeProvisioningParametersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DescribeRecord service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeRecord service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeRecord Operation
        Task DescribeRecordAsync(DescribeRecordRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeServiceAction
        /// 
        /// Describes a self-service action.
        /// 
        /// Container for the necessary parameters to execute the DescribeServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeServiceAction Operation
        Task DescribeServiceActionAsync(DescribeServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// Container for the necessary parameters to execute the DescribeServiceActionExecutionParameters service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeServiceActionExecutionParameters service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DescribeServiceActionExecutionParameters Operation
        Task DescribeServiceActionExecutionParametersAsync(DescribeServiceActionExecutionParametersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeTagOption
        /// 
        /// Gets information about the specified TagOption.
        /// 
        /// Container for the necessary parameters to execute the DescribeTagOption service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeTagOption service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for DescribeTagOption Operation
        Task DescribeTagOptionAsync(DescribeTagOptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisableAWSOrganizationsAccess
        /// 
        /// Disable portfolio sharing through the Organizations service. This command will not
        /// delete your current shares, but prevents you from creating new shares throughout your
        /// organization. Current shares are not kept in sync with your organization structure
        /// if the structure changes after calling this API. Only the management account in the
        /// organization can call this API.
        /// 
        ///  
        /// 
        /// You cannot call this API if there are active delegated administrators in the organization.
        /// 
        ///  
        /// 
        /// Note that a delegated administrator is not authorized to invoke DisableAWSOrganizationsAccess.
        /// 
        ///   
        /// 
        /// If you share an Service Catalog portfolio in an organization within Organizations,
        /// and then disable Organizations access for Service Catalog, the portfolio access permissions
        /// will not sync with the latest changes to the organization structure. Specifically,
        /// accounts that you removed from the organization after disabling Service Catalog access
        /// will retain access to the previously shared portfolio.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DisableAWSOrganizationsAccess service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisableAWSOrganizationsAccess service method, as returned by ServiceCatalog.
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DisableAWSOrganizationsAccess Operation
        Task DisableAWSOrganizationsAccessAsync(DisableAWSOrganizationsAccessRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateBudgetFromResource
        /// 
        /// Disassociates the specified budget from the specified resource.
        /// 
        /// Container for the necessary parameters to execute the DisassociateBudgetFromResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateBudgetFromResource service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DisassociateBudgetFromResource Operation
        Task DisassociateBudgetFromResourceAsync(DisassociateBudgetFromResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociatePrincipalFromPortfolio
        /// 
        /// Disassociates a previously associated principal ARN from a specified portfolio.
        /// 
        ///  
        /// 
        /// The PrincipalType and PrincipalARN must match the AssociatePrincipalWithPortfolio
        /// call request details. For example, to disassociate an association created with a PrincipalARN
        /// of PrincipalType IAM you must use the PrincipalType IAM
        /// when calling DisassociatePrincipalFromPortfolio. 
        /// 
        ///  
        /// 
        /// For portfolios that have been shared with principal name sharing enabled: after disassociating
        /// a principal, share recipient accounts will no longer be able to provision products
        /// in this portfolio using a role matching the name of the associated principal. 
        /// 
        ///  
        /// 
        /// For more information, review associate-principal-with-portfolio
        /// in the Amazon Web Services CLI Command Reference. 
        /// 
        ///   
        /// 
        /// If you disassociate a principal from a portfolio, with PrincipalType as IAM,
        /// the same principal will still have access to the portfolio if it matches one of the
        /// associated principals of type IAM_PATTERN. To fully remove access for
        /// a principal, verify all the associated Principals of type IAM_PATTERN,
        /// and then ensure you disassociate any IAM_PATTERN principals that match
        /// the principal whose access you are removing.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DisassociatePrincipalFromPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociatePrincipalFromPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DisassociatePrincipalFromPortfolio Operation
        Task DisassociatePrincipalFromPortfolioAsync(DisassociatePrincipalFromPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateProductFromPortfolio
        /// 
        /// Disassociates the specified product from the specified portfolio. 
        /// 
        ///  
        /// 
        /// A delegated admin is authorized to invoke this command.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateProductFromPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateProductFromPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// A resource that is currently in use. Ensure that the resource is not in use and retry
        /// the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DisassociateProductFromPortfolio Operation
        Task DisassociateProductFromPortfolioAsync(DisassociateProductFromPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateServiceActionFromProvisioningArtifact
        /// 
        /// Disassociates the specified self-service action association from the specified provisioning
        /// artifact.
        /// 
        /// Container for the necessary parameters to execute the DisassociateServiceActionFromProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateServiceActionFromProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for DisassociateServiceActionFromProvisioningArtifact Operation
        Task DisassociateServiceActionFromProvisioningArtifactAsync(DisassociateServiceActionFromProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateTagOptionFromResource
        /// 
        /// Disassociates the specified TagOption from the specified resource.
        /// 
        /// Container for the necessary parameters to execute the DisassociateTagOptionFromResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateTagOptionFromResource service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for DisassociateTagOptionFromResource Operation
        Task DisassociateTagOptionFromResourceAsync(DisassociateTagOptionFromResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  EnableAWSOrganizationsAccess
        /// 
        /// Enable portfolio sharing feature through 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.
        /// 
        ///  
        /// 
        /// When you call this API, Service Catalog calls organizations:EnableAWSServiceAccess
        /// on your behalf so that your shares stay in sync with any changes in your Organizations
        /// structure.
        /// 
        ///  
        /// 
        /// Note that a delegated administrator is not authorized to invoke EnableAWSOrganizationsAccess.
        /// 
        ///   
        /// 
        /// If you have previously disabled Organizations access for Service Catalog, and then
        /// enable access again, the portfolio access permissions might not sync with the latest
        /// changes to the organization structure. Specifically, accounts that you removed from
        /// the organization after disabling Service Catalog access, and before you enabled access
        /// again, can retain access to the previously shared portfolio. As a result, an account
        /// that has been removed from the organization might still be able to create or manage
        /// Amazon Web Services resources when it is no longer authorized to do so. Amazon Web
        /// Services is working to resolve this issue.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the EnableAWSOrganizationsAccess service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the EnableAWSOrganizationsAccess service method, as returned by ServiceCatalog.
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for EnableAWSOrganizationsAccess Operation
        Task EnableAWSOrganizationsAccessAsync(EnableAWSOrganizationsAccessRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ExecuteProvisionedProductPlan
        /// 
        /// Provisions or modifies a product based on the resource changes for the specified plan.
        /// 
        /// Container for the necessary parameters to execute the ExecuteProvisionedProductPlan service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ExecuteProvisionedProductPlan service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ExecuteProvisionedProductPlan Operation
        Task ExecuteProvisionedProductPlanAsync(ExecuteProvisionedProductPlanRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ExecuteProvisionedProductServiceAction
        /// 
        /// Executes a self-service action against a provisioned product.
        /// 
        /// Container for the necessary parameters to execute the ExecuteProvisionedProductServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ExecuteProvisionedProductServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ExecuteProvisionedProductServiceAction Operation
        Task ExecuteProvisionedProductServiceActionAsync(ExecuteProvisionedProductServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  GetAWSOrganizationsAccessStatus
        /// 
        /// Get the Access Status for Organizations portfolio share feature. This API can only
        /// be called by the management account in the organization or by a delegated admin.
        /// 
        /// Container for the necessary parameters to execute the GetAWSOrganizationsAccessStatus service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetAWSOrganizationsAccessStatus service method, as returned by ServiceCatalog.
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for GetAWSOrganizationsAccessStatus Operation
        Task GetAWSOrganizationsAccessStatusAsync(GetAWSOrganizationsAccessStatusRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// Container for the necessary parameters to execute the GetProvisionedProductOutputs service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetProvisionedProductOutputs service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for GetProvisionedProductOutputs Operation
        Task GetProvisionedProductOutputsAsync(GetProvisionedProductOutputsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ImportAsProvisionedProduct
        /// 
        /// Requests the import of a resource as an Service Catalog provisioned product that
        /// is associated to an Service Catalog product and provisioning artifact. Once imported,
        /// all supported governance actions are supported on the provisioned product. 
        /// 
        ///  
        /// 
        ///  Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets,
        /// and non-root nested stacks are not supported. 
        /// 
        ///  
        /// 
        ///  The CloudFormation stack must have one of the following statuses to be imported:
        /// CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE,
        /// IMPORT_COMPLETE, and IMPORT_ROLLBACK_COMPLETE. 
        /// 
        ///  
        /// 
        ///  Import of the resource requires that the CloudFormation stack template matches the
        /// associated Service Catalog product provisioning artifact. 
        /// 
        ///   
        /// 
        ///  When you import an existing CloudFormation stack into a portfolio, constraints that
        /// are associated with the product aren't applied during the import process. The constraints
        /// are applied after you call UpdateProvisionedProduct for the provisioned
        /// product. 
        /// 
        ///   
        /// 
        ///  The user or role that performs this operation must have the cloudformation:GetTemplate
        /// and cloudformation:DescribeStacks IAM policy permissions. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ImportAsProvisionedProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ImportAsProvisionedProduct service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ImportAsProvisionedProduct Operation
        Task ImportAsProvisionedProductAsync(ImportAsProvisionedProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListAcceptedPortfolioShares
        /// 
        /// Lists all imported portfolios for which account-to-account shares were accepted by
        /// this account. By specifying the PortfolioShareType, you can list portfolios
        /// for which organizational shares were accepted by this account.
        /// 
        /// Container for the necessary parameters to execute the ListAcceptedPortfolioShares service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListAcceptedPortfolioShares service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// REST API Reference for ListAcceptedPortfolioShares Operation
        Task ListAcceptedPortfolioSharesAsync(ListAcceptedPortfolioSharesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListBudgetsForResource
        /// 
        /// Lists all the budgets associated to the specified resource.
        /// 
        /// Container for the necessary parameters to execute the ListBudgetsForResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListBudgetsForResource service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListBudgetsForResource Operation
        Task ListBudgetsForResourceAsync(ListBudgetsForResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListConstraintsForPortfolio
        /// 
        /// Lists the constraints for the specified portfolio and product.
        /// 
        /// Container for the necessary parameters to execute the ListConstraintsForPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListConstraintsForPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListConstraintsForPortfolio Operation
        Task ListConstraintsForPortfolioAsync(ListConstraintsForPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListLaunchPaths
        /// 
        /// Lists the paths to the specified product. A path describes how the user gets access
        /// to a specified product and is necessary when provisioning a product. A path also determines
        /// the constraints that are put on a product. A path is dependent on a specific product,
        /// porfolio, and principal. 
        /// 
        ///   
        /// 
        ///  When provisioning a product that's been added to a portfolio, you must grant your
        /// user, group, or role access to the portfolio. For more information, see Granting
        /// users access in the Service Catalog User Guide. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListLaunchPaths service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListLaunchPaths service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListLaunchPaths Operation
        Task ListLaunchPathsAsync(ListLaunchPathsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListOrganizationPortfolioAccess service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListOrganizationPortfolioAccess service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListOrganizationPortfolioAccess Operation
        Task ListOrganizationPortfolioAccessAsync(ListOrganizationPortfolioAccessRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListPortfolioAccess service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListPortfolioAccess service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListPortfolioAccess Operation
        Task ListPortfolioAccessAsync(ListPortfolioAccessRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListPortfolios
        /// 
        /// Lists all portfolios in the catalog.
        /// 
        /// Container for the necessary parameters to execute the ListPortfolios service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListPortfolios service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for ListPortfolios Operation
        Task ListPortfoliosAsync(ListPortfoliosRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListPortfoliosForProduct
        /// 
        /// Lists all portfolios that the specified product is associated with.
        /// 
        /// Container for the necessary parameters to execute the ListPortfoliosForProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListPortfoliosForProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListPortfoliosForProduct Operation
        Task ListPortfoliosForProductAsync(ListPortfoliosForProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListPrincipalsForPortfolio
        /// 
        /// Lists all PrincipalARNs and corresponding PrincipalTypes
        /// associated with the specified portfolio.
        /// 
        /// Container for the necessary parameters to execute the ListPrincipalsForPortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListPrincipalsForPortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListPrincipalsForPortfolio Operation
        Task ListPrincipalsForPortfolioAsync(ListPrincipalsForPortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListProvisionedProductPlans
        /// 
        /// Lists the plans for the specified provisioned product or all plans to which the user
        /// has access.
        /// 
        /// Container for the necessary parameters to execute the ListProvisionedProductPlans service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProvisionedProductPlans service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListProvisionedProductPlans Operation
        Task ListProvisionedProductPlansAsync(ListProvisionedProductPlansRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListProvisioningArtifacts
        /// 
        /// Lists all provisioning artifacts (also known as versions) for the specified product.
        /// 
        /// Container for the necessary parameters to execute the ListProvisioningArtifacts service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProvisioningArtifacts service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListProvisioningArtifacts Operation
        Task ListProvisioningArtifactsAsync(ListProvisioningArtifactsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListProvisioningArtifactsForServiceAction
        /// 
        /// Lists all provisioning artifacts (also known as versions) for the specified self-service
        /// action.
        /// 
        /// Container for the necessary parameters to execute the ListProvisioningArtifactsForServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProvisioningArtifactsForServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListProvisioningArtifactsForServiceAction Operation
        Task ListProvisioningArtifactsForServiceActionAsync(ListProvisioningArtifactsForServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListRecordHistory
        /// 
        /// Lists the specified requests or all performed requests.
        /// 
        /// Container for the necessary parameters to execute the ListRecordHistory service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListRecordHistory service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for ListRecordHistory Operation
        Task ListRecordHistoryAsync(ListRecordHistoryRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListResourcesForTagOption
        /// 
        /// Lists the resources associated with the specified TagOption.
        /// 
        /// Container for the necessary parameters to execute the ListResourcesForTagOption service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListResourcesForTagOption service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for ListResourcesForTagOption Operation
        Task ListResourcesForTagOptionAsync(ListResourcesForTagOptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListServiceActions
        /// 
        /// Lists all self-service actions.
        /// 
        /// Container for the necessary parameters to execute the ListServiceActions service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListServiceActions service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for ListServiceActions Operation
        Task ListServiceActionsAsync(ListServiceActionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListServiceActionsForProvisioningArtifact
        /// 
        /// Returns a paginated list of self-service actions associated with the specified Product
        /// ID and Provisioning Artifact ID.
        /// 
        /// Container for the necessary parameters to execute the ListServiceActionsForProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListServiceActionsForProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListServiceActionsForProvisioningArtifact Operation
        Task ListServiceActionsForProvisioningArtifactAsync(ListServiceActionsForProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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 Amazon Web Services account name or Region.
        /// 
        /// Container for the necessary parameters to execute the ListStackInstancesForProvisionedProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListStackInstancesForProvisionedProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ListStackInstancesForProvisionedProduct Operation
        Task ListStackInstancesForProvisionedProductAsync(ListStackInstancesForProvisionedProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListTagOptions
        /// 
        /// Lists the specified TagOptions or all TagOptions.
        /// 
        /// Container for the necessary parameters to execute the ListTagOptions service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListTagOptions service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for ListTagOptions Operation
        Task ListTagOptionsAsync(ListTagOptionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  NotifyProvisionProductEngineWorkflowResult
        /// 
        /// Notifies the result of the provisioning engine execution.
        /// 
        /// Container for the necessary parameters to execute the NotifyProvisionProductEngineWorkflowResult service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the NotifyProvisionProductEngineWorkflowResult service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for NotifyProvisionProductEngineWorkflowResult Operation
        Task NotifyProvisionProductEngineWorkflowResultAsync(NotifyProvisionProductEngineWorkflowResultRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  NotifyTerminateProvisionedProductEngineWorkflowResult
        /// 
        /// Notifies the result of the terminate engine execution.
        /// 
        /// Container for the necessary parameters to execute the NotifyTerminateProvisionedProductEngineWorkflowResult service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the NotifyTerminateProvisionedProductEngineWorkflowResult service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for NotifyTerminateProvisionedProductEngineWorkflowResult Operation
        Task NotifyTerminateProvisionedProductEngineWorkflowResultAsync(NotifyTerminateProvisionedProductEngineWorkflowResultRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  NotifyUpdateProvisionedProductEngineWorkflowResult
        /// 
        /// Notifies the result of the update engine execution.
        /// 
        /// Container for the necessary parameters to execute the NotifyUpdateProvisionedProductEngineWorkflowResult service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the NotifyUpdateProvisionedProductEngineWorkflowResult service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for NotifyUpdateProvisionedProductEngineWorkflowResult Operation
        Task NotifyUpdateProvisionedProductEngineWorkflowResultAsync(NotifyUpdateProvisionedProductEngineWorkflowResultRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ProvisionProduct
        /// 
        /// Provisions the specified product. 
        /// 
        ///  
        /// 
        ///  A provisioned product is a resourced instance of a product. For example, provisioning
        /// a product that's based on an CloudFormation template launches an 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's a tag conflict
        /// for that key. Don't include conflicted keys as tags, or this will cause the error
        /// "Parameter validation failed: Missing required parameter in Tags[N]:Value".
        /// 
        /// 
        ///   
        /// 
        ///  When provisioning a product that's been added to a portfolio, you must grant your
        /// user, group, or role access to the portfolio. For more information, see Granting
        /// users access in the Service Catalog User Guide. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ProvisionProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ProvisionProduct service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for ProvisionProduct Operation
        Task ProvisionProductAsync(ProvisionProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  RejectPortfolioShare
        /// 
        /// Rejects an offer to share the specified portfolio.
        /// 
        /// Container for the necessary parameters to execute the RejectPortfolioShare service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the RejectPortfolioShare service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for RejectPortfolioShare Operation
        Task RejectPortfolioShareAsync(RejectPortfolioShareRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ScanProvisionedProducts
        /// 
        /// Lists the provisioned products that are available (not terminated).
        /// 
        ///  
        /// 
        /// To use additional filtering, see SearchProvisionedProducts.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ScanProvisionedProducts service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ScanProvisionedProducts service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for ScanProvisionedProducts Operation
        Task ScanProvisionedProductsAsync(ScanProvisionedProductsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  SearchProducts
        /// 
        /// Gets information about the products to which the caller has access.
        /// 
        /// Container for the necessary parameters to execute the SearchProducts service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the SearchProducts service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for SearchProducts Operation
        Task SearchProductsAsync(SearchProductsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  SearchProductsAsAdmin
        /// 
        /// Gets information about the products for the specified portfolio or all products.
        /// 
        /// Container for the necessary parameters to execute the SearchProductsAsAdmin service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the SearchProductsAsAdmin service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for SearchProductsAsAdmin Operation
        Task SearchProductsAsAdminAsync(SearchProductsAsAdminRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  SearchProvisionedProducts
        /// 
        /// Gets information about the provisioned products that meet the specified criteria.
        /// 
        /// Container for the necessary parameters to execute the SearchProvisionedProducts service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the SearchProvisionedProducts service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// REST API Reference for SearchProvisionedProducts Operation
        Task SearchProvisionedProductsAsync(SearchProvisionedProductsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TerminateProvisionedProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the TerminateProvisionedProduct service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for TerminateProvisionedProduct Operation
        Task TerminateProvisionedProductAsync(TerminateProvisionedProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateConstraint
        /// 
        /// Updates the specified constraint.
        /// 
        /// Container for the necessary parameters to execute the UpdateConstraint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateConstraint service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdateConstraint Operation
        Task UpdateConstraintAsync(UpdateConstraintRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdatePortfolio
        /// 
        /// Updates the specified portfolio.
        /// 
        ///  
        /// 
        /// You cannot update a product that was shared with you.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdatePortfolio service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdatePortfolio service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The current limits of the service would have been exceeded by this operation. Decrease
        /// your resource use or increase your service limits and retry the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for UpdatePortfolio Operation
        Task UpdatePortfolioAsync(UpdatePortfolioRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdatePortfolioShare
        /// 
        /// Updates the specified portfolio share. You can use this API to enable or disable TagOptions
        /// sharing or Principal sharing for an existing portfolio share. 
        /// 
        ///  
        /// 
        /// The portfolio share cannot be updated if the CreatePortfolioShare operation
        /// is IN_PROGRESS, as the share is not available to recipient entities.
        /// In this case, you must wait for the portfolio share to be COMPLETED.
        /// 
        ///  
        /// 
        /// You must provide the accountId or organization node in the input, but
        /// not both.
        /// 
        ///  
        /// 
        /// If the portfolio is shared to both an external account and an organization node, and
        /// both shares need to be updated, you must invoke UpdatePortfolioShare
        /// separately for each share type. 
        /// 
        ///  
        /// 
        /// This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare
        /// API for that action. 
        /// 
        ///   
        /// 
        /// When you associate a principal with portfolio, a potential privilege escalation path
        /// may occur when that portfolio is then shared with other accounts. For a user in a
        /// recipient account who is not an Service Catalog Admin, but still has the ability
        /// to create Principals (Users/Groups/Roles), that user could create a role that matches
        /// a principal name association for the portfolio. Although this user may not know which
        /// principal names are associated through Service Catalog, they may be able to guess
        /// the user. If this potential escalation path is a concern, then Service Catalog recommends
        /// using PrincipalType as IAM. With this configuration, the
        /// PrincipalARN must already exist in the recipient account before it can
        /// be associated. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UpdatePortfolioShare service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdatePortfolioShare service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The operation is not supported.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdatePortfolioShare Operation
        Task UpdatePortfolioShareAsync(UpdatePortfolioShareRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateProduct
        /// 
        /// Updates the specified product.
        /// 
        /// Container for the necessary parameters to execute the UpdateProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for UpdateProduct Operation
        Task UpdateProductAsync(UpdateProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateProvisionedProduct service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProvisionedProduct service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdateProvisionedProduct Operation
        Task UpdateProvisionedProductAsync(UpdateProvisionedProductRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateProvisionedProductProperties
        /// 
        /// Requests updates to the properties of the specified provisioned product.
        /// 
        /// Container for the necessary parameters to execute the UpdateProvisionedProductProperties service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProvisionedProductProperties service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// An attempt was made to modify a resource that is in a state that is not valid. Check
        /// your resources to ensure that they are in valid states before retrying the operation.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdateProvisionedProductProperties Operation
        Task UpdateProvisionedProductPropertiesAsync(UpdateProvisionedProductPropertiesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateProvisioningArtifact service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProvisioningArtifact service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdateProvisioningArtifact Operation
        Task UpdateProvisioningArtifactAsync(UpdateProvisioningArtifactRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateServiceAction
        /// 
        /// Updates a self-service action.
        /// 
        /// Container for the necessary parameters to execute the UpdateServiceAction service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateServiceAction service method, as returned by ServiceCatalog.
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// REST API Reference for UpdateServiceAction Operation
        Task UpdateServiceActionAsync(UpdateServiceActionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateTagOption
        /// 
        /// Updates the specified TagOption.
        /// 
        /// Container for the necessary parameters to execute the UpdateTagOption service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateTagOption service method, as returned by ServiceCatalog.
        /// 
        /// The specified resource is a duplicate.
        /// 
        /// 
        /// One or more parameters provided to the operation are not valid.
        /// 
        /// 
        /// The specified resource was not found.
        /// 
        /// 
        /// An operation requiring TagOptions failed because the TagOptions migration process
        /// has not been performed for this account. Use the Amazon Web Services Management Console
        /// to perform the migration process before retrying the operation.
        /// 
        /// REST API Reference for UpdateTagOption Operation
        Task UpdateTagOptionAsync(UpdateTagOptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}