Azure / Azure/azure-rest-api-specs
CosmosDB.Account GET API doesn't return createMode when capabilities is set and API version is 2021-10-15
- Dominant language
- TypeSpec
- Stars
- 3.1k
- Forks
- 5.9k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 444
Description
Recently we found CosmosDB.Account GET API doesn't return createMode anymore when capabilities is set and API version is 2021-10-15. But the API behavior is different than before since previously CosmosDB.Account GET API can return createMode when capabilities is set and API version is 2021-10-15. Seems it's a regression issue. So could you take a look and fix it asap? Thanks.
Request payload:
```
PUT https://management.azure.com/subscriptions/xx-xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230609103916437492/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca-230609103916437492
{
"identity": {
"type": "SystemAssigned"
},
"kind": "GlobalDocumentDB",
"location": "eastus",
"properties": {
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxStalenessPrefix": 100,
"maxIntervalInSeconds": 5
},
"locations": [
{
"failoverPriority": 0,
"isZoneRedundant": false,
"locationName": "eastus"
}
],
"databaseAccountOfferType": "Standard",
"ipRules": [],
"isVirtualNetworkFilterEnabled": false,
"enableAutomaticFailover": false,
"capabilities": [
{
"name": "EnableTable"
}
],
"virtualNetworkRules": [],
"enableMultipleWriteLocations": false,
"disableKeyBasedMetadataWriteAccess": false,
"defaultIdentity": "FirstPartyIdentity",
"publicNetworkAccess": "Disabled",
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"createMode": "Default",
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypass": "None",
"networkAclBypassResourceIds": [],
"disableLocalAuth": false
},
"tags": {
"ENV": "Test"
}
}
```
Response payload:
```
{
"id": "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-2222222/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca-2222222",
"name": "acctest-ca-2222222",
"location": "East US",
"type": "Microsoft.DocumentDB/databaseAccounts",
"kind": "GlobalDocumentDB",
"tags": {
"ENV": "Test"
},
"systemData": {
"createdAt": "2023-06-09T02:44:00.7512747Z"
},
"properties": {
"provisioningState": "Succeeded",
"documentEndpoint": "https://acctest-ca-2222222.documents.azure.com:443/",
"tableEndpoint": "https://acctest-ca-2222222.table.cosmos.azure.com:443/",
"sqlEndpoint": "https://acctest-ca-2222222.documents.azure.com:443/",
"publicNetworkAccess": "Disabled",
"enableAutomaticFailover": false,
"enableMultipleWriteLocations": false,
"enablePartitionKeyMonitor": false,
"isVirtualNetworkFilterEnabled": false,
"virtualNetworkRules": [],
"EnabledApiTypes": "Table, Sql",
"disableKeyBasedMetadataWriteAccess": false,
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"analyticalStorageConfiguration": {
"schemaType": "WellDefined"
},
"instanceId": "xx-xx-xx-xx-xx",
"databaseAccountOfferType": "Standard",
"defaultIdentity": "FirstPartyIdentity",
"networkAclBypass": "None",
"disableLocalAuth": false,
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxIntervalInSeconds": 5,
"maxStalenessPrefix": 100
},
"configurationOverrides": {},
"writeLocations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"readLocations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"locations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"failoverPolicies": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"failoverPriority": 0
}
],
"cors": [],
"capabilities": [
{
"name": "EnableTable"
}
],
"ipRules": [],
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypassResourceIds": []
},
"identity": {
"type": "SystemAssigned",
"principalId": "xx-xx-xx-xx-xx",
"tenantId": "xx-xx-xx-xx-xx"
}
}
```
Contributor guide
Research direction
Use the CosmosDB.Account resource and API version 2021-10-15 from the reported PUT request as the entry point, then inspect how the corresponding GET response is specified when the capabilities array contains EnableTable. Compare the request and response payloads, especially createMode. Done means a GET response preserves createMode under this condition and a regression check covers it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure
- Domain
- api, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100