@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Service Catalog
@version 2015-12-10
@auth AWS SigV4
@endpoints 90
@hint download_for_search
@toc root(90)

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, PortfolioShareType: str}

@endpoint POST /
@required {BudgetName: str, ResourceId: str}

@endpoint POST /
@required {PortfolioId: str, PrincipalARN: str, PrincipalType: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {ProductId: str, PortfolioId: str}
@optional {AcceptLanguage: str, SourcePortfolioId: str}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str, ServiceActionId: str}
@optional {AcceptLanguage: str, IdempotencyToken: str}

@endpoint POST /
@required {ResourceId: str, TagOptionId: str}

@endpoint POST /
@required {ServiceActionAssociations: [ServiceActionAssociation]}
@optional {AcceptLanguage: str}
@returns(200) {FailedServiceActionAssociations: [FailedServiceActionAssociation]?}

@endpoint POST /
@required {ServiceActionAssociations: [ServiceActionAssociation]}
@optional {AcceptLanguage: str}
@returns(200) {FailedServiceActionAssociations: [FailedServiceActionAssociation]?}

@endpoint POST /
@required {SourceProductArn: str, IdempotencyToken: str}
@optional {AcceptLanguage: str, TargetProductId: str, TargetProductName: str, SourceProvisioningArtifactIdentifiers: [map<str,str>], CopyOptions: [str]}
@returns(200) {CopyProductToken: str?}

@endpoint POST /
@required {PortfolioId: str, ProductId: str, Parameters: str, Type: str, IdempotencyToken: str}
@optional {AcceptLanguage: str, Description: str}
@returns(200) {ConstraintDetail: ConstraintDetail?{ConstraintId: str?, Type: str?, Description: str?, Owner: str?, ProductId: str?, PortfolioId: str?}, ConstraintParameters: str?, Status: str?}

@endpoint POST /
@required {DisplayName: str, ProviderName: str, IdempotencyToken: str}
@optional {AcceptLanguage: str, Description: str, Tags: [Tag]}
@returns(200) {PortfolioDetail: PortfolioDetail?{Id: str?, ARN: str?, DisplayName: str?, Description: str?, CreatedTime: str(timestamp)?, ProviderName: str?}, Tags: [Tag]?}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, AccountId: str, OrganizationNode: OrganizationNode, ShareTagOptions: bool, SharePrincipals: bool}
@returns(200) {PortfolioShareToken: str?}

@endpoint POST /
@required {Name: str, Owner: str, ProductType: str, IdempotencyToken: str}
@optional {AcceptLanguage: str, Description: str, Distributor: str, SupportDescription: str, SupportEmail: str, SupportUrl: str, Tags: [Tag], ProvisioningArtifactParameters: ProvisioningArtifactProperties, SourceConnection: SourceConnection}
@returns(200) {ProductViewDetail: ProductViewDetail?{ProductViewSummary: ProductViewSummary?{Id: str?, ProductId: str?, Name: str?, Owner: str?, ShortDescription: str?, Type: str?, Distributor: str?, HasDefaultPath: bool?, SupportEmail: str?, SupportDescription: str?, SupportUrl: str?}, Status: str?, ProductARN: str?, CreatedTime: str(timestamp)?, SourceConnection: SourceConnectionDetail?{Type: str?, ConnectionParameters: SourceConnectionParameters?{CodeStar: CodeStarParameters?}, LastSync: LastSync?{LastSyncTime: str(timestamp)?, LastSyncStatus: str?, LastSyncStatusMessage: str?, LastSuccessfulSyncTime: str(timestamp)?, LastSuccessfulSyncProvisioningArtifactId: str?}}}, ProvisioningArtifactDetail: ProvisioningArtifactDetail?{Id: str?, Name: str?, Description: str?, Type: str?, CreatedTime: str(timestamp)?, Active: bool?, Guidance: str?, SourceRevision: str?}, Tags: [Tag]?}

@endpoint POST /
@required {PlanName: str, PlanType: str, ProductId: str, ProvisionedProductName: str, ProvisioningArtifactId: str, IdempotencyToken: str}
@optional {AcceptLanguage: str, NotificationArns: [str], PathId: str, ProvisioningParameters: [UpdateProvisioningParameter], Tags: [Tag]}
@returns(200) {PlanName: str?, PlanId: str?, ProvisionProductId: str?, ProvisionedProductName: str?, ProvisioningArtifactId: str?}

@endpoint POST /
@required {ProductId: str, Parameters: ProvisioningArtifactProperties, IdempotencyToken: str}
@optional {AcceptLanguage: str}
@returns(200) {ProvisioningArtifactDetail: ProvisioningArtifactDetail?{Id: str?, Name: str?, Description: str?, Type: str?, CreatedTime: str(timestamp)?, Active: bool?, Guidance: str?, SourceRevision: str?}, Info: map<str,str>?, Status: str?}

@endpoint POST /
@required {Name: str, DefinitionType: str, Definition: map<str,str>, IdempotencyToken: str}
@optional {Description: str, AcceptLanguage: str}
@returns(200) {ServiceActionDetail: ServiceActionDetail?{ServiceActionSummary: ServiceActionSummary?{Id: str?, Name: str?, Description: str?, DefinitionType: str?}, Definition: map<str,str>?}}

@endpoint POST /
@required {Key: str, Value: str}
@returns(200) {TagOptionDetail: TagOptionDetail?{Key: str?, Value: str?, Active: bool?, Id: str?, Owner: str?}}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, AccountId: str, OrganizationNode: OrganizationNode}
@returns(200) {PortfolioShareToken: str?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {PlanId: str}
@optional {AcceptLanguage: str, IgnoreErrors: bool}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str, IdempotencyToken: str}

@endpoint POST /
@required {Id: str}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}
@returns(200) {ConstraintDetail: ConstraintDetail?{ConstraintId: str?, Type: str?, Description: str?, Owner: str?, ProductId: str?, PortfolioId: str?}, ConstraintParameters: str?, Status: str?}

@endpoint POST /
@required {CopyProductToken: str}
@optional {AcceptLanguage: str}
@returns(200) {CopyProductStatus: str?, TargetProductId: str?, StatusDetail: str?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}
@returns(200) {PortfolioDetail: PortfolioDetail?{Id: str?, ARN: str?, DisplayName: str?, Description: str?, CreatedTime: str(timestamp)?, ProviderName: str?}, Tags: [Tag]?, TagOptions: [TagOptionDetail]?, Budgets: [BudgetDetail]?}

@endpoint POST /
@required {PortfolioShareToken: str}
@returns(200) {PortfolioShareToken: str?, PortfolioId: str?, OrganizationNodeValue: str?, Status: str?, ShareDetails: ShareDetails?{SuccessfulShares: [str]?, ShareErrors: [ShareError]?}}

@endpoint POST /
@required {PortfolioId: str, Type: str}
@optional {PageToken: str, PageSize: int}
@returns(200) {NextPageToken: str?, PortfolioShareDetails: [PortfolioShareDetail]?}

@endpoint POST /
@optional {AcceptLanguage: str, Id: str, Name: str}
@returns(200) {ProductViewSummary: ProductViewSummary?{Id: str?, ProductId: str?, Name: str?, Owner: str?, ShortDescription: str?, Type: str?, Distributor: str?, HasDefaultPath: bool?, SupportEmail: str?, SupportDescription: str?, SupportUrl: str?}, ProvisioningArtifacts: [ProvisioningArtifact]?, Budgets: [BudgetDetail]?, LaunchPaths: [LaunchPath]?}

@endpoint POST /
@optional {AcceptLanguage: str, Id: str, Name: str, SourcePortfolioId: str}
@returns(200) {ProductViewDetail: ProductViewDetail?{ProductViewSummary: ProductViewSummary?{Id: str?, ProductId: str?, Name: str?, Owner: str?, ShortDescription: str?, Type: str?, Distributor: str?, HasDefaultPath: bool?, SupportEmail: str?, SupportDescription: str?, SupportUrl: str?}, Status: str?, ProductARN: str?, CreatedTime: str(timestamp)?, SourceConnection: SourceConnectionDetail?{Type: str?, ConnectionParameters: SourceConnectionParameters?{CodeStar: CodeStarParameters?}, LastSync: LastSync?{LastSyncTime: str(timestamp)?, LastSyncStatus: str?, LastSyncStatusMessage: str?, LastSuccessfulSyncTime: str(timestamp)?, LastSuccessfulSyncProvisioningArtifactId: str?}}}, ProvisioningArtifactSummaries: [ProvisioningArtifactSummary]?, Tags: [Tag]?, TagOptions: [TagOptionDetail]?, Budgets: [BudgetDetail]?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}
@returns(200) {ProductViewSummary: ProductViewSummary?{Id: str?, ProductId: str?, Name: str?, Owner: str?, ShortDescription: str?, Type: str?, Distributor: str?, HasDefaultPath: bool?, SupportEmail: str?, SupportDescription: str?, SupportUrl: str?}, ProvisioningArtifacts: [ProvisioningArtifact]?}

@endpoint POST /
@optional {AcceptLanguage: str, Id: str, Name: str}
@returns(200) {ProvisionedProductDetail: ProvisionedProductDetail?{Name: str?, Arn: str?, Type: str?, Id: str?, Status: str?, StatusMessage: str?, CreatedTime: str(timestamp)?, IdempotencyToken: str?, LastRecordId: str?, LastProvisioningRecordId: str?, LastSuccessfulProvisioningRecordId: str?, ProductId: str?, ProvisioningArtifactId: str?, LaunchRoleArn: str?}, CloudWatchDashboards: [CloudWatchDashboard]?}

@endpoint POST /
@required {PlanId: str}
@optional {AcceptLanguage: str, PageSize: int, PageToken: str}
@returns(200) {ProvisionedProductPlanDetails: ProvisionedProductPlanDetails?{CreatedTime: str(timestamp)?, PathId: str?, ProductId: str?, PlanName: str?, PlanId: str?, ProvisionProductId: str?, ProvisionProductName: str?, PlanType: str?, ProvisioningArtifactId: str?, Status: str?, UpdatedTime: str(timestamp)?, NotificationArns: [str]?, ProvisioningParameters: [UpdateProvisioningParameter]?, Tags: [Tag]?, StatusMessage: str?}, ResourceChanges: [ResourceChange]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, ProvisioningArtifactId: str, ProductId: str, ProvisioningArtifactName: str, ProductName: str, Verbose: bool, IncludeProvisioningArtifactParameters: bool}
@returns(200) {ProvisioningArtifactDetail: ProvisioningArtifactDetail?{Id: str?, Name: str?, Description: str?, Type: str?, CreatedTime: str(timestamp)?, Active: bool?, Guidance: str?, SourceRevision: str?}, Info: map<str,str>?, Status: str?, ProvisioningArtifactParameters: [ProvisioningArtifactParameter]?}

@endpoint POST /
@optional {AcceptLanguage: str, ProductId: str, ProductName: str, ProvisioningArtifactId: str, ProvisioningArtifactName: str, PathId: str, PathName: str}
@returns(200) {ProvisioningArtifactParameters: [ProvisioningArtifactParameter]?, ConstraintSummaries: [ConstraintSummary]?, UsageInstructions: [UsageInstruction]?, TagOptions: [TagOptionSummary]?, ProvisioningArtifactPreferences: ProvisioningArtifactPreferences?{StackSetAccounts: [str]?, StackSetRegions: [str]?}, ProvisioningArtifactOutputs: [ProvisioningArtifactOutput]?, ProvisioningArtifactOutputKeys: [ProvisioningArtifactOutput]?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str, PageToken: str, PageSize: int}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}, RecordOutputs: [RecordOutput]?, NextPageToken: str?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str}
@returns(200) {ServiceActionDetail: ServiceActionDetail?{ServiceActionSummary: ServiceActionSummary?{Id: str?, Name: str?, Description: str?, DefinitionType: str?}, Definition: map<str,str>?}}

@endpoint POST /
@required {ProvisionedProductId: str, ServiceActionId: str}
@optional {AcceptLanguage: str}
@returns(200) {ServiceActionParameters: [ExecutionParameter]?}

@endpoint POST /
@required {Id: str}
@returns(200) {TagOptionDetail: TagOptionDetail?{Key: str?, Value: str?, Active: bool?, Id: str?, Owner: str?}}

@endpoint POST /

@endpoint POST /
@required {BudgetName: str, ResourceId: str}

@endpoint POST /
@required {PortfolioId: str, PrincipalARN: str}
@optional {AcceptLanguage: str, PrincipalType: str}

@endpoint POST /
@required {ProductId: str, PortfolioId: str}
@optional {AcceptLanguage: str}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str, ServiceActionId: str}
@optional {AcceptLanguage: str, IdempotencyToken: str}

@endpoint POST /
@required {ResourceId: str, TagOptionId: str}

@endpoint POST /

@endpoint POST /
@required {PlanId: str, IdempotencyToken: str}
@optional {AcceptLanguage: str}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@required {ProvisionedProductId: str, ServiceActionId: str, ExecuteToken: str}
@optional {AcceptLanguage: str, Parameters: map<str,[str]>}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@returns(200) {AccessStatus: str?}

@endpoint POST /
@optional {AcceptLanguage: str, ProvisionedProductId: str, ProvisionedProductName: str, OutputKeys: [str], PageSize: int, PageToken: str}
@returns(200) {Outputs: [RecordOutput]?, NextPageToken: str?}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str, ProvisionedProductName: str, PhysicalId: str, IdempotencyToken: str}
@optional {AcceptLanguage: str}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@optional {AcceptLanguage: str, PageToken: str, PageSize: int, PortfolioShareType: str}
@returns(200) {PortfolioDetails: [PortfolioDetail]?, NextPageToken: str?}

@endpoint POST /
@required {ResourceId: str}
@optional {AcceptLanguage: str, PageSize: int, PageToken: str}
@returns(200) {Budgets: [BudgetDetail]?, NextPageToken: str?}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, ProductId: str, PageSize: int, PageToken: str}
@returns(200) {ConstraintDetails: [ConstraintDetail]?, NextPageToken: str?}

@endpoint POST /
@required {ProductId: str}
@optional {AcceptLanguage: str, PageSize: int, PageToken: str}
@returns(200) {LaunchPathSummaries: [LaunchPathSummary]?, NextPageToken: str?}

@endpoint POST /
@required {PortfolioId: str, OrganizationNodeType: str}
@optional {AcceptLanguage: str, PageToken: str, PageSize: int}
@returns(200) {OrganizationNodes: [OrganizationNode]?, NextPageToken: str?}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, OrganizationParentId: str, PageToken: str, PageSize: int}
@returns(200) {AccountIds: [str]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, PageToken: str, PageSize: int}
@returns(200) {PortfolioDetails: [PortfolioDetail]?, NextPageToken: str?}

@endpoint POST /
@required {ProductId: str}
@optional {AcceptLanguage: str, PageToken: str, PageSize: int}
@returns(200) {PortfolioDetails: [PortfolioDetail]?, NextPageToken: str?}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, PageSize: int, PageToken: str}
@returns(200) {Principals: [Principal]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, ProvisionProductId: str, PageSize: int, PageToken: str, AccessLevelFilter: AccessLevelFilter}
@returns(200) {ProvisionedProductPlans: [ProvisionedProductPlanSummary]?, NextPageToken: str?}

@endpoint POST /
@required {ProductId: str}
@optional {AcceptLanguage: str}
@returns(200) {ProvisioningArtifactDetails: [ProvisioningArtifactDetail]?, NextPageToken: str?}

@endpoint POST /
@required {ServiceActionId: str}
@optional {PageSize: int, PageToken: str, AcceptLanguage: str}
@returns(200) {ProvisioningArtifactViews: [ProvisioningArtifactView]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, AccessLevelFilter: AccessLevelFilter, SearchFilter: ListRecordHistorySearchFilter, PageSize: int, PageToken: str}
@returns(200) {RecordDetails: [RecordDetail]?, NextPageToken: str?}

@endpoint POST /
@required {TagOptionId: str}
@optional {ResourceType: str, PageSize: int, PageToken: str}
@returns(200) {ResourceDetails: [ResourceDetail]?, PageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, PageSize: int, PageToken: str}
@returns(200) {ServiceActionSummaries: [ServiceActionSummary]?, NextPageToken: str?}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str}
@optional {PageSize: int, PageToken: str, AcceptLanguage: str}
@returns(200) {ServiceActionSummaries: [ServiceActionSummary]?, NextPageToken: str?}

@endpoint POST /
@required {ProvisionedProductId: str}
@optional {AcceptLanguage: str, PageToken: str, PageSize: int}
@returns(200) {StackInstances: [StackInstance]?, NextPageToken: str?}

@endpoint POST /
@optional {Filters: ListTagOptionsFilters, PageSize: int, PageToken: str}
@returns(200) {TagOptionDetails: [TagOptionDetail]?, PageToken: str?}

@endpoint POST /
@required {WorkflowToken: str, RecordId: str, Status: str, IdempotencyToken: str}
@optional {FailureReason: str, ResourceIdentifier: EngineWorkflowResourceIdentifier, Outputs: [RecordOutput]}

@endpoint POST /
@required {WorkflowToken: str, RecordId: str, Status: str, IdempotencyToken: str}
@optional {FailureReason: str}

@endpoint POST /
@required {WorkflowToken: str, RecordId: str, Status: str, IdempotencyToken: str}
@optional {FailureReason: str, Outputs: [RecordOutput]}

@endpoint POST /
@required {ProvisionedProductName: str, ProvisionToken: str}
@optional {AcceptLanguage: str, ProductId: str, ProductName: str, ProvisioningArtifactId: str, ProvisioningArtifactName: str, PathId: str, PathName: str, ProvisioningParameters: [ProvisioningParameter], ProvisioningPreferences: ProvisioningPreferences, Tags: [Tag], NotificationArns: [str]}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, PortfolioShareType: str}

@endpoint POST /
@optional {AcceptLanguage: str, AccessLevelFilter: AccessLevelFilter, PageSize: int, PageToken: str}
@returns(200) {ProvisionedProducts: [ProvisionedProductDetail]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, Filters: map<str,[str]>, PageSize: int, SortBy: str, SortOrder: str, PageToken: str}
@returns(200) {ProductViewSummaries: [ProductViewSummary]?, ProductViewAggregations: map<str,[ProductViewAggregationValue]>?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, PortfolioId: str, Filters: map<str,[str]>, SortBy: str, SortOrder: str, PageToken: str, PageSize: int, ProductSource: str}
@returns(200) {ProductViewDetails: [ProductViewDetail]?, NextPageToken: str?}

@endpoint POST /
@optional {AcceptLanguage: str, AccessLevelFilter: AccessLevelFilter, Filters: map<str,[str]>, SortBy: str, SortOrder: str, PageSize: int, PageToken: str}
@returns(200) {ProvisionedProducts: [ProvisionedProductAttribute]?, TotalResultsCount: int?, NextPageToken: str?}

@endpoint POST /
@required {TerminateToken: str}
@optional {ProvisionedProductName: str, ProvisionedProductId: str, IgnoreErrors: bool, AcceptLanguage: str, RetainPhysicalResources: bool}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str, Description: str, Parameters: str}
@returns(200) {ConstraintDetail: ConstraintDetail?{ConstraintId: str?, Type: str?, Description: str?, Owner: str?, ProductId: str?, PortfolioId: str?}, ConstraintParameters: str?, Status: str?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str, DisplayName: str, Description: str, ProviderName: str, AddTags: [Tag], RemoveTags: [str]}
@returns(200) {PortfolioDetail: PortfolioDetail?{Id: str?, ARN: str?, DisplayName: str?, Description: str?, CreatedTime: str(timestamp)?, ProviderName: str?}, Tags: [Tag]?}

@endpoint POST /
@required {PortfolioId: str}
@optional {AcceptLanguage: str, AccountId: str, OrganizationNode: OrganizationNode, ShareTagOptions: bool, SharePrincipals: bool}
@returns(200) {PortfolioShareToken: str?, Status: str?}

@endpoint POST /
@required {Id: str}
@optional {AcceptLanguage: str, Name: str, Owner: str, Description: str, Distributor: str, SupportDescription: str, SupportEmail: str, SupportUrl: str, AddTags: [Tag], RemoveTags: [str], SourceConnection: SourceConnection}
@returns(200) {ProductViewDetail: ProductViewDetail?{ProductViewSummary: ProductViewSummary?{Id: str?, ProductId: str?, Name: str?, Owner: str?, ShortDescription: str?, Type: str?, Distributor: str?, HasDefaultPath: bool?, SupportEmail: str?, SupportDescription: str?, SupportUrl: str?}, Status: str?, ProductARN: str?, CreatedTime: str(timestamp)?, SourceConnection: SourceConnectionDetail?{Type: str?, ConnectionParameters: SourceConnectionParameters?{CodeStar: CodeStarParameters?}, LastSync: LastSync?{LastSyncTime: str(timestamp)?, LastSyncStatus: str?, LastSyncStatusMessage: str?, LastSuccessfulSyncTime: str(timestamp)?, LastSuccessfulSyncProvisioningArtifactId: str?}}}, Tags: [Tag]?}

@endpoint POST /
@required {UpdateToken: str}
@optional {AcceptLanguage: str, ProvisionedProductName: str, ProvisionedProductId: str, ProductId: str, ProductName: str, ProvisioningArtifactId: str, ProvisioningArtifactName: str, PathId: str, PathName: str, ProvisioningParameters: [UpdateProvisioningParameter], ProvisioningPreferences: UpdateProvisioningPreferences, Tags: [Tag]}
@returns(200) {RecordDetail: RecordDetail?{RecordId: str?, ProvisionedProductName: str?, Status: str?, CreatedTime: str(timestamp)?, UpdatedTime: str(timestamp)?, ProvisionedProductType: str?, RecordType: str?, ProvisionedProductId: str?, ProductId: str?, ProvisioningArtifactId: str?, PathId: str?, RecordErrors: [RecordError]?, RecordTags: [RecordTag]?, LaunchRoleArn: str?}}

@endpoint POST /
@required {ProvisionedProductId: str, ProvisionedProductProperties: map<str,str>, IdempotencyToken: str}
@optional {AcceptLanguage: str}
@returns(200) {ProvisionedProductId: str?, ProvisionedProductProperties: map<str,str>?, RecordId: str?, Status: str?}

@endpoint POST /
@required {ProductId: str, ProvisioningArtifactId: str}
@optional {AcceptLanguage: str, Name: str, Description: str, Active: bool, Guidance: str}
@returns(200) {ProvisioningArtifactDetail: ProvisioningArtifactDetail?{Id: str?, Name: str?, Description: str?, Type: str?, CreatedTime: str(timestamp)?, Active: bool?, Guidance: str?, SourceRevision: str?}, Info: map<str,str>?, Status: str?}

@endpoint POST /
@required {Id: str}
@optional {Name: str, Definition: map<str,str>, Description: str, AcceptLanguage: str}
@returns(200) {ServiceActionDetail: ServiceActionDetail?{ServiceActionSummary: ServiceActionSummary?{Id: str?, Name: str?, Description: str?, DefinitionType: str?}, Definition: map<str,str>?}}

@endpoint POST /
@required {Id: str}
@optional {Value: str, Active: bool}
@returns(200) {TagOptionDetail: TagOptionDetail?{Key: str?, Value: str?, Active: bool?, Id: str?, Owner: str?}}

@end
