Abstract:
A service provider system may implement an enterprise catalog service that manages catalogs and portfolios of software products (e.g., desktop applications and server products) on behalf of service provider customer organizations. Through the service, a customer organization administrator may create a portfolio (e.g., a container) and configure the portfolio for subsequent use by end users in the organization, which may include adding products, users, permissions, and constraints on the usage of the products (individually or collectively) to the portfolio for all authorized end users or particular end users. Portfolios may be shared with other administrators by publishing them or through direct notification of sharing. A recipient of a shared portfolio may, after importing it, further restrict access to the portfolio or the use of the products therein, but cannot modify the portfolio itself. Changes made by a portfolio owner may be propagated to authorized users and to portfolio importers automatically.
Abstract:
A resource stack managed by a resource stack provider is created based on a resource stack template that integrates a custom resource from a second provider into the resource stack using a notification system with the second provider. For example, a customer may create a template that defines a resource stack that comprises resources available from the resource stack provider and one or more custom resources provided by a second provider. When a resource stack is created, resources available from the resource stack provider may be provisioned. Custom resources may be initialized by notifying the provider of the custom resource of the requested integration of the custom resource with the resource stack and requested configuration details. The custom resource provider may respond with an indication of successful integration when the custom resource has been successfully initialized. After initializing the resources, the resource stack may be enabled for use.
Abstract:
A service provider system may implement an enterprise catalog service that manages catalogs or portfolios of software products (e.g., desktop applications and server products) on behalf of service provider customer organizations. Through the enterprise catalog service, an administrator in a customer organization may discover, select, and ingest products (e.g., based on their features, pricing, and terms), and may add them to catalogs or portfolios for subsequent use by end users in the organization. The administrator may apply constraints on product use and limit product access to particular end users. The products may include third party products that are made available through the enterprise catalog service and a customer's own applications. The enterprise catalog service may monitor usage of third party products and bill the customer organization. Products managed by the enterprise catalog service may be deployed through an application fulfillment platform or resource stack management platform.
Abstract:
Techniques are described that enable a user to upgrade a stack of resources by providing a template that reflects the desired end state of the stack. Upon receiving a new template, the system automatically detects changes that should be performed and determines the order in which the changes should be performed. The system can also detect if the desired changes to the stack are a result of direct modifications; because parameters to the resources have changed; or the changes are indirectly caused by other dependency/attribute changing. Additionally, the system determines whether the changes require creating new resources or if the changes can be made to the resources live. In case of replacement of resources, the system will first create the new resource, move that new resource into the stack and remove the old resource(s). In case of failures, the system ensures that the stack rolls back to the initial state.
Abstract:
Systems and methods are described for enabling users to model security resources and user access keys as resources in a template language. The template can be used to create and update a stack of resources that will provide a network-accessible service. The security resources and access keys can be referred to in the template during both stack creation process and the stack update process. The security resources can include users, groups and policies. Additionally, users can refer to access keys in the template as dynamic parameters without any need to refer to the access keys in plaintext. The system securely stores access keys within the system and allows for templates to refer to them once defined. These key references can then be passed within a template to resources that need them as well as passing them on securely to resources like server instances through the use of the user-data field.
Abstract:
A service provider system may implement an enterprise catalog service that manages software products and portfolios of software products on behalf of service provider customer organizations. Through an administrator interface of the service, a customer organization administrator may create constraints on the use of the software products, and each constraint may include one or more rules about how the products can be launched. These may include environmental constraints (specifying a region in which a product launches), restrictions on input parameter values (including the types of resource instances on which a product can be launched), quotas (controlling the number of product installations), or billing constraints. Constraints may be applied on a user-to-product arc or on a portfolio-to-product arc. Constraints may be stored as objects, and reference to those objects may be added to product or portfolio objects. Constraints may be shared across object versions, portfolios, or service provider customer accounts.
Abstract:
A resource provisioning service allows users to provision multiple, different network resources in an atomic manner and with a single call to a resource provisioning service. In some instances, the multiple, different network resources comprise individual types of resources that form a portion of one or more cloud-computing platforms. For instance, one or more entities may host and operate a cloud-computing platform that includes different types of network resources, such a storage service, a load balancing service, a compute service, a security service, or any other similar or different type of network-accessible service.
Abstract:
A resource stack managed by a resource stack provider is created based on a resource stack template that integrates a custom resource from a second provider into the resource stack using a notification system with the second provider. For example, a customer may create a template that defines a resource stack that comprises resources available from the resource stack provider and one or more custom resources provided by a second provider. When a resource stack is created, resources available from the resource stack provider may be provisioned. Custom resources may be initialized by notifying the provider of the custom resource of the requested integration of the custom resource with the resource stack and requested configuration details. The custom resource provider may respond with an indication of successful integration when the custom resource has been successfully initialized. After initializing the resources, the resource stack may be enabled for use.
Abstract:
Systems and methods are described for enabling users to model security resources and user access keys as resources in a template language. The template can be used to create and update a stack of resources that will provide a network-accessible service. The security resources and access keys can be referred to in the template during both stack creation process and the stack update process. The security resources can include users, groups and policies. Additionally, users can refer to access keys in the template as dynamic parameters without any need to refer to the access keys in plaintext. The system securely stores access keys within the system and allows for templates to refer to them once defined. These key references can then be passed within a template to resources that need them as well as passing them on securely to resources like server instances through the use of the user-data field.