Relay icon

Relay

Use these API to manage Azure Relay resources through Azure Resource Manager

COMMUNITYBEARER0 INSTALLS
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "Use these API to manage Azure Relay resources through Azure Resource Manager.",
    "title": "Relay",
    "version": "2017-04-01",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-ms-code-generation-settings": {
      "name": "RelayManagementClient"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/relay/resource-manager/Microsoft.Relay/stable/2017-04-01/relay.json",
        "version": "2.0"
      }
    ],
    "x-preferred": true,
    "x-providerName": "azure.com",
    "x-serviceName": "relay",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client API version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "SubscriptionIdParameter": {
      "description": "Subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    },
    "authorizationRuleNameParameter": {
      "description": "The authorization rule name.",
      "in": "path",
      "minLength": 1,
      "name": "authorizationRuleName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "hybridConnectionNameParameter": {
      "description": "The hybrid connection name.",
      "in": "path",
      "minLength": 1,
      "name": "hybridConnectionName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "namespaceNameParameter": {
      "description": "The namespace name",
      "in": "path",
      "maxLength": 50,
      "minLength": 6,
      "name": "namespaceName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "relayNameParameter": {
      "description": "The relay name.",
      "in": "path",
      "minLength": 1,
      "name": "relayName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "resourceGroupNameParameter": {
      "description": "Name of the Resource group within the Azure subscription.",
      "in": "path",
      "maxLength": 90,
      "minLength": 1,
      "name": "resourceGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/providers/Microsoft.Relay/operations": {
      "get": {
        "description": "Lists all available Relay REST API operations.",
        "operationId": "Operations_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded.",
            "schema": {
              "$ref": "#/definitions/OperationListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Operations"
        ],
        "x-ms-examples": {
          "RelayOperationsList": {
            "parameters": {
              "api-version": "2017-04-01"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "operation": "Get namespace availability.",
                        "provider": "Microsoft Azure Relay",
                        "resource": "Non Resource Operation"
                      },
                      "name": "Microsoft.Relay/checkNamespaceAvailability/action"
                    },
                    {
                      "display": {
                        "operation": "Registers the Relay Resource Provider",
                        "provider": "Microsoft Azure Relay",
                        "resource": "Relay and Hybridconnection Resource Provider"
                      },
                      "name": "Microsoft.Relay/register/action"
                    },
                    {
                      "display": {
                        "operation": "Create Or Update Namespace ",
                        "provider": "Microsoft Azure Relay",
                        "resource": "Namespace"
                      },
                      "name": "Microsoft.Relay/namespaces/write"
                    },
                    {
                      "display": {
                        "operation": "Get Namespace Resource",
                        "provider": "Microsoft Azure Relay",
                        "resource": "Namespace"
                      },
                      "name": "Microsoft.Relay/namespaces/read"
                    },
                    {
                      "display": {
                        "operation": "Delete Namespace",
                        "provider": "Microsoft Azure Relay",
                        "resource": "Namespace"
                      },
                      "name": "Microsoft.Relay/namespaces/Delete"
                    },
                    {
                      "display": {
                        "operation": "Create or Update Namespace Authorization Rules",
                        "provider": "Microsoft Azure Relay",
                        "resource": "AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/authorizationRules/write"
                    },
                    {
                      "display": {
                        "operation": "Delete Namespace Authorization Rule",
                        "provider": "Microsoft Azure Relay",
                        "resource": "AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/authorizationRules/delete"
                    },
                    {
                      "display": {
                        "operation": "Get Namespace Listkeys",
                        "provider": "Microsoft Azure Relay",
                        "resource": "AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/authorizationRules/listkeys/action"
                    },
                    {
                      "display": {
                        "operation": "Create or Update HybridConnection",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/write"
                    },
                    {
                      "display": {
                        "operation": "Get HybridConnection",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/read"
                    },
                    {
                      "display": {
                        "operation": "Delete HybridConnection",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/Delete"
                    },
                    {
                      "display": {
                        "operation": "Create or Update HybridConnection Authorization Rule",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/authorizationRules/write"
                    },
                    {
                      "display": {
                        "operation": "Delete HybridConnection Authorization Rules",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/authorizationRules/delete"
                    },
                    {
                      "display": {
                        "operation": "List HybridConnection keys",
                        "provider": "Microsoft Azure Relay",
                        "resource": "HybridConnection AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/HybridConnections/authorizationRules/listkeys/action"
                    },
                    {
                      "display": {
                        "operation": "Create or Update WcfRelay",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/write"
                    },
                    {
                      "display": {
                        "operation": "Get WcfRelay",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/read"
                    },
                    {
                      "display": {
                        "operation": "Delete WcfRelay",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/Delete"
                    },
                    {
                      "display": {
                        "operation": "Create or Update WcfRelay Authorization Rule",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/authorizationRules/write"
                    },
                    {
                      "display": {
                        "operation": "Delete WcfRelay Authorization Rules",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/authorizationRules/delete"
                    },
                    {
                      "display": {
                        "operation": "List WcfRelay keys",
                        "provider": "Microsoft Azure Relay",
                        "resource": "WcfRelay AuthorizationRules"
                      },
                      "name": "Microsoft.Relay/namespaces/WcfRelays/authorizationRules/listkeys/action"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Relay/checkNameAvailability": {
      "post": {
        "description": "Check the specified namespace name availability.",
        "operationId": "Namespaces_CheckNameAvailability",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Parameters to check availability of the specified namespace name.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CheckNameAvailability"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Check availability returned successfully.",
            "schema": {
              "$ref": "#/definitions/CheckNameAvailabilityResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayCheckNameAvailability": {
            "parameters": {
              "api-version": "2017-04-01",
              "parameters": {
                "name": "sdk-Namespace1321"
              },
              "subscriptionId": "e2f361f0-3b27-4503-a9cc-21cfba380093"
            },
            "responses": {
              "200": {
                "body": {
                  "message": "",
                  "nameAvailable": true,
                  "reason": "None"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Relay/namespaces": {
      "get": {
        "description": "Lists all the available namespaces within the subscription regardless of the resourceGroups.",
        "operationId": "Namespaces_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespaces returned successfully",
            "schema": {
              "$ref": "#/definitions/RelayNamespaceListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceListBySubscription": {
            "parameters": {
              "api-version": "2017-04-01",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG1-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01",
                      "location": "West US",
                      "name": "sdk-RelayNamespace-01",
                      "properties": {
                        "createdAt": "2017-01-23T20:34:49.4131724Z",
                        "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-RelayNamespace-01",
                        "provisioningState": "Succeeded",
                        "serviceBusEndpoint": "https://sdk-RelayNamespace-01.servicebus.windows.net:443/",
                        "updatedAt": "2017-01-23T20:34:59.4131724Z"
                      },
                      "sku": {
                        "name": "Standard",
                        "tier": "Standard"
                      },
                      "tags": {
                        "tag1": "value1",
                        "tag2": "value2"
                      },
                      "type": "Microsoft.Relay/Namespaces"
                    },
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG1-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-02",
                      "location": "West US",
                      "name": "sdk-RelayNamespace-02",
                      "properties": {
                        "createdAt": "2017-01-23T20:34:39.4131724Z",
                        "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-RelayNamespace-02",
                        "provisioningState": "Succeeded",
                        "serviceBusEndpoint": "https://sdk-RelayNamespace-02.servicebus.windows.net:443/",
                        "updatedAt": "2017-01-23T20:34:49.4131724Z"
                      },
                      "sku": {
                        "name": "Standard",
                        "tier": "Standard"
                      },
                      "tags": {
                        "tag1": "value1",
                        "tag2": "value2"
                      },
                      "type": "Microsoft.Relay/Namespaces"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces": {
      "get": {
        "description": "Lists all the available namespaces within the ResourceGroup.",
        "operationId": "Namespaces_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespaces by resource group returned successfully",
            "schema": {
              "$ref": "#/definitions/RelayNamespaceListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceListByResourceGroup": {
            "parameters": {
              "api-version": "2017-04-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01",
                      "location": "West US",
                      "name": "sdk-RelayNamespace-01",
                      "properties": {
                        "createdAt": "2017-01-23T20:34:49.4131724Z",
                        "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-RelayNamespace-01",
                        "provisioningState": "Succeeded",
                        "serviceBusEndpoint": "https://sdk-RelayNamespace-01.servicebus.windows.net:443/",
                        "updatedAt": "2017-01-23T20:34:59.4131724Z"
                      },
                      "sku": {
                        "name": "Standard",
                        "tier": "Standard"
                      },
                      "tags": {
                        "tag1": "value1",
                        "tag2": "value2"
                      },
                      "type": "Microsoft.Relay/Namespaces"
                    },
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-02",
                      "location": "West US",
                      "name": "sdk-RelayNamespace-02",
                      "properties": {
                        "createdAt": "2017-01-23T20:34:39.4131724Z",
                        "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-RelayNamespace-02",
                        "provisioningState": "Succeeded",
                        "serviceBusEndpoint": "https://sdk-RelayNamespace-02.servicebus.windows.net:443/",
                        "updatedAt": "2017-01-23T20:34:49.4131724Z"
                      },
                      "sku": {
                        "name": "Standard",
                        "tier": "Standard"
                      },
                      "tags": {
                        "tag1": "value1",
                        "tag2": "value2"
                      },
                      "type": "Microsoft.Relay/Namespaces"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}": {
      "delete": {
        "description": "Deletes an existing namespace. This operation also removes all associated resources under the namespace.",
        "operationId": "Namespaces_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace delete request succeeded."
          },
          "202": {
            "description": "Namespace delete request has been accepted for processing and the operation will complete asynchronously."
          },
          "204": {
            "description": "Namespace delete request has been accepted, but the namespace was not found."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {},
              "202": {},
              "204": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Returns the description for the specified namespace.",
        "operationId": "Namespaces_Get",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace description returned successfully.",
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01",
                  "location": "West US",
                  "name": "sdk-RelayNamespace-01",
                  "properties": {
                    "createdAt": "2017-01-23T20:38:12.46Z",
                    "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-RelayNamespace-01",
                    "provisioningState": "Succeeded",
                    "serviceBusEndpoint": "https://sdk-RelayNamespace-01.servicebus.windows.net:443/",
                    "updatedAt": "2017-01-23T20:38:34.533Z"
                  },
                  "sku": {
                    "name": "Standard",
                    "tier": "Standard"
                  },
                  "tags": {
                    "tag1": "value1",
                    "tag2": "value2"
                  },
                  "type": "Microsoft.Relay/Namespaces"
                }
              }
            }
          }
        }
      },
      "patch": {
        "description": "Creates or updates a namespace. Once created, this namespace's resource manifest is immutable. This operation is idempotent.",
        "operationId": "Namespaces_Update",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "description": "Parameters for updating a namespace resource.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RelayUpdateParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace successfuly updated.",
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          "201": {
            "description": "Namespace update request accepted.",
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceUpdate": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "tags": {
                  "tag3": "value3",
                  "tag4": "value4",
                  "tag5": "value5",
                  "tag6": "value6"
                }
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01",
                  "location": "West US",
                  "name": "sdk-RelayNamespace-01",
                  "properties": {
                    "metricId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef:sdk-relaynamespace-01",
                    "provisioningState": "Succeeded"
                  },
                  "tags": {
                    "tag3": "value3",
                    "tag4": "value4",
                    "tag5": "value5",
                    "tag6": "value6"
                  },
                  "type": "Microsoft.Relay/Namespaces"
                }
              },
              "201": {}
            }
          }
        }
      },
      "put": {
        "description": "Create Azure Relay namespace.",
        "operationId": "Namespaces_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "description": "Parameters supplied to create a namespace resource.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace create request succeeded.",
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          "201": {
            "description": "Namespace create request accepted.",
            "schema": {
              "$ref": "#/definitions/RelayNamespace"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNamespaceCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "location": "West US",
                "sku": {
                  "name": "Standard",
                  "tier": "Standard"
                },
                "tags": {
                  "tag1": "value1",
                  "tag2": "value2"
                }
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01",
                  "location": "West US",
                  "name": "sdk-RelayNamespace-01",
                  "properties": {
                    "metricId": "e2f361f0-3b27-4503-a9cc-21cfba380093:sdk-relaynamespace-01",
                    "provisioningState": "Unknown"
                  },
                  "sku": {
                    "name": "Standard",
                    "tier": "Standard"
                  },
                  "tags": {
                    "tag1": "value1",
                    "tag2": "value2"
                  },
                  "type": "Microsoft.Relay/Namespaces"
                }
              },
              "201": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/authorizationRules": {
      "get": {
        "description": "Authorization rules for a namespace.",
        "operationId": "Namespaces_ListAuthorizationRules",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace authorization rule returned successfully.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRuleListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAutorizationRuleListAll": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/AuthorizationRules/RootManageSharedAccessKey",
                      "name": "RootManageSharedAccessKey",
                      "properties": {
                        "rights": [
                          "Listen",
                          "Manage",
                          "Send"
                        ]
                      },
                      "type": "Microsoft.Relay/Namespaces/AuthorizationRules"
                    },
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/AuthorizationRules/sdk-RelayAuthRules-01",
                      "name": "sdk-RelayAuthRules-01",
                      "properties": {
                        "rights": [
                          "Listen",
                          "Send"
                        ]
                      },
                      "type": "Microsoft.Relay/Namespaces/AuthorizationRules"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/authorizationRules/{authorizationRuleName}": {
      "delete": {
        "description": "Deletes a namespace authorization rule.",
        "operationId": "Namespaces_DeleteAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to delete namespace authorization rule succeeded."
          },
          "204": {
            "description": "No content. The request has been accepted but the namespace authorization rule was not found."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAutorizationRuleDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Authorization rule for a namespace by name.",
        "operationId": "Namespaces_GetAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace Authorization rule returned successfully.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAutorizationRuleGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/AuthorizationRules"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates an authorization rule for a namespace.",
        "operationId": "Namespaces_CreateOrUpdateAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "The authorization rule parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to create namespace authorization rule succeeded.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAuthorizationRuleCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "properties": {
                  "rights": [
                    "Listen",
                    "Send"
                  ]
                }
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen",
                      "Send"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/AuthorizationRules"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/authorizationRules/{authorizationRuleName}/listKeys": {
      "post": {
        "description": "Primary and secondary connection strings to the namespace.",
        "operationId": "Namespaces_ListKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAuthorizationRuleListKey": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/authorizationRules/{authorizationRuleName}/regenerateKeys": {
      "post": {
        "description": "Regenerates the primary or secondary connection strings to the namespace.",
        "operationId": "Namespaces_RegenerateKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "Parameters supplied to regenerate authorization rule.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegenerateAccessKeyParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Namespaces"
        ],
        "x-ms-examples": {
          "RelayNameSpaceAuthorizationRuleRegenrateKey": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "keyType": "PrimaryKey"
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections": {
      "get": {
        "description": "Lists the hybrid connection within the namespace.",
        "operationId": "HybridConnections_ListByNamespace",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to retrieve hybrid connections by namespace succeeded.",
            "schema": {
              "$ref": "#/definitions/HybridConnectionListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionListAll": {
            "parameters": {
              "api-version": "2017-04-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01",
                      "name": "sdk-Relay-Hybrid-01",
                      "properties": {
                        "createdAt": "2017-01-23T20:34:49.4131724Z",
                        "listenerCount": 1,
                        "requiresClientAuthorization": true,
                        "updatedAt": "2017-01-23T20:34:49.4131724Z",
                        "userMetadata": "usermetadata is a placeholder to store user-defined string data for the HybridConnection endpoint.e.g. it can be used to store  descriptive data, such as list of teams and their contact information also user-defined configuration settings can be stored."
                      },
                      "type": "Microsoft.Relay/Namespaces/HybridConnections"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections/{hybridConnectionName}": {
      "delete": {
        "description": "Deletes a hybrid connection.",
        "operationId": "HybridConnections_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to delete hybrid connection succeeded."
          },
          "204": {
            "description": "No content. The request has been accepted but the hybrid connection was not found."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridconnectionDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Returns the description for the specified hybrid connection.",
        "operationId": "HybridConnections_Get",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved description for the hybrid connection.",
            "schema": {
              "$ref": "#/definitions/HybridConnection"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01",
                  "name": "sdk-Relay-Hybrid-01",
                  "properties": {
                    "createdAt": "2017-01-23T20:34:49.4131724Z",
                    "listenerCount": 1,
                    "requiresClientAuthorization": true,
                    "updatedAt": "2017-01-23T20:34:49.4131724Z",
                    "userMetadata": "usermetadata is a placeholder to store user-defined string data for the HybridConnection endpoint.e.g. it can be used to store  descriptive data, such as list of teams and their contact information also user-defined configuration settings can be stored."
                  },
                  "type": "Microsoft.Relay/Namespaces/HybridConnections"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates a service hybrid connection. This operation is idempotent.",
        "operationId": "HybridConnections_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "description": "Parameters supplied to create a hybrid connection.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/HybridConnection"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to create hybrid connections succeeded.",
            "schema": {
              "$ref": "#/definitions/HybridConnection"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "properties": {
                  "requiresClientAuthorization": true
                }
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01",
                  "name": "sdk-Relay-Hybrid-01",
                  "properties": {
                    "createdAt": "2017-01-23T20:34:49.4131724Z",
                    "requiresClientAuthorization": true,
                    "updatedAt": "2017-01-23T20:34:49.4131724Z"
                  },
                  "type": "Microsoft.Relay/Namespaces/HybridConnections"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections/{hybridConnectionName}/authorizationRules": {
      "get": {
        "description": "Authorization rules for a hybrid connection.",
        "operationId": "HybridConnections_ListAuthorizationRules",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Authorization rules successfully returned.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRuleListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAutorizationRuleListAll": {
            "parameters": {
              "api-version": "2017-04-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01/AuthorizationRules/sdk-RelayAuthRules-01",
                      "name": "sdk-RelayAuthRules-01",
                      "properties": {
                        "rights": [
                          "Listen",
                          "Send"
                        ]
                      },
                      "type": "Microsoft.Relay/Namespaces/Hybridconnections/AuthorizationRules"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections/{hybridConnectionName}/authorizationRules/{authorizationRuleName}": {
      "delete": {
        "description": "Deletes a hybrid connection authorization rule.",
        "operationId": "HybridConnections_DeleteAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Hybrid connection authorization rule deleted."
          },
          "204": {
            "description": "Authorization rule does not exist."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAutorizationRuleDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Hybrid connection authorization rule for a hybrid connection by name.",
        "operationId": "HybridConnections_GetAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Hybrid connection authorization rule returned successfully.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAutorizationRuleGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/Hybridconnections/AuthorizationRules"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates an authorization rule for a hybrid connection.",
        "operationId": "HybridConnections_CreateOrUpdateAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "The authorization rule parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Hybrid connection authorization rule created.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAuthorizationRuleCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "properties": {
                  "rights": [
                    "Listen",
                    "Send"
                  ]
                }
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/HybridConnections/sdk-Relay-Hybrid-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen",
                      "Send"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/Hybridconnections/AuthorizationRules"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections/{hybridConnectionName}/authorizationRules/{authorizationRuleName}/listKeys": {
      "post": {
        "description": "Primary and secondary connection strings to the hybrid connection.",
        "operationId": "HybridConnections_ListKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to retirve connection strings to the hybrid connection succeeded.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAuthorizationRuleListKey": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/hybridConnections/{hybridConnectionName}/authorizationRules/{authorizationRuleName}/regenerateKeys": {
      "post": {
        "description": "Regenerates the primary or secondary connection strings to the hybrid connection.",
        "operationId": "HybridConnections_RegenerateKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/hybridConnectionNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "Parameters supplied to regenerate authorization rule.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegenerateAccessKeyParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to regenerate connection strings to hybrid connection succeeded.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "HybridConnections"
        ],
        "x-ms-examples": {
          "RelayHybridConnectionAuthorizationRuleRegenrateKey": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "hybridConnectionName": "sdk-Relay-Hybrid-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "keyType": "PrimaryKey"
              },
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays": {
      "get": {
        "description": "Lists the WCF relays within the namespace.",
        "operationId": "WCFRelays_ListByNamespace",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "WCF relays returned successfully.",
            "schema": {
              "$ref": "#/definitions/WcfRelaysListResult"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayListAll": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG1-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/WcfRelays/sdk-Relay-Wcf-01",
                      "name": "sdk-Relay-Wcf-01",
                      "properties": {
                        "createdAt": "2017-01-24T00:46:27.0049983Z",
                        "isDynamic": false,
                        "relayType": "NetTcp",
                        "requiresClientAuthorization": true,
                        "requiresTransportSecurity": true,
                        "updatedAt": "2017-01-24T00:46:27.0049983Z",
                        "userMetadata": "usermetadata is a placeholder to store user-defined string data for the HybridConnection endpoint.e.g. it can be used to store  descriptive data, such as list of teams and their contact information also user-defined configuration settings can be stored"
                      },
                      "type": "Microsoft.Relay/Namespaces/WcfRelays"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays/{relayName}": {
      "delete": {
        "description": "Deletes a WCF relay.",
        "operationId": "WCFRelays_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "WCF relay deleted."
          },
          "204": {
            "description": "No content."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "e2f361f0-3b27-4503-a9cc-21cfba380093"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Returns the description for the specified WCF relay.",
        "operationId": "WCFRelays_Get",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved WCF relay description.",
            "schema": {
              "$ref": "#/definitions/WcfRelay"
            }
          },
          "204": {
            "description": "WCF relay not found"
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-9953",
              "relayName": "sdk-Relay-Wcf-1194",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/e2f361f0-3b27-4503-a9cc-21cfba380093/resourceGroups/Default-ServiceBus-WestUS/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-9953/WcfRelays/sdk-Relay-Wcf-1194",
                  "name": "sdk-Relay-Wcf-1194",
                  "properties": {
                    "createdAt": "2017-03-16T00:26:17.5014661Z",
                    "isDynamic": false,
                    "listenerCount": 0,
                    "relayType": "NetTcp",
                    "requiresClientAuthorization": true,
                    "requiresTransportSecurity": true,
                    "updatedAt": "2017-03-16T00:26:17.5014661Z"
                  },
                  "type": "Microsoft.Relay/WcfRelays"
                }
              },
              "204": {}
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates a WCF relay. This operation is idempotent.",
        "operationId": "WCFRelays_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "description": "Parameters supplied to create a WCF relay.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WcfRelay"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to create WCF relay succeeded.",
            "schema": {
              "$ref": "#/definitions/WcfRelay"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-9953",
              "parameters": {
                "properties": {
                  "relayType": "NetTcp",
                  "requiresClientAuthorization": true,
                  "requiresTransportSecurity": true
                }
              },
              "relayName": "sdk-Relay-Wcf-1194",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "e2f361f0-3b27-4503-a9cc-21cfba380093"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/e2f361f0-3b27-4503-a9cc-21cfba380093/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-9953/WcfRelays/sdk-Relay-Wcf-1194",
                  "name": "sdk-Relay-Wcf-1194",
                  "properties": {
                    "createdAt": "2017-03-16T00:26:17.5014661Z",
                    "isDynamic": false,
                    "relayType": "NetTcp",
                    "requiresClientAuthorization": true,
                    "requiresTransportSecurity": true,
                    "updatedAt": "2017-03-16T00:26:17.5014661Z"
                  },
                  "type": "Microsoft.Relay/WcfRelays"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays/{relayName}/authorizationRules": {
      "get": {
        "description": "Authorization rules for a WCF relay.",
        "operationId": "WCFRelays_ListAuthorizationRules",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Authorization rules successfully returned.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRuleListResult"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAutorizationRuleListAll": {
            "parameters": {
              "api-version": "2017-04-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "relayName": "sdk-Relay-Wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/WcfRelays/sdk-Relay-Wcf-01/AuthorizationRules/sdk-RelayAuthRules-01",
                      "name": "sdk-RelayAuthRules-01",
                      "properties": {
                        "rights": [
                          "Listen",
                          "Send"
                        ]
                      },
                      "type": "Microsoft.Relay/Namespaces/WcfRelay/AuthorizationRules"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays/{relayName}/authorizationRules/{authorizationRuleName}": {
      "delete": {
        "description": "Deletes a WCF relay authorization rule.",
        "operationId": "WCFRelays_DeleteAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request to delete WCF relay authorization rule succeeded."
          },
          "204": {
            "description": "Request accepted butthe authorization rule does not exist."
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAutorizationRuleDelete": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get authorizationRule for a WCF relay by name.",
        "operationId": "WCFRelays_GetAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request for WCF relay authorization rule succeeded.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAutorizationRuleGet": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/WcfRelays/sdk-Relay-Wcf-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/WcfRelay/AuthorizationRules"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates an authorization rule for a WCF relay.",
        "operationId": "WCFRelays_CreateOrUpdateAuthorizationRule",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "The authorization rule parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "WCF relay authorization rule created.",
            "schema": {
              "$ref": "#/definitions/AuthorizationRule"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAuthorizationRuleCreate": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "properties": {
                  "rights": [
                    "Listen",
                    "Send"
                  ]
                }
              },
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/8c246e6a-cbc6-4a87-aff1-d6a886f376ef/resourceGroups/RG-eg/providers/Microsoft.Relay/namespaces/sdk-RelayNamespace-01/WcfRelays/sdk-Relay-Wcf-01/AuthorizationRules/sdk-RelayAuthRules-01",
                  "name": "sdk-RelayAuthRules-01",
                  "properties": {
                    "rights": [
                      "Listen",
                      "Send"
                    ]
                  },
                  "type": "Microsoft.Relay/Namespaces/WcfRelay/AuthorizationRules"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays/{relayName}/authorizationRules/{authorizationRuleName}/listKeys": {
      "post": {
        "description": "Primary and secondary connection strings to the WCF relay.",
        "operationId": "WCFRelays_ListKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAuthorizationRuleListKey.json": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}/wcfRelays/{relayName}/authorizationRules/{authorizationRuleName}/regenerateKeys": {
      "post": {
        "description": "Regenerates the primary or secondary connection strings to the WCF relay.",
        "operationId": "WCFRelays_RegenerateKeys",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/namespaceNameParameter"
          },
          {
            "$ref": "#/parameters/relayNameParameter"
          },
          {
            "$ref": "#/parameters/authorizationRuleNameParameter"
          },
          {
            "description": "Parameters supplied to regenerate authorization rule.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegenerateAccessKeyParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "schema": {
              "$ref": "#/definitions/AccessKeys"
            }
          },
          "default": {
            "description": "Relay error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "WCFRelays"
        ],
        "x-ms-examples": {
          "RelayAuthorizationRuleRegenrateKey.json": {
            "parameters": {
              "api-version": "2017-04-01",
              "authorizationRuleName": "sdk-RelayAuthRules-01",
              "namespaceName": "sdk-RelayNamespace-01",
              "parameters": {
                "keyType": "PrimaryKey"
              },
              "relayName": "sdk-Relay-wcf-01",
              "resourceGroupName": "RG-eg",
              "subscriptionId": "8c246e6a-cbc6-4a87-aff1-d6a886f376ef"
            },
            "responses": {
              "200": {
                "body": {
                  "keyName": "sdk-RelayAuthRules-01",
                  "primaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "primaryKey": "############################################",
                  "secondaryConnectionString": "Endpoint=sb://sdk-relaynamespace-01.servicebus.windows.net/;SharedAccessKeyName=sdk-RelayAuthRules-01;SharedAccessKey=############################################",
                  "secondaryKey": "############################################"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AccessKeys": {
      "description": "Namespace/Relay Connection String",
      "properties": {
        "keyName": {
          "description": "A string that describes the authorization rule.",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "Primary connection string of the created namespace authorization rule.",
          "type": "string"
        },
        "primaryKey": {
          "description": "A base64-encoded 256-bit primary key for signing and validating the SAS token.",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "Secondary connection string of the created namespace authorization rule.",
          "type": "string"
        },
        "secondaryKey": {
          "description": "A base64-encoded 256-bit secondary key for signing and validating the SAS token.",
          "type": "string"
        }
      }
    },
    "AuthorizationRule": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Description of a namespace authorization rule.",
      "properties": {
        "properties": {
          "description": "Authorization rule properties.",
          "properties": {
            "rights": {
              "description": "The rights associated with the rule.",
              "items": {
                "enum": [
                  "Manage",
                  "Send",
                  "Listen"
                ],
                "type": "string",
                "x-ms-enum": {
                  "modelAsString": false,
                  "name": "AccessRights"
                }
              },
              "type": "array",
              "uniqueItems": true
            }
          },
          "required": [
            "rights"
          ],
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ]
    },
    "AuthorizationRuleListResult": {
      "description": "The response from the list namespace operation.",
      "properties": {
        "nextLink": {
          "description": "Link to the next set of results. Not empty if value contains incomplete list of authorization rules.",
          "type": "string"
        },
        "value": {
          "description": "Result of the list authorization rules operation.",
          "items": {
            "$ref": "#/definitions/AuthorizationRule"
          },
          "type": "array"
        }
      }
    },
    "CheckNameAvailability": {
      "description": "Description of the check name availability request properties.",
      "properties": {
        "name": {
          "description": "The namespace name to check for availability. The namespace name can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "CheckNameAvailabilityResult": {
      "description": "Description of the check name availability request properties.",
      "properties": {
        "message": {
          "description": "The detailed info regarding the reason associated with the namespace.",
          "readOnly": true,
          "type": "string"
        },
        "nameAvailable": {
          "description": "Value indicating namespace is available. Returns true if the namespace is available; otherwise, false.",
          "type": "boolean"
        },
        "reason": {
          "$ref": "#/definitions/UnavailableReason",
          "description": "The reason for unavailability of a namespace."
        }
      }
    },
    "ErrorResponse": {
      "description": "Error reponse indicates Relay service is not able to process the incoming request. The reason is provided in the error message.",
      "properties": {
        "code": {
          "description": "Error code.",
          "type": "string"
        },
        "message": {
          "description": "Error message indicating why the operation failed.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HybridConnection": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Description of hybrid connection resource.",
      "properties": {
        "properties": {
          "description": "Properties of the HybridConnection.",
          "properties": {
            "createdAt": {
              "description": "The time the hybrid connection was created.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "listenerCount": {
              "description": "The number of listeners for this hybrid connection. Note that min : 1 and max:25 are supported.",
              "format": "int32",
              "maximum": 25,
              "minimum": 0,
              "readOnly": true,
              "type": "integer"
            },
            "requiresClientAuthorization": {
              "description": "Returns true if client authorization is needed for this hybrid connection; otherwise, false.",
              "type": "boolean"
            },
            "updatedAt": {
              "description": "The time the namespace was updated.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "userMetadata": {
              "description": "The usermetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration settings can be stored.",
              "type": "string"
            }
          },
          "x-ms-client-flatten": true
        }
      }
    },
    "HybridConnectionListResult": {
      "description": "The response of the list hybrid connection operation.",
      "properties": {
        "nextLink": {
          "description": "Link to the next set of results. Not empty if value contains incomplete list hybrid connection operation.",
          "type": "string"
        },
        "value": {
          "description": "Result of the list hybrid connections.",
          "items": {
            "$ref": "#/definitions/HybridConnection"
          },
          "type": "array"
        }
      }
    },
    "Operation": {
      "description": "A Relay REST API operation.",
      "properties": {
        "display": {
          "description": "The object that represents the operation.",
          "properties": {
            "operation": {
              "description": "Operation type: Read, write, delete, etc.",
              "readOnly": true,
              "type": "string"
            },
            "provider": {
              "description": "Service provider: Relay.",
              "readOnly": true,
              "type": "string"
            },
            "resource": {
              "description": "Resource on which the operation is performed: Invoice, etc.",
              "readOnly": true,
              "type": "string"
            }
          }
        },
        "name": {
          "description": "Operation name: {provider}/{resource}/{operation}",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "OperationListResult": {
      "description": "Result of the request to list Relay operations. It contains a list of operations and a URL link to get the next set of results.",
      "properties": {
        "nextLink": {
          "description": "URL to get the next set of operation list results if there are any.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "List of Relay operations supported by resource provider.",
          "items": {
            "$ref": "#/definitions/Operation"
          },
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "RegenerateAccessKeyParameters": {
      "description": "Parameters supplied to the regenerate authorization rule operation, specifies which key neeeds to be reset.",
      "properties": {
        "key": {
          "description": "Optional. If the key value is provided, this is set to key type, or autogenerated key value set for key type.",
          "type": "string"
        },
        "keyType": {
          "description": "The access key to regenerate.",
          "enum": [
            "PrimaryKey",
            "SecondaryKey"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "KeyType"
          }
        }
      },
      "required": [
        "keyType"
      ]
    },
    "RelayNamespace": {
      "allOf": [
        {
          "$ref": "#/definitions/TrackedResource"
        }
      ],
      "description": "Description of a namespace resource.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/RelayNamespaceProperties",
          "description": "Description of Relay namespace",
          "x-ms-client-flatten": true
        },
        "sku": {
          "$ref": "#/definitions/Sku",
          "description": "SKU of the namespace."
        }
      }
    },
    "RelayNamespaceListResult": {
      "description": "The response from the list namespace operation.",
      "properties": {
        "nextLink": {
          "description": "Link to the next set of results. Not empty if value contains incomplete list of namespaces.",
          "type": "string"
        },
        "value": {
          "description": "Result of the list namespace operation.",
          "items": {
            "$ref": "#/definitions/RelayNamespace"
          },
          "type": "array"
        }
      }
    },
    "RelayNamespaceProperties": {
      "description": "Properties of the namespace.",
      "properties": {
        "createdAt": {
          "description": "The time the namespace was created.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "metricId": {
          "description": "Identifier for Azure Insights metrics.",
          "readOnly": true,
          "type": "string"
        },
        "provisioningState": {
          "enum": [
            "Created",
            "Succeeded",
            "Deleted",
            "Failed",
            "Updating",
            "Unknown"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "provisioningStateEnum"
          }
        },
        "serviceBusEndpoint": {
          "description": "Endpoint you can use to perform Service Bus operations.",
          "readOnly": true,
          "type": "string"
        },
        "updatedAt": {
          "description": "The time the namespace was updated.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "RelayUpdateParameters": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceNamespacePatch"
        }
      ],
      "description": "Description of a namespace resource.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/RelayNamespaceProperties",
          "description": "Description of Relay namespace.",
          "x-ms-client-flatten": true
        },
        "sku": {
          "$ref": "#/definitions/Sku",
          "description": "SKU of the namespace."
        }
      }
    },
    "Resource": {
      "description": "The resource definition.",
      "properties": {
        "id": {
          "description": "Resource ID.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Resource name.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Resource type.",
          "readOnly": true,
          "type": "string"
        }
      },
      "x-ms-azure-resource": true
    },
    "ResourceNamespacePatch": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Definition of resource.",
      "properties": {
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags.",
          "type": "object"
        }
      }
    },
    "Sku": {
      "description": "SKU of the namespace.",
      "properties": {
        "name": {
          "description": "Name of this SKU.",
          "enum": [
            "Standard"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "SkuName"
          }
        },
        "tier": {
          "description": "The tier of this SKU.",
          "enum": [
            "Standard"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "SkuTier"
          }
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "TrackedResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Definition of resource.",
      "properties": {
        "location": {
          "description": "Resource location.",
          "type": "string",
          "x-ms-mutability": [
            "read",
            "create"
          ]
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags.",
          "type": "object"
        }
      },
      "required": [
        "location"
      ]
    },
    "UnavailableReason": {
      "description": "Specifies the reason for the unavailability of the service.",
      "enum": [
        "None",
        "InvalidName",
        "SubscriptionIsDisabled",
        "NameInUse",
        "NameInLockdown",
        "TooManyNamespaceInCurrentSubscription"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "UnavailableReason"
      }
    },
    "WcfRelay": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Description of the WCF relay resource.",
      "properties": {
        "properties": {
          "description": "Properties of the WCF relay.",
          "properties": {
            "createdAt": {
              "description": "The time the WCF relay was created.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "isDynamic": {
              "description": "Returns true if the relay is dynamic; otherwise, false.",
              "readOnly": true,
              "type": "boolean"
            },
            "listenerCount": {
              "description": "The number of listeners for this relay. Note that min :1 and max:25 are supported.",
              "format": "int32",
              "maximum": 25,
              "minimum": 0,
              "readOnly": true,
              "type": "integer"
            },
            "relayType": {
              "description": "WCF relay type.",
              "enum": [
                "NetTcp",
                "Http"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "Relaytype"
              }
            },
            "requiresClientAuthorization": {
              "description": "Returns true if client authorization is needed for this relay; otherwise, false.",
              "type": "boolean"
            },
            "requiresTransportSecurity": {
              "description": "Returns true if transport security is needed for this relay; otherwise, false.",
              "type": "boolean"
            },
            "updatedAt": {
              "description": "The time the namespace was updated.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "userMetadata": {
              "description": "The usermetadata is a placeholder to store user-defined string data for the WCF Relay endpoint. For example, it can be used to store descriptive data, such as list of teams and their contact information. Also, user-defined configuration settings can be stored.",
              "type": "string"
            }
          },
          "x-ms-client-flatten": true
        }
      }
    },
    "WcfRelaysListResult": {
      "description": "The response of the list WCF relay operation.",
      "properties": {
        "nextLink": {
          "description": "Link to the next set of results. Not empty if value contains incomplete list of WCF relays.",
          "type": "string"
        },
        "value": {
          "description": "Result of the list WCF relay operation.",
          "items": {
            "$ref": "#/definitions/WcfRelay"
          },
          "type": "array"
        }
      }
    }
  }
}