AWS.ServiceCatalog reference
DescribeProduct
Section titled “DescribeProduct”Source:
src/AWS/ServiceCatalog/DescribeProduct.ts
Runtime binding for servicecatalog:DescribeProduct.
Gets information about a product the caller has access to, including its provisioning artifacts (versions) and launch paths.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.DescribeProductHttp).
DescribeProduct: Browsing the Catalog
Section titled “DescribeProduct: Browsing the Catalog”// init — account-level binding, no resource argumentconst describeProduct = yield* AWS.ServiceCatalog.DescribeProduct();
// runtimeconst { ProductViewSummary, ProvisioningArtifacts } = yield* describeProduct({ Id: "prod-abc123" });DescribeProvisionedProduct
Section titled “DescribeProvisionedProduct”Source:
src/AWS/ServiceCatalog/DescribeProvisionedProduct.ts
Runtime binding for servicecatalog:DescribeProvisionedProduct.
Gets information about a provisioned product by ID or name — its status (AVAILABLE, UNDER_CHANGE, ERROR, …) and the record of its last operation.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.DescribeProvisionedProductHttp).
DescribeProvisionedProduct: Tracking Provisioned Products
Section titled “DescribeProvisionedProduct: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst describeProvisionedProduct = yield* AWS.ServiceCatalog.DescribeProvisionedProduct();
// runtimeconst { ProvisionedProductDetail } = yield* describeProvisionedProduct({ Name: "my-vpc" });DescribeProvisioningParameters
Section titled “DescribeProvisioningParameters”Source:
src/AWS/ServiceCatalog/DescribeProvisioningParameters.ts
Runtime binding for servicecatalog:DescribeProvisioningParameters.
Gets the template parameters, constraints, and usage instructions needed to provision a product — call it before ProvisionProduct to build the parameter form.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.DescribeProvisioningParametersHttp).
DescribeProvisioningParameters: Browsing the Catalog
Section titled “DescribeProvisioningParameters: Browsing the Catalog”// init — account-level binding, no resource argumentconst describeProvisioningParameters = yield* AWS.ServiceCatalog.DescribeProvisioningParameters();
// runtimeconst { ProvisioningArtifactParameters } = yield* describeProvisioningParameters({ ProductId: "prod-abc123", ProvisioningArtifactId: "pa-abc123", });DescribeRecord
Section titled “DescribeRecord”Source:
src/AWS/ServiceCatalog/DescribeRecord.ts
Runtime binding for servicecatalog:DescribeRecord.
Gets a provisioning record — the result of a provision, update, or terminate request. Poll it until the record status is SUCCEEDED or FAILED.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.DescribeRecordHttp).
DescribeRecord: Tracking Provisioned Products
Section titled “DescribeRecord: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst describeRecord = yield* AWS.ServiceCatalog.DescribeRecord();
// runtimeconst { RecordDetail } = yield* describeRecord({ Id: "rec-abc123",});DescribeServiceActionExecutionParameters
Section titled “DescribeServiceActionExecutionParameters”Source:
src/AWS/ServiceCatalog/DescribeServiceActionExecutionParameters.ts
Runtime binding for servicecatalog:DescribeServiceActionExecutionParameters.
Gets the parameters required to execute a self-service action on a provisioned product — call it before ExecuteProvisionedProductServiceAction to build the parameter form.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.DescribeServiceActionExecutionParametersHttp).
DescribeServiceActionExecutionParameters: Service Actions
Section titled “DescribeServiceActionExecutionParameters: Service Actions”// init — account-level binding, no resource argumentconst describeServiceActionExecutionParameters = yield* AWS.ServiceCatalog.DescribeServiceActionExecutionParameters();
// runtimeconst { ServiceActionParameters } = yield* describeServiceActionExecutionParameters({ ProvisionedProductId: "pp-abc123", ServiceActionId: "act-abc123", });ExecuteProvisionedProductServiceAction
Section titled “ExecuteProvisionedProductServiceAction”Source:
src/AWS/ServiceCatalog/ExecuteProvisionedProductServiceAction.ts
Runtime binding for servicecatalog:ExecuteProvisionedProductServiceAction.
Executes a self-service action (e.g. restart, snapshot — an SSM-document-backed operation the administrator attached to the product) on a provisioned product.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.ExecuteProvisionedProductServiceActionHttp).
ExecuteProvisionedProductServiceAction: Service Actions
Section titled “ExecuteProvisionedProductServiceAction: Service Actions”// init — account-level binding, no resource argumentconst executeProvisionedProductServiceAction = yield* AWS.ServiceCatalog.ExecuteProvisionedProductServiceAction();
// runtimeconst { RecordDetail } = yield* executeProvisionedProductServiceAction({ ProvisionedProductId: "pp-abc123", ServiceActionId: "act-abc123", ExecuteToken: crypto.randomUUID(), });GetProvisionedProductOutputs
Section titled “GetProvisionedProductOutputs”Source:
src/AWS/ServiceCatalog/GetProvisionedProductOutputs.ts
Runtime binding for servicecatalog:GetProvisionedProductOutputs.
Gets the CloudFormation stack outputs of a provisioned product — how downstream code discovers the endpoints and IDs a launched product created.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.GetProvisionedProductOutputsHttp).
GetProvisionedProductOutputs: Tracking Provisioned Products
Section titled “GetProvisionedProductOutputs: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst getProvisionedProductOutputs = yield* AWS.ServiceCatalog.GetProvisionedProductOutputs();
// runtimeconst { Outputs } = yield* getProvisionedProductOutputs({ ProvisionedProductName: "my-vpc",});ListLaunchPaths
Section titled “ListLaunchPaths”Source:
src/AWS/ServiceCatalog/ListLaunchPaths.ts
Runtime binding for servicecatalog:ListLaunchPaths.
Lists the launch paths (the portfolio routes through which the caller can provision a product). The path ID is required by ProvisionProduct when the product is published to more than one portfolio.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.ListLaunchPathsHttp).
ListLaunchPaths: Browsing the Catalog
Section titled “ListLaunchPaths: Browsing the Catalog”// init — account-level binding, no resource argumentconst listLaunchPaths = yield* AWS.ServiceCatalog.ListLaunchPaths();
// runtimeconst { LaunchPathSummaries } = yield* listLaunchPaths({ ProductId: "prod-abc123",});ListRecordHistory
Section titled “ListRecordHistory”Source:
src/AWS/ServiceCatalog/ListRecordHistory.ts
Runtime binding for servicecatalog:ListRecordHistory.
Lists the caller’s past provisioning records (provision, update, and terminate requests), newest first.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.ListRecordHistoryHttp).
ListRecordHistory: Tracking Provisioned Products
Section titled “ListRecordHistory: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst listRecordHistory = yield* AWS.ServiceCatalog.ListRecordHistory();
// runtimeconst { RecordDetails } = yield* listRecordHistory();ListStackInstancesForProvisionedProduct
Section titled “ListStackInstancesForProvisionedProduct”Source:
src/AWS/ServiceCatalog/ListStackInstancesForProvisionedProduct.ts
Runtime binding for servicecatalog:ListStackInstancesForProvisionedProduct.
Lists the CloudFormation stack instances (account/region pairs) of a StackSet-backed provisioned product.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.ListStackInstancesForProvisionedProductHttp).
ListStackInstancesForProvisionedProduct: Tracking Provisioned Products
Section titled “ListStackInstancesForProvisionedProduct: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst listStackInstancesForProvisionedProduct = yield* AWS.ServiceCatalog.ListStackInstancesForProvisionedProduct();
// runtimeconst { StackInstances } = yield* listStackInstancesForProvisionedProduct({ ProvisionedProductId: "pp-abc123", });Portfolio
Section titled “Portfolio”Source:
src/AWS/ServiceCatalog/Portfolio.ts
An AWS Service Catalog portfolio — a container that organizes products and grants access to them for a set of principals.
Portfolio: Creating a Portfolio
Section titled “Portfolio: Creating a Portfolio”Basic Portfolio
import * as ServiceCatalog from "alchemy/AWS/ServiceCatalog";
const portfolio = yield* ServiceCatalog.Portfolio("Tools", { providerName: "platform-team",});Portfolio with Description and Tags
const portfolio = yield* ServiceCatalog.Portfolio("Tools", { displayName: "engineering-tools", providerName: "platform-team", description: "Self-service infrastructure for engineering", tags: { team: "platform" },});Portfolio: Granting Access
Section titled “Portfolio: Granting Access”yield* ServiceCatalog.PrincipalPortfolioAssociation("DevAccess", { portfolioId: portfolio.portfolioId, principalArn: role.roleArn,});Portfolio: Adding Products
Section titled “Portfolio: Adding Products”yield* ServiceCatalog.PortfolioProductAssociation("ToolsVpcProduct", { portfolioId: portfolio.portfolioId, productId: product.productId,});PortfolioProductAssociation
Section titled “PortfolioProductAssociation”Source:
src/AWS/ServiceCatalog/PortfolioProductAssociation.ts
Associates a Service Catalog product with a portfolio, making the product launchable by the portfolio’s principals.
PortfolioProductAssociation: Associating a Product
Section titled “PortfolioProductAssociation: Associating a Product”import * as ServiceCatalog from "alchemy/AWS/ServiceCatalog";
yield* ServiceCatalog.PortfolioProductAssociation("ToolsVpc", { portfolioId: portfolio.portfolioId, productId: product.productId,});PrincipalPortfolioAssociation
Section titled “PrincipalPortfolioAssociation”Source:
src/AWS/ServiceCatalog/PrincipalPortfolioAssociation.ts
Grants an IAM principal (user, group, or role) access to a Service Catalog portfolio, allowing it to browse and launch the portfolio’s products.
PrincipalPortfolioAssociation: Granting Access
Section titled “PrincipalPortfolioAssociation: Granting Access”Associate an IAM role
import * as ServiceCatalog from "alchemy/AWS/ServiceCatalog";
yield* ServiceCatalog.PrincipalPortfolioAssociation("DevAccess", { portfolioId: portfolio.portfolioId, principalArn: role.roleArn,});Associate a wildcard principal pattern
yield* ServiceCatalog.PrincipalPortfolioAssociation("AllDevRoles", { portfolioId: portfolio.portfolioId, principalArn: "arn:aws:iam:::role/dev-*", principalType: "IAM_PATTERN",});Product
Section titled “Product”Source:
src/AWS/ServiceCatalog/Product.ts
An AWS Service Catalog product — a CloudFormation-backed offering (or Terraform/external equivalent) with one or more provisioning artifacts (versions) that principals can launch from a portfolio.
Product: Creating a Product
Section titled “Product: Creating a Product”CloudFormation Product
import * as ServiceCatalog from "alchemy/AWS/ServiceCatalog";
const product = yield* ServiceCatalog.Product("VpcProduct", { owner: "platform-team", description: "Standard VPC baseline", provisioningArtifact: { name: "v1", templateUrl: "https://my-bucket.s3.us-west-2.amazonaws.com/vpc.json", },});Product with Support Information
const product = yield* ServiceCatalog.Product("VpcProduct", { owner: "platform-team", supportEmail: "platform@example.com", supportUrl: "https://wiki.example.com/vpc-product", supportDescription: "Slack #platform for questions", provisioningArtifact: { templateUrl: "https://my-bucket.s3.us-west-2.amazonaws.com/vpc.json", },});Product: Publishing to a Portfolio
Section titled “Product: Publishing to a Portfolio”yield* ServiceCatalog.PortfolioProductAssociation("ToolsVpc", { portfolioId: portfolio.portfolioId, productId: product.productId,});ProvisionProduct
Section titled “ProvisionProduct”Source:
src/AWS/ServiceCatalog/ProvisionProduct.ts
Runtime binding for servicecatalog:ProvisionProduct.
Provisions (launches) a product, creating the underlying CloudFormation stack. Returns the in-flight provisioning record — poll it with DescribeRecord.
Also grants the CloudFormation stack-creation and template-fetch (s3:GetObject) actions Service Catalog performs with the caller’s credentials when the product has no launch-role constraint.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.ProvisionProductHttp).
ProvisionProduct: Provisioning Products
Section titled “ProvisionProduct: Provisioning Products”// init — account-level binding, no resource argumentconst provisionProduct = yield* AWS.ServiceCatalog.ProvisionProduct();
// runtimeconst { RecordDetail } = yield* provisionProduct({ ProductId: "prod-abc123", ProvisioningArtifactId: "pa-abc123", ProvisionedProductName: "my-vpc", ProvisionToken: crypto.randomUUID(),});SearchProducts
Section titled “SearchProducts”Source:
src/AWS/ServiceCatalog/SearchProducts.ts
Runtime binding for servicecatalog:SearchProducts.
Searches the products to which the caller has access — the end-user view of the catalog (products published to a portfolio the caller’s principal is associated with).
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.SearchProductsHttp).
SearchProducts: Browsing the Catalog
Section titled “SearchProducts: Browsing the Catalog”// init — account-level binding, no resource argumentconst searchProducts = yield* AWS.ServiceCatalog.SearchProducts();
// runtimeconst { ProductViewSummaries } = yield* searchProducts();SearchProvisionedProducts
Section titled “SearchProvisionedProducts”Source:
src/AWS/ServiceCatalog/SearchProvisionedProducts.ts
Runtime binding for servicecatalog:SearchProvisionedProducts.
Searches the provisioned products the caller has access to, with optional free-text filters and account-level access filters.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.SearchProvisionedProductsHttp).
SearchProvisionedProducts: Tracking Provisioned Products
Section titled “SearchProvisionedProducts: Tracking Provisioned Products”// init — account-level binding, no resource argumentconst searchProvisionedProducts = yield* AWS.ServiceCatalog.SearchProvisionedProducts();
// runtimeconst { ProvisionedProducts } = yield* searchProvisionedProducts();TerminateProvisionedProduct
Section titled “TerminateProvisionedProduct”Source:
src/AWS/ServiceCatalog/TerminateProvisionedProduct.ts
Runtime binding for servicecatalog:TerminateProvisionedProduct.
Terminates a provisioned product, deleting the underlying CloudFormation stack. Returns the in-flight record — poll it with DescribeRecord.
Also grants the CloudFormation stack-deletion actions Service Catalog performs with the caller’s credentials when the product has no launch-role constraint.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.TerminateProvisionedProductHttp).
TerminateProvisionedProduct: Provisioning Products
Section titled “TerminateProvisionedProduct: Provisioning Products”// init — account-level binding, no resource argumentconst terminateProvisionedProduct = yield* AWS.ServiceCatalog.TerminateProvisionedProduct();
// runtimeconst { RecordDetail } = yield* terminateProvisionedProduct({ ProvisionedProductName: "my-vpc", TerminateToken: crypto.randomUUID(),});UpdateProvisionedProduct
Section titled “UpdateProvisionedProduct”Source:
src/AWS/ServiceCatalog/UpdateProvisionedProduct.ts
Runtime binding for servicecatalog:UpdateProvisionedProduct.
Updates a provisioned product to a new provisioning artifact (version), parameters, or launch path — the self-service equivalent of a stack update. Returns the in-flight record.
Also grants the CloudFormation stack-update actions Service Catalog performs with the caller’s credentials when the product has no launch-role constraint.
Account-level operation — which products the caller can see and act on
is governed by portfolio principal associations, so the binding takes no
resource argument. Provide the implementation with
Effect.provide(AWS.ServiceCatalog.UpdateProvisionedProductHttp).
UpdateProvisionedProduct: Provisioning Products
Section titled “UpdateProvisionedProduct: Provisioning Products”// init — account-level binding, no resource argumentconst updateProvisionedProduct = yield* AWS.ServiceCatalog.UpdateProvisionedProduct();
// runtimeconst { RecordDetail } = yield* updateProvisionedProduct({ ProvisionedProductName: "my-vpc", ProvisioningArtifactName: "v2", UpdateToken: crypto.randomUUID(),});