diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..77e33c4ba8f2 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2015-11-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/subscriptions.json index 32846f6b7326..81e1db96161e 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2015-11-01/subscriptions.json @@ -145,6 +145,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -277,9 +317,82 @@ "nextLink" ], "description": "Tenant Ids information." + }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" } }, "parameters": { + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..6ee63e4f2ea3 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2016-06-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json index 0ff278951ee7..7aaee9160c89 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json @@ -162,6 +162,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -338,6 +378,70 @@ ], "description": "Tenant Ids information." }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, "Operation": { "description": "Microsoft.Resources operation", "type": "object", @@ -395,6 +499,15 @@ "description": "The ID of the target subscription.", "x-ms-parameter-location": "method" }, + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..cd6b51d941f4 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2018-06-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/subscriptions.json index fe7335ec5a3f..99f212f95c48 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2018-06-01/subscriptions.json @@ -162,6 +162,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -367,6 +407,70 @@ ], "description": "Tenant Ids information." }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" + }, "Operation": { "description": "Microsoft.Resources operation", "type": "object", @@ -424,6 +528,15 @@ "description": "The ID of the target subscription.", "x-ms-parameter-location": "method" }, + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..72412b20f92a --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2019-06-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/subscriptions.json index c64abcc4164a..984bf3ead13f 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-06-01/subscriptions.json @@ -172,6 +172,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -408,6 +448,70 @@ ], "description": "Tenant Ids information." }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" + }, "Operation": { "description": "Microsoft.Resources operation", "type": "object", @@ -465,6 +569,15 @@ "description": "The ID of the target subscription.", "x-ms-parameter-location": "method" }, + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..584176e6f6d6 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2019-11-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json index a10bc931ed11..ad98623bf852 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json @@ -177,6 +177,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -498,6 +538,70 @@ ], "description": "Tenant Ids information." }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" + }, "Operation": { "description": "Microsoft.Resources operation", "type": "object", @@ -555,6 +659,15 @@ "description": "The ID of the target subscription.", "x-ms-parameter-location": "method" }, + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/examples/CheckResourceName.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/examples/CheckResourceName.json new file mode 100644 index 000000000000..84ec179e05d9 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/examples/CheckResourceName.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "body": [ + { + "Name": "isxbox", + "Type": "ResourceProviderTestHost/TestResourceType" + } + ], + "api-version": "2020-01-01" + }, + "responses": { + "200": { + "body": { + "name": "isxbox", + "type": "ResourceProviderTestHost/TestResourceType", + "status": "Allowed" + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/subscriptions.json index ee5d51274e47..b70ab71ed858 100644 --- a/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/subscriptions.json +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-01-01/subscriptions.json @@ -182,6 +182,46 @@ "nextLinkName": "nextLink" } } + }, + "/providers/Microsoft.Resources/checkResourceName": { + "post": { + "tags": [ + "Tenants" + ], + "operationId": "checkResourceName", + "description": "A resource name is valid if it is not a reserved word, does not contains a reserved word and does not start with a reserved word", + "summary": "Checks resource name validity", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/CheckResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns status as allowed or not.", + "schema": { + "$ref": "#/definitions/CheckResourceNameResult" + } + }, + "default": { + "description": "Error response saying resource name is invalid", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check validity for a resource name.": { + "$ref": "./examples/CheckResourceName.json" + } + } + } } }, "definitions": { @@ -518,6 +558,70 @@ ], "description": "Tenant Ids information." }, + "ResourceName": { + "description": "Name and Type of the Resource", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name of the resource", + "type": "string" + }, + "type": { + "type": "string", + "description": "The type of the resource" + } + } + }, + "CheckResourceNameResult": { + "properties": { + "name": { + "description": "Name of Resource", + "type": "string" + }, + "type": { + "description": "Type of Resource", + "type": "string" + }, + "status": { + "description": "Is the resource name Allowed or Reserved", + "type": "string", + "enum": [ + "Allowed", + "Reserved" + ], + "x-ms-enum": { + "name": "ResourceNameStatus", + "modelAsString": true + } + } + }, + "description": "Resource Name valid if not a reserved word, does not contain a reserved word and does not start with a reserved word" + }, + "ErrorResponse": { + "description": "Error response.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDefinition", + "description": "The error details." + } + } + }, + "ErrorDefinition": { + "description": "Error description and code explaining why resource name is invalid.", + "properties": { + "message": { + "type": "string", + "description": "Description of the error." + }, + "code": { + "type": "string", + "description": "Code of the error." + } + } + }, "Operation": { "description": "Microsoft.Resources operation", "type": "object", @@ -575,6 +679,15 @@ "description": "The ID of the target subscription.", "x-ms-parameter-location": "method" }, + "CheckResourceNameParameter": { + "description": "Resource object with values for resource name and resource type", + "in": "body", + "name": "Resource Name Definition", + "schema": { + "$ref": "#/definitions/ResourceName" + }, + "x-ms-parameter-location": "method" + }, "ApiVersionParameter": { "name": "api-version", "in": "query", diff --git a/specification/resources/resource-manager/readme.md b/specification/resources/resource-manager/readme.md index 32aea908a345..ff9e37515f1b 100644 --- a/specification/resources/resource-manager/readme.md +++ b/specification/resources/resource-manager/readme.md @@ -616,6 +616,9 @@ input-file: - Microsoft.Authorization/stable/2016-12-01/policyAssignments.json - Microsoft.Resources/stable/2016-06-01/subscriptions.json - Microsoft.Resources/stable/2018-05-01/resources.json + +override-info: + title: PolicyClient ``` ## Multi-API/Profile support for AutoRest v3 generators