{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "TrafficManagerManagementClient",
    "version": "2015-11-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-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-trafficmanager/2015-11-01/swagger/trafficmanager.json",
        "version": "2.0"
      }
    ],
    "x-preferred": true,
    "x-providerName": "azure.com",
    "x-serviceName": "arm-trafficmanager",
    "x-tags": [
      "Azure",
      "Microsoft"
    ],
    "x-datafire": {
      "name": "azure_arm_trafficmanager",
      "type": "openapi"
    }
  },
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/json"
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client Api Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "SubscriptionIdParameter": {
      "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/providers/Microsoft.Network/checkTrafficManagerNameAvailability": {
      "post": {
        "description": "Checks the availability of a Traffic Manager Relative DNS name.",
        "operationId": "Profiles_CheckTrafficManagerRelativeDnsNameAvailability",
        "parameters": [
          {
            "description": "The Traffic Manager name parameters supplied to the CheckTrafficManagerNameAvailability operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CheckTrafficManagerRelativeDnsNameAvailabilityParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/TrafficManagerNameAvailability"
            }
          }
        },
        "tags": [
          "Profiles"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Network/trafficmanagerprofiles": {
      "get": {
        "description": "Lists all Traffic Manager profiles within a subscription.",
        "operationId": "Profiles_ListAll",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ProfileListResult"
            }
          }
        },
        "tags": [
          "Profiles"
        ],
        "x-ms-pageable": {}
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles": {
      "get": {
        "description": "Lists all Traffic Manager profiles within a resource group.",
        "operationId": "Profiles_ListAllInResourceGroup",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager profiles to be listed.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ProfileListResult"
            }
          }
        },
        "tags": [
          "Profiles"
        ],
        "x-ms-pageable": {}
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}": {
      "delete": {
        "description": "Deletes a Traffic Manager profile.",
        "operationId": "Profiles_Delete",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager profile to be deleted.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile to be deleted.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "204": {
            "description": ""
          }
        },
        "tags": [
          "Profiles"
        ]
      },
      "get": {
        "description": "Gets a Traffic Manager profile.",
        "operationId": "Profiles_Get",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager profile.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The Traffic Manager profile.",
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          }
        },
        "tags": [
          "Profiles"
        ]
      },
      "patch": {
        "description": "Update a Traffic Manager profile.",
        "operationId": "Profiles_Update",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager profile.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Traffic Manager profile parameters supplied to the Update operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The updated Traffic Manager profile.",
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          }
        },
        "tags": [
          "Profiles"
        ]
      },
      "put": {
        "description": "Create or update a Traffic Manager profile.",
        "operationId": "Profiles_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager profile.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Traffic Manager profile parameters supplied to the CreateOrUpdate operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The created or updated Traffic Manager profile.",
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          },
          "201": {
            "description": "The created or updated Traffic Manager profile.",
            "schema": {
              "$ref": "#/definitions/Profile"
            }
          }
        },
        "tags": [
          "Profiles"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}/{endpointType}/{endpointName}": {
      "delete": {
        "description": "Deletes a Traffic Manager endpoint.",
        "operationId": "Endpoints_Delete",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager endpoint to be deleted.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The type of the Traffic Manager endpoint to be deleted.",
            "in": "path",
            "name": "endpointType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager endpoint to be deleted.",
            "in": "path",
            "name": "endpointName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "204": {
            "description": ""
          }
        },
        "tags": [
          "Endpoints"
        ]
      },
      "get": {
        "description": "Gets a Traffic Manager endpoint.",
        "operationId": "Endpoints_Get",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager endpoint.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The type of the Traffic Manager endpoint.",
            "in": "path",
            "name": "endpointType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager endpoint.",
            "in": "path",
            "name": "endpointName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The Traffic Manager endpoint.",
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          }
        },
        "tags": [
          "Endpoints"
        ]
      },
      "patch": {
        "description": "Update a Traffic Manager endpoint.",
        "operationId": "Endpoints_Update",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager endpoint to be updated.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The type of the Traffic Manager endpoint to be updated.",
            "in": "path",
            "name": "endpointType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager endpoint to be updated.",
            "in": "path",
            "name": "endpointName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Traffic Manager endpoint parameters supplied to the Update operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The updated Traffic Manager endpoint.",
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          }
        },
        "tags": [
          "Endpoints"
        ]
      },
      "put": {
        "description": "Create or update a Traffic Manager endpoint.",
        "operationId": "Endpoints_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group containing the Traffic Manager endpoint to be created or updated.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager profile.",
            "in": "path",
            "name": "profileName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The type of the Traffic Manager endpoint to be created or updated.",
            "in": "path",
            "name": "endpointType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the Traffic Manager endpoint to be created or updated.",
            "in": "path",
            "name": "endpointName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Traffic Manager endpoint parameters supplied to the CreateOrUpdate operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The created or updated Endpoint.",
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          },
          "201": {
            "description": "The created or updated Endpoint.",
            "schema": {
              "$ref": "#/definitions/Endpoint"
            }
          }
        },
        "tags": [
          "Endpoints"
        ]
      }
    }
  },
  "definitions": {
    "CheckTrafficManagerRelativeDnsNameAvailabilityParameters": {
      "description": "Parameters supplied to check Traffic Manager name operation.",
      "properties": {
        "name": {
          "description": "Gets or sets the name of the resource.",
          "type": "string"
        },
        "type": {
          "description": "Gets or sets the type of the resource.",
          "type": "string"
        }
      }
    },
    "DnsConfig": {
      "description": "Class containing DNS settings in a Traffic Manager profile.",
      "properties": {
        "fqdn": {
          "description": "Gets or sets the fully-qualified domain name (FQDN) of the Traffic Manager profile.  This is formed from the concatenation of the RelativeName with the DNS domain used by Azure Traffic Manager.",
          "type": "string"
        },
        "relativeName": {
          "description": "Gets or sets the relative DNS name provided by this Traffic Manager profile.  This value is combined with the DNS domain name used by Azure Traffic Manager to form the fully-qualified domain name (FQDN) of the profile.",
          "type": "string"
        },
        "ttl": {
          "description": "Gets or sets the DNS Ttime-To-Live (TTL), in seconds.  This informs the local DNS resolvers and DNS clients how long to cache DNS responses provided by this Traffic Manager profile.",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "Endpoint": {
      "description": "Class representing a Traffic Manager endpoint.",
      "properties": {
        "id": {
          "description": "Gets or sets the ID of the Traffic Manager endpoint.",
          "type": "string"
        },
        "name": {
          "description": "Gets or sets the name of the Traffic Manager endpoint.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/EndpointProperties",
          "x-ms-client-flatten": true
        },
        "type": {
          "description": "Gets or sets the endpoint type of the Traffic Manager endpoint.",
          "type": "string"
        }
      }
    },
    "EndpointProperties": {
      "description": "Class representing a Traffic Manager endpoint properties.",
      "properties": {
        "endpointLocation": {
          "description": "Specifies the location of the external or nested endpoints when using the ‘Performance’ traffic routing method.",
          "type": "string"
        },
        "endpointMonitorStatus": {
          "description": "Gets or sets the monitoring status of the endpoint.",
          "type": "string"
        },
        "endpointStatus": {
          "description": "Gets or sets the status of the endpoint..  If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.  Possible values are 'Enabled' and 'Disabled'.",
          "type": "string"
        },
        "minChildEndpoints": {
          "description": "Gets or sets the minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.",
          "format": "int64",
          "type": "integer"
        },
        "priority": {
          "description": "Gets or sets the priority of this endpoint when using the ‘Priority’ traffic routing method. Possible values are from 1 to 1000, lower values represent higher priority. This is an optional parameter.  If specified, it must be specified on all endpoints, and no two endpoints can share the same priority value.",
          "format": "int64",
          "type": "integer"
        },
        "target": {
          "description": "Gets or sets the fully-qualified DNS name of the endpoint.  Traffic Manager returns this value in DNS responses to direct traffic to this endpoint.",
          "type": "string"
        },
        "targetResourceId": {
          "description": "Gets or sets the Azure Resource URI of the of the endpoint.  Not applicable to endpoints of type 'ExternalEndpoints'.",
          "type": "string"
        },
        "weight": {
          "description": "Gets or sets the weight of this endpoint when using the 'Weighted' traffic routing method. Possible values are from 1 to 1000.",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "MonitorConfig": {
      "description": "Class containing endpoint monitoring settings in a Traffic Manager profile.",
      "properties": {
        "path": {
          "description": "Gets or sets the path relative to the endpoint domain name used to probe for endpoint health.",
          "type": "string"
        },
        "port": {
          "description": "Gets or sets the TCP port used to probe for endpoint health.",
          "format": "int64",
          "type": "integer"
        },
        "profileMonitorStatus": {
          "description": "Gets or sets the profile-level monitoring status of the Traffic Manager profile.",
          "type": "string"
        },
        "protocol": {
          "description": "Gets or sets the protocol (HTTP or HTTPS) used to probe for endpoint health.",
          "type": "string"
        }
      }
    },
    "Profile": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Class representing a Traffic Manager profile.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ProfileProperties",
          "x-ms-client-flatten": true
        }
      }
    },
    "ProfileListResult": {
      "description": "The list Traffic Manager profiles operation response.",
      "properties": {
        "value": {
          "description": "Gets the list of Traffic manager profiles.",
          "items": {
            "$ref": "#/definitions/Profile"
          },
          "type": "array"
        }
      }
    },
    "ProfileProperties": {
      "description": "Class representing the Traffic Manager profile properties.",
      "properties": {
        "dnsConfig": {
          "$ref": "#/definitions/DnsConfig",
          "description": "Gets or sets the DNS settings of the Traffic Manager profile."
        },
        "endpoints": {
          "description": "Gets or sets the list of endpoints in the Traffic Manager profile.",
          "items": {
            "$ref": "#/definitions/Endpoint"
          },
          "type": "array"
        },
        "monitorConfig": {
          "$ref": "#/definitions/MonitorConfig",
          "description": "Gets or sets the endpoint monitoring settings of the Traffic Manager profile."
        },
        "profileStatus": {
          "description": "Gets or sets the status of the Traffic Manager profile.  Possible values are 'Enabled' and 'Disabled'.",
          "type": "string"
        },
        "trafficRoutingMethod": {
          "description": "Gets or sets the traffic routing method of the Traffic Manager profile.  Possible values are 'Performance', 'Weighted', or 'Priority'.",
          "type": "string"
        }
      }
    },
    "Resource": {
      "properties": {
        "id": {
          "description": "Resource Id",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "Resource location",
          "type": "string"
        },
        "name": {
          "description": "Resource name",
          "readOnly": true,
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags",
          "type": "object"
        },
        "type": {
          "description": "Resource type",
          "readOnly": true,
          "type": "string"
        }
      },
      "x-ms-azure-resource": true
    },
    "SubResource": {
      "properties": {
        "id": {
          "description": "Resource Id",
          "type": "string"
        }
      },
      "x-ms-external": true
    },
    "TrafficManagerNameAvailability": {
      "description": "Class representing a Traffic Manager Name Availability response.",
      "properties": {
        "message": {
          "description": "Descriptive message that explains why the name is not available, when applicable.",
          "type": "string"
        },
        "name": {
          "description": "The relative name.",
          "type": "string"
        },
        "nameAvailable": {
          "description": "Describes whether the relative name is available or not.",
          "type": "boolean"
        },
        "reason": {
          "description": "The reason why the name is not available, when applicable.",
          "type": "string"
        },
        "type": {
          "description": "Traffic Manager profile resource type.",
          "type": "string"
        }
      }
    }
  }
}