swagger: "2.0"
schemes:
  - https
host: api.victorops.com
basePath: /
info:
  contact:
    x-twitter: VictorOps
  description: |
    This API allows you to interact with the VictorOps platform in various ways. Your account may be limited
    to a total number of API calls per month. Also, some of these API calls have rate limits.

    NOTE: In this documentation when creating a sample curl request (clicking the TRY IT OUT! button), in some API
    viewing interfaces, the '@' in an email address may be encoded. Please note that the REST endpoints will not
    process the encoded version. Make sure that the encoded character '%40' is changed to its unencoded form before
    submitting the curl request.
  title: VictorOps
  version: 0.0.3
  x-apisguru-categories:
    - developer_tools
  x-logo:
    url: https://twitter.com/VictorOps/profile_image?size=original
  x-origin:
    - format: swagger
      url: https://portal.victorops.com/public/api-docs/victorops-api-v1.yaml
      version: "2.0"
  x-providerName: victorops.com
produces:
  - application/json
parameters:
  StartMaintenanceModePayload:
    description: the definition of the maintenance mode you want to start
    in: body
    name: body
    required: true
    schema:
      properties:
        names:
          description: Routing keys that maintenance mode state covers. An empty list indicates global maintenance mode
          items:
            type: string
          type: array
        purpose:
          description: the reason for the maintenance mode
          type: string
        type:
          enum:
            - RoutingKeys
          type: string
      type: object
  ackResolveByUserPayload:
    description: Ack/Resolve payload
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AckOrResolveByUserRequest"
  ackResolvePayload:
    description: Ack/Resolve payload
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AckOrResolveRequest"
  addGroupPayload:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AddGroupPayload"
  addStepPayload:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AddStepPayload"
  addTeamMemberPayload:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AddTeamMemberPayload"
  addTeamPayload:
    description: The team information
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AddTeamPayload"
  addUserPayload:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/AddUserPayload"
  addUserPayloadV2:
    description: The user information
    in: body
    name: body
    required: true
    schema:
      properties:
        email:
          format: email
          type: string
        firstName:
          type: string
        lastName:
          type: string
        username:
          type: string
      required:
        - firstName
        - lastName
        - username
        - email
      type: object
  apiId:
    description: Your API ID
    in: header
    name: X-VO-Api-Id
    required: true
    type: string
  apiKey:
    description: Your API Key
    in: header
    name: X-VO-Api-Key
    required: true
    type: string
  contactDeviceAdd:
    description: The contact device
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/ContactDeviceAdd"
  contactEmailAdd:
    description: The contact email
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/ContactEmailAdd"
  contactPhoneAdd:
    description: The contact phone
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/ContactPhoneAdd"
  createIncidentPayload:
    description: The incident details
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/CreateIncidentRequest"
  daysFwd:
    default: 14
    description: Days to include in returned schedule (30 max)
    in: query
    maximum: 30
    minimum: 0
    name: daysForward
    required: false
    type: number
  daysSkip:
    default: 0
    description: Days to skip before computing schedule to return (90 max)
    in: query
    maximum: 90
    minimum: 0
    name: daysSkip
    required: false
    type: number
  deleteUserPayload:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/DeleteUserPayload"
  limit:
    default: 20
    description: The maximum number of matching incidents to return (100 max)
    in: query
    maximum: 100
    name: limit
    required: false
    type: number
  maintenanceModeId:
    description: The id of the maintenance mode found in the active maintenance mode object
    in: path
    name: maintenancemodeid
    required: true
    type: string
  offset:
    default: 0
    description: The offset within the set of matching incidents
    in: query
    name: offset
    required: false
    type: number
  orgSlug:
    description: Your organization slug
    in: path
    name: org
    required: true
    type: string
  pagingPolicyRule:
    description: Rule for a paging policy step
    in: path
    name: rule
    required: true
    type: number
  pagingPolicyStep:
    description: Paging policy step
    in: path
    name: step
    required: true
    type: number
  removeTeamMemberPayload:
    description: The user information
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/RemoveTeamMemberPayload"
  rerouteBody:
    description: The reroute rules
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/RerouteCollection"
  scheduledOverridePost:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/ScheduledOverridePayload"
  scheduledOverridePut:
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/ScheduledOverridePayloadUpdate"
  step:
    default: 0
    description: Step of escalation policy (3 max)
    in: query
    maximum: 3
    minimum: 0
    name: step
    required: false
    type: number
  takeRequestPayload:
    description: The take on-call payload
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/TakeRequest"
  updateAssignmentPut:
    description: The policy and username we are assigning
    in: body
    name: body
    required: true
    schema:
      $ref: "#/definitions/UpdateAssignment"
  username:
    description: Your username
    in: path
    name: username
    required: true
    type: string
responses:
  "400":
    description: Problem with the request arguments.  The response payload may include an error message.
  "401":
    description: Authentication parameters missing
  "403":
    description: Authentication failed or rate-limit reached
  "404":
    description: Path not found
  "500":
    description: Internal Server Error
  team-not-found:
    description: Team not found
  user-not-found:
    description: User not found
tags:
  - name: On-call
  - name: Incidents
  - name: Alerts
  - name: Reporting
  - name: Users
  - name: User Contact Methods
  - name: User Paging Policies
  - name: Personal Paging Policy Values
  - name: Personal Paging Policies
  - name: Teams
  - name: Escalation Policies
  - name: Routing Keys
  - name: Scheduled Overrides
paths:
  "/api-public/v1/alerts/{uuid}":
    get:
      description: |
        Retrieve the details of an alert that was sent VictorOps by you.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps uuid of the alert
          in: path
          name: uuid
          required: true
          type: string
      responses:
        "200":
          description: |
            The alert, if found.
          schema:
            $ref: "#/definitions/GetAlertResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Retrieve alert details.
      tags:
        - Alerts
  /api-public/v1/incidents:
    get:
      description: |
        Get a list of the currently open, acknowledged and recently resolved incidents.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: |
            The set of incidents.
          schema:
            $ref: "#/definitions/ActiveIncidentList"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: Get current incident information
      tags:
        - Incidents
    post:
      description: |
        Create a new incident.

        This call replicates the function of our
        <a href="https://help.victorops.com/knowledge-base/manual-incident-creation/">manual incident creation process</a>.
        Monitoring tools and custom integrations
        should be configured using our
        <a href="https://help.victorops.com/knowledge-base/victorops-restendpoint-integration/">REST Endpoint</a>.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/createIncidentPayload"
      responses:
        "200":
          description: |
            Information about the incident created
          schema:
            $ref: "#/definitions/CreatedIncident"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: Create a new incident
      tags:
        - Incidents
  /api-public/v1/incidents/ack:
    patch:
      description: |
        The incident(s) must be currently open.  The user supplied must be a valid VictorOps user and a member of your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/ackResolvePayload"
      responses:
        "200":
          description: The result of each acknowledge incident action.
          schema:
            $ref: "#/definitions/AckOrResolveResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Acknowledge an incident or list of incidents
      tags:
        - Incidents
  /api-public/v1/incidents/byUser/ack:
    patch:
      description: |
        The incident(s) must be currently open.  The user supplied must be a valid VictorOps user and a member of your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/ackResolveByUserPayload"
      responses:
        "200":
          description: The result of each acknowledge incident action.
          schema:
            $ref: "#/definitions/AckOrResolveResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Acknowledge all incidents for which a user was paged.
      tags:
        - Incidents
  /api-public/v1/incidents/byUser/resolve:
    patch:
      description: |
        The incident(s) must be currently open.  The user supplied must be a valid VictorOps user and a member of your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/ackResolveByUserPayload"
      responses:
        "200":
          description: The result of each resolve incident action.
          schema:
            $ref: "#/definitions/AckOrResolveResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Resolve all incidents for which a user was paged.
      tags:
        - Incidents
  /api-public/v1/incidents/reroute:
    post:
      description: |
        Reroute one or more incidents to one or more users and/or escalation policies

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/rerouteBody"
      responses:
        "200":
          description: The created reroute object
          schema:
            $ref: "#/definitions/RerouteStatusResponse"
      summary: Reroute one or more incidents to one or more new routable destinations.
      tags:
        - Incidents
  /api-public/v1/incidents/resolve:
    patch:
      description: |
        The incident(s) must be currently open.  The user supplied must be a valid VictorOps user and a member of your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/ackResolvePayload"
      responses:
        "200":
          description: The result of each resolve incident action.
          schema:
            $ref: "#/definitions/AckOrResolveResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Resolve an incident or list of incidents
      tags:
        - Incidents
  /api-public/v1/maintenancemode:
    get:
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: maintenance mode state
          schema:
            $ref: "#/definitions/MaintenanceModeState"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get an organization's current maintenance mode state
      tags:
        - Maintenance Mode
  /api-public/v1/maintenancemode/start:
    post:
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/StartMaintenanceModePayload"
      responses:
        "200":
          description: maintenance mode state
          schema:
            $ref: "#/definitions/MaintenanceModeState"
        "403":
          $ref: "#/responses/403"
        "409":
          description: You have an active global maintanance mode and are attempting to start a second. You may only have a single Global maintenance mode at a time
        "420":
          description: You have reached the limit of allowed active maintenance modes
        "500":
          $ref: "#/responses/500"
      summary: Start maintenance mode for routing keys
      tags:
        - Maintenance Mode
  "/api-public/v1/maintenancemode/{maintenancemodeid}/end":
    put:
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/maintenanceModeId"
      responses:
        "200":
          description: maintenance mode state
          schema:
            $ref: "#/definitions/MaintenanceModeState"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: End maintenance mode for routing keys
      tags:
        - Maintenance Mode
  /api-public/v1/oncall/current:
    get:
      description: |
        Get all on-call users/teams for your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: All users and escalation policies currently on call
          schema:
            properties:
              teamsOnCall:
                items:
                  $ref: "#/definitions/OnCallTeamsResource"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get an organization's on-call users
      tags:
        - On-call
  /api-public/v1/org/routing-keys:
    get:
      description: |-
        Retrieves a list of routing keys and associated teams.
        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: The list of routing keys and associated teams
          schema:
            $ref: "#/definitions/ListRoutingKeysResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: List routing keys with associated teams
      tags:
        - Routing Keys
  /api-public/v1/overrides:
    get:
      description: |
        List all the scheduled overrides on the organization

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: A list of scheduled overrides for your organization
          schema:
            properties:
              _selfUrl:
                type: string
              overrides:
                items:
                  $ref: "#/definitions/ScheduledOverride"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: List the scheduled overrides
      tags:
        - Scheduled Overrides
    post:
      description: |
        Creates a new scheduled override. Start and end dates are in ISO8601 format. E.g. `2018-09-28'T'05:00:00Z`

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/scheduledOverridePost"
      responses:
        "200":
          description: The created scheduled override
          schema:
            properties:
              _selfUrl:
                type: string
              schedule:
                $ref: "#/definitions/ScheduledOverride"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Creates a new scheduled override
      tags:
        - Scheduled Overrides
  "/api-public/v1/overrides/{publicId}":
    delete:
      description: |
        Deletes a scheduled override

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
      responses:
        "200":
          description: Whether or not the delete was successful
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Deletes a scheduled override
      tags:
        - Scheduled Overrides
    get:
      description: |
        Get the specified scheduled override

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
      responses:
        "200":
          description: The scheduled override
          schema:
            properties:
              _selfUrl:
                type: string
              override:
                $ref: "#/definitions/ScheduledOverride"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Get the specified scheduled override
      tags:
        - Scheduled Overrides
  "/api-public/v1/overrides/{publicId}/assignments":
    get:
      description: |
        Get the specified scheduled override assignments

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
      responses:
        "200":
          description: The assignments for a given scheduled override
          schema:
            items:
              $ref: "#/definitions/Assignment"
            type: array
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Get the specified scheduled override
      tags:
        - Scheduled Overrides
  "/api-public/v1/overrides/{publicId}/assignments/{policySlug}":
    delete:
      description: |
        Delete the scheduled override assignment

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
        - description: The policySlug of the assignment
          in: path
          name: policySlug
          required: true
          type: string
      responses:
        "200":
          description: The assignment that was deleted for the given scheduled override and policySlug
          schema:
            $ref: "#/definitions/Assignment"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Delete the scheduled override assignment
      tags:
        - Scheduled Overrides
    get:
      description: |
        Get the specified scheduled override assignments

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
        - description: The policySlug of the assignment
          in: path
          name: policySlug
          required: true
          type: string
      responses:
        "200":
          description: The assignment for the given publicId
          schema:
            $ref: "#/definitions/Assignment"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Get the specified scheduled override assignment
      tags:
        - Scheduled Overrides
    put:
      description: |
        Update the scheduled override assignment

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The publicId of the scheduled override
          in: path
          name: publicId
          required: true
          type: string
        - description: The policySlug of the assignment
          in: path
          name: policySlug
          required: true
          type: string
        - $ref: "#/parameters/updateAssignmentPut"
      responses:
        "200":
          description: The assignment for the given policySlug
          schema:
            $ref: "#/definitions/Assignment"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Update the scheduled override assignment
      tags:
        - Scheduled Overrides
  /api-public/v1/policies:
    get:
      description: |-
        Retrieves a list of escalation policy information.
        This API may be called a maximum of once a minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: The list of escalation policies
          schema:
            $ref: "#/definitions/EscalationPolicyInfoList"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: Get escalation policy info
      tags:
        - Escalation Policies
  /api-public/v1/policies/types/contacts:
    get:
      description: |
        Get the available contact types

        description: "Email Address", type: "email"
        description: "Phone Number", type: "phone"

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: All the available contact types
          schema:
            properties:
              _selfUrl:
                type: string
              contactTypes:
                items:
                  $ref: "#/definitions/ContactObject"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get the available contact types
      tags:
        - Personal Paging Policy Values
  /api-public/v1/policies/types/notifications:
    get:
      description: |
        Get the available notification types

        description: "Send a push notification to all my devices", type: "push"
        description: "Send an email to an email address", type: "email"
        description: "Send an SMS to a phone number", type: "sms"
        description: "Make a phone call to a phone number", type: "phone"

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: All the available contact types
          schema:
            properties:
              _selfUrl:
                type: string
              notificationTypes:
                items:
                  $ref: "#/definitions/NotificationObject"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get the available notification types
      tags:
        - Personal Paging Policy Values
  /api-public/v1/policies/types/timeouts:
    get:
      description: |
        Get the available timeout values

        description: "If still unacked after 1 minute", type: 1
        description: "If still unacked after 5 minutes", type: 5
        description: "If still unacked after 10 minutes", type: 10
        description: "If still unacked after 15 minutes", type: 15
        description: "If still unacked after 20 minutes", type: 20
        description: "If still unacked after 25 minutes", type: 25
        description: "If still unacked after 30 minutes", type: 30
        description: "If still unacked after 45 minutes", type: 45
        description: "If still unacked after 60 minutes", type: 60

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: All the available timeout types.
          schema:
            properties:
              _selfUrl:
                type: string
              timeoutTypes:
                items:
                  $ref: "#/definitions/TimeoutObject"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get the available timeout values
      tags:
        - Personal Paging Policy Values
  "/api-public/v1/policies/{policy}/oncall/user":
    patch:
      description: |
        Replaces a currently on-call user in the escalation policy with another.  In many cases, the policy slug
        will match the slug of the team that contains it.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/takeRequestPayload"
        - description: The VictorOps policy 'slug'
          in: path
          name: policy
          required: true
          type: string
      responses:
        "200":
          description: The result of the take request
          schema:
            $ref: "#/definitions/TakeResult"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          description: Team or user(s) not found
        "500":
          $ref: "#/responses/500"
      summary: Create an on-call override (take on-call)
      tags:
        - On-call
  "/api-public/v1/profile/{username}/policies":
    get:
      description: |
        Get all the paging policy steps for the user on the org associated with the API key

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: All steps of the user's paging policy
          schema:
            properties:
              _selfUrl:
                type: string
              steps:
                $ref: "#/definitions/UserPagingPolicy"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get the user's paging policy
      tags:
        - Personal Paging Policies
    post:
      description: |
        Create a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addGroupPayload"
      responses:
        "200":
          description: The created paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              step:
                $ref: "#/definitions/PagingPolicyStep"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Create a paging policy step
      tags:
        - Personal Paging Policies
  "/api-public/v1/profile/{username}/policies/{step}":
    get:
      description: |
        Get a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: The paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              step:
                $ref: "#/definitions/PagingPolicyStep"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get a paging policy step
      tags:
        - Personal Paging Policies
    post:
      description: |
        Create a rule for a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addStepPayload"
      responses:
        "200":
          description: The created rule for the paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              stepRule:
                $ref: "#/definitions/PagingPolicyStepRule"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Create a rule for a paging policy step
      tags:
        - Personal Paging Policies
    put:
      description: |
        Update a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addGroupPayload"
      responses:
        "200":
          description: The updated paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              step:
                $ref: "#/definitions/PagingPolicyStep"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Update a paging policy step
      tags:
        - Personal Paging Policies
  "/api-public/v1/profile/{username}/policies/{step}/{rule}":
    delete:
      description: |
        Delete a rule from a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/pagingPolicyRule"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: The deleted rule from the paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              stepRule:
                $ref: "#/definitions/PagingPolicyStepRule"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Delete a rule from a paging policy step
      tags:
        - Personal Paging Policies
    get:
      description: |
        Get a rule from a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/pagingPolicyRule"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: The rule from the paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              stepRule:
                $ref: "#/definitions/PagingPolicyStepRule"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Get a rule from a paging policy step
      tags:
        - Personal Paging Policies
    put:
      description: |
        Update a rule for a paging policy step

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/username"
        - $ref: "#/parameters/pagingPolicyStep"
        - $ref: "#/parameters/pagingPolicyRule"
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addStepPayload"
      responses:
        "200":
          description: The updated rule for the paging policy step
          schema:
            properties:
              _selfUrl:
                type: string
              stepRule:
                $ref: "#/definitions/PagingPolicyStepRule"
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "500":
          $ref: "#/responses/500"
      summary: Update a rule for a paging policy step
      tags:
        - Personal Paging Policies
  /api-public/v1/team:
    get:
      description: |
        Get a list of teams for your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: A list of teams for your organization
          schema:
            $ref: "#/definitions/ListTeamResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            You have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: List teams
      tags:
        - Teams
    post:
      description: |
        Add a team to your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addTeamPayload"
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/AddTeamResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Add a team
      tags:
        - Teams
  "/api-public/v1/team/{team}":
    delete:
      description: |
        Remove a team from your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to be deleted
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: Team was deleted
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            There was a problem with the delete such as the replacement team was not found.
        "500":
          $ref: "#/responses/500"
      summary: Remove a team
      tags:
        - Teams
    get:
      description: |
        Get the information for the specified team.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to fetch
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/AddTeamResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Retrieve information for a team
      tags:
        - Teams
    put:
      description: |
        Update the designated team

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to be updated
          in: path
          name: team
          required: true
          type: string
        - $ref: "#/parameters/addTeamPayload"
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/AddTeamResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Update a team
      tags:
        - Teams
  "/api-public/v1/team/{team}/admins":
    get:
      description: |
        Get the team admins for the specified team.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/TeamAdminsResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Retrieve a list of team admins for a team
      tags:
        - Teams
  "/api-public/v1/team/{team}/members":
    get:
      description: |
        Get the members for the specified team.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to fetch
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/ListTeamMembersResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Retrieve a list of members for a team
      tags:
        - Teams
    post:
      description: |
        Add a team member to your team.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to fetch
          in: path
          name: team
          required: true
          type: string
        - $ref: "#/parameters/addTeamMemberPayload"
      responses:
        "200":
          description: Some details about the team that was added
          schema:
            $ref: "#/definitions/ListTeamMembersResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Add a team member
      tags:
        - Teams
  "/api-public/v1/team/{team}/members/{user}":
    delete:
      description: |
        Remove a team from your organization.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to be deleted
          in: path
          name: team
          required: true
          type: string
        - description: The team member username
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/removeTeamMemberPayload"
      responses:
        "200":
          description: Team was deleted
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            There was a problem with the delete such as the replacement team member was not found.
        "500":
          $ref: "#/responses/500"
      summary: Remove a team member
      tags:
        - Teams
  "/api-public/v1/team/{team}/oncall/schedule":
    get:
      deprecated: true
      description: |
        __NOTE: This call is deprecated. Please use `GET /api-public/v2/team/{team}/oncall/schedule`.__

        Get the on-call schedule for a team, including on-call overrides.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team 'slug'
          in: path
          name: team
          required: true
          type: string
        - $ref: "#/parameters/daysFwd"
        - $ref: "#/parameters/daysSkip"
        - $ref: "#/parameters/step"
      responses:
        "200":
          description: The on-call schedule for the team
          schema:
            $ref: "#/definitions/OnCallAndOverrides"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a team's on-call schedule
      tags:
        - On-call
  "/api-public/v1/team/{team}/oncall/user":
    patch:
      deprecated: true
      description: |
        __NOTE: This API call is deprecated. Please use `PATCH /api-public/v2/policies/{policy}/oncall/user`__

        Replaces a currently on-call user on the team with another.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/takeRequestPayload"
        - description: The VictorOps team 'slug'
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: The result of the take request
          schema:
            $ref: "#/definitions/TakeResult"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          description: Team or user(s) not found
        "500":
          $ref: "#/responses/500"
      summary: Create an on-call override (take on-call)
      tags:
        - On-call
  "/api-public/v1/team/{team}/policies":
    get:
      description: |
        Get the escalation policies for the specified team.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team to fetch
          in: path
          name: team
          required: true
          type: string
      responses:
        "200":
          description: The escalation policy list. This does not include details about the actual notification steps of the policy.
          schema:
            $ref: "#/definitions/EscalationPolicyList"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "422":
          description: |
            Team name or email is unavailable, or you have reached your team limit.
        "500":
          $ref: "#/responses/500"
      summary: Retrieve a list of escalation policies for a team
      tags:
        - Escalation Policies
        - Teams
  /api-public/v1/user:
    get:
      description: |
        Get a list of users for your organization

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
      responses:
        "200":
          description: A list of users for your organization
          schema:
            $ref: "#/definitions/ListUserResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "422":
          description: |
            You have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: List users
      tags:
        - Users
    post:
      description: |
        Add a user to your organization

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/addUserPayload"
      responses:
        "200":
          description: Some details about the user that was added
          schema:
            $ref: "#/definitions/AddUserResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "422":
          description: |
            Username or email is unavailable, or you have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Add a user
      tags:
        - Users
  "/api-public/v1/user/{user}":
    delete:
      description: |
        Remove a user from your organization. If no replacement is specified, an empty JSON payload ("{}") is still required.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user to be deleted
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/deleteUserPayload"
      responses:
        "200":
          description: User was deleted
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "422":
          description: |
            There was a problem with the delete such as a replacement is required or the replacement user was not found.
        "500":
          $ref: "#/responses/500"
      summary: Remove a user
      tags:
        - Users
    get:
      description: |
        Get the information for the specified user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user to fetch
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: Some details about the user that was added
          schema:
            $ref: "#/definitions/AddUserResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "422":
          description: |
            Username or email is unavailable, or you have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Retrieve information for a user
      tags:
        - Users
    put:
      description: |
        Update the designated user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user to be updated
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/addUserPayload"
      responses:
        "200":
          description: Some details about the user that was added
          schema:
            $ref: "#/definitions/AddUserResponse"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "422":
          description: |
            Username or email is unavailable, or you have reached your user limit.
        "500":
          $ref: "#/responses/500"
      summary: Update a user
      tags:
        - Users
  "/api-public/v1/user/{user}/contact-methods":
    get:
      description: |
        Get the contact methods for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: All available contact methods for the user
          schema:
            properties:
              devices:
                items:
                  $ref: "#/definitions/ContactDevice"
                type: array
              emails:
                items:
                  $ref: "#/definitions/UserContact"
                type: array
              phones:
                items:
                  $ref: "#/definitions/UserContact"
                type: array
            type: object
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a list of all contact methods for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/devices":
    get:
      description: |
        Get the contact methods for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: The list of contact devices for the user
          schema:
            items:
              $ref: "#/definitions/ContactDevice"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a list of all contact devices for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/devices/{contactId}":
    delete:
      description: |
        Delete a contact device for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: Deleted contact device for the user
          schema:
            $ref: "#/definitions/ContactDevice"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Delete a contact device for a user
      tags:
        - User Contact Methods
    get:
      description: |
        Get the indicated contact device for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: The list of contact devices for the user
          schema:
            items:
              $ref: "#/definitions/ContactDevice"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get the indicated contact device for a user
      tags:
        - User Contact Methods
    put:
      description: |
        Update a contact device for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
        - $ref: "#/parameters/contactDeviceAdd"
      responses:
        "200":
          description: The list of contact devices for the user
          schema:
            $ref: "#/definitions/ContactDevice"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Update a contact device for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/emails":
    get:
      description: |
        Get the contact emails for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: The list of contact emails for the user
          schema:
            items:
              $ref: "#/definitions/UserContact"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a list of all contact emails for a user
      tags:
        - User Contact Methods
    post:
      description: |
        Create a contact email for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/contactEmailAdd"
      responses:
        "200":
          description: The list of contact emails for the user
          schema:
            $ref: "#/definitions/UserContact"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Create a contact emails for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/emails/{contactId}":
    delete:
      description: |
        Delete the indicated contact email for the user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: Deleted contact email for the user
          schema:
            $ref: "#/definitions/UserContact"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Delete a contact email for a user
      tags:
        - User Contact Methods
    get:
      description: |
        Get the indicated contact email for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: The indicated contact email for the user
          schema:
            items:
              $ref: "#/definitions/UserContact"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get the indicated contact email for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/phones":
    get:
      description: |
        Get the contact phones for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: The list of contact phones for the user
          schema:
            items:
              $ref: "#/definitions/UserContact"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a list of all contact phones for a user
      tags:
        - User Contact Methods
    post:
      description: |
        Create a contact phone for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/contactPhoneAdd"
      responses:
        "200":
          description: The list of contact phones for the user
          schema:
            $ref: "#/definitions/UserContact"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Create a contact phones for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/contact-methods/phones/{contactId}":
    delete:
      description: |
        Delete the indicated contact phone for the user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: Deleted contact phone for the user
          schema:
            $ref: "#/definitions/UserContact"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Delete a contact phone for a user
      tags:
        - User Contact Methods
    get:
      description: |
        Get the indicated contact phone for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - description: The unique contact identifier
          in: path
          name: contactId
          required: true
          type: string
      responses:
        "200":
          description: The indicated contact phone for the user
          schema:
            items:
              $ref: "#/definitions/UserContact"
            type: array
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get the indicated contact phone for a user
      tags:
        - User Contact Methods
  "/api-public/v1/user/{user}/oncall/schedule":
    get:
      deprecated: true
      description: |
        __NOTE: This call is deprecated. Please use `GET /api-public/v2/user/{user}/oncall/schedule`.__

        Get the on-call schedule for a user for all teams, including on-call overrides.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/daysFwd"
        - $ref: "#/parameters/daysSkip"
        - $ref: "#/parameters/step"
      responses:
        "200":
          description: The on-call schedule for the user
          schema:
            items:
              $ref: "#/definitions/OnCallAndOverrides"
            type: array
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a user's on-call schedule
      tags:
        - On-call
  "/api-public/v1/user/{user}/policies":
    get:
      description: |
        Get paging policies for a user

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: All configured paging policies for a user
          schema:
            $ref: "#/definitions/Policies"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a list of paging policies for a user
      tags:
        - User Paging Policies
  "/api-public/v1/user/{user}/teams":
    get:
      description: |
        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user
          in: path
          name: user
          required: true
          type: string
      responses:
        "200":
          description: Team details
          schema:
            $ref: "#/definitions/UserTeamsResponse"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Retrieve the user's team membership
      tags:
        - Users
  "/api-public/v2/team/{team}/oncall/schedule":
    get:
      description: |
        Get the on-call schedule for a team, including on-call overrides.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team 'slug'
          in: path
          name: team
          required: true
          type: string
        - $ref: "#/parameters/daysFwd"
        - $ref: "#/parameters/daysSkip"
        - $ref: "#/parameters/step"
      responses:
        "200":
          description: The on-call schedule for the team
          schema:
            $ref: "#/definitions/TeamSchedule"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/team-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a team's on-call schedule
      tags:
        - On-call
  "/api-public/v2/user/{user}/oncall/schedule":
    get:
      description: |
        Get the on-call schedule for a user for all teams the user is on, including on-call overrides.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps user ID
          in: path
          name: user
          required: true
          type: string
        - $ref: "#/parameters/daysFwd"
        - $ref: "#/parameters/daysSkip"
        - $ref: "#/parameters/step"
      responses:
        "200":
          description: The on-call schedule for the user
          schema:
            $ref: "#/definitions/UserSchedule"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/user-not-found"
        "500":
          $ref: "#/responses/500"
      summary: Get a user's on-call schedule
      tags:
        - On-call
  /api-reporting/v1/incidents:
    get:
      deprecated: true
      description: |
        
        __NOTE: This call is deprecated. Please use `GET /api-reporting/v2/incidents`.__

        Retrieve incident history for your company, searching over date ranges and with filtering options.  This is historical
        data, and may be up to 15 minutes behind real-time incident data.  By default, only resolved incidents will be returned.

        This API may be called a maximum of once a minute.

        Incident requests are paginated with a offset and limit query string parameters.
          The query for incidents is run and offset records are skipped, after which limit records will be returned.

        The default offset is 0 and the default limit is 20. The maximum value allowed for limit is 100.

        On return, the total number of records available for that query will be returned in the payload as 'total'.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/offset"
        - $ref: "#/parameters/limit"
        - description: The entity ID involved  This is the unique identifier for the entity causing the incident.
          in: query
          name: entityId
          required: false
          type: string
        - description: |
            The incident number as shown in VictorOps Multiple values and ranges are allowed: 4,5,20:50
          in: query
          name: incidentNumber
          required: false
          type: string
        - description: Return incidents started after this timestamp Specify the timestamp in ISO8601 format
          in: query
          name: startedAfter
          required: false
          type: string
        - description: Find incidents started before this timestamp  Specify the timestamp in ISO8601 format
          in: query
          name: startedBefore
          required: false
          type: string
        - description: The host involved in the incident Multiple values can be separated with commas.
          in: query
          name: host
          required: false
          type: string
        - description: The service involved in the incident (if any) Multiple values can be separated with commas.
          in: query
          name: service
          required: false
          type: string
        - description: The current phase of the incident "resolved", "triggered" or "acknowledged". Multiple values can be separated with commas.
          in: query
          name: currentPhase
          required: false
          type: string
      responses:
        "200":
          description: The list of incidents matching the request filters
          schema:
            items:
              $ref: "#/definitions/IncidentList"
            type: array
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: Get/search incident history
      tags:
        - Reporting
  "/api-reporting/v1/team/{team}/oncall/log":
    get:
      description: |
        Returns a log of user shift changes for the specified team. This is historical
        data, and may be up to 15 minutes behind real-time log data.

        This API may be called a maximum of 60 times per minute.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - description: The VictorOps team 'slug'
          in: path
          name: team
          required: true
          type: string
        - description: Return shift changes occurring after this timestamp. The default is the start of the day at midnight. Specify the timestamp in ISO8601 format
          format: date-time
          in: query
          name: start
          required: false
          type: string
        - description: Return shift changes occurring before this timestamp. The default is the end of the day at 11:59:59. Specify the timestamp in ISO8601 format
          format: date-time
          in: query
          name: end
          required: false
          type: string
        - description: The VictorOps user ID. Return shift changes occurring during the interval specified for this user. Without this parameter, all relevant users (with respect to the specified interval) are returned
          in: query
          name: userName
          required: false
          type: string
      responses:
        "200":
          description: The result of the take request
          schema:
            $ref: "#/definitions/OnCallLog"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          description: Team or user(s) not found
        "500":
          $ref: "#/responses/500"
      summary: A list of shift changes for a team
      tags:
        - Reporting
  /api-reporting/v2/incidents:
    get:
      description: |
        Retrieve incident history for your company, searching over date ranges and with filtering options.

        This API may be called a maximum of once a minute.

        Incident requests are paginated with a offset and limit query string parameters.
          The query for incidents is run and offset records are skipped, after which limit records will be returned.

        The default offset is 0 and the default limit is 20. The maximum value allowed for limit is 100.

        Unless specified otherwise with the parameter currentPhase, the response will only contain resolved incidents.

        On return, the total number of records available for that query will be returned in the payload as 'total'.
      parameters:
        - $ref: "#/parameters/apiId"
        - $ref: "#/parameters/apiKey"
        - $ref: "#/parameters/offset"
        - $ref: "#/parameters/limit"
        - description: The entity ID involved  This is the unique identifier for the entity causing the incident.
          in: query
          name: entityId
          required: false
          type: string
        - description: |
            The incident number as shown in VictorOps Multiple values and ranges are allowed: 4,5,20:50
          in: query
          name: incidentNumber
          required: false
          type: string
        - description: Return incidents started after this timestamp Specify the timestamp in ISO8601 format
          in: query
          name: startedAfter
          required: false
          type: string
        - description: Find incidents started before this timestamp  Specify the timestamp in ISO8601 format
          in: query
          name: startedBefore
          required: false
          type: string
        - description: The host involved in the incident Multiple values can be separated with commas.
          in: query
          name: host
          required: false
          type: string
        - description: The service involved in the incident (if any) Multiple values can be separated with commas.
          in: query
          name: service
          required: false
          type: string
        - description: The current phase of the incident "resolved", "triggered" or "acknowledged". Multiple values can be separated with commas. By default, response contains only "resolved" incidents
          in: query
          name: currentPhase
          required: false
          type: string
        - description: The original routing of the incident
          in: query
          name: routingKey
          required: false
          type: string
      responses:
        "200":
          description: The list of incidents matching the request filters
          schema:
            $ref: "#/definitions/ActiveIncidentList"
        "400":
          $ref: "#/responses/400"
        "401":
          $ref: "#/responses/401"
        "403":
          $ref: "#/responses/403"
        "404":
          $ref: "#/responses/404"
        "500":
          $ref: "#/responses/500"
      summary: Get/search incident history
      tags:
        - Reporting
definitions:
  AckOrResolveByUserRequest:
    properties:
      message:
        type: string
      userName:
        type: string
    required:
      - userName
    type: object
  AckOrResolveRequest:
    properties:
      incidentNames:
        items:
          type: string
        type: array
      message:
        type: string
      userName:
        type: string
    required:
      - userName
      - incidentNames
    type: object
  AckOrResolveResponse:
    description: The results of ack/resolve for each incident
    properties:
      results:
        items:
          $ref: "#/definitions/AckOrResolveResult"
        type: array
    type: object
  AckOrResolveResult:
    description: The results of ack/resolve for a individual incident
    properties:
      cmdAccepted:
        type: boolean
      entityId:
        type: string
      incidentNumber:
        type: string
      message:
        type: string
    type: object
  AckUser:
    description: A JSON object with first/last name and email of the user that acknowledged the incident.
    properties:
      email:
        type: string
      first:
        type: string
      last:
        type: string
    type: object
  ActiveIncidentInfo:
    description: Incidents contain the following fields (all should be considered optional)
    properties:
      alertCount:
        description: The number of alerts received for this incident
        type: number
      currentPhase:
        description: The current phase of the incident "resolved", "triggered" or "acknowledged".
        type: string
      entityId:
        description: The unique identification of the entity being monitored that caused the incident
        type: string
      host:
        description: The host on which the incident occurred
        type: string
      incidentNumber:
        description: The VictorOps incident number
        type: string
      lastAlertId:
        description: The unique id of the last alert for the incident
        type: string
      lastAlertTime:
        description: The time of the last alert received for the incident
        type: string
      pagedPolicies:
        description: The escalation policies that were triggered for the incident
        items:
          $ref: "#/definitions/EscalationPolicyInfo"
        type: array
      pagedTeams:
        description: The teams that were paged for the incident
        items:
          type: string
        type: array
      pagedUsers:
        description: The users that were paged for the incident.
        items:
          type: string
        type: array
      service:
        description: The service name causing the incident (if any)
        type: string
      startTime:
        description: The time the incident started
        type: string
      transitions:
        description: Transitions of the incident state over time
        items:
          $ref: "#/definitions/IncidentTransition"
        type: array
    type: object
  ActiveIncidentList:
    description: The list of incidents in various states
    properties:
      incidents:
        description: The incident data
        items:
          $ref: "#/definitions/ActiveIncidentInfo"
        type: array
    type: object
  ActiveMaintenanceMode:
    properties:
      instanceId:
        description: external friendly unique id for maintenance mode
        type: string
      isGlobal:
        description: whether this instance is a global maintenance mode or for specific routing keys
        type: boolean
      startedAt:
        description: millis from epoch marking the start time
        type: number
      startedBy:
        description: username of the user that started maintenance mode
        type: string
      targets:
        items:
          $ref: "#/definitions/MaintenanceModeTarget"
        type: array
    type: object
  AddGroupPayload:
    properties:
      rules:
        items:
          $ref: "#/definitions/PagingPolicyStepRuleAdd"
        type: array
      timeout:
        $ref: "#/definitions/TimeoutType"
    type: object
  AddStepPayload:
    properties:
      contact:
        $ref: "#/definitions/Contact"
      type:
        $ref: "#/definitions/NotificationType"
    type: object
  AddTeamMemberPayload:
    description: The user information
    properties:
      username:
        type: string
    required:
      - username
    type: object
  AddTeamPayload:
    description: The team information
    properties:
      name:
        type: string
    required:
      - name
    type: object
  AddTeamResponse:
    $ref: "#/definitions/TeamDetail"
  AddUserPayload:
    description: The user information
    properties:
      admin:
        type: boolean
      email:
        format: email
        type: string
      expirationHours:
        default: 24
        description: The validity duration for the invitatation/set password link sent to the added user.
        type: number
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
    required:
      - firstName
      - lastName
      - username
      - email
    type: object
  AddUserResponse:
    $ref: "#/definitions/V1User"
  Assignment:
    properties:
      _selfUrl:
        type: string
      assigned:
        type: boolean
      policy:
        type: string
      team:
        type: string
      user:
        type: string
    type: object
  Contact:
    properties:
      id:
        type: number
      type:
        $ref: "#/definitions/ContactType"
    type: object
  ContactDescription:
    enum:
      - Email Address
      - Phone Number
    type: string
  ContactDevice:
    properties:
      _selfUrl:
        type: string
      deviceType:
        type: string
      extId:
        type: string
      label:
        type: string
    type: object
  ContactDeviceAdd:
    description: The contact device
    properties:
      chat_escalation_sound:
        type: string
      device_label:
        type: string
      escalation_notification_sound:
        type: string
      resolved_notification_sound:
        type: string
    type: object
  ContactEmailAdd:
    description: The contact email
    properties:
      email:
        format: email
        type: string
      label:
        type: string
      rank:
        type: integer
    required:
      - label
      - email
    type: object
  ContactObject:
    properties:
      description:
        $ref: "#/definitions/ContactDescription"
      type:
        $ref: "#/definitions/ContactType"
    type: object
  ContactPhoneAdd:
    description: The contact phone
    properties:
      label:
        type: string
      phone:
        type: string
      rank:
        type: integer
    required:
      - label
      - phone
    type: object
  ContactType:
    enum:
      - email
      - phone
    type: string
  CreateIncidentRequest:
    properties:
      details:
        type: string
      summary:
        type: string
      targets:
        items:
          $ref: "#/definitions/IncidentTarget"
        type: array
      userName:
        type: string
    required:
      - summary
      - details
      - userName
      - targets
    type: object
  CreatedIncident:
    properties:
      error:
        description: An error message
        type: string
      incidentNumber:
        description: The VictorOps incident number
        type: string
    type: object
  DeleteUserPayload:
    description: The information about what to do with the deleted user
    properties:
      replacement:
        description: The user to take the place of the deleted user in escalations
        type: string
    type: object
  EscalationPolicy:
    properties:
      name:
        type: string
      slug:
        type: string
    type: object
  EscalationPolicyInfo:
    properties:
      policy:
        $ref: "#/definitions/EscalationPolicy"
      team:
        $ref: "#/definitions/Team"
    required:
      - policy
    type: object
  EscalationPolicyInfoList:
    properties:
      policies:
        items:
          $ref: "#/definitions/EscalationPolicyInfo"
        type: array
    required:
      - policies
    type: object
  EscalationPolicyList:
    properties:
      policies:
        items:
          $ref: "#/definitions/EscalationPolicy"
        type: array
    type: object
  GetAlertResponse:
    description: Alert details. All fields should be considered optional.
    properties:
      ackAuthor:
        description: The user that acknowledged the incident.
        type: string
      ackMsg:
        description: A user entered comment for the acknowledgment.
        type: string
      entityDisplayName:
        description: Used within VictorOps to display a human-readable name for the entity.
        type: string
      entityId:
        description: |
          Identifies the entity (host, service, etc.) this alert was about.
        type: string
      messageType:
        description: |
          The type of alert; INFO, WARNING, ACKNOWLEDGEMENT, CRITICAL, RECOVERY
        type: string
      monitoringTool:
        description: The name of the monitoring system software (eg. nagios, icinga, sensu, etc.)
        type: string
      raw:
        description: |
          The full, raw alert details JSON string (i.e. parse the string into a JSON object)
        type: string
      stateMessage:
        description: Any additional status information from the alert item.
        type: string
      stateStartTime:
        description: The time this entity entered its current state (seconds since epoch).
        type: number
      timestamp:
        description: Timestamp of the alert in seconds since epoch.
        type: number
    type: object
  IncidentInfo:
    description: Incidents contain the following fields (all should be considered optional)
    properties:
      ackTime:
        description: The time of the last acknowledgment of the incident
        type: string
      ackUser:
        $ref: "#/definitions/AckUser"
      ackUserId:
        description: The VictorOps user id of the user that acknowledged the incident
        type: string
      alertCount:
        description: The number of alerts received for this incident
        type: number
      currentPhase:
        description: The current phase of the incident "resolved", "triggered" or "acknowledged".
        type: string
      endTime:
        description: The time the incident ended
        type: string
      entityDispName:
        description: The display name of the entity causing the incident
        type: string
      entityId:
        description: The unique identification of the entity being monitored that caused the incident
        type: string
      entityType:
        description: The type of entity causing the incident (host/service)
        type: string
      host:
        description: The host on which the incident occurred
        type: string
      incidentNumber:
        description: The VictorOps incident number
        type: string
      lastAlertID:
        description: The unique id of the last alert for the incident
        type: string
      lastAlertTime:
        description: The time of the last alert received for the incident
        type: string
      service:
        description: The service name causing the incident (if any)
        type: string
      startTime:
        description: The time the incident started
        type: string
      teams:
        description: The teams that were paged for the incident (comma separated).
        type: string
    type: object
  IncidentList:
    description: The results of an incident history request
    properties:
      incidents:
        description: An array of incident objects matching the search
        items:
          $ref: "#/definitions/IncidentInfo"
        type: array
      limit:
        description: The limit value passed in the request
        type: number
      offset:
        description: The offset passed in the request
        type: number
      total:
        description: The total number of incidents available for this search
        type: number
    type: object
  IncidentTarget:
    properties:
      slug:
        description: User name or escalation policy slug
        type: string
      type:
        description: Type of target
        enum:
          - User
          - EscalationPolicy
        type: string
    required:
      - type
      - slug
    type: object
  IncidentTransition:
    description: A transition of incident state
    properties:
      alertId:
        description: The unique alert ID that caused the transition
        type: string
      alertUrl:
        description: A URL to retrieve the details of the alert that caused the transition
        type: string
      at:
        description: The time of the transition
        type: string
      by:
        description: The user that caused the transition (if any)
        type: string
      manually:
        description: If the incident transition was caused by a person
        type: boolean
      message:
        description: The message entered by that user (if any)
        type: string
      name:
        description: The transition name
        type: string
    type: object
  ListRoutingKeysResponse:
    description: Info about routing keys in the org
    properties:
      _selfUrl:
        type: string
      routingKeys:
        items:
          $ref: "#/definitions/RoutingKeyInfo"
        type: array
    type: object
  ListTeamMembersResponse:
    description: A list of members for the team
    properties:
      _selfUrl:
        type: string
      _teamUrl:
        type: string
      members:
        items:
          $ref: "#/definitions/TeamMember"
        type: array
    type: object
  ListTeamResponse:
    items:
      $ref: "#/definitions/TeamDetail"
    type: array
  ListUserResponse:
    description: Some info about the user
    properties:
      _selfUrl:
        type: string
      users:
        items:
          $ref: "#/definitions/V1User"
        type: array
    type: object
  MaintenanceModeState:
    properties:
      activeInstances:
        items:
          $ref: "#/definitions/ActiveMaintenanceMode"
        type: array
      companyId:
        type: string
    type: object
  MaintenanceModeTarget:
    properties:
      names:
        description: Routing keys that maintenance mode state covers. An empty list indicates global maintenance mode
        items:
          type: string
        type: array
      type:
        enum:
          - RoutingKeys
        type: string
    type: object
  NotificationDescription:
    enum:
      - Send a push notification to all my devices
      - Send an email to an email address
      - Send an SMS to a phone number
      - Make a phone call to a phone number
    type: string
  NotificationObject:
    properties:
      description:
        $ref: "#/definitions/NotificationDescription"
      type:
        $ref: "#/definitions/NotificationType"
    type: object
  NotificationType:
    enum:
      - push
      - email
      - sms
      - phone
    example: email
    type: string
  OnCallAndOverrides:
    properties:
      overrides:
        items:
          $ref: "#/definitions/TeamScheduleOverlayResource"
        type: array
      schedule:
        items:
          $ref: "#/definitions/TeamScheduleResource"
        type: array
      team:
        type: string
    type: object
  OnCallEntry:
    properties:
      onCallType:
        $ref: "#/definitions/OnCallType"
      onCallUser:
        $ref: "#/definitions/User"
      overrideOnCallUser:
        $ref: "#/definitions/User"
      rolls:
        items:
          $ref: "#/definitions/OnCallRoll"
        type: array
      rotationName:
        type: string
      shiftName:
        type: string
      shiftRoll:
        description: The shift roll time (ISO 8601)
        type: string
    required:
      - onCallType
      - rolls
    type: object
  OnCallEscalationPolicyResource:
    properties:
      name:
        type: string
      slug:
        type: string
    type: object
  OnCallInterval:
    properties:
      duration:
        properties:
          hours:
            type: number
          minutes:
            type: number
        type: object
      escalationPolicy:
        $ref: "#/definitions/EscalationPolicy"
      off:
        type: string
      on:
        type: string
    type: object
  OnCallLog:
    properties:
      end:
        format: date-time
        type: string
      start:
        format: date-time
        type: string
      teamSlug:
        type: string
      userLogs:
        items:
          $ref: "#/definitions/UserLog"
        type: array
    type: object
  OnCallNowResource:
    properties:
      escalationPolicy:
        $ref: "#/definitions/OnCallEscalationPolicyResource"
      users:
        items:
          $ref: "#/definitions/OnCallUsersResource"
        type: array
    type: object
  OnCallOverride:
    properties:
      end:
        description: The override end time (ISO 8601)
        type: string
      origOnCallUser:
        $ref: "#/definitions/User"
      overrideOnCallUser:
        $ref: "#/definitions/User"
      start:
        description: The override start time (ISO 8601)
        type: string
    type: object
  OnCallRoll:
    properties:
      end:
        description: The on-call period end time (ISO 8601)
        type: string
      isRoll:
        type: boolean
      onCallUser:
        $ref: "#/definitions/User"
      start:
        description: The on-call period start time (ISO 8601)
        type: string
    required:
      - start
      - end
      - isRoll
    type: object
  OnCallTeamResource:
    properties:
      name:
        type: string
      slug:
        type: string
    type: object
  OnCallTeamsResource:
    properties:
      onCallNow:
        items:
          $ref: "#/definitions/OnCallNowResource"
        type: array
      team:
        $ref: "#/definitions/OnCallTeamResource"
    type: object
  OnCallType:
    enum:
      - user
      - rotation_group
      - rotation_group_next
      - rotation_group_previous
      - team
      - team_routing
      - webhook
      - email
      - policy_routing
    type: string
  OnCallUsersResource:
    properties:
      onCallUser:
        properties:
          username:
            type: string
        type: object
    type: object
  PagingPolicy:
    description: Paging policy fields
    properties:
      contactType:
        type: string
      extId:
        type: string
      order:
        type: integer
      timeout:
        type: integer
    type: object
  PagingPolicyStep:
    properties:
      index:
        type: number
      rules:
        items:
          $ref: "#/definitions/PagingPolicyStepRule"
        type: array
      timeout:
        $ref: "#/definitions/TimeoutType"
    type: object
  PagingPolicyStepRule:
    properties:
      contact:
        $ref: "#/definitions/Contact"
      index:
        type: number
      type:
        $ref: "#/definitions/NotificationType"
    type: object
  PagingPolicyStepRuleAdd:
    properties:
      contact:
        $ref: "#/definitions/Contact"
      type:
        $ref: "#/definitions/NotificationType"
    type: object
  Policies:
    description: Paging policies accociated which this user
    properties:
      policies:
        items:
          $ref: "#/definitions/PagingPolicy"
        type: array
      userId:
        type: integer
      username:
        type: string
    type: object
  PolicySchedule:
    properties:
      overrides:
        items:
          $ref: "#/definitions/OnCallOverride"
        type: array
      policy:
        $ref: "#/definitions/EscalationPolicy"
      schedule:
        items:
          $ref: "#/definitions/OnCallEntry"
        type: array
    type: object
  RemoveTeamMemberPayload:
    description: The user information
    properties:
      replacement:
        type: string
    required:
      - replacement
    type: object
  Reroute:
    properties:
      incidentNumber:
        type: string
      targets:
        items:
          $ref: "#/definitions/IncidentTarget"
        type: array
    required:
      - incidentNumber
      - targets
    type: object
  RerouteCollection:
    properties:
      reroutes:
        items:
          $ref: "#/definitions/Reroute"
        type: array
      userName:
        type: string
    required:
      - userName
      - reroutes
    type: object
  RerouteStatus:
    properties:
      incidentNumber:
        type: string
      message:
        type: string
      success:
        type: boolean
      targetStatus:
        items:
          $ref: "#/definitions/RerouteTargetStatus"
        type: array
    required:
      - incidentNumber
      - success
      - targetStatus
    type: object
  RerouteStatusResponse:
    properties:
      statuses:
        items:
          $ref: "#/definitions/RerouteStatus"
        type: array
    type: object
  RerouteTargetStatus:
    properties:
      message:
        type: string
      slug:
        description: User name or escalation policy slug
        type: string
      success:
        type: boolean
    required:
      - slug
      - success
    type: object
  RoutingKeyInfo:
    description: Routing keys contain the following fields
    properties:
      isDefault:
        type: boolean
      routingKey:
        type: string
      targets:
        items:
          $ref: "#/definitions/RoutingKeyTarget"
        type: array
    type: object
  RoutingKeyTarget:
    description: Routing key target
    properties:
      _teamUrl:
        type: string
      policyName:
        type: string
      policySlug:
        type: string
    type: object
  ScheduledOverride:
    properties:
      assignments:
        items:
          $ref: "#/definitions/Assignment"
        type: array
      end:
        description: The override end time (ISO 8601)
        type: string
      publicId:
        type: string
      start:
        description: The override start time (ISO 8601).
        type: string
      timezone:
        type: string
      user:
        $ref: "#/definitions/ScheduledUser"
    type: object
  ScheduledOverridePayload:
    properties:
      end:
        description: The override end time (ISO 8601)
        type: string
      start:
        description: The override start time (ISO 8601)
        type: string
      timezone:
        type: string
      username:
        type: string
    type: object
  ScheduledOverridePayloadUpdate:
    properties:
      end:
        description: The override end time (ISO 8601)
        type: string
      policySlug:
        type: string
      start:
        description: The override start time (ISO 8601)
        type: string
      username:
        type: string
    type: object
  ScheduledUser:
    properties:
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
    type: object
  SimpleTeamDetail:
    description: Some info about the team
    properties:
      _adminsUrl:
        type: string
      _membersUrl:
        type: string
      _policiesUrl:
        type: string
      _selfUrl:
        type: string
      name:
        type: string
      slug:
        type: string
    type: object
  TakeRequest:
    properties:
      fromUser:
        type: string
      toUser:
        type: string
    required:
      - fromUser
      - toUser
    type: object
  TakeResult:
    properties:
      result:
        type: string
    type: object
  Team:
    properties:
      name:
        type: string
      slug:
        type: string
    type: object
  TeamAdmin:
    description: Some info about the user
    properties:
      _selfUrl:
        type: string
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
    type: object
  TeamAdminsResponse:
    description: A list of team admins for the team
    properties:
      teamAdmins:
        items:
          $ref: "#/definitions/TeamAdmin"
        type: array
    type: object
  TeamDetail:
    description: Some info about the team
    properties:
      _adminsUrl:
        type: string
      _membersUrl:
        type: string
      _policiesUrl:
        type: string
      _selfUrl:
        type: string
      isDefaultTeam:
        type: boolean
      memberCount:
        type: number
      name:
        type: string
      slug:
        type: string
      version:
        type: number
    type: object
  TeamMember:
    description: Some info about the user
    properties:
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
      verified:
        description: Whether or not this user has set their password (will always be false)
        type: string
      version:
        type: number
    type: object
  TeamSchedule:
    properties:
      schedules:
        items:
          $ref: "#/definitions/PolicySchedule"
        type: array
      team:
        $ref: "#/definitions/Team"
    type: object
  TeamScheduleOverlayResource:
    properties:
      end:
        description: The time the override is scheduled to end
        type: number
      orig:
        description: The user scheduled on call (if any)
        type: string
      over:
        description: The user overriding the scheduled on call user (if any)
        type: string
      start:
        description: The time the override is scheduled to start
        type: number
    type: object
  TeamScheduleResource:
    properties:
      oncall:
        description: The user scheduled on call (if any)
        type: string
      overrideoncall:
        description: The user overriding the scheduled on call user (if any)
        type: string
      policyType:
        type: string
      rolls:
        items:
          $ref: "#/definitions/TeamScheduleRollResource"
        type: array
      rotationName:
        type: string
      shiftName:
        type: string
      shiftRoll:
        type: number
    required:
      - policyType
      - rolls
    type: object
  TeamScheduleRollResource:
    properties:
      change:
        description: The time the period is scheduled to start
        type: number
      isRoll:
        type: boolean
      oncall:
        description: The user scheduled on call (if any)
        type: string
      until:
        description: The time the period is scheduled to end
        type: number
    required:
      - change
      - until
      - isRoll
    type: object
  TimeoutDescription:
    enum:
      - If still unacked after 1 minute
      - If still unacked after 5 minute
      - If still unacked after 10 minute
      - If still unacked after 15 minute
      - If still unacked after 20 minute
      - If still unacked after 25 minute
      - If still unacked after 30 minute
      - If still unacked after 45 minute
      - If still unacked after 60 minute
    type: string
  TimeoutObject:
    properties:
      description:
        $ref: "#/definitions/TimeoutDescription"
      type:
        $ref: "#/definitions/TimeoutType"
    type: object
  TimeoutType:
    enum:
      - 1
      - 5
      - 10
      - 15
      - 20
      - 25
      - 30
      - 45
      - 60
    type: integer
  UpdateAssignment:
    properties:
      policy:
        description: The policy slug
        type: string
      username:
        description: The username being assinged
        type: string
    required:
      - policy
    type: object
  User:
    properties:
      username:
        type: string
    type: object
  UserContact:
    properties:
      _selfUrl:
        type: string
      deviceType:
        type: string
      extId:
        type: string
      label:
        type: string
    type: object
  UserLog:
    properties:
      adjustedTotal:
        properties:
          hours:
            type: number
          minutes:
            type: number
        type: object
      log:
        items:
          $ref: "#/definitions/OnCallInterval"
        type: array
      total:
        properties:
          hours:
            type: number
          minutes:
            type: number
        type: object
      userId:
        type: string
    type: object
  UserPagingPolicy:
    items:
      $ref: "#/definitions/PagingPolicyStep"
    type: array
  UserSchedule:
    properties:
      teamSchedules:
        items:
          $ref: "#/definitions/TeamSchedule"
        type: array
    type: object
  UserTeamsResponse:
    description: A list of teams to which the user belongs
    properties:
      teams:
        items:
          $ref: "#/definitions/SimpleTeamDetail"
        type: array
    type: object
  V1User:
    description: Some info about the user
    properties:
      _selfUrl:
        type: string
      createdAt:
        type: string
      email:
        type: string
      firstName:
        type: string
      lastName:
        type: string
      passwordLastUpdated:
        type: string
      username:
        type: string
      verified:
        description: Whether or not this user has set their password (will always be false)
        type: boolean
    type: object
