Configure a managed application plan
This article applies only to managed application plans for an Azure application offer. If you’re configuring a solution template plan, go to Configure a solution template plan.
Re-use technical configuration (optional)
If you’ve created more than one plan of the same type within this offer and the technical configuration is identical between them, you can reuse the technical configuration from another plan. This setting cannot be changed after this plan is published.
To re-use a technical configuration:
- Select the This plan reuses the technical configuration from another plan of the same type check box.
- In the list that appears, select the base plan you want.
If a plan is currently reusing or has reused the technical configuration from another plan of the same type, go to that base plan to view history of previously published packages.
Define markets, pricing, and availability
Every plan must be available in at least one market. On the Pricing and availability tab, you can configure the markets this plan will be available in, the price, and whether to make the plan visible to everyone or only to specific customers (also called a private plan).
Under Markets, select the Edit markets link.
In the dialog box that appears, select the market locations where you want to make your plan available. You must select a minimum of one and maximum of 141 markets.
This dialog box includes a search box and an option to filter on only "Tax Remitted" countries, in which Microsoft remits sales and use tax on your behalf.
Select Save, to close the dialog box.
In the Price box, provide the per-month price for this plan. This price is in addition to any Azure infrastructure or usage-based costs incurred by the resources deployed by this solution.
In addition to the per-month price, you can also set prices for consumption of non-standard units using metered billing. You may set the per-month price to zero and charge exclusively using metered billing if you like.
Prices are set in USD (USD = United States Dollar) are converted into the local currency of all selected markets using the current exchange rates when saved. Validate these prices before publishing by exporting the pricing spreadsheet and reviewing the price in each market. If you would like to set custom prices in an individual market, modify and import the pricing spreadsheet.
Add a custom meter dimension (optional)
- Under Marketplace Metering Service dimensions, select the Add a Custom Meter Dimension (Max 18) link.
- In the ID box, enter the immutable identifier reference while emitting usage events.
- In the Display Name box, enter the display name associated with the dimension. For example, "text messages sent".
- In the Unit of Measure box, enter the description of the billing unit. For example, "per text message" or "per 100 emails".
- In the Price per unit in USD box, enter the price for one unit of the dimension.
- In the Monthly quantity included in base box, enter the quantity (as an integer) of the dimension that's included each month for customers who pay the recurring monthly fee. To set an unlimited quantity, select the check box instead.
- To add another custom meter dimension, repeat steps 1 through 7.
Set custom prices (optional)
Prices set in USD (USD = United States Dollar) are converted into the local currency of all selected markets using the current exchange rates when saved. Validate these prices before publishing by exporting the pricing spreadsheet and reviewing the price in each market. If you would like to set custom prices in an individual market, modify and import the pricing spreadsheet.
To set custom prices in an individual market, export, modify, and then import the pricing spreadsheet. You're responsible for validating this pricing and owning these settings. For detailed information, see Custom prices.
You must first save your pricing changes to enable export of pricing data. Near the bottom of the Pricing and availability tab, select Save draft.
Under Pricing, select the Export pricing data link.
Open the exportedPrice.xlsx file in Microsoft Excel.
In the spreadsheet, make the updates you want to your pricing information and then save the file.
You may need to enable editing in Excel before you can update the file.
On the Pricing and availability tab, under Pricing, select the Import pricing data link.
In the dialog box that appears, click Yes.
Select the exportedPrice.xlsx file you updated, and then click Open.
Offers will be billed to customers in the customers’ agreement currency, using the local market price that was published at the time the offer was created. The amount that customers pay, and that ISVs are paid, depends on the Foreign Exchange rates at the time the customer transacts the offer. Learn more on "How we convert currency?".
Choose who can see your plan
You can configure each plan to be visible to everyone or to only a specific audience. You grant access to a private audience using Azure subscription IDs with the option to include a description of each subscription ID you assign. You can add a maximum of 10 subscription IDs manually or up to 10,000 subscription IDs using a .CSV file. Azure subscription IDs are represented as GUIDs and letters must be lowercase.
If you publish a private plan, you can change its visibility to public later. However, once you publish a public plan, you cannot change its visibility to private.
Under Plan visibility, do one of the following:
- To make the plan public, select the Public option button (also known as a radio button).
- To make the plan private, select the Private option button and then add the Azure subscription IDs manually or with a CSV file.
A private or restricted audience is different from the preview audience you defined on the Preview tab. A preview audience can access your offer before its published live in the marketplace. While the private audience choice only applies to a specific plan, the preview audience can view all plans (private or not) for validation purposes.
Manually add Azure subscription IDs for a private plan
- Under Plan visibility, select the Private option button.
- In the Azure Subscription ID box that appears, enter the Azure subscription ID of the audience you want to grant access to this private plan. A minimum of one subscription ID is required.
- (Optional) Enter a description of this audience in the Description box.
- To add another subscription ID, select the Add ID (Max 10) link and repeat steps 2 and 3.
Use a .CSV file to add Azure subscription IDs for a private plan
- Under Plan visibility, select the Private option button.
- Select the Export Audience (csv) link.
- Open the .CSV file and add the Azure subscription IDs you want to grant access to the private offer to the ID column.
- Optionally, enter a description for each audience in the Description column.
- Add "SubscriptionId" in the Type column, for each row with a subscription ID.
- Save the .CSV file.
- On the Availability tab, under Plan visibility, select the Import Audience (csv) link.
- In the dialog box that appears, select Yes.
- Select the .CSV file and then select Open. A message appears indicating that the .CSV file was successfully imported.
Define the technical configuration
On the Technical configuration tab, you’ll upload the deployment package that lets customers deploy your plan and provide a version number for the package. You’ll also provide other technical information.
This tab won’t be visible if you chose to re-use packages from another plan on the Plan setup tab. If so, go to View your plans.
Assign a version number for the package
In the Version box provide the current version of the technical configuration. Increment this version each time you publish a change to this page. The version number must be in the format: integer.integer.integer. For example,
Upload a package file
Make sure your offer is compliant with our recommended practices by using the ARM template test toolkit before uploading the package file.
Under Package file (.zip), drag your package file to the gray box or select the browse for your file(s) link.
If you have an issue uploading files, make sure your local network does not block the
https://upload.xboxlive.com service used by Partner Center.
Previously published packages
The Previously published packages sub-tab enables you to view all published versions of your technical configuration.
Enable just-in-time (JIT) access (optional)
To enable JIT access for this plan, select the Enable just-in-time (JIT) access check box. To require that consumers of your managed application grant your account permanent access, leave this option unchecked. To learn more about this option, see Just in time (JIT) access.
Select a deployment mode
Select either the Complete or Incremental deployment mode.
- In Complete mode, a redeployment of the application by the customer will result in removal of resources in the managed resource group if the resources are not defined in the mainTemplate.json.
- In Incremental mode, a redeployment of the application leaves existing resources unchanged.
To learn more about deployment modes, see Azure Resource Manager deployment modes.
Provide a notification endpoint URL
In the Notification Endpoint URL box, provide an HTTPS Webhook endpoint to receive notifications about all CRUD operations on managed application instances of this plan version.
/resource to the end of your webhook URI before calling it. So, your webhook URL must end in
/resource, but don't include
/resource in the URL you enter into the Notification Endpoint URL box. For more information about the webhook URL, see Plan a managed application.
Customize allowed customer actions (optional)
- To specify which actions customers can perform on the managed resources in addition to the "
*/read" actions that is available by default, select the Customize allowed customer actions box.
- In the boxes that appear, provide the additional control actions and allowed data actions you want to enable your customer to perform, separated by semicolons. For example, to permit consumers to restart virtual machines, add
Microsoft.Compute/virtualMachines/restart/actionto the Allowed control actions box.
Choose who can manage the application
Indicate who should have management access to this managed application in each selected Azure region: Global Azure and Azure Government Cloud. You will use Azure AD identities to identify the users, groups, or applications that you want to grant permission to the managed resource group. For more information, see Plan an Azure managed application for an Azure Application offer.
Complete the following steps for Global Azure and Azure Government Cloud, as applicable.
- In the Azure Active Directory Tenant ID box, enter the Azure AD Tenant ID (also known as directory ID) containing the identities of the users, groups, or applications you want to grant permissions to.
- In the Principal ID box, provide the Azure AD object ID of the user, group, or application that you want to be granted permission to the managed resource group. Select a user from the list at the Azure Active Directory users blade and copy the Object ID value of that user.
- From the Role definition list, select an Azure AD built-in role. The role you select describes the permissions the principal will have on the resources in the customer subscription.
- To add another authorization, select the Add authorization (max 100) link, and repeat steps 1 through 3.
Policy settings (optional)
You can configure a maximum of five policies, and only one instance of each Policies option. Some policies require additional parameters.
Under Policy settings, select the + Add policy (max 5) link.
In the Name box, enter the policy assignment name (limited to 50 characters).
From the Policies list box, select the Azure Policy definition that will be applied to resources created by the managed application in the customer subscription.
In the Policy parameters box, provide the parameter on which the auditing and diagnostic settings policies should be applied.
From the Policy SKU list box, select the policy SKU type.
The Standard policy SKU is required for audit policies.
View your plans
- Select Save draft, and then in the upper left of the page, select Plan overview to return to the Plan overview page.
After you create one or more plans, you'll see your plan name, plan ID, plan type, availability (Public or Private), current publishing status, and any available actions on the Plan overview tab.
The actions that are available in the Action column of the Plan overview tab vary depending on the status of your plan, and may include the following:
- If the plan status is Draft, the link in the Action column will say Delete draft.
- If the plan status is Live, the link in the Action column will be either Stop distribution or Sync private audience. The Sync private audience link will publish only the changes to your private audiences, without publishing any other updates you might have made to the offer.
- To create another plan for this offer, at the top of the Plan overview tab, select + Create new plan. Then repeat the steps in How to create plans for your Azure application offer. Otherwise, if you're done creating plans, go to the next section: Next steps.