From 81be463db43612087282107a9295a8451189f11b Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Thu, 19 Sep 2024 22:21:11 -0700 Subject: [PATCH 01/12] commit inital changes --- .../2024-08-02-preview/CommonDefinitions.json | 195 +++++++++++++++ .../ManagedEnvironments.json | 230 ++++++++++++++++++ 2 files changed, 425 insertions(+) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index 4aae4c03c23b..4f5bc781ff19 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1613,6 +1613,180 @@ "description": "Application-specific metadata in the form of key-value pairs." } } + }, + "ManagedHttpRoute": { + "description": "Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "description": "Certificate resource specific properties", + "type": "object", + "properties": { + "provisioningState": { + "description": "The scale configuration of the session pool.", + "$ref": "#/definitions/HttpRouteProvisioningState" + }, + "fqdn": { + "description": "FQDN of the route resource.", + "type": "string", + "readOnly": true + }, + "customDomains": { + "description": "custom domain bindings for http Routes' hostnames.", + "type": "array", + "items": { + "$ref": "#/definitions/CustomDomain" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "rules": { + "description": "Routing Rules for http route resource.", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteRule" + }, + "x-ms-identifiers": [ + "name" + ] + } + } + } + }, + "x-ms-client-flatten": true + }, + "CustomDomain": { + "description": "Custom Domain of a Container App", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Hostname.", + "type": "string" + }, + "bindingType": { + "description": "Custom Domain binding type.", + "enum": [ + "Disabled", + "SniEnabled" + ], + "type": "string", + "x-ms-enum": { + "name": "bindingType", + "modelAsString": true + } + }, + "certificateId": { + "description": "Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment.", + "type": "string" + } + } + }, + "HttpRouteTarget": { + "description": "Targets - Container App Names, Revision Names, Labels.", + "type": "object", + "properties": { + "containerAppName":{ + "description":"Container App Name to route requests to", + "type": "string" + }, + "RevisionName":{ + "description":"Revision to route requests to", + "type": "string" + }, + "Label":{ + "description":"Label/Revision to route requests to", + "type": "string" + }, + "weight":{ + "description":"Weighted routing", + "type": "integer", + "format": "int32" + } + } + }, + "HttpRouteMatch":{ + "description": "Criteria to match on", + "type": "object", + "properties": { + "prefix": { + "description": "match on all prefix's. Not exact", + "type": "string" + }, + "path": { + "description": "match on exact path", + "type": "string" + }, + "pathSeparatedPrefix": { + "description": "match on all prefix's. Not exact", + "type": "string" + }, + "caseSensitive":{ + "description": "path case sensitive, default is true", + "type": "boolean" + } + } + }, + "HttpRouteAction":{ + "description": "Action to perform once matching of routes is done", + "type": "object", + "properties": { + "prefixRewrite": { + "description": "Rewrite prefix, default is no rewrites", + "type": "string" + } + } + }, + "HttpRoute":{ + "description": "Custom container configuration.", + "type": "object", + "properties": { + "match": { + "description": "Conditions route will match on", + "$ref": "#/definitions/HttpRouteMatch" + }, + "action": { + "description": "Once route is matched, what is the desired action", + "$ref": "#/definitions/HttpRouteAction" + } + } + }, + "HttpRouteRule": { + "description": "Http Route rule.", + "type": "object", + "properties": { + "targets": { + "description": "Targets- container apps, revisions, labels", + "type": "array", + "items":{ + "$ref": "#/definitions/HttpRouteTarget" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "routes": { + "description": "Targets- container apps, revisions, labels", + "type": "array", + "items":{ + "$ref": "#/definitions/HttpRoute" + }, + "x-ms-identifiers": [ + "name" + ] + } + } + }, + "HttpRouteProvisioningState":{ + }, "ManagedCertificateCollection": { "description": "Collection of Managed Certificates.", @@ -1635,6 +1809,27 @@ } } }, + "ManagedHttpRouteConfigCollection": { + "description": "Collection of Advanced Ingress Routing Config resources.", + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "description": "Collection of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHttpRoute" + } + }, + "nextLink": { + "description": "Link to next page of resources.", + "type": "string", + "readOnly": true + } + } + }, "JobTemplate": { "description": "Container Apps Job versioned application definition. Defines the desired state of an immutable revision. Any changes to this section Will result in a new revision being created", "type": "object", diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 8b76eb50b93c..3a87a380a7a1 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -889,6 +889,236 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes/{httpRouteName}": { + "get": { + "tags": [ + "ManagedEnvironments", + "ManagedHttpRoutes" + ], + "summary": "Get the specified Managed Certificate.", + "operationId": "ManagedHttpRoutes_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + } + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Certificate": { + "$ref": "./examples/ManagedHttpRoute_Get.json" + } + } + }, + "put": { + "tags": [ + "ManagedEnvironments", + "ManagedHttpRoutes" + ], + "summary": "Create or Update a Managed Certificate.", + "operationId": "ManagedHttpRoutes_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "name": "managedHttpRouteEnvelope", + "in": "body", + "description": "Http Route config to be created or updated", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + } + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + } + }, + "400": { + "description": "Bad Request.", + "x-ms-error-response": true + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples": { + "Create or Update Certificate": { + "$ref": "./examples/ManagedHttpRoute_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "ManagedEnvironments", + "ManagedHttpRoutes" + ], + "summary": "Deletes the specified Managed Certificate.", + "operationId": "ManagedHttpRoutes_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Delete operation completed" + }, + "204": { + "description": "Http Route does not exist" + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Certificate": { + "$ref": "./examples/ManagedHttpRoutes_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes": { + "get": { + "tags": [ + "ManagedEnvironments", + "ManagedHttpRoutes" + ], + "summary": "Get the Advanced ingress routes in a given managed environment.", + "operationId": "ManagedHttpRoutes_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRouteConfigCollection" + } + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "List Managed Http Routes by Managed Environment": { + "$ref": "./examples/ManagedHttpRoutes_ListByManagedEnvironment.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability": { "post": { "tags": [ From 07a0d629f4be4966b1bcf11aa4beaa49b8fa4392 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Thu, 19 Sep 2024 23:00:52 -0700 Subject: [PATCH 02/12] add example jsons --- .../2024-08-02-preview/CommonDefinitions.json | 19 ++- .../ManagedEnvironments.json | 2 +- .../examples/ManagedHttpRoute_Get.json | 51 +++++++ .../ManagedHttpRoutes_CreateOrUpdate.json | 129 ++++++++++++++++++ .../examples/ManagedHttpRoutes_Delete.json | 14 ++ ...edHttpRoutes_ListByManagedEnvironment.json | 96 +++++++++++++ 6 files changed, 308 insertions(+), 3 deletions(-) create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index 4f5bc781ff19..db150a6a7034 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1785,8 +1785,23 @@ } } }, - "HttpRouteProvisioningState":{ - + "HttpRouteProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Waiting", + "Updating", + "Deleting", + "Pending" + ], + "x-ms-enum": { + "name": "HttpRouteProvisioningState", + "modelAsString": true + } }, "ManagedCertificateCollection": { "description": "Collection of Managed Certificates.", diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 3a87a380a7a1..2556a9aab951 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -1012,7 +1012,7 @@ }, "x-ms-examples": { "Create or Update Certificate": { - "$ref": "./examples/ManagedHttpRoute_CreateOrUpdate.json" + "$ref": "./examples/ManagedHttpRoutes_CreateOrUpdate.json" } } }, diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json new file mode 100644 index 000000000000..a1a5953da4ae --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "examplerg", + "environmentName": "testcontainerenv", + "httpRouteName": "httpRoute-firendly-name", + "api-version": "2024-08-02-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "RevisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "prefix": "/api", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + } + } + } + } diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json new file mode 100644 index 000000000000..5b8d5446158d --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json @@ -0,0 +1,129 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "examplerg", + "environmentName": "testcontainerenv", + "httpRouteName": "httpRoute-firendly-name", + "api-version": "2024-08-02-preview", + "managedHttpRouteEnvelope": { + "location": "East US", + "properties": { + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "RevisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "InProgress", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "RevisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + } + }, + "201": { + "headers": {}, + "body": { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "RevisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + } + }, + "400": { + "code": "ManagedHttpRouteNoUpdate", + "message": "Properties of managed Http Routes cannot be updated. Please delete the current resource and retry or use a different resource id." + } + } +} + diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json new file mode 100644 index 000000000000..a6213571fe17 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "examplerg", + "environmentName": "testcontainerenv", + "httpRouteName": "test-http-route", + "api-version": "2024-08-02-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} + diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json new file mode 100644 index 000000000000..34ef1f4a54a7 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "examplerg", + "environmentName": "testcontainerenv", + "api-version": "2024-08-02-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "containerAppName": "containerApp1" + } + ], + "routes": [ + { + "match": { + "prefix": "/api", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + }, + { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-2", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app2.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-2" + } + ], + "rules": [ + { + "targets": [ + { + "containerAppName": "containerApp2", + "RevisionName": "rev-2", + "weight": 50 + }, + { + "containerAppName": "containerApp2", + "RevisionName": "rev-3", + "weight": 50 + } + ], + "routes": [ + { + "match": { + "prefix": "/api", + "caseSensitive": false + }, + "action": { + "prefixRewrite": "/v2/api" + } + } + ] + } + ] + } + } + ] + } + } + } +} From 78b8f355f9f4a35e9259c566b5b1824a71982fd7 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 20 Sep 2024 00:53:43 -0700 Subject: [PATCH 03/12] add patch support, fix camelcasing --- .../2024-08-02-preview/CommonDefinitions.json | 17 ++++- .../ManagedEnvironments.json | 72 +++++++++++++++++-- .../examples/ManagedHttpRoute_Get.json | 2 +- .../ManagedHttpRoutes_CreateOrUpdate.json | 6 +- ...edHttpRoutes_ListByManagedEnvironment.json | 4 +- .../examples/ManagedHttpRoutes_Patch.json | 58 +++++++++++++++ 6 files changed, 144 insertions(+), 15 deletions(-) create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index db150a6a7034..19d797cd40da 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1614,6 +1614,19 @@ } } }, + "ManagedHttpRoutePatch": { + "description": "A managed http route to update", + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Application-specific metadata in the form of key-value pairs." + } + } + }, "ManagedHttpRoute": { "description": "Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment", "type": "object", @@ -1698,11 +1711,11 @@ "description":"Container App Name to route requests to", "type": "string" }, - "RevisionName":{ + "revisionName":{ "description":"Revision to route requests to", "type": "string" }, - "Label":{ + "labelName":{ "description":"Label/Revision to route requests to", "type": "string" }, diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 2556a9aab951..38f07e74dbb8 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -895,7 +895,7 @@ "ManagedEnvironments", "ManagedHttpRoutes" ], - "summary": "Get the specified Managed Certificate.", + "summary": "Get the specified Managed Http Route Config.", "operationId": "ManagedHttpRoutes_Get", "parameters": [ { @@ -1006,22 +1006,80 @@ } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, "x-ms-examples": { "Create or Update Certificate": { "$ref": "./examples/ManagedHttpRoutes_CreateOrUpdate.json" } } }, + "patch": { + "tags": [ + "ManagedEnvironments", + "ManagedHttpRoutes" + ], + "summary": "Update tags of a manged http route object", + "description": "Patches an http route config resource. Only patching of tags is supported", + "operationId": "ManagedHttpRoutes_Update", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "name": "managedHttpRouteEnvelope", + "in": "body", + "required": true, + "description": "Properties of http route config that need to be updated", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoutePatch" + } + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Managed Http Routes updated successfully.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + } + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Patch Managed Http Route": { + "$ref": "./examples/ManagedHttpRoutes_Patch.json" + } + } + }, "delete": { "tags": [ "ManagedEnvironments", "ManagedHttpRoutes" ], - "summary": "Deletes the specified Managed Certificate.", + "summary": "Deletes the specified Managed Http Route.", "operationId": "ManagedHttpRoutes_Delete", "parameters": [ { @@ -1075,7 +1133,7 @@ "ManagedEnvironments", "ManagedHttpRoutes" ], - "summary": "Get the Advanced ingress routes in a given managed environment.", + "summary": "Get the Managed Http Routes in a given managed environment.", "operationId": "ManagedHttpRoutes_List", "parameters": [ { diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json index a1a5953da4ae..d059b84076d2 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json @@ -27,7 +27,7 @@ { "targets": [ { - "RevisionName": "rev-1", + "revisionName": "rev-1", "weight": 100 } ], diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json index 5b8d5446158d..53c365029b08 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json @@ -19,7 +19,7 @@ { "targets": [ { - "RevisionName": "rev-1", + "revisionName": "rev-1", "weight": 100 } ], @@ -60,7 +60,7 @@ { "targets": [ { - "RevisionName": "rev-1", + "revisionName": "rev-1", "weight": 100 } ], @@ -100,7 +100,7 @@ { "targets": [ { - "RevisionName": "rev-1", + "revisionName": "rev-1", "weight": 100 } ], diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json index 34ef1f4a54a7..3883efab41de 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json @@ -65,12 +65,12 @@ "targets": [ { "containerAppName": "containerApp2", - "RevisionName": "rev-2", + "revisionName": "rev-2", "weight": 50 }, { "containerAppName": "containerApp2", - "RevisionName": "rev-3", + "revisionName": "rev-3", "weight": 50 } ], diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json new file mode 100644 index 000000000000..e2e563a8f337 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "examplerg", + "environmentName": "testcontainerenv", + "httpRouteName": "httpRoute-firendly-name", + "api-version": "2024-08-02-preview", + "managedHttpRouteEnvelope": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "InProgress", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "revisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" + } + } + ] + } + ] + } + } + } + } +} + From 3ccf073f5a8ebd0db19b4273f06c92137131fb66 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 20 Sep 2024 01:13:28 -0700 Subject: [PATCH 04/12] fix linting, long running opp, pretty menv.json --- .../2024-08-02-preview/CommonDefinitions.json | 28 +++++++++---------- .../ManagedEnvironments.json | 18 ++++++------ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index 19d797cd40da..af8d81a5fd46 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1707,26 +1707,26 @@ "description": "Targets - Container App Names, Revision Names, Labels.", "type": "object", "properties": { - "containerAppName":{ - "description":"Container App Name to route requests to", + "containerAppName": { + "description": "Container App Name to route requests to", "type": "string" }, - "revisionName":{ - "description":"Revision to route requests to", + "revisionName": { + "description": "Revision to route requests to", "type": "string" }, - "labelName":{ - "description":"Label/Revision to route requests to", + "labelName": { + "description": "Label/Revision to route requests to", "type": "string" }, - "weight":{ - "description":"Weighted routing", + "weight": { + "description": "Weighted routing", "type": "integer", "format": "int32" } } }, - "HttpRouteMatch":{ + "HttpRouteMatch": { "description": "Criteria to match on", "type": "object", "properties": { @@ -1742,13 +1742,13 @@ "description": "match on all prefix's. Not exact", "type": "string" }, - "caseSensitive":{ + "caseSensitive": { "description": "path case sensitive, default is true", "type": "boolean" } } }, - "HttpRouteAction":{ + "HttpRouteAction": { "description": "Action to perform once matching of routes is done", "type": "object", "properties": { @@ -1758,7 +1758,7 @@ } } }, - "HttpRoute":{ + "HttpRoute": { "description": "Custom container configuration.", "type": "object", "properties": { @@ -1779,7 +1779,7 @@ "targets": { "description": "Targets- container apps, revisions, labels", "type": "array", - "items":{ + "items": { "$ref": "#/definitions/HttpRouteTarget" }, "x-ms-identifiers": [ @@ -1789,7 +1789,7 @@ "routes": { "description": "Targets- container apps, revisions, labels", "type": "array", - "items":{ + "items": { "$ref": "#/definitions/HttpRoute" }, "x-ms-identifiers": [ diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 38f07e74dbb8..54d8aba5dc77 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -909,14 +909,20 @@ "in": "path", "description": "Name of the Managed Environment.", "required": true, - "type": "string" + "type": "string", + "pattern": "^[a-z][a-z0-9]*$", + "minLength": 3, + "maxLength": 63 }, { "name": "httpRouteName", "in": "path", "description": "Name of the Http Route Config Resource.", "required": true, - "type": "string" + "type": "string", + "pattern": "^[a-z][a-z0-9]*$", + "minLength": 3, + "maxLength": 63 }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -937,7 +943,7 @@ } }, "x-ms-examples": { - "Get Certificate": { + "Get HttpRoute": { "$ref": "./examples/ManagedHttpRoute_Get.json" } } @@ -995,10 +1001,6 @@ "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" } }, - "400": { - "description": "Bad Request.", - "x-ms-error-response": true - }, "default": { "description": "Error response.", "schema": { @@ -1007,7 +1009,7 @@ } }, "x-ms-examples": { - "Create or Update Certificate": { + "Create or Update Http Route": { "$ref": "./examples/ManagedHttpRoutes_CreateOrUpdate.json" } } From f5ea3c03c37fd7f0ce1a16b615c5811eb6f0e431 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Wed, 2 Oct 2024 01:12:43 -0700 Subject: [PATCH 05/12] resolve comments --- .../2024-08-02-preview/CommonDefinitions.json | 33 +++- .../ManagedEnvironments.json | 13 +- .../examples/ManagedHttpRoute_Get.json | 70 ++++----- .../ManagedHttpRoutes_CreateOrUpdate.json | 145 +++++++++--------- .../examples/ManagedHttpRoutes_Delete.json | 1 - .../examples/ManagedHttpRoutes_Patch.json | 2 +- 6 files changed, 142 insertions(+), 122 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index af8d81a5fd46..8f9abc33c73b 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1627,8 +1627,8 @@ } } }, - "ManagedHttpRoute": { - "description": "Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment", + "HttpRouteConfig": { + "description": "Advanced Ingress routing for path/header based routing for a Container App Environment", "type": "object", "allOf": [ { @@ -1641,9 +1641,17 @@ "type": "object", "properties": { "provisioningState": { - "description": "The scale configuration of the session pool.", + "description": "The provisioning state of the Http Route Config in cluster", "$ref": "#/definitions/HttpRouteProvisioningState" }, + "provisioningErrors": { + "description": "List of errors when trying to reconcile http routes", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteProvisioningErrors" + }, + "readOnly": true + }, "fqdn": { "description": "FQDN of the route resource.", "type": "string", @@ -1703,6 +1711,23 @@ } } }, + "HttpRouteProvisioningErrors": { + "description": "List of provisioning errors for a http route config object", + "type": "object", + "properties": { + "timestamp": { + "description": "Timestamp error occured at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "message": { + "description": "Description or error message", + "type": "string", + "readOnly": true + } + } + }, "HttpRouteTarget": { "description": "Targets - Container App Names, Revision Names, Labels.", "type": "object", @@ -1848,7 +1873,7 @@ "description": "Collection of resources.", "type": "array", "items": { - "$ref": "#/definitions/ManagedHttpRoute" + "$ref": "#/definitions/HttpRouteConfig" } }, "nextLink": { diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 54d8aba5dc77..6fe76449f1f1 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -932,7 +932,7 @@ "200": { "description": "OK", "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" } }, "default": { @@ -981,7 +981,7 @@ "in": "body", "description": "Http Route config to be created or updated", "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" } }, { @@ -992,13 +992,13 @@ "200": { "description": "OK", "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" } }, "201": { "description": "Created", "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" } }, "default": { @@ -1060,7 +1060,7 @@ "200": { "description": "Managed Http Routes updated successfully.", "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoute" + "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" } }, "default": { @@ -1149,7 +1149,8 @@ "in": "path", "description": "Name of the Managed Environment.", "required": true, - "type": "string" + "type": "string", + "pattern": "^[-\\w\\._\\(\\)]+$" }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json index d059b84076d2..de423256d59e 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json @@ -3,49 +3,49 @@ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", "resourceGroupName": "examplerg", "environmentName": "testcontainerenv", - "httpRouteName": "httpRoute-firendly-name", + "httpRouteName": "httproutefriendlyname", "api-version": "2024-08-02-preview" }, "responses": { "200": { "headers": {}, "body": { - "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", - "type": "Microsoft.App/managedEnvironments/httpRoutes", - "location": "East US", - "properties": { - "fqdn": "app1.example.com", - "provisioningState": "Succeeded", - "customDomains": [ - { - "name": "example.com", - "bindingType": "SniEnabled", - "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" - } - ], - "rules": [ - { - "targets": [ - { - "revisionName": "rev-1", - "weight": 100 + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "revisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "prefix": "/api", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" } - ], - "routes": [ - { - "match": { - "prefix": "/api", - "caseSensitive": true - }, - "action": { - "prefixRewrite": "/v1/api" - } - } - ] - } - ] - } + } + ] + } + ] } } } } +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json index 53c365029b08..24114df4a985 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json @@ -3,7 +3,7 @@ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", "resourceGroupName": "examplerg", "environmentName": "testcontainerenv", - "httpRouteName": "httpRoute-firendly-name", + "httpRouteName": "httproutefriendlyname", "api-version": "2024-08-02-preview", "managedHttpRouteEnvelope": { "location": "East US", @@ -43,87 +43,82 @@ "200": { "headers": {}, "body": { - "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", - "type": "Microsoft.App/managedEnvironments/httpRoutes", - "location": "East US", - "properties": { - "fqdn": "app1.example.com", - "provisioningState": "InProgress", - "customDomains": [ - { - "name": "example.com", - "bindingType": "SniEnabled", - "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" - } - ], - "rules": [ - { - "targets": [ - { - "revisionName": "rev-1", - "weight": 100 - } - ], - "routes": [ - { - "match": { - "path": "/v1", - "caseSensitive": true - }, - "action": { - "prefixRewrite": "/v1/api" - } + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "InProgress", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "revisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" } - ] - } - ] - } + } + ] + } + ] } - }, + } + }, "201": { "headers": {}, "body": { - "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", - "type": "Microsoft.App/managedEnvironments/httpRoutes", - "location": "East US", - "properties": { - "fqdn": "app1.example.com", - "provisioningState": "Succeeded", - "customDomains": [ - { - "name": "example.com", - "bindingType": "SniEnabled", - "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" - } - ], - "rules": [ - { - "targets": [ - { - "revisionName": "rev-1", - "weight": 100 - } - ], - "routes": [ - { - "match": { - "path": "/v1", - "caseSensitive": true - }, - "action": { - "prefixRewrite": "/v1/api" - } + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "Succeeded", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "revisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" } - ] - } - ] - } + } + ] + } + ] } - }, - "400": { - "code": "ManagedHttpRouteNoUpdate", - "message": "Properties of managed Http Routes cannot be updated. Please delete the current resource and retry or use a different resource id." + } } } } - diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json index a6213571fe17..da8d080b13f8 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json @@ -11,4 +11,3 @@ "204": {} } } - diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json index e2e563a8f337..20594de11688 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json @@ -3,7 +3,7 @@ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", "resourceGroupName": "examplerg", "environmentName": "testcontainerenv", - "httpRouteName": "httpRoute-firendly-name", + "httpRouteName": "httproutefriendlyname", "api-version": "2024-08-02-preview", "managedHttpRouteEnvelope": { "tags": { From d04f193c1fd52cca13d0ff5566a70756e4015f45 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Wed, 2 Oct 2024 01:15:15 -0700 Subject: [PATCH 06/12] add missing pattern --- .../preview/2024-08-02-preview/ManagedEnvironments.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 6fe76449f1f1..d5e63a246137 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -1200,7 +1200,8 @@ "in": "path", "description": "Name of the Managed Environment.", "required": true, - "type": "string" + "type": "string", + "pattern": "^[a-z][a-z0-9]*$" }, { "name": "checkNameAvailabilityRequest", From 2151b4a605447f020592bc976edaf4d95211ccca Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Wed, 2 Oct 2024 01:18:46 -0700 Subject: [PATCH 07/12] swagger prettier check --- .../examples/ManagedHttpRoutes_Patch.json | 69 +++++++++---------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json index 20594de11688..cf8f3f029cd2 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json @@ -16,43 +16,42 @@ "200": { "headers": {}, "body": { - "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", - "type": "Microsoft.App/managedEnvironments/httpRoutes", - "location": "East US", - "properties": { - "fqdn": "app1.example.com", - "provisioningState": "InProgress", - "customDomains": [ - { - "name": "example.com", - "bindingType": "SniEnabled", - "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" - } - ], - "rules": [ - { - "targets": [ - { - "revisionName": "rev-1", - "weight": 100 + "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/httpRoutes/route-1", + "type": "Microsoft.App/managedEnvironments/httpRoutes", + "location": "East US", + "properties": { + "fqdn": "app1.example.com", + "provisioningState": "InProgress", + "customDomains": [ + { + "name": "example.com", + "bindingType": "SniEnabled", + "certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/examplerg/providers/Microsoft.App/managedEnvironments/testcontainerenv/certificates/certificate-1" + } + ], + "rules": [ + { + "targets": [ + { + "revisionName": "rev-1", + "weight": 100 + } + ], + "routes": [ + { + "match": { + "path": "/v1", + "caseSensitive": true + }, + "action": { + "prefixRewrite": "/v1/api" } - ], - "routes": [ - { - "match": { - "path": "/v1", - "caseSensitive": true - }, - "action": { - "prefixRewrite": "/v1/api" - } - } - ] - } - ] - } + } + ] + } + ] } } + } } } - From 508abd045ddc850c620270dd361e0ad589b25fd8 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Wed, 2 Oct 2024 18:56:10 -0700 Subject: [PATCH 08/12] Change descriptions --- .../preview/2024-08-02-preview/CommonDefinitions.json | 10 +++++----- .../2024-08-02-preview/ManagedEnvironments.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index 8f9abc33c73b..7f78f8f150b9 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1615,7 +1615,7 @@ } }, "ManagedHttpRoutePatch": { - "description": "A managed http route to update", + "description": "A Http Route Config to update", "type": "object", "properties": { "tags": { @@ -1637,7 +1637,7 @@ ], "properties": { "properties": { - "description": "Certificate resource specific properties", + "description": "Http Route Config properties", "type": "object", "properties": { "provisioningState": { @@ -1683,7 +1683,7 @@ "x-ms-client-flatten": true }, "CustomDomain": { - "description": "Custom Domain of a Container App", + "description": "Custom Domain of a Http Route Config", "type": "object", "required": [ "name" @@ -1784,7 +1784,7 @@ } }, "HttpRoute": { - "description": "Custom container configuration.", + "description": "Http Routes configuration, including paths to match on and whether or not rewrites are to be done.", "type": "object", "properties": { "match": { @@ -1812,7 +1812,7 @@ ] }, "routes": { - "description": "Targets- container apps, revisions, labels", + "description": "Routing configuration that will allow matches on specific paths/headers.", "type": "array", "items": { "$ref": "#/definitions/HttpRoute" diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index d5e63a246137..4e18c16aa0a4 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -953,7 +953,7 @@ "ManagedEnvironments", "ManagedHttpRoutes" ], - "summary": "Create or Update a Managed Certificate.", + "summary": "Create or Update a Http Route Config.", "operationId": "ManagedHttpRoutes_CreateOrUpdate", "parameters": [ { From fe391bb24324f1130b66730ff7608eb2445a497c Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 4 Oct 2024 13:35:56 -0700 Subject: [PATCH 09/12] move to single arm spec file, resolve comments --- .../2024-08-02-preview/CommonDefinitions.json | 248 -------- .../2024-08-02-preview/HttpRouteConfig.json | 573 ++++++++++++++++++ .../ManagedEnvironments.json | 294 +-------- ...on => HttpRouteConfig_CreateOrUpdate.json} | 0 ...elete.json => HttpRouteConfig_Delete.json} | 0 ...oute_Get.json => HttpRouteConfig_Get.json} | 0 ...RouteConfig_ListByManagedEnvironment.json} | 0 ..._Patch.json => HttpRouteConfig_Patch.json} | 0 8 files changed, 574 insertions(+), 541 deletions(-) create mode 100644 specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json rename specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/{ManagedHttpRoutes_CreateOrUpdate.json => HttpRouteConfig_CreateOrUpdate.json} (100%) rename specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/{ManagedHttpRoutes_Delete.json => HttpRouteConfig_Delete.json} (100%) rename specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/{ManagedHttpRoute_Get.json => HttpRouteConfig_Get.json} (100%) rename specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/{ManagedHttpRoutes_ListByManagedEnvironment.json => HttpRouteConfig_ListByManagedEnvironment.json} (100%) rename specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/{ManagedHttpRoutes_Patch.json => HttpRouteConfig_Patch.json} (100%) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json index 7f78f8f150b9..4aae4c03c23b 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/CommonDefinitions.json @@ -1614,233 +1614,6 @@ } } }, - "ManagedHttpRoutePatch": { - "description": "A Http Route Config to update", - "type": "object", - "properties": { - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Application-specific metadata in the form of key-value pairs." - } - } - }, - "HttpRouteConfig": { - "description": "Advanced Ingress routing for path/header based routing for a Container App Environment", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" - } - ], - "properties": { - "properties": { - "description": "Http Route Config properties", - "type": "object", - "properties": { - "provisioningState": { - "description": "The provisioning state of the Http Route Config in cluster", - "$ref": "#/definitions/HttpRouteProvisioningState" - }, - "provisioningErrors": { - "description": "List of errors when trying to reconcile http routes", - "type": "array", - "items": { - "$ref": "#/definitions/HttpRouteProvisioningErrors" - }, - "readOnly": true - }, - "fqdn": { - "description": "FQDN of the route resource.", - "type": "string", - "readOnly": true - }, - "customDomains": { - "description": "custom domain bindings for http Routes' hostnames.", - "type": "array", - "items": { - "$ref": "#/definitions/CustomDomain" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "rules": { - "description": "Routing Rules for http route resource.", - "type": "array", - "items": { - "$ref": "#/definitions/HttpRouteRule" - }, - "x-ms-identifiers": [ - "name" - ] - } - } - } - }, - "x-ms-client-flatten": true - }, - "CustomDomain": { - "description": "Custom Domain of a Http Route Config", - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Hostname.", - "type": "string" - }, - "bindingType": { - "description": "Custom Domain binding type.", - "enum": [ - "Disabled", - "SniEnabled" - ], - "type": "string", - "x-ms-enum": { - "name": "bindingType", - "modelAsString": true - } - }, - "certificateId": { - "description": "Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment.", - "type": "string" - } - } - }, - "HttpRouteProvisioningErrors": { - "description": "List of provisioning errors for a http route config object", - "type": "object", - "properties": { - "timestamp": { - "description": "Timestamp error occured at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "message": { - "description": "Description or error message", - "type": "string", - "readOnly": true - } - } - }, - "HttpRouteTarget": { - "description": "Targets - Container App Names, Revision Names, Labels.", - "type": "object", - "properties": { - "containerAppName": { - "description": "Container App Name to route requests to", - "type": "string" - }, - "revisionName": { - "description": "Revision to route requests to", - "type": "string" - }, - "labelName": { - "description": "Label/Revision to route requests to", - "type": "string" - }, - "weight": { - "description": "Weighted routing", - "type": "integer", - "format": "int32" - } - } - }, - "HttpRouteMatch": { - "description": "Criteria to match on", - "type": "object", - "properties": { - "prefix": { - "description": "match on all prefix's. Not exact", - "type": "string" - }, - "path": { - "description": "match on exact path", - "type": "string" - }, - "pathSeparatedPrefix": { - "description": "match on all prefix's. Not exact", - "type": "string" - }, - "caseSensitive": { - "description": "path case sensitive, default is true", - "type": "boolean" - } - } - }, - "HttpRouteAction": { - "description": "Action to perform once matching of routes is done", - "type": "object", - "properties": { - "prefixRewrite": { - "description": "Rewrite prefix, default is no rewrites", - "type": "string" - } - } - }, - "HttpRoute": { - "description": "Http Routes configuration, including paths to match on and whether or not rewrites are to be done.", - "type": "object", - "properties": { - "match": { - "description": "Conditions route will match on", - "$ref": "#/definitions/HttpRouteMatch" - }, - "action": { - "description": "Once route is matched, what is the desired action", - "$ref": "#/definitions/HttpRouteAction" - } - } - }, - "HttpRouteRule": { - "description": "Http Route rule.", - "type": "object", - "properties": { - "targets": { - "description": "Targets- container apps, revisions, labels", - "type": "array", - "items": { - "$ref": "#/definitions/HttpRouteTarget" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "routes": { - "description": "Routing configuration that will allow matches on specific paths/headers.", - "type": "array", - "items": { - "$ref": "#/definitions/HttpRoute" - }, - "x-ms-identifiers": [ - "name" - ] - } - } - }, - "HttpRouteProvisioningState": { - "type": "string", - "readOnly": true, - "description": "The current provisioning state.", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Waiting", - "Updating", - "Deleting", - "Pending" - ], - "x-ms-enum": { - "name": "HttpRouteProvisioningState", - "modelAsString": true - } - }, "ManagedCertificateCollection": { "description": "Collection of Managed Certificates.", "required": [ @@ -1862,27 +1635,6 @@ } } }, - "ManagedHttpRouteConfigCollection": { - "description": "Collection of Advanced Ingress Routing Config resources.", - "required": [ - "value" - ], - "type": "object", - "properties": { - "value": { - "description": "Collection of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/HttpRouteConfig" - } - }, - "nextLink": { - "description": "Link to next page of resources.", - "type": "string", - "readOnly": true - } - } - }, "JobTemplate": { "description": "Container Apps Job versioned application definition. Defines the desired state of an immutable revision. Any changes to this section Will result in a new revision being created", "type": "object", diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json new file mode 100644 index 000000000000..0783e2fcc138 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json @@ -0,0 +1,573 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-08-02-preview", + "title": "ContainerApps API Client" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes/{httpRouteName}": { + "get": { + "tags": [ + "HttpRouteConfig" + ], + "summary": "Get the specified Managed Http Route Config.", + "operationId": "HttpRouteConfig_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string", + "pattern": "^[-\\w\\._\\(\\)]+$", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Get HttpRoute": { + "$ref": "./examples/HttpRouteConfig_Get.json" + } + } + }, + "put": { + "tags": [ + "HttpRouteConfig" + ], + "summary": "Create or Update a Http Route Config.", + "operationId": "HttpRouteConfig_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "name": "managedHttpRouteEnvelope", + "in": "body", + "description": "Http Route config to be created or updated", + "schema": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or Update Http Route": { + "$ref": "./examples/HttpRouteConfig_CreateOrUpdate.json" + } + } + }, + "patch": { + "tags": [ + "HttpRouteConfig" + ], + "summary": "Update tags of a manged http route object", + "description": "Patches an http route config resource. Only patching of tags is supported", + "operationId": "HttpRouteConfig_Update", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "name": "managedHttpRouteEnvelope", + "in": "body", + "required": true, + "description": "Properties of http route config that need to be updated", + "schema": { + "$ref": "#/definitions/ManagedHttpRoutePatch" + } + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Managed Http Routes updated successfully.", + "schema": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Patch Managed Http Route": { + "$ref": "./examples/HttpRouteConfig_Patch.json" + } + } + }, + "delete": { + "tags": [ + "HttpRouteConfig" + ], + "summary": "Deletes the specified Managed Http Route.", + "operationId": "HttpRouteConfig_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string" + }, + { + "name": "httpRouteName", + "in": "path", + "description": "Name of the Http Route Config Resource.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Delete operation completed" + }, + "204": { + "description": "Http Route does not exist" + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Certificate": { + "$ref": "./examples/HttpRouteConfig_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes": { + "get": { + "tags": [ + "HttpRouteConfig" + ], + "summary": "Get the Managed Http Routes in a given managed environment.", + "operationId": "HttpRouteConfig_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "environmentName", + "in": "path", + "description": "Name of the Managed Environment.", + "required": true, + "type": "string", + "pattern": "^[-\\w\\._\\(\\)]+$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ManagedHttpRouteConfigCollection" + } + }, + "default": { + "description": "Error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "List Managed Http Routes by Managed Environment": { + "$ref": "./examples/HttpRouteConfig_ListByManagedEnvironment.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "ManagedHttpRoutePatch": { + "description": "A Http Route Config to update", + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Application-specific metadata in the form of key-value pairs." + } + } + }, + "HttpRouteConfig": { + "description": "Advanced Ingress routing for path/header based routing for a Container App Environment", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "description": "Http Route Config properties", + "type": "object", + "properties": { + "provisioningState": { + "description": "The provisioning state of the Http Route Config in cluster", + "$ref": "#/definitions/HttpRouteProvisioningState" + }, + "provisioningErrors": { + "description": "List of errors when trying to reconcile http routes", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteProvisioningErrors" + }, + "readOnly": true + }, + "fqdn": { + "description": "FQDN of the route resource.", + "type": "string", + "readOnly": true + }, + "customDomains": { + "description": "custom domain bindings for http Routes' hostnames.", + "type": "array", + "items": { + "$ref": "#/definitions/CustomDomain" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "rules": { + "description": "Routing Rules for http route resource.", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteRule" + }, + "x-ms-identifiers": [ + "name" + ] + } + } + } + }, + "x-ms-client-flatten": true + }, + "CustomDomain": { + "description": "Custom Domain of a Http Route Config", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Hostname.", + "type": "string" + }, + "bindingType": { + "description": "Custom Domain binding type.", + "enum": [ + "Disabled", + "SniEnabled" + ], + "type": "string", + "x-ms-enum": { + "name": "bindingType", + "modelAsString": true + } + }, + "certificateId": { + "description": "Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment.", + "type": "string" + } + } + }, + "HttpRouteProvisioningErrors": { + "description": "List of provisioning errors for a http route config object", + "type": "object", + "properties": { + "timestamp": { + "description": "Timestamp error occured at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "message": { + "description": "Description or error message", + "type": "string", + "readOnly": true + } + } + }, + "HttpRouteTarget": { + "description": "Targets - Container App Names, Revision Names, Labels.", + "type": "object", + "properties": { + "containerAppName": { + "description": "Container App Name to route requests to", + "type": "string" + }, + "revisionName": { + "description": "Revision to route requests to", + "type": "string" + }, + "labelName": { + "description": "Label/Revision to route requests to", + "type": "string" + }, + "weight": { + "description": "Weighted routing", + "type": "integer", + "format": "int32" + } + } + }, + "HttpRouteMatch": { + "description": "Criteria to match on", + "type": "object", + "properties": { + "prefix": { + "description": "match on all prefix's. Not exact", + "type": "string" + }, + "path": { + "description": "match on exact path", + "type": "string" + }, + "pathSeparatedPrefix": { + "description": "match on all prefix's. Not exact", + "type": "string" + }, + "caseSensitive": { + "description": "path case sensitive, default is true", + "type": "boolean" + } + } + }, + "HttpRouteAction": { + "description": "Action to perform once matching of routes is done", + "type": "object", + "properties": { + "prefixRewrite": { + "description": "Rewrite prefix, default is no rewrites", + "type": "string" + } + } + }, + "HttpRoute": { + "description": "Http Routes configuration, including paths to match on and whether or not rewrites are to be done.", + "type": "object", + "properties": { + "match": { + "description": "Conditions route will match on", + "$ref": "#/definitions/HttpRouteMatch" + }, + "action": { + "description": "Once route is matched, what is the desired action", + "$ref": "#/definitions/HttpRouteAction" + } + } + }, + "HttpRouteRule": { + "description": "Http Route rule.", + "type": "object", + "properties": { + "targets": { + "description": "Targets- container apps, revisions, labels", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteTarget" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "routes": { + "description": "Routing configuration that will allow matches on specific paths/headers.", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRoute" + }, + "x-ms-identifiers": [ + "name" + ] + } + } + }, + "HttpRouteProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Waiting", + "Updating", + "Deleting", + "Pending" + ], + "x-ms-enum": { + "name": "HttpRouteProvisioningState", + "modelAsString": true + } + }, + "ManagedHttpRouteConfigCollection": { + "description": "Collection of Advanced Ingress Routing Config resources.", + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "description": "Collection of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/HttpRouteConfig" + } + }, + "nextLink": { + "description": "Link to next page of resources.", + "type": "string", + "readOnly": true + } + } + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json index 4e18c16aa0a4..8b76eb50b93c 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/ManagedEnvironments.json @@ -889,297 +889,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes/{httpRouteName}": { - "get": { - "tags": [ - "ManagedEnvironments", - "ManagedHttpRoutes" - ], - "summary": "Get the specified Managed Http Route Config.", - "operationId": "ManagedHttpRoutes_Get", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "environmentName", - "in": "path", - "description": "Name of the Managed Environment.", - "required": true, - "type": "string", - "pattern": "^[a-z][a-z0-9]*$", - "minLength": 3, - "maxLength": 63 - }, - { - "name": "httpRouteName", - "in": "path", - "description": "Name of the Http Route Config Resource.", - "required": true, - "type": "string", - "pattern": "^[a-z][a-z0-9]*$", - "minLength": 3, - "maxLength": 63 - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" - } - } - }, - "x-ms-examples": { - "Get HttpRoute": { - "$ref": "./examples/ManagedHttpRoute_Get.json" - } - } - }, - "put": { - "tags": [ - "ManagedEnvironments", - "ManagedHttpRoutes" - ], - "summary": "Create or Update a Http Route Config.", - "operationId": "ManagedHttpRoutes_CreateOrUpdate", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "environmentName", - "in": "path", - "description": "Name of the Managed Environment.", - "required": true, - "type": "string" - }, - { - "name": "httpRouteName", - "in": "path", - "description": "Name of the Http Route Config Resource.", - "required": true, - "type": "string" - }, - { - "name": "managedHttpRouteEnvelope", - "in": "body", - "description": "Http Route config to be created or updated", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" - } - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" - } - } - }, - "x-ms-examples": { - "Create or Update Http Route": { - "$ref": "./examples/ManagedHttpRoutes_CreateOrUpdate.json" - } - } - }, - "patch": { - "tags": [ - "ManagedEnvironments", - "ManagedHttpRoutes" - ], - "summary": "Update tags of a manged http route object", - "description": "Patches an http route config resource. Only patching of tags is supported", - "operationId": "ManagedHttpRoutes_Update", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "environmentName", - "in": "path", - "description": "Name of the Managed Environment.", - "required": true, - "type": "string" - }, - { - "name": "httpRouteName", - "in": "path", - "description": "Name of the Http Route Config Resource.", - "required": true, - "type": "string" - }, - { - "name": "managedHttpRouteEnvelope", - "in": "body", - "required": true, - "description": "Properties of http route config that need to be updated", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRoutePatch" - } - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Managed Http Routes updated successfully.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/HttpRouteConfig" - } - }, - "default": { - "description": "Common error response.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" - } - } - }, - "x-ms-examples": { - "Patch Managed Http Route": { - "$ref": "./examples/ManagedHttpRoutes_Patch.json" - } - } - }, - "delete": { - "tags": [ - "ManagedEnvironments", - "ManagedHttpRoutes" - ], - "summary": "Deletes the specified Managed Http Route.", - "operationId": "ManagedHttpRoutes_Delete", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "environmentName", - "in": "path", - "description": "Name of the Managed Environment.", - "required": true, - "type": "string" - }, - { - "name": "httpRouteName", - "in": "path", - "description": "Name of the Http Route Config Resource.", - "required": true, - "type": "string" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Delete operation completed" - }, - "204": { - "description": "Http Route does not exist" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Certificate": { - "$ref": "./examples/ManagedHttpRoutes_Delete.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/httpRoutes": { - "get": { - "tags": [ - "ManagedEnvironments", - "ManagedHttpRoutes" - ], - "summary": "Get the Managed Http Routes in a given managed environment.", - "operationId": "ManagedHttpRoutes_List", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "environmentName", - "in": "path", - "description": "Name of the Managed Environment.", - "required": true, - "type": "string", - "pattern": "^[-\\w\\._\\(\\)]+$" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/ManagedHttpRouteConfigCollection" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" - } - } - }, - "x-ms-examples": { - "List Managed Http Routes by Managed Environment": { - "$ref": "./examples/ManagedHttpRoutes_ListByManagedEnvironment.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability": { "post": { "tags": [ @@ -1200,8 +909,7 @@ "in": "path", "description": "Name of the Managed Environment.", "required": true, - "type": "string", - "pattern": "^[a-z][a-z0-9]*$" + "type": "string" }, { "name": "checkNameAvailabilityRequest", diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_CreateOrUpdate.json similarity index 100% rename from specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_CreateOrUpdate.json rename to specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_CreateOrUpdate.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Delete.json similarity index 100% rename from specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Delete.json rename to specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Delete.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Get.json similarity index 100% rename from specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoute_Get.json rename to specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Get.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_ListByManagedEnvironment.json similarity index 100% rename from specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_ListByManagedEnvironment.json rename to specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_ListByManagedEnvironment.json diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Patch.json similarity index 100% rename from specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/ManagedHttpRoutes_Patch.json rename to specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/examples/HttpRouteConfig_Patch.json From c916addaeef96e4e937b9351e39deeb08e09e454 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 4 Oct 2024 13:47:29 -0700 Subject: [PATCH 10/12] nits: --- .../preview/2024-08-02-preview/HttpRouteConfig.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json index 0783e2fcc138..80d043686182 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json @@ -347,7 +347,7 @@ "readOnly": true }, "customDomains": { - "description": "custom domain bindings for http Routes' hostnames.", + "description": "Custom domain bindings for http Routes' hostnames.", "type": "array", "items": { "$ref": "#/definitions/CustomDomain" @@ -396,7 +396,11 @@ }, "certificateId": { "description": "Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment.", - "type": "string" + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] } } }, @@ -436,7 +440,9 @@ "weight": { "description": "Weighted routing", "type": "integer", - "format": "int32" + "format": "int32", + "minimum":0, + "maximum":100 } } }, From fe7ba963522acf4b3a2823568b525760e05a2918 Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 4 Oct 2024 13:54:51 -0700 Subject: [PATCH 11/12] update readme, fix prettier check --- .../preview/2024-08-02-preview/HttpRouteConfig.json | 4 ++-- specification/app/resource-manager/readme.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json index 80d043686182..133307c1e378 100644 --- a/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json +++ b/specification/app/resource-manager/Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json @@ -441,8 +441,8 @@ "description": "Weighted routing", "type": "integer", "format": "int32", - "minimum":0, - "maximum":100 + "minimum": 0, + "maximum": 100 } } }, diff --git a/specification/app/resource-manager/readme.md b/specification/app/resource-manager/readme.md index 60a3a8a1c108..463280bef805 100644 --- a/specification/app/resource-manager/readme.md +++ b/specification/app/resource-manager/readme.md @@ -66,6 +66,7 @@ input-file: - Microsoft.App/preview/2024-08-02-preview/SourceControls.json - Microsoft.App/preview/2024-08-02-preview/Subscriptions.json - Microsoft.App/preview/2024-08-02-preview/Usages.json + - Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json ``` ### Tag: package-preview-2024-02 From 4dddaacd473555e5ddcb560260ae2cdc2acc1f8f Mon Sep 17 00:00:00 2001 From: Taher Darolywala Date: Fri, 4 Oct 2024 13:58:14 -0700 Subject: [PATCH 12/12] order --- specification/app/resource-manager/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/app/resource-manager/readme.md b/specification/app/resource-manager/readme.md index 463280bef805..1b3e185ab06a 100644 --- a/specification/app/resource-manager/readme.md +++ b/specification/app/resource-manager/readme.md @@ -54,6 +54,7 @@ input-file: - Microsoft.App/preview/2024-08-02-preview/DotNetComponents.json - Microsoft.App/preview/2024-08-02-preview/FunctionsExtension.json - Microsoft.App/preview/2024-08-02-preview/Global.json + - Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json - Microsoft.App/preview/2024-08-02-preview/JavaComponents.json - Microsoft.App/preview/2024-08-02-preview/Jobs.json - Microsoft.App/preview/2024-08-02-preview/LogicAppsExtension.json @@ -66,7 +67,6 @@ input-file: - Microsoft.App/preview/2024-08-02-preview/SourceControls.json - Microsoft.App/preview/2024-08-02-preview/Subscriptions.json - Microsoft.App/preview/2024-08-02-preview/Usages.json - - Microsoft.App/preview/2024-08-02-preview/HttpRouteConfig.json ``` ### Tag: package-preview-2024-02