Microsoft.BillingBenefits (preview:2024-11-01)

2025/08/15 • 15 updated methods

Discounts_ScopeList (updated)
Description List discounts that are applicable for a given scope. Currently supported scopes: billing accounts
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_ScopeList",
  "$responses": {
    "200": {
      "$properties": [
        {
          "#name": "value",
          "Description": {
            "new": "The Discount items on this page",
            "old": "List of discounts."
          },
          "Required": {
            "new": true,
            "old": false
          },
          "$items": {
            "$properties": {
              "@added_264b99cd850f4e9493504bf966314338": {
                "#name": "managedBy",
                "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
                "Required": false,
                "Type": "string"
              },
              "@added_358ab10eed764c1e9eae537fab02c86b": {
                "#name": "kind",
                "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
                "Required": false,
                "Type": "string"
              },
              "@added_26099eeba39c43d58d6ee30619b33a3c": {
                "#name": "etag",
                "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
                "Required": false,
                "Type": "string"
              },
              "@added_3db7e4672639431787e535f522068a61": {
                "#name": "identity",
                "Description": "Managed service identity (system assigned and/or user assigned identities)",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "principalId",
                    "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "tenantId",
                    "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "type",
                    "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
                    "Enum": [
                      [
                        "None",
                        ""
                      ],
                      [
                        "SystemAssigned",
                        ""
                      ],
                      [
                        "UserAssigned",
                        ""
                      ],
                      [
                        "SystemAssigned,UserAssigned",
                        ""
                      ]
                    ],
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "userAssignedIdentities",
                    "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
                    "Required": false,
                    "Type": "object"
                  }
                ]
              },
              "@added_7e2cb2d79e1e46e49bd03a7e3bacb6bd": {
                "#name": "sku",
                "Description": "The resource model definition representing SKU",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "tier",
                    "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
                    "Enum": [
                      [
                        "Free",
                        ""
                      ],
                      [
                        "Basic",
                        ""
                      ],
                      [
                        "Standard",
                        ""
                      ],
                      [
                        "Premium",
                        ""
                      ]
                    ],
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "size",
                    "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "family",
                    "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "capacity",
                    "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
                    "Format": "int32",
                    "Required": false,
                    "Type": "integer"
                  }
                ]
              },
              "@added_9714e4287d9945e69a9fd40e7cdc6780": {
                "#name": "plan",
                "Description": "Plan for the resource.",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "publisher",
                    "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "product",
                    "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "promotionCode",
                    "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "version",
                    "Description": "The version of the desired product/artifact.",
                    "Required": false,
                    "Type": "string"
                  }
                ]
              }
            }
          }
        },
        {
          "#name": "nextLink",
          "Description": {
            "new": "The link to the next page of items",
            "old": "Url to get the next page."
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /{scope}/providers/Microsoft.BillingBenefits/applicableDiscounts
{
api-version: string ,
scope: string ,
}

⚐ Response (200)

{
value:
[
{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Operations_List (updated)
Description List the operations for the provider
Reference Link ¶

⚶ Changes

{
  "#id": "Operations_List",
  "Description": {
    "new": "List the operations for the provider",
    "old": "List all the operations."
  }
}

⚼ Request

GET:  /providers/Microsoft.BillingBenefits/operations
{
api-version: string ,
}

⚐ Response (200)

{
value:
[
{
name: string ,
isDataAction: boolean ,
display:
{
provider: string ,
resource: string ,
operation: string ,
description: string ,
}
,
origin: enum ,
actionType: enum ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
ReservationOrderAlias_Create (updated)
Description Create a reservation order alias.
Reference Link ¶

⚶ Changes

{
  "#id": "ReservationOrderAlias_Create",
  "$responses": {
    "201": [
      {
        "#name": "azure-asyncoperation",
        "Description": {
          "new": "A link to the status monitor",
          "old": "URL for checking the ongoing status of the operation."
        }
      },
      {
        "#name": "retry-after",
        "Description": {
          "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
          "old": "Clients should wait for the Retry-After interval before polling again"
        }
      }
    ]
  }
}

⚼ Request

PUT:  /providers/Microsoft.BillingBenefits/reservationOrderAliases/{reservationOrderAliasName}
{
api-version: string ,
reservationOrderAliasName: string ,
body:
{
sku:
{
name: string ,
}
,
location: string ,
properties:
{
displayName: string ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
quantity: integer ,
renew: boolean ,
reservedResourceType: enum ,
reviewDateTime: string ,
reservedResourceProperties:
{
instanceFlexibility: enum ,
}
,
}
,
}
,
}

⚐ Response (200)

{
sku:
{
name: string ,
}
,
location: string ,
properties:
{
displayName: string ,
reservationOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
quantity: integer ,
renew: boolean ,
reservedResourceType: enum ,
reviewDateTime: string ,
reservedResourceProperties:
{
instanceFlexibility: enum ,
}
,
}
,
}

⚐ Response (201)

{
$headers:
{
azure-asyncoperation: string ,
retry-after: integer ,
}
,
$schema:
{
sku:
{
name: string ,
}
,
location: string ,
properties:
{
displayName: string ,
reservationOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
quantity: integer ,
renew: boolean ,
reservedResourceType: enum ,
reviewDateTime: string ,
reservedResourceProperties:
{
instanceFlexibility: enum ,
}
,
}
,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
SavingsPlanOrderAlias_Create (updated)
Description Create a savings plan. Learn more about permissions needed at https://go.microsoft.com/fwlink/?linkid=2215851
Reference Link ¶

⚶ Changes

{
  "#id": "SavingsPlanOrderAlias_Create",
  "$responses": {
    "201": [
      {
        "#name": "azure-asyncoperation",
        "Description": {
          "new": "A link to the status monitor",
          "old": "URL for checking the ongoing status of the operation."
        }
      },
      {
        "#name": "retry-after",
        "Description": {
          "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
          "old": "Clients should wait for the Retry-After interval before polling again"
        }
      }
    ]
  }
}

⚼ Request

PUT:  /providers/Microsoft.BillingBenefits/savingsPlanOrderAliases/{savingsPlanOrderAliasName}
{
api-version: string ,
savingsPlanOrderAliasName: string ,
body:
{
sku:
{
name: string ,
}
,
kind: string ,
properties:
{
displayName: string ,
savingsPlanOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
commitment:
{
grain: enum ,
}
,
renew: boolean ,
}
,
}
,
}

⚐ Response (200)

{
sku:
{
name: string ,
}
,
kind: string ,
properties:
{
displayName: string ,
savingsPlanOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
commitment:
{
grain: enum ,
}
,
renew: boolean ,
}
,
}

⚐ Response (201)

{
$headers:
{
azure-asyncoperation: string ,
retry-after: integer ,
}
,
$schema:
{
sku:
{
name: string ,
}
,
kind: string ,
properties:
{
displayName: string ,
savingsPlanOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
commitment:
{
grain: enum ,
}
,
renew: boolean ,
}
,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
SavingsPlanOrder_List (updated)
Description List all Savings plan orders.
Reference Link ¶

⚶ Changes

{
  "#id": "SavingsPlanOrder_List",
  "$responses": {
    "200": {
      "$properties": [
        {
          "#name": "value",
          "Required": {
            "new": true,
            "old": false
          },
          "$items": {
            "$properties": {
              "properties": [
                {
                  "planInformation": [
                    {
                      "#name": "startDate",
                      "Format": {
                        "new": "date-time-rfc7231",
                        "old": "date"
                      }
                    },
                    {
                      "#name": "nextPaymentDueDate",
                      "Format": {
                        "new": "date-time-rfc7231",
                        "old": "date"
                      }
                    },
                    {
                      "transactions": {
                        "$properties": [
                          {
                            "#name": "dueDate",
                            "Format": {
                              "new": "date-time-rfc7231",
                              "old": "date"
                            }
                          },
                          {
                            "#name": "paymentDate",
                            "Format": {
                              "new": "date-time-rfc7231",
                              "old": "date"
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          }
        },
        {
          "#name": "nextLink",
          "Description": {
            "new": "The link to the next page of items",
            "old": "Url to get the next page."
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /providers/Microsoft.BillingBenefits/savingsPlanOrders
{
api-version: string ,
}

⚐ Response (200)

{
value:
[
{
sku:
{
name: string ,
}
,
properties:
{
displayName: string ,
provisioningState: enum ,
billingScopeId: string ,
billingProfileId: string ,
customerId: string ,
billingAccountId: string ,
term: enum ,
billingPlan: enum ,
expiryDateTime: string ,
benefitStartTime: string ,
planInformation:
{
pricingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
startDate: string ,
nextPaymentDueDate: string ,
transactions:
[
{
dueDate: string ,
paymentDate: string ,
pricingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
billingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
status: enum ,
extendedStatusInfo:
{
statusCode: string ,
message: string ,
}
,
billingAccount: string ,
}
,
]
,
}
,
savingsPlans:
[
string ,
]
,
extendedStatusInfo:
{
statusCode: string ,
message: string ,
}
,
}
,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
SavingsPlanOrder_Get (updated)
Description Get a savings plan order.
Reference Link ¶

⚶ Changes

{
  "#id": "SavingsPlanOrder_Get",
  "$responses": {
    "200": {
      "$properties": {
        "properties": [
          {
            "planInformation": [
              {
                "#name": "startDate",
                "Format": {
                  "new": "date-time-rfc7231",
                  "old": "date"
                }
              },
              {
                "#name": "nextPaymentDueDate",
                "Format": {
                  "new": "date-time-rfc7231",
                  "old": "date"
                }
              },
              {
                "transactions": {
                  "$properties": [
                    {
                      "#name": "dueDate",
                      "Format": {
                        "new": "date-time-rfc7231",
                        "old": "date"
                      }
                    },
                    {
                      "#name": "paymentDate",
                      "Format": {
                        "new": "date-time-rfc7231",
                        "old": "date"
                      }
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  }
}

⚼ Request

GET:  /providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}
{
api-version: string ,
savingsPlanOrderId: string ,
$expand: string ,
}

⚐ Response (200)

{
sku:
{
name: string ,
}
,
properties:
{
displayName: string ,
provisioningState: enum ,
billingScopeId: string ,
billingProfileId: string ,
customerId: string ,
billingAccountId: string ,
term: enum ,
billingPlan: enum ,
expiryDateTime: string ,
benefitStartTime: string ,
planInformation:
{
pricingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
startDate: string ,
nextPaymentDueDate: string ,
transactions:
[
{
dueDate: string ,
paymentDate: string ,
pricingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
billingCurrencyTotal:
{
currencyCode: string ,
amount: number ,
}
,
status: enum ,
extendedStatusInfo:
{
statusCode: string ,
message: string ,
}
,
billingAccount: string ,
}
,
]
,
}
,
savingsPlans:
[
string ,
]
,
extendedStatusInfo:
{
statusCode: string ,
message: string ,
}
,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
SavingsPlan_List (updated)
Description List savings plans in an order.
Reference Link ¶

⚶ Changes

{
  "#id": "SavingsPlan_List",
  "$responses": {
    "200": {
      "$properties": [
        {
          "#name": "value",
          "Required": {
            "new": true,
            "old": false
          }
        },
        {
          "#name": "nextLink",
          "Description": {
            "new": "The link to the next page of items",
            "old": "Url to get the next page."
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}/savingsPlans
{
api-version: string ,
savingsPlanOrderId: string ,
}

⚐ Response (200)

{
value:
[
{
sku:
{
name: string ,
}
,
properties:
{
displayName: string ,
provisioningState: enum ,
displayProvisioningState: string ,
billingScopeId: string ,
billingProfileId: string ,
customerId: string ,
billingAccountId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
userFriendlyAppliedScopeType: string ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
commitment:
{
grain: enum ,
}
,
effectiveDateTime: string ,
expiryDateTime: string ,
purchaseDateTime: string ,
benefitStartTime: string ,
extendedStatusInfo:
{
statusCode: string ,
message: string ,
}
,
renew: boolean ,
utilization:
{
trend: string ,
aggregates:
[
{
grain: number ,
grainUnit: string ,
value: number ,
valueUnit: string ,
}
,
]
,
}
,
renewSource: string ,
renewDestination: string ,
renewProperties:
{
purchaseProperties:
{
sku:
{
name: string ,
}
,
properties:
{
displayName: string ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
commitment:
{
grain: enum ,
}
,
effectiveDateTime: string ,
renew: boolean ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
}
,
}
,
}
,
}
,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
ValidatePurchase (updated)
Description Validate savings plan purchase.
Reference Link ¶

⚶ Changes

{
  "#id": "ValidatePurchase",
  "$parameters": [
    {
      "#name": "body",
      "Description": {
        "new": "The request body",
        "old": "Request body for validating the purchase of a savings plan"
      }
    }
  ]
}

⚼ Request

POST:  /providers/Microsoft.BillingBenefits/validate
{
api-version: string ,
body:
{
benefits:
[
{
sku:
{
name: string ,
}
,
kind: string ,
properties:
{
displayName: string ,
savingsPlanOrderId: string ,
provisioningState: enum ,
billingScopeId: string ,
term: enum ,
billingPlan: enum ,
appliedScopeType: enum ,
appliedScopeProperties:
{
tenantId: string ,
managementGroupId: string ,
subscriptionId: string ,
resourceGroupId: string ,
displayName: string ,
}
,
commitment:
{
grain: enum ,
}
,
renew: boolean ,
}
,
}
,
]
,
}
,
}

⚐ Response (200)

{
benefits:
[
{
valid: boolean ,
reasonCode: string ,
reason: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discounts_SubscriptionList (updated)
Description List discounts at subscription level
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_SubscriptionList",
  "$responses": {
    "200": {
      "$properties": [
        {
          "#name": "value",
          "Description": {
            "new": "The Discount items on this page",
            "old": "List of discounts."
          },
          "Required": {
            "new": true,
            "old": false
          },
          "$items": {
            "$properties": {
              "@added_2375047ccec142e38d8a7b72cfef9d16": {
                "#name": "managedBy",
                "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
                "Required": false,
                "Type": "string"
              },
              "@added_21476efba41c4e6299a74d46258278ca": {
                "#name": "kind",
                "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
                "Required": false,
                "Type": "string"
              },
              "@added_1eb255c7d9034991a3cb7a3c841241f1": {
                "#name": "etag",
                "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
                "Required": false,
                "Type": "string"
              },
              "@added_2239d8f7b95d4941854d9e983cbe9887": {
                "#name": "identity",
                "Description": "Managed service identity (system assigned and/or user assigned identities)",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "principalId",
                    "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "tenantId",
                    "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "type",
                    "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
                    "Enum": [
                      [
                        "None",
                        ""
                      ],
                      [
                        "SystemAssigned",
                        ""
                      ],
                      [
                        "UserAssigned",
                        ""
                      ],
                      [
                        "SystemAssigned,UserAssigned",
                        ""
                      ]
                    ],
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "userAssignedIdentities",
                    "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
                    "Required": false,
                    "Type": "object"
                  }
                ]
              },
              "@added_815350532984456c839dfad29dd442b3": {
                "#name": "sku",
                "Description": "The resource model definition representing SKU",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "tier",
                    "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
                    "Enum": [
                      [
                        "Free",
                        ""
                      ],
                      [
                        "Basic",
                        ""
                      ],
                      [
                        "Standard",
                        ""
                      ],
                      [
                        "Premium",
                        ""
                      ]
                    ],
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "size",
                    "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "family",
                    "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "capacity",
                    "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
                    "Format": "int32",
                    "Required": false,
                    "Type": "integer"
                  }
                ]
              },
              "@added_da08529aaf5a463190635f67b9c8d2ba": {
                "#name": "plan",
                "Description": "Plan for the resource.",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "publisher",
                    "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "product",
                    "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "promotionCode",
                    "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "version",
                    "Description": "The version of the desired product/artifact.",
                    "Required": false,
                    "Type": "string"
                  }
                ]
              }
            }
          }
        },
        {
          "#name": "nextLink",
          "Description": {
            "new": "The link to the next page of items",
            "old": "Url to get the next page."
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /subscriptions/{subscriptionId}/providers/Microsoft.BillingBenefits/discounts
{
api-version: string ,
subscriptionId: string ,
}

⚐ Response (200)

{
value:
[
{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discounts_ResourceGroupList (updated)
Description List discounts at resource group level
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_ResourceGroupList",
  "$responses": {
    "200": {
      "$properties": [
        {
          "#name": "value",
          "Description": {
            "new": "The Discount items on this page",
            "old": "List of discounts."
          },
          "Required": {
            "new": true,
            "old": false
          },
          "$items": {
            "$properties": {
              "@added_8c0bbbd940664813b0aed114f681bed8": {
                "#name": "managedBy",
                "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
                "Required": false,
                "Type": "string"
              },
              "@added_da2cc65a4c31402795c463e1d414ec49": {
                "#name": "kind",
                "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
                "Required": false,
                "Type": "string"
              },
              "@added_194a2b41abc848bdbb6ce8f55bf424f6": {
                "#name": "etag",
                "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
                "Required": false,
                "Type": "string"
              },
              "@added_0cfe806409984067830af49349361482": {
                "#name": "identity",
                "Description": "Managed service identity (system assigned and/or user assigned identities)",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "principalId",
                    "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "tenantId",
                    "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                    "Format": "uuid",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "type",
                    "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
                    "Enum": [
                      [
                        "None",
                        ""
                      ],
                      [
                        "SystemAssigned",
                        ""
                      ],
                      [
                        "UserAssigned",
                        ""
                      ],
                      [
                        "SystemAssigned,UserAssigned",
                        ""
                      ]
                    ],
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "userAssignedIdentities",
                    "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
                    "Required": false,
                    "Type": "object"
                  }
                ]
              },
              "@added_3afc51bfbe094a4cb1ecb04ca73ed99c": {
                "#name": "sku",
                "Description": "The resource model definition representing SKU",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "tier",
                    "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
                    "Enum": [
                      [
                        "Free",
                        ""
                      ],
                      [
                        "Basic",
                        ""
                      ],
                      [
                        "Standard",
                        ""
                      ],
                      [
                        "Premium",
                        ""
                      ]
                    ],
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "size",
                    "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "family",
                    "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "capacity",
                    "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
                    "Format": "int32",
                    "Required": false,
                    "Type": "integer"
                  }
                ]
              },
              "@added_ad2032e040734e36b4d07c77cdc78d2b": {
                "#name": "plan",
                "Description": "Plan for the resource.",
                "Required": false,
                "Type": "object",
                "$properties": [
                  {
                    "#name": "name",
                    "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "publisher",
                    "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "product",
                    "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
                    "Required": true,
                    "Type": "string"
                  },
                  {
                    "#name": "promotionCode",
                    "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
                    "Required": false,
                    "Type": "string"
                  },
                  {
                    "#name": "version",
                    "Description": "The version of the desired product/artifact.",
                    "Required": false,
                    "Type": "string"
                  }
                ]
              }
            }
          }
        },
        {
          "#name": "nextLink",
          "Description": {
            "new": "The link to the next page of items",
            "old": "Url to get the next page."
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
}

⚐ Response (200)

{
value:
[
{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discount_Get (updated)
Description Get discount at resource group level
Reference Link ¶

⚶ Changes

{
  "#id": "Discount_Get",
  "$responses": {
    "200": {
      "$properties": {
        "@added_4ab94ceec8b1482294e20725f59b587f": {
          "#name": "managedBy",
          "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
          "Required": false,
          "Type": "string"
        },
        "@added_9c7f5661e7a84701b362287fd8543d2e": {
          "#name": "kind",
          "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
          "Required": false,
          "Type": "string"
        },
        "@added_744f72e60a024c66b4147260855c17f3": {
          "#name": "etag",
          "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
          "Required": false,
          "Type": "string"
        },
        "@added_c5a82b053e8e474ca517200e767f8ce8": {
          "#name": "identity",
          "Description": "Managed service identity (system assigned and/or user assigned identities)",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "principalId",
              "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "tenantId",
              "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "type",
              "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "Enum": [
                [
                  "None",
                  ""
                ],
                [
                  "SystemAssigned",
                  ""
                ],
                [
                  "UserAssigned",
                  ""
                ],
                [
                  "SystemAssigned,UserAssigned",
                  ""
                ]
              ],
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "userAssignedIdentities",
              "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
              "Required": false,
              "Type": "object"
            }
          ]
        },
        "@added_1263c0dc4e09482ebaa803feec640bd7": {
          "#name": "sku",
          "Description": "The resource model definition representing SKU",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "tier",
              "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
              "Enum": [
                [
                  "Free",
                  ""
                ],
                [
                  "Basic",
                  ""
                ],
                [
                  "Standard",
                  ""
                ],
                [
                  "Premium",
                  ""
                ]
              ],
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "size",
              "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "family",
              "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "capacity",
              "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
              "Format": "int32",
              "Required": false,
              "Type": "integer"
            }
          ]
        },
        "@added_ce165ee1ebde4b78b3fd11be265d3e05": {
          "#name": "plan",
          "Description": "Plan for the resource.",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "publisher",
              "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "product",
              "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "promotionCode",
              "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "version",
              "Description": "The version of the desired product/artifact.",
              "Required": false,
              "Type": "string"
            }
          ]
        }
      }
    }
  }
}

⚼ Request

GET:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts/{discountName}
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
discountName: string ,
}

⚐ Response (200)

{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discounts_Create (updated)
Description Create discount.
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_Create",
  "$parameters": {
    "body": {
      "$properties": {
        "@added_501a71892f9f480fbf1146c126e29fc4": {
          "#name": "managedBy",
          "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
          "Required": false,
          "Type": "string"
        },
        "@added_43bd0fe64c294b44945d5c8a07f5d8cd": {
          "#name": "kind",
          "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
          "Required": false,
          "Type": "string"
        },
        "@added_3fa6257485184955b80df8b8b368cdb1": {
          "#name": "etag",
          "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
          "Required": false,
          "Type": "string"
        },
        "@added_950d54bf57da4af99f4981e71759672e": {
          "#name": "identity",
          "Description": "Managed service identity (system assigned and/or user assigned identities)",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "principalId",
              "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "tenantId",
              "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "type",
              "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "Enum": [
                [
                  "None",
                  ""
                ],
                [
                  "SystemAssigned",
                  ""
                ],
                [
                  "UserAssigned",
                  ""
                ],
                [
                  "SystemAssigned,UserAssigned",
                  ""
                ]
              ],
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "userAssignedIdentities",
              "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
              "Required": false,
              "Type": "object"
            }
          ]
        },
        "@added_c9187fa0c8c046cbadf797d2e36953ba": {
          "#name": "sku",
          "Description": "The resource model definition representing SKU",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "tier",
              "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
              "Enum": [
                [
                  "Free",
                  ""
                ],
                [
                  "Basic",
                  ""
                ],
                [
                  "Standard",
                  ""
                ],
                [
                  "Premium",
                  ""
                ]
              ],
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "size",
              "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "family",
              "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "capacity",
              "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
              "Format": "int32",
              "Required": false,
              "Type": "integer"
            }
          ]
        },
        "@added_afe9ef4b2b704d4586556f6de2344c47": {
          "#name": "plan",
          "Description": "Plan for the resource.",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "publisher",
              "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "product",
              "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "promotionCode",
              "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "version",
              "Description": "The version of the desired product/artifact.",
              "Required": false,
              "Type": "string"
            }
          ]
        }
      }
    }
  },
  "$responses": [
    {
      "200": {
        "$properties": {
          "@added_ceb494559aba4989b90e616bc1aaaf8c": {
            "#name": "managedBy",
            "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
            "Required": false,
            "Type": "string"
          },
          "@added_295e90549e0f4ab49afec478944db2ab": {
            "#name": "kind",
            "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
            "Required": false,
            "Type": "string"
          },
          "@added_d26c1999f45c460f939a1153343a5e74": {
            "#name": "etag",
            "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
            "Required": false,
            "Type": "string"
          },
          "@added_8cad643880364c1bb40f7e7e165889a9": {
            "#name": "identity",
            "Description": "Managed service identity (system assigned and/or user assigned identities)",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "principalId",
                "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                "Format": "uuid",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "tenantId",
                "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                "Format": "uuid",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "type",
                "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
                "Enum": [
                  [
                    "None",
                    ""
                  ],
                  [
                    "SystemAssigned",
                    ""
                  ],
                  [
                    "UserAssigned",
                    ""
                  ],
                  [
                    "SystemAssigned,UserAssigned",
                    ""
                  ]
                ],
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "userAssignedIdentities",
                "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
                "Required": false,
                "Type": "object"
              }
            ]
          },
          "@added_042c7b42a0f449bbb8551f24a9884809": {
            "#name": "sku",
            "Description": "The resource model definition representing SKU",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "name",
                "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "tier",
                "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
                "Enum": [
                  [
                    "Free",
                    ""
                  ],
                  [
                    "Basic",
                    ""
                  ],
                  [
                    "Standard",
                    ""
                  ],
                  [
                    "Premium",
                    ""
                  ]
                ],
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "size",
                "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "family",
                "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "capacity",
                "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
                "Format": "int32",
                "Required": false,
                "Type": "integer"
              }
            ]
          },
          "@added_723022b8dcd14947ae6249d2f11f31f3": {
            "#name": "plan",
            "Description": "Plan for the resource.",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "name",
                "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "publisher",
                "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "product",
                "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "promotionCode",
                "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "version",
                "Description": "The version of the desired product/artifact.",
                "Required": false,
                "Type": "string"
              }
            ]
          }
        }
      }
    },
    {
      "#status": "201",
      "$headers": [
        {
          "#name": "azure-asyncoperation",
          "Description": {
            "new": "A link to the status monitor",
            "old": "URL for checking the ongoing status of the operation."
          }
        },
        {
          "#name": "retry-after",
          "Description": {
            "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
            "old": "Clients should wait for the Retry-After interval before polling again"
          }
        }
      ],
      "$schema": {
        "$properties": {
          "@added_bcb19d979fd1417abf4dce3c0115329f": {
            "#name": "managedBy",
            "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
            "Required": false,
            "Type": "string"
          },
          "@added_7aa1863ebbd843dca4a38aff49963bcc": {
            "#name": "kind",
            "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
            "Required": false,
            "Type": "string"
          },
          "@added_3f860b0d405941a0a87b8738b7236b9e": {
            "#name": "etag",
            "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
            "Required": false,
            "Type": "string"
          },
          "@added_d6637f1b39fc4a54a504799db04e1fb8": {
            "#name": "identity",
            "Description": "Managed service identity (system assigned and/or user assigned identities)",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "principalId",
                "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                "Format": "uuid",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "tenantId",
                "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
                "Format": "uuid",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "type",
                "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
                "Enum": [
                  [
                    "None",
                    ""
                  ],
                  [
                    "SystemAssigned",
                    ""
                  ],
                  [
                    "UserAssigned",
                    ""
                  ],
                  [
                    "SystemAssigned,UserAssigned",
                    ""
                  ]
                ],
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "userAssignedIdentities",
                "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
                "Required": false,
                "Type": "object"
              }
            ]
          },
          "@added_eede0448fac64519952c2726244c09f9": {
            "#name": "sku",
            "Description": "The resource model definition representing SKU",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "name",
                "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "tier",
                "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
                "Enum": [
                  [
                    "Free",
                    ""
                  ],
                  [
                    "Basic",
                    ""
                  ],
                  [
                    "Standard",
                    ""
                  ],
                  [
                    "Premium",
                    ""
                  ]
                ],
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "size",
                "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "family",
                "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "capacity",
                "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
                "Format": "int32",
                "Required": false,
                "Type": "integer"
              }
            ]
          },
          "@added_a1427756a492491290ac4bfc0b597947": {
            "#name": "plan",
            "Description": "Plan for the resource.",
            "Required": false,
            "Type": "object",
            "$properties": [
              {
                "#name": "name",
                "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "publisher",
                "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "product",
                "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
                "Required": true,
                "Type": "string"
              },
              {
                "#name": "promotionCode",
                "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
                "Required": false,
                "Type": "string"
              },
              {
                "#name": "version",
                "Description": "The version of the desired product/artifact.",
                "Required": false,
                "Type": "string"
              }
            ]
          }
        }
      }
    }
  ]
}

⚼ Request

PUT:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts/{discountName}
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
discountName: string ,
body:
{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}
,
}

⚐ Response (200)

{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}

⚐ Response (201)

{
$headers:
{
azure-asyncoperation: string ,
retry-after: integer ,
}
,
$schema:
{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discount_Update (updated)
Description Update discounts
Reference Link ¶

⚶ Changes

{
  "#id": "Discount_Update",
  "$responses": {
    "200": {
      "$properties": {
        "@added_34b5ce8e40c64a47a7b5eb42cb31a26d": {
          "#name": "managedBy",
          "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
          "Required": false,
          "Type": "string"
        },
        "@added_eea0fbf2feca400eb185c465522b87d8": {
          "#name": "kind",
          "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
          "Required": false,
          "Type": "string"
        },
        "@added_7957178f6aa643649467d8afac17fa9d": {
          "#name": "etag",
          "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
          "Required": false,
          "Type": "string"
        },
        "@added_9b827b7ab44f4db084ec230ab43d0954": {
          "#name": "identity",
          "Description": "Managed service identity (system assigned and/or user assigned identities)",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "principalId",
              "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "tenantId",
              "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "type",
              "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "Enum": [
                [
                  "None",
                  ""
                ],
                [
                  "SystemAssigned",
                  ""
                ],
                [
                  "UserAssigned",
                  ""
                ],
                [
                  "SystemAssigned,UserAssigned",
                  ""
                ]
              ],
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "userAssignedIdentities",
              "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
              "Required": false,
              "Type": "object"
            }
          ]
        },
        "@added_f62cf2b57c1f4a2b97372d39b99c3361": {
          "#name": "sku",
          "Description": "The resource model definition representing SKU",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "tier",
              "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
              "Enum": [
                [
                  "Free",
                  ""
                ],
                [
                  "Basic",
                  ""
                ],
                [
                  "Standard",
                  ""
                ],
                [
                  "Premium",
                  ""
                ]
              ],
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "size",
              "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "family",
              "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "capacity",
              "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
              "Format": "int32",
              "Required": false,
              "Type": "integer"
            }
          ]
        },
        "@added_c60ddeb3214746eda960dbb672d67b30": {
          "#name": "plan",
          "Description": "Plan for the resource.",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "publisher",
              "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "product",
              "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "promotionCode",
              "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "version",
              "Description": "The version of the desired product/artifact.",
              "Required": false,
              "Type": "string"
            }
          ]
        }
      }
    },
    "202": [
      {
        "#name": "azure-asyncoperation",
        "Description": {
          "new": "A link to the status monitor",
          "old": "URL for checking the ongoing status of the operation."
        }
      },
      {
        "#name": "retry-after",
        "Description": {
          "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
          "old": "Clients should wait for the Retry-After interval before polling again"
        }
      },
      {
        "@removed_3fad697aa3974f76b7feeb4e9e019f90": {
          "#name": "location",
          "Description": "Location URI to poll for result.",
          "Type": "string"
        }
      }
    ]
  }
}

⚼ Request

PATCH:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts/{discountName}
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
discountName: string ,
body:
{
properties:
{
displayName: string ,
}
,
tags: object ,
}
,
}

⚐ Response (200)

{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}

⚐ Response (202)

{
azure-asyncoperation: string ,
retry-after: integer ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discounts_Delete (updated)
Description Delete discount. Clears the metadata from the user's view.
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_Delete",
  "$responses": {
    "202": [
      {
        "#name": "azure-asyncoperation",
        "Description": {
          "new": "A link to the status monitor",
          "old": "URL for checking the ongoing status of the operation."
        }
      },
      {
        "#name": "retry-after",
        "Description": {
          "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
          "old": "Clients should wait for the Retry-After interval before polling again"
        }
      },
      {
        "@removed_c56a540f97d945619bdcc3a84b4661d0": {
          "#name": "location",
          "Description": "Location URI to poll for result.",
          "Type": "string"
        }
      }
    ]
  }
}

⚼ Request

DELETE:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts/{discountName}
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
discountName: string ,
}

⚐ Response (202)

{
azure-asyncoperation: string ,
retry-after: integer ,
}

⚐ Response (204)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}
Discounts_Cancel (updated)
Description Cancel discount. Stops applying the benefit.
Reference Link ¶

⚶ Changes

{
  "#id": "Discounts_Cancel",
  "$responses": {
    "200": {
      "$properties": {
        "@added_932ab79f8f2c4faf9adbd8b21dc6f232": {
          "#name": "managedBy",
          "Description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.",
          "Required": false,
          "Type": "string"
        },
        "@added_67e31a122fd24135b92ad6194423fc1a": {
          "#name": "kind",
          "Description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.",
          "Required": false,
          "Type": "string"
        },
        "@added_c7a371daed504c6fa228db479f738a64": {
          "#name": "etag",
          "Description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
          "Required": false,
          "Type": "string"
        },
        "@added_4879d33b39094aa2b0bb8eebdd5f3e5c": {
          "#name": "identity",
          "Description": "Managed service identity (system assigned and/or user assigned identities)",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "principalId",
              "Description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "tenantId",
              "Description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.",
              "Format": "uuid",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "type",
              "Description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "Enum": [
                [
                  "None",
                  ""
                ],
                [
                  "SystemAssigned",
                  ""
                ],
                [
                  "UserAssigned",
                  ""
                ],
                [
                  "SystemAssigned,UserAssigned",
                  ""
                ]
              ],
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "userAssignedIdentities",
              "Description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.",
              "Required": false,
              "Type": "object"
            }
          ]
        },
        "@added_f62bd651b6b946ef9588163521a2a43d": {
          "#name": "sku",
          "Description": "The resource model definition representing SKU",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "The name of the SKU. E.g. P3. It is typically a letter+number code",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "tier",
              "Description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.",
              "Enum": [
                [
                  "Free",
                  ""
                ],
                [
                  "Basic",
                  ""
                ],
                [
                  "Standard",
                  ""
                ],
                [
                  "Premium",
                  ""
                ]
              ],
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "size",
              "Description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "family",
              "Description": "If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "capacity",
              "Description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.",
              "Format": "int32",
              "Required": false,
              "Type": "integer"
            }
          ]
        },
        "@added_69fe78ed12774e769cd1b8f3c31927dd": {
          "#name": "plan",
          "Description": "Plan for the resource.",
          "Required": false,
          "Type": "object",
          "$properties": [
            {
              "#name": "name",
              "Description": "A user defined name of the 3rd Party Artifact that is being procured.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "publisher",
              "Description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "product",
              "Description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding.",
              "Required": true,
              "Type": "string"
            },
            {
              "#name": "promotionCode",
              "Description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.",
              "Required": false,
              "Type": "string"
            },
            {
              "#name": "version",
              "Description": "The version of the desired product/artifact.",
              "Required": false,
              "Type": "string"
            }
          ]
        }
      }
    },
    "202": [
      {
        "#name": "azure-asyncoperation",
        "Description": {
          "new": "A link to the status monitor",
          "old": "URL for checking the ongoing status of the operation."
        }
      },
      {
        "#name": "retry-after",
        "Description": {
          "new": "The Retry-After header can indicate how long the client should wait before polling the operation status.",
          "old": "Clients should wait for the Retry-After interval before polling again"
        }
      },
      {
        "@removed_bdcef1ff84514c4d9e88220333ca3436": {
          "#name": "location",
          "Description": "Location URI to poll for result.",
          "Type": "string"
        }
      }
    ]
  }
}

⚼ Request

POST:  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BillingBenefits/discounts/{discountName}/cancel
{
api-version: string ,
subscriptionId: string ,
resourceGroupName: string ,
discountName: string ,
}

⚐ Response (200)

{
properties:
{
entityType: enum ,
productCode: string ,
startAt: string ,
systemId: string ,
provisioningState: enum ,
billingAccountResourceId: string ,
billingProfileResourceId: string ,
customerResourceId: string ,
displayName: string ,
status: enum ,
benefitResourceId: string ,
appliedScopeType: enum ,
}
,
managedBy: string ,
kind: string ,
etag: string ,
identity:
{
principalId: string ,
tenantId: string ,
type: enum ,
userAssignedIdentities: object ,
}
,
sku:
{
name: string ,
tier: enum ,
size: string ,
family: string ,
capacity: integer ,
}
,
plan:
{
name: string ,
publisher: string ,
product: string ,
promotionCode: string ,
version: string ,
}
,
}

⚐ Response (202)

{
azure-asyncoperation: string ,
retry-after: integer ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
additionalInfo:
[
{
type: string ,
info: object ,
}
,
]
,
}
,
}