From e27618987eca263a5124865dee3e5ac689bfe7ce Mon Sep 17 00:00:00 2001 From: gracekarina Date: Wed, 30 Oct 2019 17:04:40 -0500 Subject: [PATCH] refs - issue #1143 - changes to support properties in ComposedModel --- .../parser/util/SwaggerDeserializer.java | 47 +- .../io/swagger/parser/SwaggerParserTest.java | 8 +- .../src/test/resources/issue1143.json | 1404 +++++++++++++++++ 3 files changed, 1437 insertions(+), 22 deletions(-) create mode 100644 modules/swagger-parser/src/test/resources/issue1143.json diff --git a/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java b/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java index 0e7b31b81e..11ab6e926f 100644 --- a/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java +++ b/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java @@ -8,7 +8,6 @@ import io.swagger.models.properties.ArrayProperty; import io.swagger.models.properties.Property; import io.swagger.models.properties.PropertyBuilder; -import io.swagger.models.properties.RefProperty; import io.swagger.util.Json; import java.math.BigDecimal; @@ -904,26 +903,7 @@ public Model definition(ObjectNode node, String location, ParseResult result) { ExternalDocs docs = externalDocs(externalDocs, location, result); impl.setExternalDocs(docs); - ObjectNode properties = getObject("properties", node, false, location, result); - if(properties != null) { - Set propertyNames = getKeys(properties); - for(String propertyName : propertyNames) { - JsonNode propertyNode = properties.get(propertyName); - if(propertyNode.getNodeType().equals(JsonNodeType.OBJECT)) { - ObjectNode on = (ObjectNode) propertyNode; - Property property = property(on, location, result); - if(property != null) { - if ("array".equals(property.getType()) && !(property instanceof ArrayProperty && ((ArrayProperty) property).getItems() != null)) { - result.missing(location, "items"); - } - } - impl.property(propertyName, property); - } - else { - result.invalidType(location, "properties", "object", propertyNode); - } - } - } + addProperties(location,node,result,impl); // need to set properties first ArrayNode required = getArray("required", node, false, location, result); @@ -1045,11 +1025,36 @@ else if(!SCHEMA_KEYS.contains(key)) { } } + addProperties(location,node,result,model); + return model; } return null; } + private void addProperties(String location, ObjectNode node, ParseResult result, AbstractModel model) { + ObjectNode properties = getObject("properties", node, false, location, result); + if(properties != null) { + Set propertyNames = getKeys(properties); + for(String propertyName : propertyNames) { + JsonNode propertyNode = properties.get(propertyName); + if(propertyNode.getNodeType().equals(JsonNodeType.OBJECT)) { + ObjectNode on = (ObjectNode) propertyNode; + Property property = property(on, location, result); + if(property != null) { + if ("array".equals(property.getType()) && !(property instanceof ArrayProperty && ((ArrayProperty) property).getItems() != null)) { + result.missing(location, "items"); + } + } + model.addProperty(propertyName, property); + } + else { + result.invalidType(location, "properties", "object", propertyNode); + } + } + } + } + public Map properties(ObjectNode node, String location, ParseResult result) { if(node == null) { return null; diff --git a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java index 7fcbb8a5d8..3e06daef06 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java @@ -32,7 +32,6 @@ import io.swagger.models.properties.StringProperty; import io.swagger.parser.util.TestUtils; import io.swagger.parser.util.SwaggerDeserializationResult; -import io.swagger.parser.util.TestUtils; import io.swagger.util.Json; import io.swagger.util.Yaml; import org.testng.Assert; @@ -57,6 +56,13 @@ public class SwaggerParserTest { + @Test + public void testIssue1143(){ + SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("issue1143.json", null, true); + assertNotNull(result.getSwagger().getDefinitions().get("RedisResource")); + assertNotNull(result.getSwagger().getDefinitions().get("identificacion_usuario_aplicacion")); + } + @Test public void testIssue1204() { SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("issue1204.yaml", null, true); diff --git a/modules/swagger-parser/src/test/resources/issue1143.json b/modules/swagger-parser/src/test/resources/issue1143.json new file mode 100644 index 0000000000..67984ec0d0 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/issue1143.json @@ -0,0 +1,1404 @@ +{ + "swagger": "2.0", + "info": { + "title": "RedisManagementClient", + "description": "REST API for Azure Redis Cache Service.", + "version": "2018-03-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "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": { + "/providers/Microsoft.Cache/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available REST API operations of the Microsoft.Cache provider.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of operations.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/CheckNameAvailability": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_CheckNameAvailability", + "x-ms-examples": { + "RedisCacheList": { + "$ref": "./examples/RedisCacheCheckNameAvailability.json" + } + }, + "description": "Checks that the redis cache name is valid and is not already in use.", + "parameters": [ + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityParameters" + }, + "description": "Parameters supplied to the CheckNameAvailability Redis operation. The only supported resource type is 'Microsoft.Cache/redis'" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Name is available" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/listUpgradeNotifications": { + "get": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ListUpgradeNotifications", + "x-ms-examples": { + "RedisCacheGet": { + "$ref": "./examples/RedisCacheListUpgradeNotifications.json" + } + }, + "description": "Gets any upgrade notifications for a Redis cache.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "history", + "in": "query", + "required": true, + "type": "number", + "format": "double", + "description": "how many minutes in past to look for upgrade notifications" + } + ], + "responses": { + "200": { + "description": "All upgrade notifications in given time range", + "schema": { + "$ref": "#/definitions/NotificationListResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}": { + "put": { + "tags": [ + "Redis" + ], + "operationId": "Redis_Create", + "x-ms-examples": { + "RedisCacheCreate": { + "$ref": "./examples/RedisCacheCreate.json" + } + }, + "description": "Create or replace (overwrite/recreate, with potential downtime) an existing Redis cache.", + "x-ms-long-running-operation": true, + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisCreateParameters" + }, + "description": "Parameters supplied to the Create Redis operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "The new redis cache was successfully created. Check provisioningState to see detailed status.", + "schema": { + "$ref": "#/definitions/RedisResource" + } + }, + "200": { + "description": "The existing redis cache was successfully updated. Check provisioningState to see detailed status.", + "schema": { + "$ref": "#/definitions/RedisResource" + } + } + } + }, + "patch": { + "tags": [ + "Redis" + ], + "operationId": "Redis_Update", + "x-ms-examples": { + "RedisCacheUpdate": { + "$ref": "./examples/RedisCacheUpdate.json" + } + }, + "description": "Update an existing Redis cache.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisUpdateParameters" + }, + "description": "Parameters supplied to the Update Redis operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The existing redis cache was successfully updated. Check provisioningState to see detailed status.", + "schema": { + "$ref": "#/definitions/RedisResource" + } + } + } + }, + "delete": { + "tags": [ + "Redis" + ], + "operationId": "Redis_Delete", + "x-ms-examples": { + "RedisCacheDelete": { + "$ref": "./examples/RedisCacheDelete.json" + } + }, + "description": "Deletes a Redis cache.", + "x-ms-long-running-operation": true, + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The redis cache was successfully deleted." + }, + "202": { + "description": "The redis cache 'delete' operation was successfully enqueued; follow the Location header to poll for final outcome." + }, + "204": { + "description": "The redis cache was successfully deleted." + } + } + }, + "get": { + "tags": [ + "Redis" + ], + "operationId": "Redis_Get", + "x-ms-examples": { + "RedisCacheGet": { + "$ref": "./examples/RedisCacheGet.json" + } + }, + "description": "Gets a Redis cache (resource description).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The redis cache was successfully found.", + "schema": { + "$ref": "#/definitions/RedisResource" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis": { + "get": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ListByResourceGroup", + "x-ms-examples": { + "RedisCacheListByResourceGroup": { + "$ref": "./examples/RedisCacheListByResourceGroup.json" + } + }, + "description": "Lists all Redis caches in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RedisListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/Redis": { + "get": { + "tags": [ + "Redis" + ], + "operationId": "Redis_List", + "x-ms-examples": { + "RedisCacheList": { + "$ref": "./examples/RedisCacheList.json" + } + }, + "description": "Gets all Redis caches in the specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RedisListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/listKeys": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ListKeys", + "x-ms-examples": { + "RedisCacheListKeys": { + "$ref": "./examples/RedisCacheListKeys.json" + } + }, + "description": "Retrieve a Redis cache's access keys. This operation requires write permission to the cache resource.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Lists the keys for the specified Redis cache.", + "schema": { + "$ref": "#/definitions/RedisAccessKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/regenerateKey": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_RegenerateKey", + "x-ms-examples": { + "RedisCacheRegenerateKey": { + "$ref": "./examples/RedisCacheRegenerateKey.json" + } + }, + "description": "Regenerate Redis cache's access keys. This operation requires write permission to the cache resource.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisRegenerateKeyParameters" + }, + "description": "Specifies which key to regenerate." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Lists the regenerated keys for Redis Cache", + "schema": { + "$ref": "#/definitions/RedisAccessKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/forceReboot": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ForceReboot", + "x-ms-examples": { + "RedisCacheForceReboot": { + "$ref": "./examples/RedisCacheForceReboot.json" + } + }, + "description": "Reboot specified Redis node(s). This operation requires write permission to the cache resource. There can be potential data loss.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisRebootParameters" + }, + "description": "Specifies which Redis node(s) to reboot." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Reboot operation successfully enqueued", + "schema": { + "$ref": "#/definitions/RedisForceRebootResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/import": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ImportData", + "x-ms-examples": { + "RedisCacheImport": { + "$ref": "./examples/RedisCacheImport.json" + } + }, + "x-ms-long-running-operation": true, + "description": "Import data into Redis cache.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImportRDBParameters" + }, + "description": "Parameters for Redis import operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Import operation successfully enqueued; follow the Location header to poll for final outcome." + }, + "200": { + "description": "Import operation succeeded." + }, + "204": { + "description": "Import operation succeeded." + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/export": { + "post": { + "tags": [ + "Redis" + ], + "operationId": "Redis_ExportData", + "x-ms-examples": { + "RedisCacheExport": { + "$ref": "./examples/RedisCacheExport.json" + } + }, + "x-ms-long-running-operation": true, + "description": "Export data from the redis cache to blobs in a container.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExportRDBParameters" + }, + "description": "Parameters for Redis export operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Export operation successfully enqueued; follow the Location header to poll for final outcome." + }, + "200": { + "description": "Export operation succeeded." + }, + "204": { + "description": "Export operation succeeded." + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/firewallRules": { + "get": { + "tags": [ + "Redis", + "FirewallRules" + ], + "operationId": "FirewallRules_ListByRedisResource", + "description": "Gets all firewall rules in the specified redis cache.", + "x-ms-examples": { + "RedisCacheFirewallRulesList": { + "$ref": "./examples/RedisCacheFirewallRulesList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "cacheName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + } + ], + "responses": { + "200": { + "description": "Successfully got the current rules", + "schema": { + "$ref": "#/definitions/RedisFirewallRuleListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/firewallRules/{ruleName}": { + "put": { + "tags": [ + "Redis", + "FirewallRules" + ], + "operationId": "FirewallRules_CreateOrUpdate", + "description": "Create or update a redis cache firewall rule", + "x-ms-examples": { + "RedisCacheFirewallRuleCreate": { + "$ref": "./examples/RedisCacheFirewallRuleCreate.json" + } + }, + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "cacheName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "ruleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisFirewallRuleCreateParameters" + }, + "description": "Parameters supplied to the create or update redis firewall rule operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Resource was successfully updated", + "schema": { + "$ref": "#/definitions/RedisFirewallRule" + } + }, + "201": { + "description": "Resource was successfully created", + "schema": { + "$ref": "#/definitions/RedisFirewallRule" + } + } + } + }, + "get": { + "tags": [ + "Redis", + "FirewallRules" + ], + "operationId": "FirewallRules_Get", + "description": "Gets a single firewall rule in a specified redis cache.", + "x-ms-examples": { + "RedisCacheFirewallRuleGet": { + "$ref": "./examples/RedisCacheFirewallRuleGet.json" + } + }, + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "cacheName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "ruleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Successfully found the rule", + "schema": { + "$ref": "#/definitions/RedisFirewallRule" + } + } + } + }, + "delete": { + "tags": [ + "Redis", + "FirewallRules" + ], + "operationId": "FirewallRules_Delete", + "description": "Deletes a single firewall rule in a specified redis cache.", + "x-ms-examples": { + "RedisCacheFirewallRuleDelete": { + "$ref": "./examples/RedisCacheFirewallRuleDelete.json" + } + }, + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "cacheName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "ruleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Successfully deleted the rule" + }, + "204": { + "description": "Successfully deleted the rule" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/patchSchedules": { + "get": { + "tags": [ + "Redis", + "PatchSchedules" + ], + "operationId": "PatchSchedules_ListByRedisResource", + "description": "Gets all patch schedules in the specified redis cache (there is only one).", + "x-ms-examples": { + "RedisCachePatchSchedulesList": { + "$ref": "./examples/RedisCachePatchSchedulesList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "cacheName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + } + ], + "responses": { + "200": { + "description": "Successfully got the current patch schedules", + "schema": { + "$ref": "#/definitions/RedisPatchScheduleListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/patchSchedules/{default}": { + "put": { + "tags": [ + "Redis", + "PatchSchedules" + ], + "operationId": "PatchSchedules_CreateOrUpdate", + "x-ms-examples": { + "RedisCachePatchSchedulesCreateOrUpdate": { + "$ref": "./examples/RedisCachePatchSchedulesCreateOrUpdate.json" + } + }, + "description": "Create or replace the patching schedule for Redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "default", + "in": "path", + "required": true, + "type": "string", + "description": "Default string modeled as parameter for auto generation to work correctly.", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "defaultName", + "modelAsString": true + } + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisPatchSchedule" + }, + "description": "Parameters to set the patching schedule for Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The patch schedule was successfully updated.", + "schema": { + "$ref": "#/definitions/RedisPatchSchedule" + } + }, + "201": { + "description": "The patch schedule was successfully created.", + "schema": { + "$ref": "#/definitions/RedisPatchSchedule" + } + } + } + }, + "delete": { + "tags": [ + "Redis", + "PatchSchedules" + ], + "operationId": "PatchSchedules_Delete", + "x-ms-examples": { + "RedisCachePatchSchedulesDelete": { + "$ref": "./examples/RedisCachePatchSchedulesDelete.json" + } + }, + "description": "Deletes the patching schedule of a redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the redis cache." + }, + { + "name": "default", + "in": "path", + "required": true, + "type": "string", + "description": "Default string modeled as parameter for auto generation to work correctly.", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "defaultName", + "modelAsString": true + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Success." + }, + "204": { + "description": "Success." + } + } + }, + "get": { + "tags": [ + "Redis", + "PatchSchedules" + ], + "operationId": "PatchSchedules_Get", + "x-ms-examples": { + "RedisCachePatchSchedulesGet": { + "$ref": "./examples/RedisCachePatchSchedulesGet.json" + } + }, + "description": "Gets the patching schedule of a redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the redis cache." + }, + { + "name": "default", + "in": "path", + "required": true, + "type": "string", + "description": "Default string modeled as parameter for auto generation to work correctly.", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "defaultName", + "modelAsString": true + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Response of get patch schedules.", + "schema": { + "$ref": "#/definitions/RedisPatchSchedule" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/linkedServers/{linkedServerName}": { + "put": { + "tags": [ + "Redis" + ], + "operationId": "LinkedServer_Create", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "LinkedServer_Create": { + "$ref": "./examples/RedisCacheLinkedServer_Create.json" + } + }, + "description": "Adds a linked server to the Redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Redis cache." + }, + { + "name": "linkedServerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the linked server that is being added to the Redis cache." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RedisLinkedServerCreateParameters" + }, + "description": "Parameters supplied to the Create Linked server operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The linked server was successfully added.", + "schema": { + "$ref": "#/definitions/RedisLinkedServerWithProperties" + } + }, + "201": { + "description": "The linked server was successfully added.", + "schema": { + "$ref": "#/definitions/RedisLinkedServerWithProperties" + } + } + } + }, + "delete": { + "tags": [ + "Redis" + ], + "operationId": "LinkedServer_Delete", + "x-ms-examples": { + "LinkedServerDelete": { + "$ref": "./examples/RedisCacheLinkedServer_Delete.json" + } + }, + "description": "Deletes the linked server from a redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the redis cache." + }, + { + "name": "linkedServerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the linked server that is being added to the Redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Linked server was successfully deleted." + } + } + }, + "get": { + "tags": [ + "Redis" + ], + "operationId": "LinkedServer_Get", + "x-ms-examples": { + "LinkedServer_Get": { + "$ref": "./examples/RedisCacheLinkedServer_Get.json" + } + }, + "description": "Gets the detailed information about a linked server of a redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the redis cache." + }, + { + "name": "linkedServerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the linked server." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Response of get linked server.", + "schema": { + "$ref": "#/definitions/RedisLinkedServerWithProperties" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/linkedServers": { + "get": { + "tags": [ + "Redis" + ], + "operationId": "LinkedServer_List", + "x-ms-examples": { + "LinkedServer_List": { + "$ref": "./examples/RedisCacheLinkedServer_List.json" + } + }, + "description": "Gets the list of linked servers associated with this redis cache (requires Premium SKU).", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the redis cache." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Response of get linked servers.", + "schema": { + "$ref": "#/definitions/RedisLinkedServerWithPropertiesList" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "identificacion_usuario_aplicacion": { + "allOf": [ + { + "$ref": "#/definitions/identificacion_usuario" + } + ], + "properties": { + "aplicacion": { + "type": "string", + "description": "some description", + "example": "some example value" + } + } + }, + "RedisResource": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/RedisProperties", + "description": "Redis cache properties." + }, + "zones": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of availability zones denoting where the resource needs to come from." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "description": "A single Redis item in List or Get Operation." + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Gets subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + } +} \ No newline at end of file