{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "SchedulerManagementClient",
    "version": "2014-08-01-preview",
    "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/specification/scheduler/resource-manager/Microsoft.Scheduler/preview/2014-08-01-preview/scheduler.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "scheduler",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/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": {
    "api-version": {
      "description": "The API version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "subscriptionId": {
      "description": "The subscription id.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.Scheduler/jobCollections": {
      "get": {
        "description": "Gets all job collections under specified subscription.",
        "operationId": "JobCollections_ListBySubscription",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job collections have been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobCollectionListResult"
            }
          }
        },
        "tags": [
          "JobCollections"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections": {
      "get": {
        "description": "Gets all job collections under specified resource group.",
        "operationId": "JobCollections_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job collections have been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobCollectionListResult"
            }
          }
        },
        "tags": [
          "JobCollections"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}": {
      "delete": {
        "description": "Deletes a job collection.",
        "operationId": "JobCollections_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job collection has been successfully deleted."
          }
        },
        "tags": [
          "JobCollections"
        ]
      },
      "get": {
        "description": "Gets a job collection.",
        "operationId": "JobCollections_Get",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job collection has been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          }
        },
        "tags": [
          "JobCollections"
        ]
      },
      "patch": {
        "description": "Patches an existing job collection.",
        "operationId": "JobCollections_Patch",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "The job collection definition.",
            "in": "body",
            "name": "jobCollection",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The job collection has been successfully patched.",
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          }
        },
        "tags": [
          "JobCollections"
        ]
      },
      "put": {
        "description": "Provisions a new job collection or updates an existing job collection.",
        "operationId": "JobCollections_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "The job collection definition.",
            "in": "body",
            "name": "jobCollection",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The job collection has been successfully updated.",
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          },
          "201": {
            "description": "The job collection has been successfully created.",
            "schema": {
              "$ref": "#/definitions/JobCollectionDefinition"
            }
          }
        },
        "tags": [
          "JobCollections"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/disable": {
      "post": {
        "description": "Disables all of the jobs in the job collection.",
        "operationId": "JobCollections_Disable",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "All of the jobs in the job collection have been successfully disabled."
          }
        },
        "tags": [
          "JobCollections"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/enable": {
      "post": {
        "description": "Enables all of the jobs in the job collection.",
        "operationId": "JobCollections_Enable",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "All of the jobs in the job collection have been successfully enabled."
          }
        },
        "tags": [
          "JobCollections"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs": {
      "get": {
        "description": "Lists all jobs under the specified job collection.",
        "operationId": "Jobs_List",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "The number of jobs to request, in the of range [1..100].",
            "in": "query",
            "name": "$top",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The (0-based) index of the job history list from which to begin requesting entries.",
            "in": "query",
            "name": "$skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The filter to apply on the job state.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobListResult"
            }
          }
        },
        "tags": [
          "Jobs"
        ],
        "x-ms-odata": "#/definitions/JobStateFilter",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs/{jobName}": {
      "delete": {
        "description": "Deletes a job.",
        "operationId": "Jobs_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully deleted."
          }
        },
        "tags": [
          "Jobs"
        ]
      },
      "get": {
        "description": "Gets a job.",
        "operationId": "Jobs_Get",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          }
        },
        "tags": [
          "Jobs"
        ]
      },
      "patch": {
        "description": "Patches an existing job.",
        "operationId": "Jobs_Patch",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "The job definition.",
            "in": "body",
            "name": "job",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully patched.",
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          }
        },
        "tags": [
          "Jobs"
        ]
      },
      "put": {
        "description": "Provisions a new job or updates an existing job.",
        "operationId": "Jobs_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "The job definition.",
            "in": "body",
            "name": "job",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully updated.",
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          },
          "201": {
            "description": "The job has been successfully created.",
            "schema": {
              "$ref": "#/definitions/JobDefinition"
            }
          }
        },
        "tags": [
          "Jobs"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs/{jobName}/history": {
      "get": {
        "description": "Lists job history.",
        "operationId": "Jobs_ListJobHistory",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          },
          {
            "description": "the number of job history to request, in the of range [1..100].",
            "in": "query",
            "name": "$top",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The (0-based) index of the job history list from which to begin requesting entries.",
            "in": "query",
            "name": "$skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The filter to apply on the job state.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The job histories have been successfully returned.",
            "schema": {
              "$ref": "#/definitions/JobHistoryListResult"
            }
          }
        },
        "tags": [
          "Jobs"
        ],
        "x-ms-odata": "#/definitions/JobHistoryFilter",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs/{jobName}/run": {
      "post": {
        "description": "Runs a job.",
        "operationId": "Jobs_Run",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "description": "The resource group name.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job collection name.",
            "in": "path",
            "name": "jobCollectionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/api-version"
          }
        ],
        "responses": {
          "200": {
            "description": "The job has been successfully run."
          }
        },
        "tags": [
          "Jobs"
        ]
      }
    }
  },
  "definitions": {
    "BasicAuthentication": {
      "allOf": [
        {
          "$ref": "#/definitions/HttpAuthentication"
        }
      ],
      "properties": {
        "password": {
          "description": "Gets or sets the password.",
          "type": "string"
        },
        "username": {
          "description": "Gets or sets the username.",
          "type": "string"
        }
      }
    },
    "ClientCertAuthentication": {
      "allOf": [
        {
          "$ref": "#/definitions/HttpAuthentication"
        }
      ],
      "properties": {
        "certificateExpirationDate": {
          "description": "Gets or sets the certificate expiration date.",
          "format": "date-time",
          "type": "string"
        },
        "certificateSubjectName": {
          "description": "Gets or sets the certificate subject name.",
          "type": "string"
        },
        "certificateThumbprint": {
          "description": "Gets or sets the certificate thumbprint.",
          "type": "string"
        },
        "password": {
          "description": "Gets or sets the password.",
          "type": "string"
        },
        "pfx": {
          "description": "Gets or sets the pfx.",
          "type": "string"
        }
      }
    },
    "HttpAuthentication": {
      "properties": {
        "type": {
          "description": "Gets or sets the http authentication type.",
          "enum": [
            "NotSpecified",
            "ClientCertificate",
            "ActiveDirectoryOAuth",
            "Basic"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "HttpAuthenticationType"
          }
        }
      }
    },
    "HttpRequest": {
      "properties": {
        "authentication": {
          "$ref": "#/definitions/HttpAuthentication",
          "description": "Gets or sets the http authentication."
        },
        "body": {
          "description": "Gets or sets the request body.",
          "type": "string"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the headers.",
          "type": "object"
        },
        "method": {
          "description": "Gets or sets the method of the request.",
          "type": "string"
        },
        "uri": {
          "description": "Gets or sets the Uri.",
          "type": "string"
        }
      }
    },
    "JobAction": {
      "properties": {
        "errorAction": {
          "$ref": "#/definitions/JobErrorAction",
          "description": "Gets or sets the error action."
        },
        "queueMessage": {
          "$ref": "#/definitions/StorageQueueMessage",
          "description": "Gets or sets the storage queue message."
        },
        "request": {
          "$ref": "#/definitions/HttpRequest",
          "description": "Gets or sets the http requests."
        },
        "retryPolicy": {
          "$ref": "#/definitions/RetryPolicy",
          "description": "Gets or sets the retry policy."
        },
        "serviceBusQueueMessage": {
          "$ref": "#/definitions/ServiceBusQueueMessage",
          "description": "Gets or sets the service bus queue message."
        },
        "serviceBusTopicMessage": {
          "$ref": "#/definitions/ServiceBusTopicMessage",
          "description": "Gets or sets the service bus topic message."
        },
        "type": {
          "description": "Gets or sets the job action type.",
          "enum": [
            "Http",
            "Https",
            "StorageQueue",
            "ServiceBusQueue",
            "ServiceBusTopic"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobActionType"
          }
        }
      }
    },
    "JobCollectionDefinition": {
      "properties": {
        "id": {
          "description": "Gets the job collection resource identifier.",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "Gets or sets the storage account location.",
          "type": "string"
        },
        "name": {
          "description": "Gets or sets the job collection resource name.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/JobCollectionProperties",
          "description": "Gets or sets the job collection properties."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the tags.",
          "type": "object"
        },
        "type": {
          "description": "Gets the job collection resource type.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "JobCollectionListResult": {
      "properties": {
        "nextLink": {
          "description": "Gets or sets the URL to get the next set of job collections.",
          "type": "string"
        },
        "value": {
          "description": "Gets the job collections.",
          "items": {
            "$ref": "#/definitions/JobCollectionDefinition"
          },
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "JobCollectionProperties": {
      "properties": {
        "quota": {
          "$ref": "#/definitions/JobCollectionQuota",
          "description": "Gets or sets the job collection quota."
        },
        "sku": {
          "$ref": "#/definitions/Sku",
          "description": "Gets or sets the SKU."
        },
        "state": {
          "description": "Gets or sets the state.",
          "enum": [
            "Enabled",
            "Disabled",
            "Suspended",
            "Deleted"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobCollectionState"
          }
        }
      }
    },
    "JobCollectionQuota": {
      "properties": {
        "maxJobCount": {
          "description": "Gets or set the maximum job count.",
          "type": "integer"
        },
        "maxJobOccurrence": {
          "description": "Gets or sets the maximum job occurrence.",
          "type": "integer"
        },
        "maxRecurrence": {
          "$ref": "#/definitions/JobMaxRecurrence",
          "description": "Gets or set the maximum recurrence."
        }
      }
    },
    "JobDefinition": {
      "properties": {
        "id": {
          "description": "Gets the job resource identifier.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Gets the job resource name.",
          "readOnly": true,
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/JobProperties",
          "description": "Gets or sets the job properties."
        },
        "type": {
          "description": "Gets the job resource type.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "JobErrorAction": {
      "properties": {
        "queueMessage": {
          "$ref": "#/definitions/StorageQueueMessage",
          "description": "Gets or sets the storage queue message."
        },
        "request": {
          "$ref": "#/definitions/HttpRequest",
          "description": "Gets or sets the http requests."
        },
        "retryPolicy": {
          "$ref": "#/definitions/RetryPolicy",
          "description": "Gets or sets the retry policy."
        },
        "serviceBusQueueMessage": {
          "$ref": "#/definitions/ServiceBusQueueMessage",
          "description": "Gets or sets the service bus queue message."
        },
        "serviceBusTopicMessage": {
          "$ref": "#/definitions/ServiceBusTopicMessage",
          "description": "Gets or sets the service bus topic message."
        },
        "type": {
          "description": "Gets or sets the job error action type.",
          "enum": [
            "Http",
            "Https",
            "StorageQueue",
            "ServiceBusQueue",
            "ServiceBusTopic"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobActionType"
          }
        }
      }
    },
    "JobExecutionStatus": {
      "description": "Gets the job execution status.",
      "enum": [
        "Completed",
        "Failed",
        "Postponed"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "JobExecutionStatus"
      }
    },
    "JobHistoryDefinition": {
      "properties": {
        "id": {
          "description": "Gets the job history identifier.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Gets the job history name.",
          "readOnly": true,
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/JobHistoryDefinitionProperties",
          "description": "Gets or sets the job history properties.",
          "readOnly": true
        },
        "type": {
          "description": "Gets the job history resource type.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "JobHistoryDefinitionProperties": {
      "properties": {
        "actionName": {
          "description": "Gets the job history action name.",
          "enum": [
            "MainAction",
            "ErrorAction"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobHistoryActionName"
          }
        },
        "endTime": {
          "description": "Gets the end time for this job.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "expectedExecutionTime": {
          "description": "Gets the expected execution time for this job.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "message": {
          "description": "Gets the message for the job history.",
          "readOnly": true,
          "type": "string"
        },
        "repeatCount": {
          "description": "Gets the repeat count for the job.",
          "readOnly": true,
          "type": "integer"
        },
        "retryCount": {
          "description": "Gets the retry count for job.",
          "readOnly": true,
          "type": "integer"
        },
        "startTime": {
          "description": "Gets the start time for this job.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/JobExecutionStatus",
          "description": "Gets the job history status.",
          "readOnly": true
        }
      }
    },
    "JobHistoryFilter": {
      "properties": {
        "status": {
          "$ref": "#/definitions/JobExecutionStatus",
          "description": "Gets or sets the job execution status."
        }
      },
      "type": "object"
    },
    "JobHistoryListResult": {
      "properties": {
        "nextLink": {
          "description": "Gets or sets the URL to get the next set of job histories.",
          "type": "string"
        },
        "value": {
          "description": "Gets or sets the job histories under job.",
          "items": {
            "$ref": "#/definitions/JobHistoryDefinition"
          },
          "type": "array"
        }
      }
    },
    "JobListResult": {
      "properties": {
        "nextLink": {
          "description": "Gets or sets the URL to get the next set of jobs.",
          "type": "string"
        },
        "value": {
          "description": "Gets or sets all jobs under job collection.",
          "items": {
            "$ref": "#/definitions/JobDefinition"
          },
          "type": "array"
        }
      }
    },
    "JobMaxRecurrence": {
      "properties": {
        "frequency": {
          "description": "Gets or sets the frequency of recurrence (second, minute, hour, day, week, month).",
          "enum": [
            "Minute",
            "Hour",
            "Day",
            "Week",
            "Month"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "RecurrenceFrequency"
          }
        },
        "interval": {
          "description": "Gets or sets the interval between retries.",
          "type": "integer"
        }
      }
    },
    "JobProperties": {
      "properties": {
        "action": {
          "$ref": "#/definitions/JobAction",
          "description": "Gets or sets the job action."
        },
        "recurrence": {
          "$ref": "#/definitions/JobRecurrence",
          "description": "Gets or sets the job recurrence."
        },
        "startTime": {
          "description": "Gets or sets the job start time.",
          "format": "date-time",
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/JobState",
          "description": "Gets or set the job state."
        },
        "status": {
          "$ref": "#/definitions/JobStatus",
          "description": "Gets the job status.",
          "readOnly": true
        }
      }
    },
    "JobRecurrence": {
      "properties": {
        "count": {
          "description": "Gets or sets the maximum number of times that the job should run.",
          "type": "integer"
        },
        "endTime": {
          "description": "Gets or sets the time at which the job will complete.",
          "format": "date-time",
          "type": "string"
        },
        "frequency": {
          "description": "Gets or sets the frequency of recurrence (second, minute, hour, day, week, month).",
          "enum": [
            "Minute",
            "Hour",
            "Day",
            "Week",
            "Month"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "RecurrenceFrequency"
          }
        },
        "interval": {
          "description": "Gets or sets the interval between retries.",
          "type": "integer"
        },
        "schedule": {
          "$ref": "#/definitions/JobRecurrenceSchedule"
        }
      }
    },
    "JobRecurrenceSchedule": {
      "properties": {
        "hours": {
          "description": "Gets or sets the hours of the day that the job should execute at.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "minutes": {
          "description": "Gets or sets the minutes of the hour that the job should execute at.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "monthDays": {
          "description": "Gets or sets the days of the month that the job should execute on. Must be between 1 and 31.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "monthlyOccurrences": {
          "description": "Gets or sets the occurrences of days within a month.",
          "items": {
            "$ref": "#/definitions/JobRecurrenceScheduleMonthlyOccurrence"
          },
          "type": "array"
        },
        "weekDays": {
          "description": "Gets or sets the days of the week that the job should execute on.",
          "items": {
            "enum": [
              "Monday",
              "Tuesday",
              "Wednesday",
              "Thursday",
              "Friday",
              "Saturday",
              "Sunday"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "DayOfWeek"
            }
          },
          "type": "array"
        }
      }
    },
    "JobRecurrenceScheduleMonthlyOccurrence": {
      "properties": {
        "Occurrence": {
          "description": "Gets or sets the occurrence. Must be between -5 and 5.",
          "type": "integer"
        },
        "day": {
          "description": "Gets or sets the day. Must be one of monday, tuesday, wednesday, thursday, friday, saturday, sunday.",
          "enum": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday",
            "Sunday"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobScheduleDay"
          }
        }
      }
    },
    "JobState": {
      "description": "Gets or set the job state.",
      "enum": [
        "Enabled",
        "Disabled",
        "Faulted",
        "Completed"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "JobState"
      }
    },
    "JobStateFilter": {
      "properties": {
        "state": {
          "$ref": "#/definitions/JobState",
          "description": "Gets or sets the job state."
        }
      },
      "type": "object"
    },
    "JobStatus": {
      "properties": {
        "executionCount": {
          "description": "Gets the number of times this job has executed.",
          "readOnly": true,
          "type": "integer"
        },
        "failureCount": {
          "description": "Gets the number of times this job has failed.",
          "readOnly": true,
          "type": "integer"
        },
        "faultedCount": {
          "description": "Gets the number of faulted occurrences (occurrences that were retried and failed as many times as the retry policy states).",
          "readOnly": true,
          "type": "integer"
        },
        "lastExecutionTime": {
          "description": "Gets the time the last occurrence executed in ISO-8601 format.  Could be empty if job has not run yet.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "nextExecutionTime": {
          "description": "Gets the time of the next occurrence in ISO-8601 format. Could be empty if the job is completed.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "OAuthAuthentication": {
      "allOf": [
        {
          "$ref": "#/definitions/HttpAuthentication"
        }
      ],
      "properties": {
        "audience": {
          "description": "Gets or sets the audience.",
          "type": "string"
        },
        "clientId": {
          "description": "Gets or sets the client identifier.",
          "type": "string"
        },
        "secret": {
          "description": "Gets or sets the secret.",
          "type": "string"
        },
        "tenant": {
          "description": "Gets or sets the tenant.",
          "type": "string"
        }
      }
    },
    "RecurrenceFrequency": {
      "description": "Gets or sets the frequency of recurrence (minute, hour, day, week, month).",
      "enum": [
        "Minute",
        "Hour",
        "Day",
        "Week",
        "Month"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "RecurrenceFrequency"
      }
    },
    "RetryPolicy": {
      "properties": {
        "retryCount": {
          "description": "Gets or sets the number of times a retry should be attempted.",
          "type": "integer"
        },
        "retryInterval": {
          "description": "Gets or sets the retry interval between retries.",
          "format": "duration",
          "type": "string"
        },
        "retryType": {
          "description": "Gets or sets the retry strategy to be used.",
          "enum": [
            "None",
            "Fixed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "RetryType"
          }
        }
      }
    },
    "ServiceBusAuthentication": {
      "properties": {
        "sasKey": {
          "description": "Gets or sets the SAS key.",
          "type": "string"
        },
        "sasKeyName": {
          "description": "Gets or sets the SAS key name.",
          "type": "string"
        },
        "type": {
          "description": "Gets or sets the authentication type.",
          "enum": [
            "NotSpecified",
            "SharedAccessKey"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ServiceBusAuthenticationType"
          }
        }
      }
    },
    "ServiceBusBrokeredMessageProperties": {
      "properties": {
        "contentType": {
          "description": "Gets or sets the content type.",
          "type": "string"
        },
        "correlationId": {
          "description": "Gets or sets the correlation id.",
          "type": "string"
        },
        "forcePersistence": {
          "description": "Gets or sets the force persistence.",
          "type": "boolean"
        },
        "label": {
          "description": "Gets or sets the label.",
          "type": "string"
        },
        "messageId": {
          "description": "Gets or sets the message id.",
          "type": "string"
        },
        "partitionKey": {
          "description": "Gets or sets the partition key.",
          "type": "string"
        },
        "replyTo": {
          "description": "Gets or sets the reply to.",
          "type": "string"
        },
        "replyToSessionId": {
          "description": "Gets or sets the reply to session id.",
          "type": "string"
        },
        "scheduledEnqueueTimeUtc": {
          "description": "Gets or sets the scheduled enqueue time UTC.",
          "format": "date-time",
          "type": "string"
        },
        "sessionId": {
          "description": "Gets or sets the session id.",
          "type": "string"
        },
        "timeToLive": {
          "description": "Gets or sets the time to live.",
          "format": "date-time",
          "type": "string"
        },
        "to": {
          "description": "Gets or sets the to.",
          "type": "string"
        },
        "viaPartitionKey": {
          "description": "Gets or sets the via partition key.",
          "type": "string"
        }
      }
    },
    "ServiceBusMessage": {
      "properties": {
        "authentication": {
          "$ref": "#/definitions/ServiceBusAuthentication",
          "description": "Gets or sets the authentication."
        },
        "brokeredMessageProperties": {
          "$ref": "#/definitions/ServiceBusBrokeredMessageProperties",
          "description": "Gets or sets the brokered message properties."
        },
        "customMessageProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the custom message properties.",
          "type": "object"
        },
        "message": {
          "description": "Gets or sets the message.",
          "type": "string"
        },
        "namespace": {
          "description": "Gets or sets the namespace.",
          "type": "string"
        },
        "transportType": {
          "description": "Gets or sets the transport type.",
          "enum": [
            "NotSpecified",
            "NetMessaging",
            "AMQP"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ServiceBusTransportType"
          }
        }
      }
    },
    "ServiceBusQueueMessage": {
      "allOf": [
        {
          "$ref": "#/definitions/ServiceBusMessage"
        }
      ],
      "properties": {
        "queueName": {
          "description": "Gets or sets the queue name.",
          "type": "string"
        }
      }
    },
    "ServiceBusTopicMessage": {
      "allOf": [
        {
          "$ref": "#/definitions/ServiceBusMessage"
        }
      ],
      "properties": {
        "topicPath": {
          "description": "Gets or sets the topic path.",
          "type": "string"
        }
      }
    },
    "Sku": {
      "properties": {
        "name": {
          "description": "Gets or set the SKU.",
          "enum": [
            "Standard",
            "Free",
            "Premium"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "SkuDefinition"
          }
        }
      }
    },
    "StorageQueueMessage": {
      "properties": {
        "message": {
          "description": "Gets or sets the message.",
          "type": "string"
        },
        "queueName": {
          "description": "Gets or sets the queue name.",
          "type": "string"
        },
        "sasToken": {
          "description": "Gets or sets the SAS key.",
          "type": "string"
        },
        "storageAccount": {
          "description": "Gets or sets the storage account name.",
          "type": "string"
        }
      }
    }
  }
}