From e35a2cd6d6d494556677a36fff18e4a3e6f4faaa Mon Sep 17 00:00:00 2001 From: Yulu Liu Date: Tue, 21 Aug 2018 12:19:53 -0700 Subject: [PATCH 1/4] Add new reserved resource type CosmosDb --- .../Microsoft.Capacity/preview/2018-06-01/reservations.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json index 1e5f33f7cf02..f85fc4a40530 100644 --- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json +++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json @@ -1127,7 +1127,8 @@ "enum": [ "VirtualMachines", "SqlDatabases", - "SuseLinux" + "SuseLinux", + "CosmosDb" ], "x-ms-enum": { "name": "ReservedResourceType", From 5401c4a8548e73bec9577c902035e056fbc8657d Mon Sep 17 00:00:00 2001 From: Yulu Liu Date: Wed, 22 Aug 2018 11:32:54 -0700 Subject: [PATCH 2/4] Reservations RP 2018-06-01: Add name property in Patch parameter. Remove auto generate Java SDK --- .../preview/2018-06-01/reservations.json | 2438 +++++++++-------- .../reservations/resource-manager/readme.md | 40 +- 2 files changed, 1222 insertions(+), 1256 deletions(-) diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json index f85fc4a40530..adffd82a28d2 100644 --- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json +++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json @@ -1,1218 +1,1222 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure Reservation API", - "description": "This API describe Azure Reservation", - "version": "2018-06-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/catalogs": { - "get": { - "summary": "Get the regions and skus that are available for RI purchase for the specified Azure subscription.", - "operationId": "GetCatalog", - "x-ms-examples": { - "Catalog": { - "$ref": "./examples/GetCatalog.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ReservedResourceTypeIdParameter" - }, - { - "$ref": "#/parameters/LocationIdParameter" - } - ], - "tags": [ - "Catalog" - ], - "responses": { - "200": { - "description": "List of available resources", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Catalog" - } - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/appliedReservations": { - "get": { - "summary": "Get list of applicable `Reservation`s.", - "description": "Get applicable `Reservation`s that are applied to this subscription.", - "operationId": "GetAppliedReservationList", - "x-ms-examples": { - "AppliedReservationList": { - "$ref": "./examples/GetAppliedReservations.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - } - ], - "tags": [ - "AppliedReservation" - ], - "responses": { - "200": { - "description": "Applicable `Reservation`s.", - "schema": { - "$ref": "#/definitions/AppliedReservations" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders": { - "get": { - "summary": "Get all `ReservationOrder`s.", - "description": "List of all the `ReservationOrder`s that the user has access to in the current tenant.", - "operationId": "ReservationOrder_List", - "x-ms-examples": { - "ReservationOrderList": { - "$ref": "./examples/GetReservationOrders.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List of `ReservationOrder`s", - "schema": { - "$ref": "#/definitions/ReservationOrderList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}": { - "get": { - "summary": "Get a specific `ReservationOrder`.", - "description": "Get the details of the `ReservationOrder`.", - "operationId": "ReservationOrder_Get", - "x-ms-examples": { - "GetReservation": { - "$ref": "./examples/GetReservationOrderDetails.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "Get the details of the `ReservationOrder`.", - "schema": { - "$ref": "#/definitions/ReservationOrderResponse" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split": { - "post": { - "summary": "Split the `Reservation`.", - "description": "Split a `Reservation` into two `Reservation`s with specified quantity distribution.\n", - "operationId": "Reservation_Split", - "x-ms-examples": { - "Split": { - "$ref": "./examples/SplitReservation.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SplitParameter" - } - ], - "tags": [ - "Reservation, Split" - ], - "responses": { - "200": { - "description": "List of `Reservation`s created after the split operation.", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge": { - "post": { - "summary": "Merges two `Reservation`s.", - "description": "Merge the specified `Reservation`s into a new `Reservation`. The two `Reservation`s being merged must have same properties.", - "operationId": "Reservation_Merge", - "x-ms-examples": { - "Merge": { - "$ref": "./examples/MergeReservations.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/MergeParameter" - } - ], - "tags": [ - "Reservation, Merge" - ], - "responses": { - "200": { - "description": "Returns the `Reservation` created after the merge.", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations": { - "get": { - "summary": "Get `Reservation`s in a given reservation Order", - "description": "List `Reservation`s within a single `ReservationOrder`.", - "operationId": "Reservation_List", - "x-ms-examples": { - "ReservationList": { - "$ref": "./examples/GetReservations.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List `Reservation`s within a single `ReservationOrder`.", - "schema": { - "$ref": "#/definitions/ReservationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}": { - "get": { - "summary": "Get `Reservation` details.", - "description": "Get specific `Reservation` details.", - "operationId": "Reservation_Get", - "x-ms-examples": { - "GetReservation": { - "$ref": "./examples/GetReservationDetails.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "Get `Reservation` details.", - "schema": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "patch": { - "summary": "Updates a `Reservation`.", - "description": "Updates the applied scopes of the `Reservation`.", - "operationId": "Reservation_Update", - "x-ms-examples": { - "PatchReservation": { - "$ref": "./examples/UpdateReservation.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PatchParameter" - } - ], - "tags": [ - "Reservation", - "ApplyScope" - ], - "responses": { - "200": { - "description": "Returns the updated `Reservation`.", - "schema": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions": { - "get": { - "summary": "Get `Reservation` revisions.", - "description": "List of all the revisions for the `Reservation`.\n", - "operationId": "Reservation_ListRevisions", - "x-ms-examples": { - "ReservationRevisions": { - "$ref": "./examples/GetReservationRevisions.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List of all the revisions for the `Reservation`.", - "schema": { - "$ref": "#/definitions/ReservationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/operations": { - "get": { - "summary": "Get operations.", - "description": "List all the operations.", - "operationId": "Operation_List", - "x-ms-examples": { - "GetOperations": { - "$ref": "./examples/GetOperations.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Operation" - ], - "responses": { - "200": { - "description": "List all the operations.", - "schema": { - "$ref": "#/definitions/OperationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - } - }, - "definitions": { - "ReservationStatusCode": { - "type": "string", - "enum": [ - "None", - "Pending", - "Active", - "PurchaseError", - "PaymentInstrumentError", - "Split", - "Merged", - "Expired", - "Succeeded" - ], - "x-ms-enum": { - "name": "ReservationStatusCode", - "modelAsString": true - } - }, - "ErrorResponseCode": { - "type": "string", - "enum": [ - "NotSpecified", - "InternalServerError", - "ServerTimeout", - "AuthorizationFailed", - "BadRequest", - "ClientCertificateThumbprintNotSet", - "InvalidRequestContent", - "OperationFailed", - "HttpMethodNotSupported", - "InvalidRequestUri", - "MissingTenantId", - "InvalidTenantId", - "InvalidReservationOrderId", - "InvalidReservationId", - "ReservationIdNotInReservationOrder", - "ReservationOrderNotFound", - "InvalidSubscriptionId", - "InvalidAccessToken", - "InvalidLocationId", - "UnauthenticatedRequestsThrottled", - "InvalidHealthCheckType", - "Forbidden", - "BillingScopeIdCannotBeChanged", - "AppliedScopesNotAssociatedWithCommerceAccount", - "PatchValuesSameAsExisting", - "RoleAssignmentCreationFailed", - "ReservationOrderCreationFailed", - "ReservationOrderNotEnabled", - "CapacityUpdateScopesFailed", - "UnsupportedReservationTerm", - "ReservationOrderIdAlreadyExists", - "RiskCheckFailed", - "CreateQuoteFailed", - "ActivateQuoteFailed", - "NonsupportedAccountId", - "PaymentInstrumentNotFound", - "MissingAppliedScopesForSingle", - "NoValidReservationsToReRate", - "ReRateOnlyAllowedForEA", - "OperationCannotBePerformedInCurrentState", - "InvalidSingleAppliedScopesCount", - "InvalidFulfillmentRequestParameters", - "NotSupportedCountry", - "InvalidRefundQuantity", - "PurchaseError", - "BillingCustomerInputError", - "BillingPaymentInstrumentSoftError", - "BillingPaymentInstrumentHardError", - "BillingTransientError", - "BillingError", - "FulfillmentConfigurationError", - "FulfillmentOutOfStockError", - "FulfillmentTransientError", - "FulfillmentError", - "CalculatePriceFailed" - ], - "x-ms-enum": { - "name": "ErrorResponseCode", - "modelAsString": true - } - }, - "SkuName": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - }, - "Catalog": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "The type of resource the SKU applies to.", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of SKU", - "readOnly": true - }, - "terms": { - "type": "array", - "readOnly": true, - "description": "Available reservation terms for this resource", - "items": { - "$ref": "#/definitions/ReservationTerm" - } - }, - "locations": { - "type": "array", - "readOnly": true, - "items": { - "type": "string", - "description": "The set of locations that the SKU is available. If not specified, the SKU is available in all locations." - } - }, - "skuProperties": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SkuProperty" - } - }, - "restrictions": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SkuRestriction" - } - } - } - }, - "SkuProperty": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "An invariant to describe the feature." - }, - "value": { - "type": "string", - "description": "An invariant if the feature is measured by quantity." - } - } - }, - "SkuRestriction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of restrictions." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." - }, - "reasonCode": { - "type": "string", - "description": "The reason for restriction." - } - } - }, - "ReservationOrderResponse": { - "type": "object", - "x-ms-azure-resource": true, - "properties": { - "etag": { - "type": "integer" - }, - "id": { - "type": "string", - "readOnly": true, - "description": "Identifier of the reservation" - }, - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the reservation" - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ReservationOrderProperties" - }, - "type": { - "type": "string", - "readOnly": true, - "description": "Type of resource. \"Microsoft.Capacity/reservations\"" - } - } - }, - "ReservationTerm": { - "type": "string", - "description": "Represent the term of Reservation.", - "enum": [ - "P1Y", - "P3Y" - ], - "x-ms-enum": { - "name": "ReservationTerm", - "modelAsString": true - } - }, - "ReservationOrderProperties": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "Friendly name for user to easily identified the reservation." - }, - "requestDateTime": { - "type": "string", - "format": "date-time", - "description": "This is the DateTime when the reservation was initially requested for purchase." - }, - "createdDateTime": { - "type": "string", - "format": "date-time", - "description": "This is the DateTime when the reservation was created." - }, - "expiryDate": { - "type": "string", - "format": "date", - "description": "This is the date when the Reservation will expire." - }, - "originalQuantity": { - "type": "integer", - "format": "int32", - "description": "Total Quantity of the SKUs purchased in the Reservation." - }, - "term": { - "$ref": "#/definitions/ReservationTerm" - }, - "provisioningState": { - "type": "string", - "description": "Current state of the reservation." - }, - "reservations": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - } - }, - "ReservationResponse": { - "type": "object", - "x-ms-azure-resource": true, - "properties": { - "location": { - "type": "string", - "readOnly": true, - "description": "The Azure Region where the reserved resource lives." - }, - "etag": { - "type": "integer" - }, - "id": { - "type": "string", - "readOnly": true, - "description": "Identifier of the reservation" - }, - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the reservation" - }, - "sku": { - "$ref": "#/definitions/SkuName" - }, - "properties": { - "$ref": "#/definitions/ReservationProperties" - }, - "type": { - "type": "string", - "readOnly": true, - "description": "Type of resource. \"Microsoft.Capacity/reservationOrders/reservations\"" - } - } - }, - "ReservationProperties": { - "type": "object", - "properties": { - "reservedResourceType": { - "$ref": "#/definitions/ReservedResourceType" - }, - "instanceFlexibility": { - "$ref": "#/definitions/InstanceFlexibility" - }, - "displayName": { - "type": "string", - "description": "Friendly name for user to easily identify the reservation" - }, - "appliedScopes": { - "$ref": "#/definitions/AppliedScopes" - }, - "appliedScopeType": { - "$ref": "#/definitions/AppliedScopeType" - }, - "quantity": { - "type": "integer", - "format": "int32", - "description": "Quantity of the SKUs that are part of the Reservation." - }, - "provisioningState": { - "type": "string", - "description": "Current state of the reservation." - }, - "effectiveDateTime": { - "type": "string", - "format": "date-time", - "description": "DateTime of the Reservation starting when this version is effective from." - }, - "lastUpdatedDateTime": { - "type": "string", - "format": "date-time", - "description": "DateTime of the last time the Reservation was updated.", - "readOnly": true - }, - "expiryDate": { - "type": "string", - "format": "date", - "description": "This is the date when the Reservation will expire." - }, - "skuDescription": { - "type": "string", - "description": "Description of the SKU in english." - }, - "extendedStatusInfo": { - "$ref": "#/definitions/ExtendedStatusInfo" - }, - "splitProperties": { - "$ref": "#/definitions/ReservationSplitProperties" - }, - "mergeProperties": { - "$ref": "#/definitions/ReservationMergeProperties" - } - } - }, - "ReservationSplitProperties": { - "type": "object", - "properties": { - "splitDestinations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - }, - "splitSource": { - "type": "string", - "description": "Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "ReservationMergeProperties": { - "type": "object", - "properties": { - "mergeDestination": { - "type": "string", - "description": "Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - }, - "mergeSources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "PatchProperties": { - "type": "object", - "properties": { - "appliedScopeType": { - "$ref": "#/definitions/AppliedScopeType" - }, - "appliedScopes": { - "$ref": "#/definitions/AppliedScopes" - }, - "instanceFlexibility": { - "$ref": "#/definitions/InstanceFlexibility" - } - } - }, - "SplitProperties": { - "type": "object", - "properties": { - "quantities": { - "type": "array", - "description": "List of the quantities in the new reservations to create.", - "items": { - "type": "integer", - "minItems": 2, - "maxItems": 2 - } - }, - "reservationId": { - "type": "string", - "description": "Resource id of the reservation to be split. Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "MergeProperties": { - "type": "object", - "properties": { - "sources": { - "type": "array", - "description": "Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}", - "items": { - "type": "string" - } - } - } - }, - "MergeRequest": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/MergeProperties" - } - } - }, - "Patch": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PatchProperties" - } - } - }, - "SplitRequest": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/SplitProperties" - } - } - }, - "Error": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/ExtendedErrorInfo" - } - } - }, - "ExtendedErrorInfo": { - "type": "object", - "properties": { - "code": { - "$ref": "#/definitions/ErrorResponseCode" - }, - "message": { - "type": "string" - } - } - }, - "ExtendedStatusInfo": { - "type": "object", - "properties": { - "statusCode": { - "$ref": "#/definitions/ReservationStatusCode" - }, - "message": { - "type": "string", - "description": "The message giving detailed information about the status code." - } - } - }, - "ReservationOrderList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationOrderResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservationOrders." - } - } - }, - "ReservationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservations." - } - } - }, - "AppliedReservations": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Identifier of the applied reservations", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Name of resource", - "readOnly": true - }, - "type": { - "type": "string", - "description": "Type of resource. \"Microsoft.Capacity/AppliedReservations\"", - "readOnly": true - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/AppliedReservationsProperties" - } - } - }, - "AppliedReservationsProperties": { - "type": "object", - "properties": { - "reservationOrderIds": { - "$ref": "#/definitions/AppliedReservationList" - } - } - }, - "AppliedReservationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "type": "string", - "description": "Reservation resource Id. \"/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}\"" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservations" - } - } - }, - "OperationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/OperationResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of items." - } - } - }, - "OperationResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "display": { - "$ref": "#/definitions/OperationDisplay" - }, - "origin": { - "type": "string" - } - } - }, - "OperationDisplay": { - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "InstanceFlexibility": { - "type": "string", - "description": "Allows reservation discount to be applied across skus within the same AutofitGroup. Not all skus support instance size flexibility.", - "enum": [ - "On", - "Off", - "NotSupported" - ], - "x-ms-enum": { - "name": "InstanceFlexibility", - "modelAsString": true - } - }, - "AppliedScopeType": { - "type": "string", - "description": "Type of the Applied Scope.", - "enum": [ - "Single", - "Shared" - ], - "x-ms-enum": { - "name": "AppliedScopeType", - "modelAsString": true - } - }, - "AppliedScopes": { - "type": "array", - "description": "List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.", - "items": { - "type": "string", - "minItems": 1, - "maxItems": 1 - } - }, - "ReservedResourceType": { - "type": "string", - "description": "The type of the resource that is being reserved.", - "enum": [ - "VirtualMachines", - "SqlDatabases", - "SuseLinux", - "CosmosDb" - ], - "x-ms-enum": { - "name": "ReservedResourceType", - "modelAsString": true - } - } - }, - "parameters": { - "ReservationIdParameter": { - "name": "reservationId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Id of the Reservation Item" - }, - "MergeParameter": { - "name": "body", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed for commercial request for a reservation", - "schema": { - "$ref": "#/definitions/MergeRequest" - } - }, - "PatchParameter": { - "name": "parameters", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed to patch a reservation item", - "schema": { - "$ref": "#/definitions/Patch" - } - }, - "SplitParameter": { - "name": "body", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed to Split a reservation item", - "schema": { - "$ref": "#/definitions/SplitRequest" - } - }, - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "description": "Supported version.", - "required": true, - "type": "string" - }, - "SubscriptionIdParameter": { - "name": "subscriptionId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Id of the subscription" - }, - "ReservedResourceTypeIdParameter": { - "name": "reservedResourceType", - "x-ms-parameter-location": "method", - "in": "query", - "required": true, - "type": "string", - "description": "The type of the resource for which the skus should be provided." - }, - "LocationIdParameter": { - "name": "location", - "x-ms-parameter-location": "method", - "in": "query", - "required": false, - "type": "string", - "description": "Filters the skus based on the location specified in this parameter. This can be an azure region or global" - }, - "ReservationOrderIdParameter": { - "name": "reservationOrderId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Order Id of the reservation\n" - } - } +{ + "swagger": "2.0", + "info": { + "title": "Azure Reservation API", + "description": "This API describe Azure Reservation", + "version": "2018-06-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/catalogs": { + "get": { + "summary": "Get the regions and skus that are available for RI purchase for the specified Azure subscription.", + "operationId": "GetCatalog", + "x-ms-examples": { + "Catalog": { + "$ref": "./examples/GetCatalog.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ReservedResourceTypeIdParameter" + }, + { + "$ref": "#/parameters/LocationIdParameter" + } + ], + "tags": [ + "Catalog" + ], + "responses": { + "200": { + "description": "List of available resources", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Catalog" + } + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/appliedReservations": { + "get": { + "summary": "Get list of applicable `Reservation`s.", + "description": "Get applicable `Reservation`s that are applied to this subscription.", + "operationId": "GetAppliedReservationList", + "x-ms-examples": { + "AppliedReservationList": { + "$ref": "./examples/GetAppliedReservations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "tags": [ + "AppliedReservation" + ], + "responses": { + "200": { + "description": "Applicable `Reservation`s.", + "schema": { + "$ref": "#/definitions/AppliedReservations" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders": { + "get": { + "summary": "Get all `ReservationOrder`s.", + "description": "List of all the `ReservationOrder`s that the user has access to in the current tenant.", + "operationId": "ReservationOrder_List", + "x-ms-examples": { + "ReservationOrderList": { + "$ref": "./examples/GetReservationOrders.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List of `ReservationOrder`s", + "schema": { + "$ref": "#/definitions/ReservationOrderList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}": { + "get": { + "summary": "Get a specific `ReservationOrder`.", + "description": "Get the details of the `ReservationOrder`.", + "operationId": "ReservationOrder_Get", + "x-ms-examples": { + "GetReservation": { + "$ref": "./examples/GetReservationOrderDetails.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "Get the details of the `ReservationOrder`.", + "schema": { + "$ref": "#/definitions/ReservationOrderResponse" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split": { + "post": { + "summary": "Split the `Reservation`.", + "description": "Split a `Reservation` into two `Reservation`s with specified quantity distribution.\n", + "operationId": "Reservation_Split", + "x-ms-examples": { + "Split": { + "$ref": "./examples/SplitReservation.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SplitParameter" + } + ], + "tags": [ + "Reservation, Split" + ], + "responses": { + "200": { + "description": "List of `Reservation`s created after the split operation.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge": { + "post": { + "summary": "Merges two `Reservation`s.", + "description": "Merge the specified `Reservation`s into a new `Reservation`. The two `Reservation`s being merged must have same properties.", + "operationId": "Reservation_Merge", + "x-ms-examples": { + "Merge": { + "$ref": "./examples/MergeReservations.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/MergeParameter" + } + ], + "tags": [ + "Reservation, Merge" + ], + "responses": { + "200": { + "description": "Returns the `Reservation` created after the merge.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations": { + "get": { + "summary": "Get `Reservation`s in a given reservation Order", + "description": "List `Reservation`s within a single `ReservationOrder`.", + "operationId": "Reservation_List", + "x-ms-examples": { + "ReservationList": { + "$ref": "./examples/GetReservations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List `Reservation`s within a single `ReservationOrder`.", + "schema": { + "$ref": "#/definitions/ReservationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}": { + "get": { + "summary": "Get `Reservation` details.", + "description": "Get specific `Reservation` details.", + "operationId": "Reservation_Get", + "x-ms-examples": { + "GetReservation": { + "$ref": "./examples/GetReservationDetails.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "Get `Reservation` details.", + "schema": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "patch": { + "summary": "Updates a `Reservation`.", + "description": "Updates the applied scopes of the `Reservation`.", + "operationId": "Reservation_Update", + "x-ms-examples": { + "PatchReservation": { + "$ref": "./examples/UpdateReservation.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/PatchParameter" + } + ], + "tags": [ + "Reservation", + "ApplyScope" + ], + "responses": { + "200": { + "description": "Returns the updated `Reservation`.", + "schema": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions": { + "get": { + "summary": "Get `Reservation` revisions.", + "description": "List of all the revisions for the `Reservation`.\n", + "operationId": "Reservation_ListRevisions", + "x-ms-examples": { + "ReservationRevisions": { + "$ref": "./examples/GetReservationRevisions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List of all the revisions for the `Reservation`.", + "schema": { + "$ref": "#/definitions/ReservationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/operations": { + "get": { + "summary": "Get operations.", + "description": "List all the operations.", + "operationId": "Operation_List", + "x-ms-examples": { + "GetOperations": { + "$ref": "./examples/GetOperations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Operation" + ], + "responses": { + "200": { + "description": "List all the operations.", + "schema": { + "$ref": "#/definitions/OperationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "ReservationStatusCode": { + "type": "string", + "enum": [ + "None", + "Pending", + "Active", + "PurchaseError", + "PaymentInstrumentError", + "Split", + "Merged", + "Expired", + "Succeeded" + ], + "x-ms-enum": { + "name": "ReservationStatusCode", + "modelAsString": true + } + }, + "ErrorResponseCode": { + "type": "string", + "enum": [ + "NotSpecified", + "InternalServerError", + "ServerTimeout", + "AuthorizationFailed", + "BadRequest", + "ClientCertificateThumbprintNotSet", + "InvalidRequestContent", + "OperationFailed", + "HttpMethodNotSupported", + "InvalidRequestUri", + "MissingTenantId", + "InvalidTenantId", + "InvalidReservationOrderId", + "InvalidReservationId", + "ReservationIdNotInReservationOrder", + "ReservationOrderNotFound", + "InvalidSubscriptionId", + "InvalidAccessToken", + "InvalidLocationId", + "UnauthenticatedRequestsThrottled", + "InvalidHealthCheckType", + "Forbidden", + "BillingScopeIdCannotBeChanged", + "AppliedScopesNotAssociatedWithCommerceAccount", + "PatchValuesSameAsExisting", + "RoleAssignmentCreationFailed", + "ReservationOrderCreationFailed", + "ReservationOrderNotEnabled", + "CapacityUpdateScopesFailed", + "UnsupportedReservationTerm", + "ReservationOrderIdAlreadyExists", + "RiskCheckFailed", + "CreateQuoteFailed", + "ActivateQuoteFailed", + "NonsupportedAccountId", + "PaymentInstrumentNotFound", + "MissingAppliedScopesForSingle", + "NoValidReservationsToReRate", + "ReRateOnlyAllowedForEA", + "OperationCannotBePerformedInCurrentState", + "InvalidSingleAppliedScopesCount", + "InvalidFulfillmentRequestParameters", + "NotSupportedCountry", + "InvalidRefundQuantity", + "PurchaseError", + "BillingCustomerInputError", + "BillingPaymentInstrumentSoftError", + "BillingPaymentInstrumentHardError", + "BillingTransientError", + "BillingError", + "FulfillmentConfigurationError", + "FulfillmentOutOfStockError", + "FulfillmentTransientError", + "FulfillmentError", + "CalculatePriceFailed" + ], + "x-ms-enum": { + "name": "ErrorResponseCode", + "modelAsString": true + } + }, + "SkuName": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "Catalog": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "The type of resource the SKU applies to.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of SKU", + "readOnly": true + }, + "terms": { + "type": "array", + "readOnly": true, + "description": "Available reservation terms for this resource", + "items": { + "$ref": "#/definitions/ReservationTerm" + } + }, + "locations": { + "type": "array", + "readOnly": true, + "items": { + "type": "string", + "description": "The set of locations that the SKU is available. If not specified, the SKU is available in all locations." + } + }, + "skuProperties": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/SkuProperty" + } + }, + "restrictions": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/SkuRestriction" + } + } + } + }, + "SkuProperty": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "An invariant to describe the feature." + }, + "value": { + "type": "string", + "description": "An invariant if the feature is measured by quantity." + } + } + }, + "SkuRestriction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of restrictions." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." + }, + "reasonCode": { + "type": "string", + "description": "The reason for restriction." + } + } + }, + "ReservationOrderResponse": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "etag": { + "type": "integer" + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Identifier of the reservation" + }, + "name": { + "type": "string", + "readOnly": true, + "description": "Name of the reservation" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ReservationOrderProperties" + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Type of resource. \"Microsoft.Capacity/reservations\"" + } + } + }, + "ReservationTerm": { + "type": "string", + "description": "Represent the term of Reservation.", + "enum": [ + "P1Y", + "P3Y" + ], + "x-ms-enum": { + "name": "ReservationTerm", + "modelAsString": true + } + }, + "ReservationOrderProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Friendly name for user to easily identified the reservation." + }, + "requestDateTime": { + "type": "string", + "format": "date-time", + "description": "This is the DateTime when the reservation was initially requested for purchase." + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "This is the DateTime when the reservation was created." + }, + "expiryDate": { + "type": "string", + "format": "date", + "description": "This is the date when the Reservation will expire." + }, + "originalQuantity": { + "type": "integer", + "format": "int32", + "description": "Total Quantity of the SKUs purchased in the Reservation." + }, + "term": { + "$ref": "#/definitions/ReservationTerm" + }, + "provisioningState": { + "type": "string", + "description": "Current state of the reservation." + }, + "reservations": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + } + }, + "ReservationResponse": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "location": { + "type": "string", + "readOnly": true, + "description": "The Azure Region where the reserved resource lives." + }, + "etag": { + "type": "integer" + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Identifier of the reservation" + }, + "name": { + "type": "string", + "readOnly": true, + "description": "Name of the reservation" + }, + "sku": { + "$ref": "#/definitions/SkuName" + }, + "properties": { + "$ref": "#/definitions/ReservationProperties" + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Type of resource. \"Microsoft.Capacity/reservationOrders/reservations\"" + } + } + }, + "ReservationProperties": { + "type": "object", + "properties": { + "reservedResourceType": { + "$ref": "#/definitions/ReservedResourceType" + }, + "instanceFlexibility": { + "$ref": "#/definitions/InstanceFlexibility" + }, + "displayName": { + "type": "string", + "description": "Friendly name for user to easily identify the reservation" + }, + "appliedScopes": { + "$ref": "#/definitions/AppliedScopes" + }, + "appliedScopeType": { + "$ref": "#/definitions/AppliedScopeType" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of the SKUs that are part of the Reservation." + }, + "provisioningState": { + "type": "string", + "description": "Current state of the reservation." + }, + "effectiveDateTime": { + "type": "string", + "format": "date-time", + "description": "DateTime of the Reservation starting when this version is effective from." + }, + "lastUpdatedDateTime": { + "type": "string", + "format": "date-time", + "description": "DateTime of the last time the Reservation was updated.", + "readOnly": true + }, + "expiryDate": { + "type": "string", + "format": "date", + "description": "This is the date when the Reservation will expire." + }, + "skuDescription": { + "type": "string", + "description": "Description of the SKU in english." + }, + "extendedStatusInfo": { + "$ref": "#/definitions/ExtendedStatusInfo" + }, + "splitProperties": { + "$ref": "#/definitions/ReservationSplitProperties" + }, + "mergeProperties": { + "$ref": "#/definitions/ReservationMergeProperties" + } + } + }, + "ReservationSplitProperties": { + "type": "object", + "properties": { + "splitDestinations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + }, + "splitSource": { + "type": "string", + "description": "Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "ReservationMergeProperties": { + "type": "object", + "properties": { + "mergeDestination": { + "type": "string", + "description": "Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + }, + "mergeSources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "PatchProperties": { + "type": "object", + "properties": { + "appliedScopeType": { + "$ref": "#/definitions/AppliedScopeType" + }, + "appliedScopes": { + "$ref": "#/definitions/AppliedScopes" + }, + "instanceFlexibility": { + "$ref": "#/definitions/InstanceFlexibility" + }, + "name": { + "description": "Name of the Reservation", + "type": "string" + } + } + }, + "SplitProperties": { + "type": "object", + "properties": { + "quantities": { + "type": "array", + "description": "List of the quantities in the new reservations to create.", + "items": { + "type": "integer", + "minItems": 2, + "maxItems": 2 + } + }, + "reservationId": { + "type": "string", + "description": "Resource id of the reservation to be split. Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "MergeProperties": { + "type": "object", + "properties": { + "sources": { + "type": "array", + "description": "Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}", + "items": { + "type": "string" + } + } + } + }, + "MergeRequest": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/MergeProperties" + } + } + }, + "Patch": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PatchProperties" + } + } + }, + "SplitRequest": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SplitProperties" + } + } + }, + "Error": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/ExtendedErrorInfo" + } + } + }, + "ExtendedErrorInfo": { + "type": "object", + "properties": { + "code": { + "$ref": "#/definitions/ErrorResponseCode" + }, + "message": { + "type": "string" + } + } + }, + "ExtendedStatusInfo": { + "type": "object", + "properties": { + "statusCode": { + "$ref": "#/definitions/ReservationStatusCode" + }, + "message": { + "type": "string", + "description": "The message giving detailed information about the status code." + } + } + }, + "ReservationOrderList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationOrderResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservationOrders." + } + } + }, + "ReservationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservations." + } + } + }, + "AppliedReservations": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the applied reservations", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of resource. \"Microsoft.Capacity/AppliedReservations\"", + "readOnly": true + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AppliedReservationsProperties" + } + } + }, + "AppliedReservationsProperties": { + "type": "object", + "properties": { + "reservationOrderIds": { + "$ref": "#/definitions/AppliedReservationList" + } + } + }, + "AppliedReservationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string", + "description": "Reservation resource Id. \"/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}\"" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservations" + } + } + }, + "OperationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/OperationResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of items." + } + } + }, + "OperationResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "display": { + "$ref": "#/definitions/OperationDisplay" + }, + "origin": { + "type": "string" + } + } + }, + "OperationDisplay": { + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "InstanceFlexibility": { + "type": "string", + "description": "Allows reservation discount to be applied across skus within the same AutofitGroup. Not all skus support instance size flexibility.", + "enum": [ + "On", + "Off", + "NotSupported" + ], + "x-ms-enum": { + "name": "InstanceFlexibility", + "modelAsString": true + } + }, + "AppliedScopeType": { + "type": "string", + "description": "Type of the Applied Scope.", + "enum": [ + "Single", + "Shared" + ], + "x-ms-enum": { + "name": "AppliedScopeType", + "modelAsString": true + } + }, + "AppliedScopes": { + "type": "array", + "description": "List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.", + "items": { + "type": "string", + "minItems": 1, + "maxItems": 1 + } + }, + "ReservedResourceType": { + "type": "string", + "description": "The type of the resource that is being reserved.", + "enum": [ + "VirtualMachines", + "SqlDatabases", + "SuseLinux", + "CosmosDb" + ], + "x-ms-enum": { + "name": "ReservedResourceType", + "modelAsString": true + } + } + }, + "parameters": { + "ReservationIdParameter": { + "name": "reservationId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Id of the Reservation Item" + }, + "MergeParameter": { + "name": "body", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed for commercial request for a reservation", + "schema": { + "$ref": "#/definitions/MergeRequest" + } + }, + "PatchParameter": { + "name": "parameters", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed to patch a reservation item", + "schema": { + "$ref": "#/definitions/Patch" + } + }, + "SplitParameter": { + "name": "body", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed to Split a reservation item", + "schema": { + "$ref": "#/definitions/SplitRequest" + } + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "Supported version.", + "required": true, + "type": "string" + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Id of the subscription" + }, + "ReservedResourceTypeIdParameter": { + "name": "reservedResourceType", + "x-ms-parameter-location": "method", + "in": "query", + "required": true, + "type": "string", + "description": "The type of the resource for which the skus should be provided." + }, + "LocationIdParameter": { + "name": "location", + "x-ms-parameter-location": "method", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the skus based on the location specified in this parameter. This can be an azure region or global" + }, + "ReservationOrderIdParameter": { + "name": "reservationOrderId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Order Id of the reservation\n" + } + } } \ No newline at end of file diff --git a/specification/reservations/resource-manager/readme.md b/specification/reservations/resource-manager/readme.md index c9ac8a4c839b..7f346d0a3e9b 100644 --- a/specification/reservations/resource-manager/readme.md +++ b/specification/reservations/resource-manager/readme.md @@ -59,7 +59,6 @@ This is not used by Autorest itself. ``` yaml $(swagger-to-sdk) swagger-to-sdk: - repo: azure-sdk-for-python - - repo: azure-sdk-for-java - repo: azure-sdk-for-go ``` @@ -141,41 +140,4 @@ Please also specify `--go-sdk-folder=`. - -``` yaml $(java) -azure-arm: true -fluent: true -namespace: com.microsoft.azure.management.reservations -license-header: MICROSOFT_MIT_NO_CODEGEN -payload-flattening-threshold: 1 -output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-reservations -``` - -### Java multi-api - -``` yaml $(java) && $(multiapi) -batch: - - tag: package-2017-11 -``` - -### Tag: package-2017-11 and java - -These settings apply only when `--tag=package-2017-11 --java` is specified on the command line. -Please also specify `--azure-libraries-for-java=`. - -``` yaml $(tag) == 'package-2017-11' && $(java) && $(multiapi) -java: - namespace: com.microsoft.azure.management.reservations.v2017_11_01 - output-folder: $(azure-libraries-for-java-folder)/reservations/resource-manager/v2017_11_01 -regenerate-manager: true -generate-interface: true -``` - - +``` \ No newline at end of file From 01b5a8a327c4632b3c0a8b8732cff484df56d37d Mon Sep 17 00:00:00 2001 From: Yulu Liu Date: Wed, 22 Aug 2018 11:50:58 -0700 Subject: [PATCH 3/4] Reservations RP 2018-06-01: Formatting --- .../preview/2018-06-01/reservations.json | 2442 ++++++++--------- 1 file changed, 1221 insertions(+), 1221 deletions(-) diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json index adffd82a28d2..e427f2010cc4 100644 --- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json +++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2018-06-01/reservations.json @@ -1,1222 +1,1222 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure Reservation API", - "description": "This API describe Azure Reservation", - "version": "2018-06-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/catalogs": { - "get": { - "summary": "Get the regions and skus that are available for RI purchase for the specified Azure subscription.", - "operationId": "GetCatalog", - "x-ms-examples": { - "Catalog": { - "$ref": "./examples/GetCatalog.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ReservedResourceTypeIdParameter" - }, - { - "$ref": "#/parameters/LocationIdParameter" - } - ], - "tags": [ - "Catalog" - ], - "responses": { - "200": { - "description": "List of available resources", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Catalog" - } - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/appliedReservations": { - "get": { - "summary": "Get list of applicable `Reservation`s.", - "description": "Get applicable `Reservation`s that are applied to this subscription.", - "operationId": "GetAppliedReservationList", - "x-ms-examples": { - "AppliedReservationList": { - "$ref": "./examples/GetAppliedReservations.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - } - ], - "tags": [ - "AppliedReservation" - ], - "responses": { - "200": { - "description": "Applicable `Reservation`s.", - "schema": { - "$ref": "#/definitions/AppliedReservations" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders": { - "get": { - "summary": "Get all `ReservationOrder`s.", - "description": "List of all the `ReservationOrder`s that the user has access to in the current tenant.", - "operationId": "ReservationOrder_List", - "x-ms-examples": { - "ReservationOrderList": { - "$ref": "./examples/GetReservationOrders.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List of `ReservationOrder`s", - "schema": { - "$ref": "#/definitions/ReservationOrderList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}": { - "get": { - "summary": "Get a specific `ReservationOrder`.", - "description": "Get the details of the `ReservationOrder`.", - "operationId": "ReservationOrder_Get", - "x-ms-examples": { - "GetReservation": { - "$ref": "./examples/GetReservationOrderDetails.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "Get the details of the `ReservationOrder`.", - "schema": { - "$ref": "#/definitions/ReservationOrderResponse" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split": { - "post": { - "summary": "Split the `Reservation`.", - "description": "Split a `Reservation` into two `Reservation`s with specified quantity distribution.\n", - "operationId": "Reservation_Split", - "x-ms-examples": { - "Split": { - "$ref": "./examples/SplitReservation.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SplitParameter" - } - ], - "tags": [ - "Reservation, Split" - ], - "responses": { - "200": { - "description": "List of `Reservation`s created after the split operation.", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge": { - "post": { - "summary": "Merges two `Reservation`s.", - "description": "Merge the specified `Reservation`s into a new `Reservation`. The two `Reservation`s being merged must have same properties.", - "operationId": "Reservation_Merge", - "x-ms-examples": { - "Merge": { - "$ref": "./examples/MergeReservations.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/MergeParameter" - } - ], - "tags": [ - "Reservation, Merge" - ], - "responses": { - "200": { - "description": "Returns the `Reservation` created after the merge.", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations": { - "get": { - "summary": "Get `Reservation`s in a given reservation Order", - "description": "List `Reservation`s within a single `ReservationOrder`.", - "operationId": "Reservation_List", - "x-ms-examples": { - "ReservationList": { - "$ref": "./examples/GetReservations.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List `Reservation`s within a single `ReservationOrder`.", - "schema": { - "$ref": "#/definitions/ReservationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}": { - "get": { - "summary": "Get `Reservation` details.", - "description": "Get specific `Reservation` details.", - "operationId": "Reservation_Get", - "x-ms-examples": { - "GetReservation": { - "$ref": "./examples/GetReservationDetails.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "Get `Reservation` details.", - "schema": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "patch": { - "summary": "Updates a `Reservation`.", - "description": "Updates the applied scopes of the `Reservation`.", - "operationId": "Reservation_Update", - "x-ms-examples": { - "PatchReservation": { - "$ref": "./examples/UpdateReservation.json" - } - }, - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PatchParameter" - } - ], - "tags": [ - "Reservation", - "ApplyScope" - ], - "responses": { - "200": { - "description": "Returns the updated `Reservation`.", - "schema": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "202": { - "description": "The request is accepted and is being processed" - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions": { - "get": { - "summary": "Get `Reservation` revisions.", - "description": "List of all the revisions for the `Reservation`.\n", - "operationId": "Reservation_ListRevisions", - "x-ms-examples": { - "ReservationRevisions": { - "$ref": "./examples/GetReservationRevisions.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ReservationIdParameter" - }, - { - "$ref": "#/parameters/ReservationOrderIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Reservation" - ], - "responses": { - "200": { - "description": "List of all the revisions for the `Reservation`.", - "schema": { - "$ref": "#/definitions/ReservationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - }, - "/providers/Microsoft.Capacity/operations": { - "get": { - "summary": "Get operations.", - "description": "List all the operations.", - "operationId": "Operation_List", - "x-ms-examples": { - "GetOperations": { - "$ref": "./examples/GetOperations.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "tags": [ - "Operation" - ], - "responses": { - "200": { - "description": "List all the operations.", - "schema": { - "$ref": "#/definitions/OperationList" - } - }, - "default": { - "description": "Unexpected error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - } - } - }, - "definitions": { - "ReservationStatusCode": { - "type": "string", - "enum": [ - "None", - "Pending", - "Active", - "PurchaseError", - "PaymentInstrumentError", - "Split", - "Merged", - "Expired", - "Succeeded" - ], - "x-ms-enum": { - "name": "ReservationStatusCode", - "modelAsString": true - } - }, - "ErrorResponseCode": { - "type": "string", - "enum": [ - "NotSpecified", - "InternalServerError", - "ServerTimeout", - "AuthorizationFailed", - "BadRequest", - "ClientCertificateThumbprintNotSet", - "InvalidRequestContent", - "OperationFailed", - "HttpMethodNotSupported", - "InvalidRequestUri", - "MissingTenantId", - "InvalidTenantId", - "InvalidReservationOrderId", - "InvalidReservationId", - "ReservationIdNotInReservationOrder", - "ReservationOrderNotFound", - "InvalidSubscriptionId", - "InvalidAccessToken", - "InvalidLocationId", - "UnauthenticatedRequestsThrottled", - "InvalidHealthCheckType", - "Forbidden", - "BillingScopeIdCannotBeChanged", - "AppliedScopesNotAssociatedWithCommerceAccount", - "PatchValuesSameAsExisting", - "RoleAssignmentCreationFailed", - "ReservationOrderCreationFailed", - "ReservationOrderNotEnabled", - "CapacityUpdateScopesFailed", - "UnsupportedReservationTerm", - "ReservationOrderIdAlreadyExists", - "RiskCheckFailed", - "CreateQuoteFailed", - "ActivateQuoteFailed", - "NonsupportedAccountId", - "PaymentInstrumentNotFound", - "MissingAppliedScopesForSingle", - "NoValidReservationsToReRate", - "ReRateOnlyAllowedForEA", - "OperationCannotBePerformedInCurrentState", - "InvalidSingleAppliedScopesCount", - "InvalidFulfillmentRequestParameters", - "NotSupportedCountry", - "InvalidRefundQuantity", - "PurchaseError", - "BillingCustomerInputError", - "BillingPaymentInstrumentSoftError", - "BillingPaymentInstrumentHardError", - "BillingTransientError", - "BillingError", - "FulfillmentConfigurationError", - "FulfillmentOutOfStockError", - "FulfillmentTransientError", - "FulfillmentError", - "CalculatePriceFailed" - ], - "x-ms-enum": { - "name": "ErrorResponseCode", - "modelAsString": true - } - }, - "SkuName": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - }, - "Catalog": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "The type of resource the SKU applies to.", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of SKU", - "readOnly": true - }, - "terms": { - "type": "array", - "readOnly": true, - "description": "Available reservation terms for this resource", - "items": { - "$ref": "#/definitions/ReservationTerm" - } - }, - "locations": { - "type": "array", - "readOnly": true, - "items": { - "type": "string", - "description": "The set of locations that the SKU is available. If not specified, the SKU is available in all locations." - } - }, - "skuProperties": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SkuProperty" - } - }, - "restrictions": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SkuRestriction" - } - } - } - }, - "SkuProperty": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "An invariant to describe the feature." - }, - "value": { - "type": "string", - "description": "An invariant if the feature is measured by quantity." - } - } - }, - "SkuRestriction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of restrictions." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." - }, - "reasonCode": { - "type": "string", - "description": "The reason for restriction." - } - } - }, - "ReservationOrderResponse": { - "type": "object", - "x-ms-azure-resource": true, - "properties": { - "etag": { - "type": "integer" - }, - "id": { - "type": "string", - "readOnly": true, - "description": "Identifier of the reservation" - }, - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the reservation" - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ReservationOrderProperties" - }, - "type": { - "type": "string", - "readOnly": true, - "description": "Type of resource. \"Microsoft.Capacity/reservations\"" - } - } - }, - "ReservationTerm": { - "type": "string", - "description": "Represent the term of Reservation.", - "enum": [ - "P1Y", - "P3Y" - ], - "x-ms-enum": { - "name": "ReservationTerm", - "modelAsString": true - } - }, - "ReservationOrderProperties": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "Friendly name for user to easily identified the reservation." - }, - "requestDateTime": { - "type": "string", - "format": "date-time", - "description": "This is the DateTime when the reservation was initially requested for purchase." - }, - "createdDateTime": { - "type": "string", - "format": "date-time", - "description": "This is the DateTime when the reservation was created." - }, - "expiryDate": { - "type": "string", - "format": "date", - "description": "This is the date when the Reservation will expire." - }, - "originalQuantity": { - "type": "integer", - "format": "int32", - "description": "Total Quantity of the SKUs purchased in the Reservation." - }, - "term": { - "$ref": "#/definitions/ReservationTerm" - }, - "provisioningState": { - "type": "string", - "description": "Current state of the reservation." - }, - "reservations": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - } - } - }, - "ReservationResponse": { - "type": "object", - "x-ms-azure-resource": true, - "properties": { - "location": { - "type": "string", - "readOnly": true, - "description": "The Azure Region where the reserved resource lives." - }, - "etag": { - "type": "integer" - }, - "id": { - "type": "string", - "readOnly": true, - "description": "Identifier of the reservation" - }, - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the reservation" - }, - "sku": { - "$ref": "#/definitions/SkuName" - }, - "properties": { - "$ref": "#/definitions/ReservationProperties" - }, - "type": { - "type": "string", - "readOnly": true, - "description": "Type of resource. \"Microsoft.Capacity/reservationOrders/reservations\"" - } - } - }, - "ReservationProperties": { - "type": "object", - "properties": { - "reservedResourceType": { - "$ref": "#/definitions/ReservedResourceType" - }, - "instanceFlexibility": { - "$ref": "#/definitions/InstanceFlexibility" - }, - "displayName": { - "type": "string", - "description": "Friendly name for user to easily identify the reservation" - }, - "appliedScopes": { - "$ref": "#/definitions/AppliedScopes" - }, - "appliedScopeType": { - "$ref": "#/definitions/AppliedScopeType" - }, - "quantity": { - "type": "integer", - "format": "int32", - "description": "Quantity of the SKUs that are part of the Reservation." - }, - "provisioningState": { - "type": "string", - "description": "Current state of the reservation." - }, - "effectiveDateTime": { - "type": "string", - "format": "date-time", - "description": "DateTime of the Reservation starting when this version is effective from." - }, - "lastUpdatedDateTime": { - "type": "string", - "format": "date-time", - "description": "DateTime of the last time the Reservation was updated.", - "readOnly": true - }, - "expiryDate": { - "type": "string", - "format": "date", - "description": "This is the date when the Reservation will expire." - }, - "skuDescription": { - "type": "string", - "description": "Description of the SKU in english." - }, - "extendedStatusInfo": { - "$ref": "#/definitions/ExtendedStatusInfo" - }, - "splitProperties": { - "$ref": "#/definitions/ReservationSplitProperties" - }, - "mergeProperties": { - "$ref": "#/definitions/ReservationMergeProperties" - } - } - }, - "ReservationSplitProperties": { - "type": "object", - "properties": { - "splitDestinations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - }, - "splitSource": { - "type": "string", - "description": "Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "ReservationMergeProperties": { - "type": "object", - "properties": { - "mergeDestination": { - "type": "string", - "description": "Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - }, - "mergeSources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "PatchProperties": { - "type": "object", - "properties": { - "appliedScopeType": { - "$ref": "#/definitions/AppliedScopeType" - }, - "appliedScopes": { - "$ref": "#/definitions/AppliedScopes" - }, - "instanceFlexibility": { - "$ref": "#/definitions/InstanceFlexibility" - }, - "name": { - "description": "Name of the Reservation", - "type": "string" - } - } - }, - "SplitProperties": { - "type": "object", - "properties": { - "quantities": { - "type": "array", - "description": "List of the quantities in the new reservations to create.", - "items": { - "type": "integer", - "minItems": 2, - "maxItems": 2 - } - }, - "reservationId": { - "type": "string", - "description": "Resource id of the reservation to be split. Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" - } - } - }, - "MergeProperties": { - "type": "object", - "properties": { - "sources": { - "type": "array", - "description": "Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}", - "items": { - "type": "string" - } - } - } - }, - "MergeRequest": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/MergeProperties" - } - } - }, - "Patch": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PatchProperties" - } - } - }, - "SplitRequest": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/SplitProperties" - } - } - }, - "Error": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/ExtendedErrorInfo" - } - } - }, - "ExtendedErrorInfo": { - "type": "object", - "properties": { - "code": { - "$ref": "#/definitions/ErrorResponseCode" - }, - "message": { - "type": "string" - } - } - }, - "ExtendedStatusInfo": { - "type": "object", - "properties": { - "statusCode": { - "$ref": "#/definitions/ReservationStatusCode" - }, - "message": { - "type": "string", - "description": "The message giving detailed information about the status code." - } - } - }, - "ReservationOrderList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationOrderResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservationOrders." - } - } - }, - "ReservationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ReservationResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservations." - } - } - }, - "AppliedReservations": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Identifier of the applied reservations", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Name of resource", - "readOnly": true - }, - "type": { - "type": "string", - "description": "Type of resource. \"Microsoft.Capacity/AppliedReservations\"", - "readOnly": true - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/AppliedReservationsProperties" - } - } - }, - "AppliedReservationsProperties": { - "type": "object", - "properties": { - "reservationOrderIds": { - "$ref": "#/definitions/AppliedReservationList" - } - } - }, - "AppliedReservationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "type": "string", - "description": "Reservation resource Id. \"/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}\"" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of reservations" - } - } - }, - "OperationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/OperationResponse" - } - }, - "nextLink": { - "type": "string", - "description": "Url to get the next page of items." - } - } - }, - "OperationResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "display": { - "$ref": "#/definitions/OperationDisplay" - }, - "origin": { - "type": "string" - } - } - }, - "OperationDisplay": { - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "InstanceFlexibility": { - "type": "string", - "description": "Allows reservation discount to be applied across skus within the same AutofitGroup. Not all skus support instance size flexibility.", - "enum": [ - "On", - "Off", - "NotSupported" - ], - "x-ms-enum": { - "name": "InstanceFlexibility", - "modelAsString": true - } - }, - "AppliedScopeType": { - "type": "string", - "description": "Type of the Applied Scope.", - "enum": [ - "Single", - "Shared" - ], - "x-ms-enum": { - "name": "AppliedScopeType", - "modelAsString": true - } - }, - "AppliedScopes": { - "type": "array", - "description": "List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.", - "items": { - "type": "string", - "minItems": 1, - "maxItems": 1 - } - }, - "ReservedResourceType": { - "type": "string", - "description": "The type of the resource that is being reserved.", - "enum": [ - "VirtualMachines", - "SqlDatabases", - "SuseLinux", - "CosmosDb" - ], - "x-ms-enum": { - "name": "ReservedResourceType", - "modelAsString": true - } - } - }, - "parameters": { - "ReservationIdParameter": { - "name": "reservationId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Id of the Reservation Item" - }, - "MergeParameter": { - "name": "body", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed for commercial request for a reservation", - "schema": { - "$ref": "#/definitions/MergeRequest" - } - }, - "PatchParameter": { - "name": "parameters", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed to patch a reservation item", - "schema": { - "$ref": "#/definitions/Patch" - } - }, - "SplitParameter": { - "name": "body", - "x-ms-parameter-location": "method", - "in": "body", - "required": true, - "description": "Information needed to Split a reservation item", - "schema": { - "$ref": "#/definitions/SplitRequest" - } - }, - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "description": "Supported version.", - "required": true, - "type": "string" - }, - "SubscriptionIdParameter": { - "name": "subscriptionId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Id of the subscription" - }, - "ReservedResourceTypeIdParameter": { - "name": "reservedResourceType", - "x-ms-parameter-location": "method", - "in": "query", - "required": true, - "type": "string", - "description": "The type of the resource for which the skus should be provided." - }, - "LocationIdParameter": { - "name": "location", - "x-ms-parameter-location": "method", - "in": "query", - "required": false, - "type": "string", - "description": "Filters the skus based on the location specified in this parameter. This can be an azure region or global" - }, - "ReservationOrderIdParameter": { - "name": "reservationOrderId", - "x-ms-parameter-location": "method", - "in": "path", - "required": true, - "type": "string", - "description": "Order Id of the reservation\n" - } - } +{ + "swagger": "2.0", + "info": { + "title": "Azure Reservation API", + "description": "This API describe Azure Reservation", + "version": "2018-06-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/catalogs": { + "get": { + "summary": "Get the regions and skus that are available for RI purchase for the specified Azure subscription.", + "operationId": "GetCatalog", + "x-ms-examples": { + "Catalog": { + "$ref": "./examples/GetCatalog.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ReservedResourceTypeIdParameter" + }, + { + "$ref": "#/parameters/LocationIdParameter" + } + ], + "tags": [ + "Catalog" + ], + "responses": { + "200": { + "description": "List of available resources", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Catalog" + } + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/appliedReservations": { + "get": { + "summary": "Get list of applicable `Reservation`s.", + "description": "Get applicable `Reservation`s that are applied to this subscription.", + "operationId": "GetAppliedReservationList", + "x-ms-examples": { + "AppliedReservationList": { + "$ref": "./examples/GetAppliedReservations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "tags": [ + "AppliedReservation" + ], + "responses": { + "200": { + "description": "Applicable `Reservation`s.", + "schema": { + "$ref": "#/definitions/AppliedReservations" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders": { + "get": { + "summary": "Get all `ReservationOrder`s.", + "description": "List of all the `ReservationOrder`s that the user has access to in the current tenant.", + "operationId": "ReservationOrder_List", + "x-ms-examples": { + "ReservationOrderList": { + "$ref": "./examples/GetReservationOrders.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List of `ReservationOrder`s", + "schema": { + "$ref": "#/definitions/ReservationOrderList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}": { + "get": { + "summary": "Get a specific `ReservationOrder`.", + "description": "Get the details of the `ReservationOrder`.", + "operationId": "ReservationOrder_Get", + "x-ms-examples": { + "GetReservation": { + "$ref": "./examples/GetReservationOrderDetails.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "Get the details of the `ReservationOrder`.", + "schema": { + "$ref": "#/definitions/ReservationOrderResponse" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split": { + "post": { + "summary": "Split the `Reservation`.", + "description": "Split a `Reservation` into two `Reservation`s with specified quantity distribution.\n", + "operationId": "Reservation_Split", + "x-ms-examples": { + "Split": { + "$ref": "./examples/SplitReservation.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SplitParameter" + } + ], + "tags": [ + "Reservation, Split" + ], + "responses": { + "200": { + "description": "List of `Reservation`s created after the split operation.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge": { + "post": { + "summary": "Merges two `Reservation`s.", + "description": "Merge the specified `Reservation`s into a new `Reservation`. The two `Reservation`s being merged must have same properties.", + "operationId": "Reservation_Merge", + "x-ms-examples": { + "Merge": { + "$ref": "./examples/MergeReservations.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/MergeParameter" + } + ], + "tags": [ + "Reservation, Merge" + ], + "responses": { + "200": { + "description": "Returns the `Reservation` created after the merge.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations": { + "get": { + "summary": "Get `Reservation`s in a given reservation Order", + "description": "List `Reservation`s within a single `ReservationOrder`.", + "operationId": "Reservation_List", + "x-ms-examples": { + "ReservationList": { + "$ref": "./examples/GetReservations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List `Reservation`s within a single `ReservationOrder`.", + "schema": { + "$ref": "#/definitions/ReservationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}": { + "get": { + "summary": "Get `Reservation` details.", + "description": "Get specific `Reservation` details.", + "operationId": "Reservation_Get", + "x-ms-examples": { + "GetReservation": { + "$ref": "./examples/GetReservationDetails.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "Get `Reservation` details.", + "schema": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "patch": { + "summary": "Updates a `Reservation`.", + "description": "Updates the applied scopes of the `Reservation`.", + "operationId": "Reservation_Update", + "x-ms-examples": { + "PatchReservation": { + "$ref": "./examples/UpdateReservation.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/PatchParameter" + } + ], + "tags": [ + "Reservation", + "ApplyScope" + ], + "responses": { + "200": { + "description": "Returns the updated `Reservation`.", + "schema": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "202": { + "description": "The request is accepted and is being processed" + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions": { + "get": { + "summary": "Get `Reservation` revisions.", + "description": "List of all the revisions for the `Reservation`.\n", + "operationId": "Reservation_ListRevisions", + "x-ms-examples": { + "ReservationRevisions": { + "$ref": "./examples/GetReservationRevisions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ReservationIdParameter" + }, + { + "$ref": "#/parameters/ReservationOrderIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Reservation" + ], + "responses": { + "200": { + "description": "List of all the revisions for the `Reservation`.", + "schema": { + "$ref": "#/definitions/ReservationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/providers/Microsoft.Capacity/operations": { + "get": { + "summary": "Get operations.", + "description": "List all the operations.", + "operationId": "Operation_List", + "x-ms-examples": { + "GetOperations": { + "$ref": "./examples/GetOperations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "tags": [ + "Operation" + ], + "responses": { + "200": { + "description": "List all the operations.", + "schema": { + "$ref": "#/definitions/OperationList" + } + }, + "default": { + "description": "Unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "ReservationStatusCode": { + "type": "string", + "enum": [ + "None", + "Pending", + "Active", + "PurchaseError", + "PaymentInstrumentError", + "Split", + "Merged", + "Expired", + "Succeeded" + ], + "x-ms-enum": { + "name": "ReservationStatusCode", + "modelAsString": true + } + }, + "ErrorResponseCode": { + "type": "string", + "enum": [ + "NotSpecified", + "InternalServerError", + "ServerTimeout", + "AuthorizationFailed", + "BadRequest", + "ClientCertificateThumbprintNotSet", + "InvalidRequestContent", + "OperationFailed", + "HttpMethodNotSupported", + "InvalidRequestUri", + "MissingTenantId", + "InvalidTenantId", + "InvalidReservationOrderId", + "InvalidReservationId", + "ReservationIdNotInReservationOrder", + "ReservationOrderNotFound", + "InvalidSubscriptionId", + "InvalidAccessToken", + "InvalidLocationId", + "UnauthenticatedRequestsThrottled", + "InvalidHealthCheckType", + "Forbidden", + "BillingScopeIdCannotBeChanged", + "AppliedScopesNotAssociatedWithCommerceAccount", + "PatchValuesSameAsExisting", + "RoleAssignmentCreationFailed", + "ReservationOrderCreationFailed", + "ReservationOrderNotEnabled", + "CapacityUpdateScopesFailed", + "UnsupportedReservationTerm", + "ReservationOrderIdAlreadyExists", + "RiskCheckFailed", + "CreateQuoteFailed", + "ActivateQuoteFailed", + "NonsupportedAccountId", + "PaymentInstrumentNotFound", + "MissingAppliedScopesForSingle", + "NoValidReservationsToReRate", + "ReRateOnlyAllowedForEA", + "OperationCannotBePerformedInCurrentState", + "InvalidSingleAppliedScopesCount", + "InvalidFulfillmentRequestParameters", + "NotSupportedCountry", + "InvalidRefundQuantity", + "PurchaseError", + "BillingCustomerInputError", + "BillingPaymentInstrumentSoftError", + "BillingPaymentInstrumentHardError", + "BillingTransientError", + "BillingError", + "FulfillmentConfigurationError", + "FulfillmentOutOfStockError", + "FulfillmentTransientError", + "FulfillmentError", + "CalculatePriceFailed" + ], + "x-ms-enum": { + "name": "ErrorResponseCode", + "modelAsString": true + } + }, + "SkuName": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "Catalog": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "The type of resource the SKU applies to.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of SKU", + "readOnly": true + }, + "terms": { + "type": "array", + "readOnly": true, + "description": "Available reservation terms for this resource", + "items": { + "$ref": "#/definitions/ReservationTerm" + } + }, + "locations": { + "type": "array", + "readOnly": true, + "items": { + "type": "string", + "description": "The set of locations that the SKU is available. If not specified, the SKU is available in all locations." + } + }, + "skuProperties": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/SkuProperty" + } + }, + "restrictions": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/SkuRestriction" + } + } + } + }, + "SkuProperty": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "An invariant to describe the feature." + }, + "value": { + "type": "string", + "description": "An invariant if the feature is measured by quantity." + } + } + }, + "SkuRestriction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of restrictions." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." + }, + "reasonCode": { + "type": "string", + "description": "The reason for restriction." + } + } + }, + "ReservationOrderResponse": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "etag": { + "type": "integer" + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Identifier of the reservation" + }, + "name": { + "type": "string", + "readOnly": true, + "description": "Name of the reservation" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ReservationOrderProperties" + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Type of resource. \"Microsoft.Capacity/reservations\"" + } + } + }, + "ReservationTerm": { + "type": "string", + "description": "Represent the term of Reservation.", + "enum": [ + "P1Y", + "P3Y" + ], + "x-ms-enum": { + "name": "ReservationTerm", + "modelAsString": true + } + }, + "ReservationOrderProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Friendly name for user to easily identified the reservation." + }, + "requestDateTime": { + "type": "string", + "format": "date-time", + "description": "This is the DateTime when the reservation was initially requested for purchase." + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "This is the DateTime when the reservation was created." + }, + "expiryDate": { + "type": "string", + "format": "date", + "description": "This is the date when the Reservation will expire." + }, + "originalQuantity": { + "type": "integer", + "format": "int32", + "description": "Total Quantity of the SKUs purchased in the Reservation." + }, + "term": { + "$ref": "#/definitions/ReservationTerm" + }, + "provisioningState": { + "type": "string", + "description": "Current state of the reservation." + }, + "reservations": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + } + } + }, + "ReservationResponse": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "location": { + "type": "string", + "readOnly": true, + "description": "The Azure Region where the reserved resource lives." + }, + "etag": { + "type": "integer" + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Identifier of the reservation" + }, + "name": { + "type": "string", + "readOnly": true, + "description": "Name of the reservation" + }, + "sku": { + "$ref": "#/definitions/SkuName" + }, + "properties": { + "$ref": "#/definitions/ReservationProperties" + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Type of resource. \"Microsoft.Capacity/reservationOrders/reservations\"" + } + } + }, + "ReservationProperties": { + "type": "object", + "properties": { + "reservedResourceType": { + "$ref": "#/definitions/ReservedResourceType" + }, + "instanceFlexibility": { + "$ref": "#/definitions/InstanceFlexibility" + }, + "displayName": { + "type": "string", + "description": "Friendly name for user to easily identify the reservation" + }, + "appliedScopes": { + "$ref": "#/definitions/AppliedScopes" + }, + "appliedScopeType": { + "$ref": "#/definitions/AppliedScopeType" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of the SKUs that are part of the Reservation." + }, + "provisioningState": { + "type": "string", + "description": "Current state of the reservation." + }, + "effectiveDateTime": { + "type": "string", + "format": "date-time", + "description": "DateTime of the Reservation starting when this version is effective from." + }, + "lastUpdatedDateTime": { + "type": "string", + "format": "date-time", + "description": "DateTime of the last time the Reservation was updated.", + "readOnly": true + }, + "expiryDate": { + "type": "string", + "format": "date", + "description": "This is the date when the Reservation will expire." + }, + "skuDescription": { + "type": "string", + "description": "Description of the SKU in english." + }, + "extendedStatusInfo": { + "$ref": "#/definitions/ExtendedStatusInfo" + }, + "splitProperties": { + "$ref": "#/definitions/ReservationSplitProperties" + }, + "mergeProperties": { + "$ref": "#/definitions/ReservationMergeProperties" + } + } + }, + "ReservationSplitProperties": { + "type": "object", + "properties": { + "splitDestinations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + }, + "splitSource": { + "type": "string", + "description": "Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "ReservationMergeProperties": { + "type": "object", + "properties": { + "mergeDestination": { + "type": "string", + "description": "Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + }, + "mergeSources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "PatchProperties": { + "type": "object", + "properties": { + "appliedScopeType": { + "$ref": "#/definitions/AppliedScopeType" + }, + "appliedScopes": { + "$ref": "#/definitions/AppliedScopes" + }, + "instanceFlexibility": { + "$ref": "#/definitions/InstanceFlexibility" + }, + "name": { + "description": "Name of the Reservation", + "type": "string" + } + } + }, + "SplitProperties": { + "type": "object", + "properties": { + "quantities": { + "type": "array", + "description": "List of the quantities in the new reservations to create.", + "items": { + "type": "integer", + "minItems": 2, + "maxItems": 2 + } + }, + "reservationId": { + "type": "string", + "description": "Resource id of the reservation to be split. Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}" + } + } + }, + "MergeProperties": { + "type": "object", + "properties": { + "sources": { + "type": "array", + "description": "Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}", + "items": { + "type": "string" + } + } + } + }, + "MergeRequest": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/MergeProperties" + } + } + }, + "Patch": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PatchProperties" + } + } + }, + "SplitRequest": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SplitProperties" + } + } + }, + "Error": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/ExtendedErrorInfo" + } + } + }, + "ExtendedErrorInfo": { + "type": "object", + "properties": { + "code": { + "$ref": "#/definitions/ErrorResponseCode" + }, + "message": { + "type": "string" + } + } + }, + "ExtendedStatusInfo": { + "type": "object", + "properties": { + "statusCode": { + "$ref": "#/definitions/ReservationStatusCode" + }, + "message": { + "type": "string", + "description": "The message giving detailed information about the status code." + } + } + }, + "ReservationOrderList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationOrderResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservationOrders." + } + } + }, + "ReservationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ReservationResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservations." + } + } + }, + "AppliedReservations": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the applied reservations", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of resource. \"Microsoft.Capacity/AppliedReservations\"", + "readOnly": true + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AppliedReservationsProperties" + } + } + }, + "AppliedReservationsProperties": { + "type": "object", + "properties": { + "reservationOrderIds": { + "$ref": "#/definitions/AppliedReservationList" + } + } + }, + "AppliedReservationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string", + "description": "Reservation resource Id. \"/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}\"" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of reservations" + } + } + }, + "OperationList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/OperationResponse" + } + }, + "nextLink": { + "type": "string", + "description": "Url to get the next page of items." + } + } + }, + "OperationResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "display": { + "$ref": "#/definitions/OperationDisplay" + }, + "origin": { + "type": "string" + } + } + }, + "OperationDisplay": { + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "InstanceFlexibility": { + "type": "string", + "description": "Allows reservation discount to be applied across skus within the same AutofitGroup. Not all skus support instance size flexibility.", + "enum": [ + "On", + "Off", + "NotSupported" + ], + "x-ms-enum": { + "name": "InstanceFlexibility", + "modelAsString": true + } + }, + "AppliedScopeType": { + "type": "string", + "description": "Type of the Applied Scope.", + "enum": [ + "Single", + "Shared" + ], + "x-ms-enum": { + "name": "AppliedScopeType", + "modelAsString": true + } + }, + "AppliedScopes": { + "type": "array", + "description": "List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.", + "items": { + "type": "string", + "minItems": 1, + "maxItems": 1 + } + }, + "ReservedResourceType": { + "type": "string", + "description": "The type of the resource that is being reserved.", + "enum": [ + "VirtualMachines", + "SqlDatabases", + "SuseLinux", + "CosmosDb" + ], + "x-ms-enum": { + "name": "ReservedResourceType", + "modelAsString": true + } + } + }, + "parameters": { + "ReservationIdParameter": { + "name": "reservationId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Id of the Reservation Item" + }, + "MergeParameter": { + "name": "body", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed for commercial request for a reservation", + "schema": { + "$ref": "#/definitions/MergeRequest" + } + }, + "PatchParameter": { + "name": "parameters", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed to patch a reservation item", + "schema": { + "$ref": "#/definitions/Patch" + } + }, + "SplitParameter": { + "name": "body", + "x-ms-parameter-location": "method", + "in": "body", + "required": true, + "description": "Information needed to Split a reservation item", + "schema": { + "$ref": "#/definitions/SplitRequest" + } + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "Supported version.", + "required": true, + "type": "string" + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Id of the subscription" + }, + "ReservedResourceTypeIdParameter": { + "name": "reservedResourceType", + "x-ms-parameter-location": "method", + "in": "query", + "required": true, + "type": "string", + "description": "The type of the resource for which the skus should be provided." + }, + "LocationIdParameter": { + "name": "location", + "x-ms-parameter-location": "method", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the skus based on the location specified in this parameter. This can be an azure region or global" + }, + "ReservationOrderIdParameter": { + "name": "reservationOrderId", + "x-ms-parameter-location": "method", + "in": "path", + "required": true, + "type": "string", + "description": "Order Id of the reservation\n" + } + } } \ No newline at end of file From e9bea317fb008ae36028d5900a56253fd6c8abb5 Mon Sep 17 00:00:00 2001 From: Yulu Liu Date: Wed, 22 Aug 2018 12:47:02 -0700 Subject: [PATCH 4/4] Reservation RP: Update python package version to 0.2.2 --- specification/reservations/resource-manager/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/reservations/resource-manager/readme.md b/specification/reservations/resource-manager/readme.md index 7f346d0a3e9b..f49f339df3cf 100644 --- a/specification/reservations/resource-manager/readme.md +++ b/specification/reservations/resource-manager/readme.md @@ -90,7 +90,7 @@ python: payload-flattening-threshold: 2 namespace: azure.mgmt.reservations package-name: azure-mgmt-reservations - package-version: 0.2.0 + package-version: 0.2.2 clear-output-folder: true ``` ``` yaml $(python) && $(python-mode) == 'update'