Skip to content

Commit c15a663

Browse files
ravgillamar-sagare
andauthored
[CosmosDB] Apis to redistribute throughput among physical partitions (#18664)
* initial changes * Fix IsDryRun parameter * Revert IsDryRun change, fix spec for RedistributeThroughput * model throughputpolicy as an enum * remove 200 from specs Co-authored-by: amar-sagare <[email protected]>
1 parent 5375da9 commit c15a663

File tree

5 files changed

+501
-0
lines changed

5 files changed

+501
-0
lines changed

specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2022-02-15-preview/cosmos-db.json

Lines changed: 369 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2474,6 +2474,116 @@
24742474
}
24752475
}
24762476
},
2477+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/retrieveThroughputDistribution": {
2478+
"post": {
2479+
"operationId": "SqlResources_SqlContainerRetrieveThroughputDistribution",
2480+
"x-ms-examples": {
2481+
"CosmosDBSqlContainerRetrieveThroughputDistribution": {
2482+
"$ref": "./examples/CosmosDBSqlContainerRetrieveThroughputDistribution.json"
2483+
}
2484+
},
2485+
"description": "Retrieve throughput distribution for an Azure Cosmos DB SQL container",
2486+
"x-ms-long-running-operation": true,
2487+
"x-ms-long-running-operation-options": {
2488+
"final-state-via": "location"
2489+
},
2490+
"parameters": [
2491+
{
2492+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
2493+
},
2494+
{
2495+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
2496+
},
2497+
{
2498+
"$ref": "#/parameters/accountNameParameter"
2499+
},
2500+
{
2501+
"$ref": "#/parameters/databaseNameParameter"
2502+
},
2503+
{
2504+
"$ref": "#/parameters/containerNameParameter"
2505+
},
2506+
{
2507+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
2508+
},
2509+
{
2510+
"name": "retrieveThroughputParameters",
2511+
"in": "body",
2512+
"required": true,
2513+
"schema": {
2514+
"$ref": "#/definitions/RetrieveThroughputParameters"
2515+
},
2516+
"description": "The parameters to provide for retrieving throughput distribution for the current SQL container."
2517+
}
2518+
],
2519+
"responses": {
2520+
"202": {
2521+
"description": "The retrieve throughput distribution for SQL container operation will complete asynchronously."
2522+
},
2523+
"default": {
2524+
"description": "Error response describing why the operation failed.",
2525+
"schema": {
2526+
"$ref": "#/definitions/CloudError"
2527+
}
2528+
}
2529+
}
2530+
}
2531+
},
2532+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/redistributeThroughput": {
2533+
"post": {
2534+
"operationId": "SqlResources_SqlContainerRedistributeThroughput",
2535+
"x-ms-examples": {
2536+
"CosmosDBSqlContainerRedistributeThroughput": {
2537+
"$ref": "./examples/CosmosDBSqlContainerRedistributeThroughput.json"
2538+
}
2539+
},
2540+
"description": "Redistribute throughput for an Azure Cosmos DB SQL container",
2541+
"x-ms-long-running-operation": true,
2542+
"x-ms-long-running-operation-options": {
2543+
"final-state-via": "location"
2544+
},
2545+
"parameters": [
2546+
{
2547+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
2548+
},
2549+
{
2550+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
2551+
},
2552+
{
2553+
"$ref": "#/parameters/accountNameParameter"
2554+
},
2555+
{
2556+
"$ref": "#/parameters/databaseNameParameter"
2557+
},
2558+
{
2559+
"$ref": "#/parameters/containerNameParameter"
2560+
},
2561+
{
2562+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
2563+
},
2564+
{
2565+
"name": "redistributeThroughputParameters",
2566+
"in": "body",
2567+
"required": true,
2568+
"schema": {
2569+
"$ref": "#/definitions/RedistributeThroughputParameters"
2570+
},
2571+
"description": "The parameters to provide for redistributing throughput for the current SQL container."
2572+
}
2573+
],
2574+
"responses": {
2575+
"202": {
2576+
"description": "The redistribution throughput for SQL container operation will complete asynchronously."
2577+
},
2578+
"default": {
2579+
"description": "Error response describing why the operation failed.",
2580+
"schema": {
2581+
"$ref": "#/definitions/CloudError"
2582+
}
2583+
}
2584+
}
2585+
}
2586+
},
24772587
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures": {
24782588
"get": {
24792589
"operationId": "SqlResources_ListSqlStoredProcedures",
@@ -3349,6 +3459,116 @@
33493459
}
33503460
}
33513461
},
3462+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/retrieveThroughputDistribution": {
3463+
"post": {
3464+
"operationId": "MongoDBResources_SqlContainerRetrieveThroughputDistribution",
3465+
"x-ms-examples": {
3466+
"CosmosDBMongoDBCollectionRetrieveThroughputDistribution": {
3467+
"$ref": "./examples/CosmosDBMongoDBCollectionRetrieveThroughputDistribution.json"
3468+
}
3469+
},
3470+
"description": "Retrieve throughput distribution for an Azure Cosmos DB MongoDB container",
3471+
"x-ms-long-running-operation": true,
3472+
"x-ms-long-running-operation-options": {
3473+
"final-state-via": "location"
3474+
},
3475+
"parameters": [
3476+
{
3477+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
3478+
},
3479+
{
3480+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
3481+
},
3482+
{
3483+
"$ref": "#/parameters/accountNameParameter"
3484+
},
3485+
{
3486+
"$ref": "#/parameters/databaseNameParameter"
3487+
},
3488+
{
3489+
"$ref": "#/parameters/collectionNameParameter"
3490+
},
3491+
{
3492+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
3493+
},
3494+
{
3495+
"name": "retrieveThroughputParameters",
3496+
"in": "body",
3497+
"required": true,
3498+
"schema": {
3499+
"$ref": "#/definitions/RetrieveThroughputParameters"
3500+
},
3501+
"description": "The parameters to provide for retrieving throughput distribution for the current MongoDB container."
3502+
}
3503+
],
3504+
"responses": {
3505+
"202": {
3506+
"description": "The retrieve throughput distribution for MongoDB container operation will complete asynchronously."
3507+
},
3508+
"default": {
3509+
"description": "Error response describing why the operation failed.",
3510+
"schema": {
3511+
"$ref": "#/definitions/CloudError"
3512+
}
3513+
}
3514+
}
3515+
}
3516+
},
3517+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/redistributeThroughput": {
3518+
"post": {
3519+
"operationId": "MongoDBResources_MongoDBContainerRedistributeThroughput",
3520+
"x-ms-examples": {
3521+
"CosmosDBMongoDBCollectionRedistributeThroughput": {
3522+
"$ref": "./examples/CosmosDBMongoDBCollectionRedistributeThroughput.json"
3523+
}
3524+
},
3525+
"description": "Redistribute throughput for an Azure Cosmos DB MongoDB container",
3526+
"x-ms-long-running-operation": true,
3527+
"x-ms-long-running-operation-options": {
3528+
"final-state-via": "location"
3529+
},
3530+
"parameters": [
3531+
{
3532+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
3533+
},
3534+
{
3535+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
3536+
},
3537+
{
3538+
"$ref": "#/parameters/accountNameParameter"
3539+
},
3540+
{
3541+
"$ref": "#/parameters/databaseNameParameter"
3542+
},
3543+
{
3544+
"$ref": "#/parameters/collectionNameParameter"
3545+
},
3546+
{
3547+
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
3548+
},
3549+
{
3550+
"name": "redistributeThroughputParameters",
3551+
"in": "body",
3552+
"required": true,
3553+
"schema": {
3554+
"$ref": "#/definitions/RedistributeThroughputParameters"
3555+
},
3556+
"description": "The parameters to provide for redistributing throughput for the current MongoDB container."
3557+
}
3558+
],
3559+
"responses": {
3560+
"202": {
3561+
"description": "The redistribution throughput for MongoDB container operation will complete asynchronously."
3562+
},
3563+
"default": {
3564+
"description": "Error response describing why the operation failed.",
3565+
"schema": {
3566+
"$ref": "#/definitions/CloudError"
3567+
}
3568+
}
3569+
}
3570+
}
3571+
},
33523572
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections": {
33533573
"get": {
33543574
"operationId": "MongoDBResources_ListMongoDBCollections",
@@ -8263,6 +8483,155 @@
82638483
}
82648484
}
82658485
},
8486+
"RedistributeThroughputParameters": {
8487+
"description": "Cosmos DB redistribute throughput parameters object",
8488+
"type": "object",
8489+
"properties": {
8490+
"properties": {
8491+
"x-ms-client-flatten": true,
8492+
"description": "Properties to redistribute throughput parameters object",
8493+
"$ref": "#/definitions/RedistributeThroughputProperties"
8494+
}
8495+
},
8496+
"allOf": [
8497+
{
8498+
"$ref": "#/definitions/ARMResourceProperties"
8499+
}
8500+
],
8501+
"required": [
8502+
"properties"
8503+
]
8504+
},
8505+
"RedistributeThroughputProperties": {
8506+
"description": "Properties to redistribute throughput for Azure Cosmos DB resource.",
8507+
"type": "object",
8508+
"properties": {
8509+
"resource": {
8510+
"description": "The standard JSON format of a resource throughput",
8511+
"$ref": "#/definitions/RedistributeThroughputPropertiesResource"
8512+
}
8513+
},
8514+
"required": [
8515+
"resource"
8516+
]
8517+
},
8518+
"RedistributeThroughputPropertiesResource": {
8519+
"type": "object",
8520+
"description": "Resource to redistribute throughput for Azure Cosmos DB resource",
8521+
"properties": {
8522+
"throughputPolicy": {
8523+
"description": "ThroughputPolicy to apply for throughput redistribution",
8524+
"type": "string",
8525+
"enum": [
8526+
"none",
8527+
"equal",
8528+
"custom"
8529+
],
8530+
"x-ms-enum": {
8531+
"name": "ThroughputPolicyType",
8532+
"modelAsString": true
8533+
}
8534+
},
8535+
"targetPhysicalPartitionThroughputInfo": {
8536+
"type": "array",
8537+
"description": "Array of PhysicalPartitionThroughputInfoResource objects.",
8538+
"items": {
8539+
"$ref": "#/definitions/PhysicalPartitionThroughputInfoResource"
8540+
}
8541+
},
8542+
"sourcePhysicalPartitionThroughputInfo": {
8543+
"type": "array",
8544+
"description": "Array of PhysicalPartitionThroughputInfoResource objects.",
8545+
"items": {
8546+
"$ref": "#/definitions/PhysicalPartitionThroughputInfoResource"
8547+
}
8548+
}
8549+
},
8550+
"required": [
8551+
"throughputPolicy",
8552+
"targetPhysicalPartitionThroughputInfo",
8553+
"sourcePhysicalPartitionThroughputInfo"
8554+
]
8555+
},
8556+
"RetrieveThroughputParameters": {
8557+
"description": "Cosmos DB retrieve throughput parameters object",
8558+
"type": "object",
8559+
"properties": {
8560+
"properties": {
8561+
"x-ms-client-flatten": true,
8562+
"description": "Properties to retrieve throughput parameters object",
8563+
"$ref": "#/definitions/RetrieveThroughputProperties"
8564+
}
8565+
},
8566+
"allOf": [
8567+
{
8568+
"$ref": "#/definitions/ARMResourceProperties"
8569+
}
8570+
],
8571+
"required": [
8572+
"properties"
8573+
]
8574+
},
8575+
"RetrieveThroughputProperties": {
8576+
"description": "Properties to retrieve throughput for Azure Cosmos DB resource.",
8577+
"type": "object",
8578+
"properties": {
8579+
"resource": {
8580+
"description": "The standard JSON format of a resource throughput",
8581+
"$ref": "#/definitions/RetrieveThroughputPropertiesResource"
8582+
}
8583+
},
8584+
"required": [
8585+
"resource"
8586+
]
8587+
},
8588+
"RetrieveThroughputPropertiesResource": {
8589+
"type": "object",
8590+
"description": "Resource to retrieve throughput information for Cosmos DB resource",
8591+
"properties": {
8592+
"physicalPartitionIds": {
8593+
"type": "array",
8594+
"description": "Array of PhysicalPartitionId objects.",
8595+
"items": {
8596+
"$ref": "#/definitions/PhysicalPartitionId"
8597+
}
8598+
}
8599+
},
8600+
"required": [
8601+
"physicalPartitionIds"
8602+
]
8603+
},
8604+
"PhysicalPartitionId": {
8605+
"type": "object",
8606+
"description": "PhysicalPartitionId object",
8607+
"properties": {
8608+
"id": {
8609+
"type": "string",
8610+
"description": "Id of a physical partition"
8611+
}
8612+
},
8613+
"required": [
8614+
"id"
8615+
]
8616+
},
8617+
"PhysicalPartitionThroughputInfoResource": {
8618+
"type": "object",
8619+
"description": "PhysicalPartitionThroughputInfo object",
8620+
"properties": {
8621+
"id": {
8622+
"type": "string",
8623+
"description": "Id of a physical partition"
8624+
},
8625+
"throughput": {
8626+
"type": "number",
8627+
"format": "double",
8628+
"description": "Throughput of a physical partition"
8629+
}
8630+
},
8631+
"required": [
8632+
"id"
8633+
]
8634+
},
82668635
"ClientEncryptionKeyResource": {
82678636
"type": "object",
82688637
"description": "Cosmos DB client encryption key resource object.",

0 commit comments

Comments
 (0)