swagger: '2.0'
info:
  title: Device42 API
  version: '2.0'
  description: >-
    <b><h2>API Overview</h2></b><br>Restful API are supported in Device42 as one of the
    primary methods of entering, editing and retrieving data.<br><br>If you'd like to see your changes on
    our UI, please visit <hostname> and use credentials 'guest:device42_rocks!'.
    Please be aware that every 30 minutes our database resets and all data
    entered with POST/PUT calls from this page will be lost.<br><br>If you have
    any questions/suggestions, please send us a note to support at device42.com
    below.
    <br><br> NOTE: Secrets/Password passphrase has been disabled on the swagger demo instance. 
    When you use <b>Try It</b> functionality with API method that provides or modifies a secret, you will receive an error.
    <br><h2><a id = 'API_Authentication'><b>API Authentication</b></a></h2>
    The RESTful API's enforce the role-based security that is created with the
    Device42 app and support two HTTP authentication schemes: Basic Authentication and Token 
    Authentication.<br>
    <br><b>Basic Authentication</b>
    <br>Using Basic Authentication, the API consumer sends an Authorization header that contains the
    string 'Basic ' followed by a base64-encoded string username:password. The username and password 
    must be those of a Device42 user. If you want a user to have access 
    via the API, but not via the UI - deselect 'Staff Status' for that user from 
    UI Tools > Admins & Permissions > Administrators.<br>
    <br><b>Token Authentication</b>
    <br>Token authentication uses a digitally signed token, called a Bearer token, to provide secure, 
    credential-less API call authorizations. When using Bearer tokens, the API consumer sends an Authorization 
    header that contains the string 'Bearer ' followed by the Bearer token data returned by Device42.
    <br><br>Device42 Bearer tokens are secure JWT tokens using an RSA SHA256 encrypted signature.
    The RSA encryption keys used to encrypt the tokens are unique to each Device42 installation.
    Bearer tokens are time limited, and, once expired, cannot be used again.<br>
    <br>When using token authentication, a Device42 entity called an API Client is required and
    an additional step is necessary before making API calls. The API consumer
    must request a token by authenticating with an API Client. If the authentication succeeds, 
    a token is returned and API Calls can then be made using the token as the Bearer token.
    <br><br>API Clients are created as needed by a Device42 administrator. API Clients act as a proxy 
    to a Device42 user (the user must have its Staff Status deselected). Role-based security is inherited by the 
    API Client from the associated Device42 user. 
    <br><br>When an API Client is created, a pair of universally unique ids 
    are generated, called the Client key and Client Secret key. The Client key identifies the API Client. 
    The Client and Client Secret keys are used as username and password respectively when requesting a token.
    <br><br>To request a token, the API consumer sends a POST request to the Device42 <b>/tauth/1.0/token/</b> endpoint. 
    The request uses Basic authentication with the username set to the Client key and the password set to Cient
    Secret key. The successful response to this request will be a JSON object containing the token and other properties.
    The token is then used in subsequent Device42 API calls as the Bearer token.
    <br><br>Tokens can also be extended and deleted using the <b>/tauth/1.0/token/</b> endpoint.
    <br><br>For a walkthrough on setting up Token authentication visit <a href=
    'https://support.device42.com/hc/en-us/articles/7487267665815-API-Token-Usage-in-Details'>API Token Usage in Details</a>
    <br>
    <h2><a id = 'Response_Status_Messages'><b>Response &
    Status Messages</b></a></h2><b>Responses</b><br>The response to most POST calls
    will have the following format: <br>{'msg':['PartModel added/updated', 17,
    'RAM Acme 123456', true, true], 'code':0}<br><br>Using the example
    above:<br>'17' = ID of the object<br>'RAM Acme 123456' = representation of
    the object<br> 'true, true' = object added and is new.<br>'true, false' =
    object updated.<br>'false, false' = no changes.<br><br><b>Status
    Codes</b><br><u>Code 0</u><br>Success! e.g. = {'msg': 'device added or updated',
    <b>code:0</b>}<br><br><u>'HTTP/1.1 200 OK'</u><br>Success! All other responses are
    errors and will display an error code e.g.: 400, 401, 403, 405, 410, 500, 503. These are explained
    in each call.<br><br>Please let us know if you notice something odd with a response and we will fix it! :)
    <h2><a id = 'Get_Limits_Offsets'><b>API Get Limits and Offsets</b></a></h2>In
    Device42’s global settings we have the option to enforce API GET limits and
    this setting is recommended for better performance. To set this value from
    Device42, go to Tools>Settings>Global Settings and the click Edit in the top
    right. Toward the bottom of the screen you will see the API section. First
    check the “Enforce API GET Limits” checkbox, then enter a value for API GET
    Limit. A good limit to start with is 500 or 1000, depending on the
    performance you experience.<br><br>After setting this limit all GET calls
    below can have the results augmented via “offset” and “limit” parameters to
    tell Device42 which value to start returning results from, and how many
    results to return at maximum.<br>Examples:<br><br>'/?limit=50' returns the
    first 50 results.<br><br> '/?offset=100' will start at the 101st result.
    <br><br>'/?offset=42&limit=42' returns 42 results, starting at the 43rd.<br><br>
    Note that offset is used for paging - that is, the offset is only applied when the total number of objects returned exceeds the limit that is returned.<br><br><br>
    <b>Commit:</b> #<commit>
  contact:
    name: Device42
    email: support@device42.com
host: <host>
schemes:
  - https
consumes:
  - application/json
  - application/x-www-form-urlencoded
produces:
  - application/json
paths:
  /tauth/1.0/token/:
    post:
      operationId: postapitoken
      summary: Request an API Token
      description: >-
        Used to request a token from an API Client. Once a token has been obtained, the token can be used as the Bearer token on subsequent API calls 
        The Client key and Client secret key of an API Client are provided as Basic authentication userid and password.
      tags: 
        - API Token Authentication
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: '0'
              expires:
                example: '2022-02-03T19:23:03.267Z'
              token:
                example: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJEZXZpY2U0MiIsInRva2VuX2lkIjozOSwiY2xpZW50X2lkIjo2LCJleHAiOjE2NDM5MTYxODMsImV4aSI6NjAwfQ.CYZvhvXtKTpOJRpeQudAzFlqjdZc5tTx3oS9XOwXk_N2P9WCmQlsiXSFSVVUsU3XGRprLEULrBKlcpuo08c4mZxiNGV99X40HFWlGrWWjB0scW3CwHX0c2Y6xHbUhH70Fhw5J2ivMsuwb5ecUuQnVqLzXPAriirwjn90ikCEF56_1MPWN9Qgy6r_ZjSre2JpCFgkPZ0PKAMkq-lTH1FNLwcTGG9dB8BwWW7okEQdvU_RJsjJZCOj-i5AdPcWrHMAqpJKE1FqKTSOCD3YbMIbsLA0rhCUFzqaIgUKm8kcknCTjcpPrpzKk6toqA82UuToW8IUFoyLO7-p3hbKForc8PQR5lu3wcoqpQ_kIWRuT3e9uai7VFOZ-oZMXGnXgNrR32FVPg7ZGZBxMmTh-C_MByp9RAWa0Uqhx0cyYOe-C9uUaixXB73qigTsSSrpKGRyl96e5WqCwDeztG8XCLMiSBceZW8JSLBL-Kt10xIuSHue0bnDz6kH5kdgnc_b6l1Q5EWYIVM_BmWGj0yq5WF0cPFHlOc2rjcLZFiVsY6M0kiMIFN1EdJskP_4JS3UgnP7QwYCjUvalpJUiU85Qri_SvVqvZeXcQfTiD8BX_nT59IlopD0JIRL8ajc3RQS6g8mYNdFkzKz2jSADuryTW-yFQMo0IoYfZQLX1Xs9FrQVYc'
              ttl:
                example: 10
              msg:
                example: 'connected'
              token_id:
                example: 42
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /tauth/1.0/token/{token_id}/:
    put:
      operationId: putapitoken
      summary: Extend an API Token
      description: >-
        Used to extend the expiraton time of the API Token provided as the Bearer token. The token is extended by the 
        Time to Live value set by the API Client. The id of the token is required.
        It is important to note that, when this request completes, a new token is generated along with a new token_id. The new
        token must be used as the Bearer token in subsequent API calls. The original token is invalid and has been deleted.
      tags: 
        - API Token Authentication
      parameters:
        - $ref: '#/parameters/token_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: '0'
              expires:
                example: '2022-02-03T19:27:01.872Z'
              token:
                example: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJEZXZpY2U0MiIsInRva2VuX2lkIjo0MCwiY2xpZW50X2lkIjo2LCJleHAiOjE2NDM5MTY0MjEsImV4aSI6NjAwfQ.Uko8axOaUuJDt6IRsNZhzBZSrAG_0jMyHHJGN3x3i3PqA-xaVO3P5djud3D7Jz4GkYolEZQSudMB9FE8NPQXVCjjuUVMbGKmBele_oIxnC1dAwnJ0H2ZDC2AM1GO-8685nmi39wMEPrtfm0PbY8KW4uB4_BJOQWVv4GYd_J_c4wxQ-THKRir8fFRyNO5Jjr220-Irn6Le2zV4DqoSbLG88gATjECbUSKyBIQwwB_zPHe05xYyP5DCKF7FRAl5kab1HZYWJ_0FBVYyqddSgZxQ4und3u5TgIVtp3VXrFdOKFAmj9pAK8kNieApxb4-NY2jZYmwGZpu3yca-tULj3q-dn3RXq5niZBD1cJqvsI-fkiOrD_OMvraR95OJqEo93OWILbS5rXXQAHS_zONkKkoEKe1kCb7EzW59-Z8eQI0UxgtYJM238ZCLxvucIjg518zSsxDOV7TK875FL-WyCiRZ4N86gbCHJvWkfqCb1Dx5MojgujMOG0LkE2zs9LMyftUDFx1MYf756xgt-iILZyQFD1Su-uHHjqV1Pb5_-fqTWg3XfD3ALNmmX8mdEux_GPRbeaHTSASaRtVXJVDrqLO18rg93xraTKF1J1IvgtxjI3bPSQ99o3z_LK1sSg0dFcUJw3dHb3OG-jaW3KnGRkKlCldFaWsb1eL9HP4nxL1wU'
              ttl:
                example: 10
              msg:
                example: 'connected'
              token_id:
                example: 43
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteapitoken
      summary: Delete an API Token
      description: >-
        Used to deelete the API Token provided as the Bearer token. The token is deleted thus preventing it from validating in subsequent API call.
        The id of the token is required.
      tags: 
        - API Token Authentication
      parameters:
        - $ref: '#/parameters/token_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: 'API Token deleted'
              code:
                example: '0'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/api_clients/:
    get:
      operationId: getapiclients
      summary: Get All API Clients
      description: >-
       Get all API Clients
      tags: 
        - API Clients
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              api_client:
                type: array
                items:
                  $ref: '#/definitions/api_client'
              total_count:
                example: 1
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAPIClient
      description: This call will create/update an API Client
      summary: Create/update API Client
      tags:
        - API Clients
      parameters:
        - name: client_key
          type: string
          description: unique client key
          in: formData
        - name: client_secret_key
          type: string
          description: unique client secret key
          in: formData
        - name: resource_owner
          type: string
          description: username of a Device42 non-staff user
          in: formData
        - name: token_ttl
          type: integer
          description: token time to live in seconds
          in: formData
        - name: active
          type: boolean
          description: true if the token is active
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - 7
                  - "57a1272bd48940a29f3b3b0fc78acc4e"
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/api_clients/{client_id}:
    get:
      operationId: getapiclient_id
      summary: Get an API Client
      description: >-
       Get an API Client by ID
      tags: 
        - API Clients
      parameters:
        - name: client_id
          in: path
          description: API Client ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/api_client'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteapiclient_id
      summary: Delete an API Client
      description: >-
       Delete an API Client by ID
      tags: 
        - API Clients
      parameters:
        - name: client_id
          in: path
          description: API Client ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '3'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  
  /api/2.0/api_client_keys/:
    get:
      operationId: getapiclientkeys
      summary: Get API Client Keys
      description: >-
       This API retrieves key and secret key for an API client
      tags: 
        - API Client Keys
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              apiclient_key:
                example: "0a7048d7be904028b798900657d4c8b9"
              apiclient_secret_key:
                example: "aa460be4f08a48488bb46b03eae07736_6468d3616a61430190ad65fceaf38b1a"
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  # AWS Roles API
  /api/2.0/aws_roles/:
      get:
        operationId: getawsroles
        summary: Get All AWS Roles
        description: >-
          Get all AWS Roles
        tags: 
          - AWS Roles
        responses:
          '200':
            description: 'The above command returns results like this:'
            schema:
              properties:
                aws_roles:
                  type: array
                  items:
                    $ref: '#/definitions/aws_role'
                total_count:
                  example: 1
                limit:
                  example: 1000
                offset:
                  example: 0
          '400':
            $ref: '#/definitions/BadRequest'
          '401':
            $ref: '#/definitions/Unauthorized'
          '403':
            $ref: '#/definitions/Forbidden'
          '404':
            $ref: '#/definitions/NotFound'
          '500':
            $ref: '#/definitions/InternalServerError'
          '503':
            $ref: '#/definitions/ServiceUnavailable'
      post:
        operationId: postawsroles
        description: This call will create/update an AWS Role
        summary: Create/update AWS Role
        tags:
          - AWS Roles
        parameters:
          - name: name'
            type: string
            description: Device42 AWS Role object name
            in: formData
            required: true
          - name: role_name
            type: string
            description: AWS Role name
            in: formData
            required: true
          - name: role_description
            type: string
            description: Device42 description of the Role object
            in: formData
          - name: account_id
            type: string
            description: Optional AWS Account ID (to add with this Role)
            in: formData
          - name: external_id
            type: string
            description: Optional External ID for the Optional AWS Account
            in: formData
        responses:
          '200':
            description: 'The above command returns results like this:'
            schema:
              properties:
                msg:
                  example:
                    - 7
                    - "example role"
                    - true
                    - true
                code:
                  example: 0
          '400':
            $ref: '#/definitions/BadRequest'
          '401':
            $ref: '#/definitions/Unauthorized'
          '403':
            $ref: '#/definitions/Forbidden'
          '404':
            $ref: '#/definitions/NotFound'
          '500':
            $ref: '#/definitions/InternalServerError'
          '503':
            $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/aws_roles/{aws_role_id}:
    get:
      operationId: getaawsrole_id
      summary: Get an AWS Role by ID
      description: >-
       Get an AWS Role by ID
      tags: 
        - AWS Roles
      parameters:
        - name: aws_role_id
          in: path
          description: AWS Role ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/aws_role'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteawsrole_id
      summary: Delete an AWS Role
      description: >-
       Delete an AWS Role by ID
      tags: 
        - AWS Roles
      parameters:
        - name: aws_role_id
          in: path
          description: AWS Role ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '3'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/aws_roles/accounts/:
    get:
      operationId: getaawsaccountaccount_id
      summary: Get AWS Role Accounts
      description: >-
       Get AWS Role Accounts, optionally limited to acccounts for a specified AWS Role
      tags: 
        - AWS Roles
      parameters:
        - name: aws_role_id
          in: query
          description: Optional AWS Role ID. (If provided, account list will be limited to the accounts linked to this role.)
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              aws_accounts:
                type: array
                items:
                  $ref: '#/definitions/aws_role_account'
              total_count:
                example: 1
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postawsaccount
      description: This call will create/update an AWS Role Account
      summary: Create/update AWS Role Account
      tags:
        - AWS Roles
      parameters:
        - name: aws_role_id
          type: string
          description: Device42 AWS Role to add this AWS Account to
          in: formData
          required: true
        - name: aws_account_id
          type: string
          description: AWS Account ID
          in: formData
          required: true
        - name: external_id
          type: string
          description: Optional AWS External ID for the AWS Account
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - 12
                  - "999999999999"
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/aws_roles/accounts/{aws_account_id}:
    get:
      operationId: getaawsaccountaccount_id
      summary: Get an AWS Role Account by ID
      description: >-
       Get an AWS Role Account by ID
      tags: 
        - AWS Roles
      parameters:
        - name: aws_account_id
          in: path
          description: AWS Role Account ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/aws_role_account'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteawsroleaccount_id
      summary: Delete an AWS Role Accont
      description: >-
       Delete an AWS Role Account by ID
      tags: 
        - AWS Roles
      parameters:
        - name: aws_account_id
          in: path
          description: AWS Role Account ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '3'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/buildings/:
    get:
      operationId: getBuildings
      description: Retrieve information about all buildings
      summary: Get all
      tags:
        - Buildings
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/building_include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              buildings:
                $ref: '#/definitions/buildings'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postBuildings
      description: Create/update building
      summary: Create/update
      tags:
        - Buildings
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Name of building
        - name: latitude
          type: string
          in: formData
          description: north-south position
        - name: longitude
          type: string
          in: formData
          description: east-west position
        - $ref: '#/parameters/address_post'
        - $ref: '#/parameters/contact_name_post'
        - $ref: '#/parameters/contact_phone_post'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
        - name: tags
          type: string
          description: add tags (comma separated)
          in: formData
        - name: tags_remove
          type: string
          in: formData
          description: comma separated tags to remove
        - name: new_name
          type: string
          in: formData
          description: Change name of an existing building. This parameter is ignored when creating a new building. 

      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Building added/updated successfully
                  - 4
                  - main office
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/buildings/{ID}/':
    get:              
      operationId: getBuildingByID
      description: This call will get a building by ID
      summary: Get specific building by id
      tags:
        - Buildings
      parameters:
        - name: id
          in: path
          description: Building ID.
          type: integer
          required: true
        - $ref: '#/parameters/building_include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
              $ref: '#/definitions/building'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteBuildings
      summary: Delete
      description: >-
        This API is used to delete the building with the building id supplied as
        the required argument
      tags:
        - Buildings
      parameters:
        - name: ID
          type: integer
          in: path
          description: building id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/building/:
    put:
      operationId: putCustom_fieldsBuilding
      summary: Custom fields
      description: >-
        Create or update custom fields for building. "ID" or "name" of building
        is needed even when value is not being changed
      tags:
        - Buildings
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of building
        - name: id
          type: string
          in: formData
          description: ID of building
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/groups_post'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - main office
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/rooms/:
    get:
      operationId: getRooms
      description: Retrieve information about all rooms
      summary: Get all
      tags:
        - Rooms
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/building_id'
        - $ref: '#/parameters/building'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              rooms:
                $ref: '#/definitions/rooms'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postRooms
      description: >-
        Create or update a Room. Required parameters: <ul><li>name</li>
        <li>building_id <b>OR</b> building</li>
      summary: Create/update
      tags:
        - Rooms
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Name of room
        - name: building_id
          type: string
          in: formData
          description: Existing building ID
        - name: building
          type: string
          in: formData
          description: Existing building name
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/horizontal_grid_numbering'
        - $ref: '#/parameters/horizontal_grid_start'
        - $ref: '#/parameters/vertical_grid_numbering'
        - $ref: '#/parameters/vertical_grid_start'
        - $ref: '#/parameters/uom'
        - $ref: '#/parameters/height'
        - $ref: '#/parameters/grid_rows'
        - $ref: '#/parameters/grid_cols'
        - $ref: '#/parameters/raised_floor'
        - $ref: '#/parameters/raised_floor_height'
        - $ref: '#/parameters/groups_post'
        - $ref: '#/parameters/reverse_xaxis'
        - $ref: '#/parameters/reverse_yaxis'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Room added successfully
                  - 7
                  - 2nd Floor
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/rooms/{ID}/':
    get:
      operationId: getRoomsID
      summary: Get specific
      description: >-
        Retrieve detailed information about a specific room includes racks,
        devices and objects directly related to that room
      tags:
        - Rooms
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: The ID of the room to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              building:
                example: New Haven
              reverse_yaxis:
                example: 'no'
              name:
                example: NHDC1
              notes:
                example: Demo Room
              horizontal_grid_numbering:
                example: 0
              horizontal_grid_start:
                example: '1'
              vertical_grid_numbering:
                example: 1
              vertical_grid_start:
                example: 'A'
              devices:
                type: array
                items:
                  properties:
                    device:
                      type: object
                      properties:
                        uuid:
                          example: ''
                        serial_no:
                          example: ''
                        asset_no:
                          example: ''
                        name:
                          example: CRAC2
                        device_url:
                          example: /api/api/1.0/devices/id/123/
                        type:
                          example: other
                        device_id:
                          example: 123
                        preferred_alias:
                          example: "Device's preferred alias"
                        wall:
                          example: middle
              grid_cols:
                example: 10
              room_id:
                example: 1
              reverse_xaxis:
                example: 'no'
              grid_rows:
                example: 9
              building_id:
                example: 1
              racks:
                type: array
                items:
                  $ref: '#/definitions/RoomsRacks'
              assets:
                type: array
                items:
                  properties:
                    asset_id:
                      example: 30
                    serial_no:
                      example: ''
                    type:
                      example: Breaker Panel
                    name:
                      example: Power1
                    asset_no:
                      example: 0084
              tags:
                type: array
                items:
                  type: string
                  example: "carbon_footprint"
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putRoomsID
      description: Update information for an existing room
      summary: Update
      tags:
        - Rooms
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: id of the room
        - name: name
          type: string
          in: formData
          description: Name of room
        - $ref: '#/parameters/notes_post'
        - name: building_id
          type: string
          in: formData
          description: Existing building ID
        - $ref: '#/parameters/horizontal_grid_numbering'
        - $ref: '#/parameters/horizontal_grid_start'
        - $ref: '#/parameters/vertical_grid_numbering'
        - $ref: '#/parameters/vertical_grid_start'
        - $ref: '#/parameters/uom'
        - $ref: '#/parameters/height'
        - $ref: '#/parameters/grid_rows'
        - $ref: '#/parameters/grid_cols'
        - $ref: '#/parameters/raised_floor'
        - $ref: '#/parameters/raised_floor_height'
        - $ref: '#/parameters/groups_post'
        - $ref: '#/parameters/reverse_xaxis'
        - $ref: '#/parameters/reverse_yaxis'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Room updated successfully
                  - 7
                  - 3nd Floor
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteRoomsID
      summary: Delete
      description: >-
        This API is used to delete the room with the room id supplied as the
        required argument
      tags:
        - Rooms
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: room id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/room/:
    put:
      operationId: putCustom_fieldsRoom
      description: >-
        Create or update custom fields for rooms. "ID" or "name" of room is
        needed even when value is not being changed.
      summary: Custom fields
      tags:
        - Rooms
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of room
        - name: id
          type: string
          in: formData
          description: Room ID or UI > Tools > Export > Room
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api' 
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 7
                  - 2nd Floor @ main office
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/room/:
    post:
      operationId: postDeviceRoom
      description: Add device to a room
      summary: Add device
      tags:
        - Rooms
      parameters:
        - name: room_id
          type: integer
          in: formData
          required: true
          description: Room ID or UI > Tools > Export > Room
        - name: name
          type: string
          in: formData
          description: The name of the device to add
          required: true
        - name: type
          type: string
          in: formData
          enum:
            - CRAC
            - UPS
          required: true
        - name: wall
          type: string
          in: formData
          description: >-
            Choose 'middle' if you do not want the object to be placed along one
            of the 4 walls.
          enum:
            - left
            - right
            - top
            - bottom
            - middle
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                example:
                  - device added to room
                  - 1
                  - main office - 3nd Floor
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device/room/{ID}/':
    delete:
      operationId: deleteDeviceRoom
      summary: Delete device
      description: >-
        This API is used to delete the device from its room with the device id
        supplied as the required argument
      tags:
        - Rooms
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: device id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/assets/room/:
    post:
      operationId: postAssetsRoom
      description: Add an asset to a room or update an existing asset in a room
      summary: Add/Update an asset
      tags:
        - Rooms
      parameters:
        - name: room_id
          type: integer
          in: formData
          description: Room ID. This is required if room is not provided.
        - name: room
          type: string
          in: query
          description: The name of the room. This is required if room_id is not provided.
        - name: asset_id
          type: integer
          in: formData
          description: Asset ID. This is required if asset is not provided.
        - name: asset
          type: string
          in: formData
          description: The name of the asset. This is required if asset_id is not provided. If this field it used, type must also be provided.
        - name: type
          type: string
          in: formData
          description: The type of the asset. Only provide asset types with the server room option enabled.
        - name: building
          type: string
          in: formData
          description: The name of the building
        - name: wall
          type: string
          in: formData
          description: >-
            Choose 'middle' if you do not want the object to be placed along one
            of the 4 walls.
          enum:
            - left
            - right
            - top
            - bottom
            - middle
        - name: grid_x
          type: string
          in: formData
          description: x coordinate of grid
        - name: grid_y
          type: string
          in: formData
          description: y coordinate of grid
        - name: start_row
          type: string
          in: formData
          description: Starting row
        - name: start_col
          type: string
          in: formData
          description: Starting column
        - name: space_rows
          type: string
          in: formData
          description: Rows to space
        - name: space_cols
          type: string
          in: formData
          description: Columns to space
        - name: grid_rows
          type: string
          in: formData
          description: Grid row
        - name: grid_cols
          type: string
          in: formData
          description: Grid column
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Asset added to/updated in room
                  - 1
                  - bp122  (in 3nd Floor)
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/asset/room/{id}/':
    delete:
      operationId: deleteAssetsRoom
      summary: Delete an asset
      description: >-
        This API is used to delete the asset with the asset id supplied as the
        required argument from its room
      tags:
        - Rooms
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: asset id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/racks/:
    get:
      operationId: getRacks
      summary: Get all
      description: This API will retrieve basic information about all racks
      tags:
        - Racks
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/building_id'
        - $ref: '#/parameters/building'
        - $ref: '#/parameters/room_id'
        - $ref: '#/parameters/room'
        - name: size
          type: integer
          description: filter by rack size in U
          in: query
        - name: row
          type: string
          description: filter by row name
          in: query
        - name: asset_no
          type: string
          description: filter by asset number
          in: query
        - name: manufacturer
          type: string
          description: filter by manufacturer
          in: query
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 2
              offset:
                example: 0
              racks:
                type: array
                items:
                  $ref: '#/definitions/racks'
              total_count:
                example: 275
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postRacks
      description: >-
        Create / Update Racks. Creating a new rack requires both
        <ul><li>name</li><li>size</li></ul><p> However, if updating a rack, use </p> <ul><li>rack_id</li></ul> <p>or all of</p>
        <ul><li>name</li><li>room</li> <li>building</li></ul><p> If using
        room/building name, first combination of room name or room and building
        name will be used.</p>
      summary: Create/update
      tags:
        - Racks
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Rack name - must be unique within a room
        - name: size
          type: integer
          description: In UI
          in: formData
          required: true
        - name: rack_id
          type: integer
          description: >-
            Required to update a rack using ID. This has highest priority to update a
            rack.
          in: formData
        - name: room
          type: string
          description: Name of room - Required if changing a rack without rack_id.
          in: formData
        - name: building
          type: string
          in: formData
          description: Name of building - Used when there are non-unique room names.
        - $ref: '#/parameters/new_name'
        - $ref: '#/parameters/room_id_post'
        - $ref: '#/parameters/numbering_start_from_bottom'
        - $ref: '#/parameters/first_number'
        - $ref: '#/parameters/row'
        - $ref: '#/parameters/manufacturer_post'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/start_row'
        - $ref: '#/parameters/start_col'
        - $ref: '#/parameters/row_size'
        - $ref: '#/parameters/col_size'
        - $ref: '#/parameters/orientation_rack'
        - $ref: '#/parameters/groups_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - rack added.
                  - 29
                  - '34'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/racks/{ID}/':
    get:
      operationId: getRacksID
      description: >-
        Retrieve detailed information about a specific rack including all racked
        devices, assets and PDUs
      summary: Get specific
      tags:
        - Racks
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: The ID of the rack to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              asset_no:
                example: ''
              assets:
                example: []
              available_u:
                example: 10
              building:
                example: New Haven
              custom_fields:
                type: array
                items:
                  properties:
                    key:
                      example: Master Key?
                    notes:
                      example: ''
                    value:
                      example: ''
              devices:
                type: array
                items:
                  $ref: '#/definitions/RackDevices'
              first_number:
                example: 0
              manufacturer:
                example: APC Inc.
              name:
                example: NH-DC1-02
              notes:
                example: ''
              number_between_us:
                example: true
              numbering_start_from_bottom:
                example: 'yes'
              pdus:
                type: array
                items:
                  properties:
                    bootstrap_power:
                      example: 0.00 W
                    depth:
                      example: Half Depth
                    file_names:
                      example:
                        - /var/www/graphics/images/apc-rack-pdu-front.png
                        - ''
                    name:
                      example: USNHCTPDU-03
                    num_ports:
                      example: '32'
                    orientation:
                      example: Back
                    pdu_id:
                      example: 16
                    power_draw:
                      example: ' '
                    reversed:
                      example: 'no'
                    size:
                      example: 1
                    start_at:
                      example: ''
                    total_ports:
                      example: 32
                    where:
                      example: Right
                    width:
                      example: 2520
                    xpos:
                      example: 0
              rack_id:
                example: 21
              rack_middle_option:
                example: Start at
              rack_url:
                example: /api/api/1.0/racks/21/
              room:
                example: NHDC1
              row:
                example: ''
              row_size:
                example: 1
              size:
                example: 42
              start_col:
                example: 29
              start_row:
                example: 10
              tags:
                example: []
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteRacksID
      description: >-
        This API is used to delete the rack with the rack id supplied as the
        required argument
      summary: Delete
      tags:
        - Racks
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: rack id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/asset/rack/{id}/':
    delete:
      operationId: deleteAssetsRack
      summary: Remove Asset from Rack
      description: This API is used to un-rack the asset
      tags:
        - Racks
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Asset ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/rack/:
    put:
      operationId: putCustom_fieldsRack
      description: >-
        Create or update custom fields for racks. "ID" or "name" of rack is
        needed even when value is not being changed
      summary: Custom fields
      tags:
        - Racks
      parameters:
        - name: name
          type: string
          in: formData
          description: name of room
        - name: id
          type: string
          in: formData
          description: Rack ID or UI > Tools > Export > Rack
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 29
                  - 34 - 12 (in 3nd Floor @ main office)
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/assets/:
    get:
      operationId: getAssets
      description: Retrieve basic information about all assets
      summary: Get all
      tags:
        - Assets
      parameters:
        - $ref: '#/parameters/asset_no'
        - $ref: '#/parameters/serial_no'
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - name: type
          type: string
          description: filter by asset type
          in: query
        - $ref: '#/parameters/asset_id'
        - $ref: '#/parameters/service_level'
        - $ref: '#/parameters/customer'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/asset_no_contains'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - $ref: '#/parameters/related_device_id'
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              assets:
                type: array
                items:
                  $ref: '#/definitions/Assets'
              limit:
                example: 2
              offset:
                example: 0
              total_count:
                example: 209
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAssets
      description: Create assets
      summary: Create
      tags:
        - Assets
      parameters:
        - name: type
          in: formData
          enum:
          - 'AC'
          - 'Block Tile'
          - 'Breaker Panel'
          - 'Cable Modem'
          - 'DMARC'
          - 'Door'
          - 'Fabric Extender'
          - 'Fax Machine'
          - 'Filler Panel'
          - 'Monitor'
          - 'Patch Panel'
          - 'Patch Panel Module'
          - 'Projector'
          - 'Scanner'
          - 'Sensor'
          - 'Shredder'
          - 'Software'
          - 'Speaker Phone'
          - 'TAP Module'
          - 'Window' 
          description: The type of the asset. - required.<br> You can add a new asset type also in PUT.
          required: true
          type: string
        - name: name
          in: formData
          description: name of asset
          type: string
        - name: service_level
          in: formData
          description: >-
            In Service, Spare, Not in Service are pre-defined - or choose your
            own.
          type: string
        - name: back_connection_type
          in: formData
          type: string
          description: Type of back connection for asset. Options are panel, switch, circuit, cable.
        - name: tap_module_model_id
          in: formData
          type: integer
          description: ID of Tap Module Model
        - name: tap_module_model
          in: formData
          type: string
          description: Tap Module Model
        - name: tap_module_host_id
          in: formData
          type: integer
          description: ID of Tap Module Host
        - name: tap_module_host
          in: formData
          type: string
          description: Tap Module Host for asset.
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
        - name: storage_room
          in: formData
          type: string
          description: Name of storage room to apply asset to.
        - $ref: '#/parameters/in_service_status'
        - $ref: '#/parameters/device_ids'
        - $ref: '#/parameters/device_name'
        - name: reversed
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Is the asset reversed on the rack?
        - name: building
          type: string
          in: formData
          description: Building name
        - name: serial_no
          in: formData
          type: string
          description: The serial number of the asset.
        - name: asset_no
          in: formData
          type: string
          description: The asset number of the asset. 
        - $ref: '#/parameters/customer_form'
        - name: storage_room_id
          in: formData
          type: string
          description: ID of Storage Room
        - $ref: '#/parameters/location'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/building_post'
        - name: vendor
          in: formData
          type: string
          description: Name of existing vendor
        - $ref: '#/parameters/imgfile_id'
        - $ref: '#/parameters/imgfile'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - name: rack
          in: formData
          type: string
          description: Name of existing rack to add asset to.
        - name: rack_id
          in: formData
          type: integer
          description: ID of existing rack to add asset to.
        - $ref: '#/parameters/start_at'
        - name: size
          type: integer
          in: formData
          description: Required if adding asset to rack. in U.
        - name: orientation
          type: string
          in: formData
          description: Back if back facing. Otherwise ignored
        - $ref: '#/parameters/where'
        - $ref: '#/parameters/x_pos'
        - $ref: '#/parameters/depth'
        - name: device_id
          type: integer
          description: ID of the related device
          in: formData
        - name: tags
          type: string
          description: add tags (comma separated)
          in: formData
        - name: tags_remove
          type: string
          description: remove tags (comma separated)
          in: formData
        - $ref: '#/parameters/patch_panel_model_id'
        - $ref: '#/parameters/patch_panel_model'
        - $ref: '#/parameters/numbering_start_from'
        - $ref: '#/parameters/patch_panel_module_model_id'
        - $ref: '#/parameters/patch_panel_module_model'
        - $ref: '#/parameters/module_host_id'
        - $ref: '#/parameters/module_host'
        - $ref: '#/parameters/slot_no'
        - $ref: '#/parameters/width_ratio_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                type: array
                items:
                  example:
                    - asset added/edited.
                    - 54
                    - test_api
                    - true
                    - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAssets
      description: Modify assets. Need either <b>Asset ID</b> or <b>Asset</b>
      summary: Modify
      tags:
        - Assets
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of Asset.
        - name: asset_id
          description: Asset ID
          type: integer
          in: formData
        - name: asset
          description: Name of asset. Required if asset_id not provided.
          in: formData
          type: string
        - name: type
          in: formData
          enum:
            - 'AC'
            - 'Block Tile'
            - 'Breaker Panel'
            - 'Cable Modem'
            - 'DMARC'
            - 'Door'
            - 'Fabric Extender'
            - 'Fax Machine'
            - 'Filler Panel'
            - 'Monitor'
            - 'Patch Panel'
            - 'Patch Panel Module'
            - 'Projector'
            - 'Scanner'
            - 'Sensor'
            - 'Shredder'
            - 'Software'
            - 'Speaker Phone'
            - 'TAP Module'
            - 'Window' 
          description: The type of the asset. - required.
          required: true
        - name: service_level
          in: formData
          description: >-
            In Service, Spare, Not in Service are pre-defined - or choose your
            own.
          type: string
        - name: building
          type: string
          in: formData
          description: Building name
        - name: serial_no
          in: formData
          type: string
          description: The serial number of the asset.
        - name: asset_no
          in: formData
          type: string
          description: The asset number of the asset. 
        - $ref: '#/parameters/customer_form'
        - name: back_connection_type
          in: formData
          type: string
          description: Type of back connection for asset. Options are panel, switch, circuit, cable.
        - name: tap_module_model_id
          in: formData
          type: integer
          description: ID of Tap Module Model
        - name: tap_module_model
          in: formData
          type: string
          description: Tap Module Model
        - name: tap_module_host_id
          in: formData
          type: integer
          description: ID of Tap Module Host
        - name: tap_module_host
          in: formData
          type: string
          description: Tap Module Host for asset.
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
        - name: storage_room
          in: formData
          type: string
          description: Name of storage room to apply asset to.
        - $ref: '#/parameters/in_service_status'
        - $ref: '#/parameters/device_ids'
        - $ref: '#/parameters/device_name'
        - name: reversed
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Is the asset reversed on the rack?
        - name: storage_room_id
          in: formData
          type: string
          description: ID of Storage Room
        - $ref: '#/parameters/location'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/building_post'
        - name: vendor
          in: formData
          type: string
          description: Name of existing vendor
        - $ref: '#/parameters/imgfile_id'
        - $ref: '#/parameters/imgfile'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - name: rack
          in: formData
          type: string
          description: Name of existing rack to add asset to.
        - name: rack_id
          in: formData
          type: integer
          description: ID of existing rack to add asset to.
        - $ref: '#/parameters/start_at'
        - name: size
          type: integer
          in: formData
          description: Required if adding asset to rack. in U.
        - name: orientation
          type: string
          in: formData
          description: Back if back facing. Otherwise ignored
        - $ref: '#/parameters/where'
        - $ref: '#/parameters/x_pos'
        - $ref: '#/parameters/depth'
        - name: device_id
          type: integer
          description: ID of the related device
          in: formData
        - name: tags
          type: string
          description: add tags (comma separated)
          in: formData
        - name: tags_remove
          type: string
          description: remove tags (comma separated)
          in: formData
        - $ref: '#/parameters/patch_panel_model_id'
        - $ref: '#/parameters/patch_panel_model'
        - $ref: '#/parameters/numbering_start_from'
        - $ref: '#/parameters/patch_panel_module_model_id'
        - $ref: '#/parameters/patch_panel_module_model'
        - $ref: '#/parameters/module_host_id'
        - $ref: '#/parameters/module_host'
        - $ref: '#/parameters/slot_no'
        - $ref: '#/parameters/width_ratio_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                type: array
                items:
                  example:
                    - asset added/edited.
                    - 54
                    - test_api
                    - true
                    - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/assets/{id}/':
    get:
      operationId: getAssets_id
      description: Retrieve detailed information about a specific asset
      summary: Get specific
      tags:
        - Assets
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: The ID of the asset to retrieve
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Assets'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAssets
      description: Modify assets.
      summary: Modify
      tags:
        - Assets
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: The ID of the asset
        - name: name
          type: string
          in: formData
          description: Name of Asset.
        - name: type
          in: formData
          enum:
            - 'AC'
            - 'Block Tile'
            - 'Breaker Panel'
            - 'Cable Modem'
            - 'DMARC'
            - 'Door'
            - 'Fabric Extender'
            - 'Fax Machine'
            - 'Filler Panel'
            - 'Monitor'
            - 'Patch Panel'
            - 'Patch Panel Module'
            - 'Projector'
            - 'Scanner'
            - 'Sensor'
            - 'Shredder'
            - 'Software'
            - 'Speaker Phone'
            - 'TAP Module'
            - 'Window' 
          description: The type of the asset. - required.
        - name: service_level
          in: formData
          description: >-
            In Service, Spare, Not in Service are pre-defined - or choose your
            own.
          type: string
        - name: building
          type: string
          in: formData
          description: Building name
        - name: serial_no
          in: formData
          type: string
          description: The serial number of the asset.
        - name: asset_no
          in: formData
          type: string
          description: The asset number of the asset. 
        - $ref: '#/parameters/customer_form'
        - name: back_connection_type
          in: formData
          type: string
          description: Type of back connection for asset. Options are panel, switch, circuit, cable.
        - name: tap_module_model_id
          in: formData
          type: integer
          description: ID of Tap Module Model
        - name: tap_module_model
          in: formData
          type: string
          description: Tap Module Model
        - name: tap_module_host_id
          in: formData
          type: integer
          description: ID of Tap Module Host
        - name: tap_module_host
          in: formData
          type: string
          description: Tap Module Host for asset.
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
        - name: storage_room
          in: formData
          type: string
          description: Name of storage room to apply asset to.
        - $ref: '#/parameters/in_service_status'
        - $ref: '#/parameters/device_ids'
        - $ref: '#/parameters/device_name'
        - name: reversed
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Is the asset reversed on the rack?
        - $ref: '#/parameters/location'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/building_post'
        - name: vendor
          in: formData
          type: string
          description: Name of existing vendor
        - $ref: '#/parameters/imgfile_id'
        - $ref: '#/parameters/imgfile'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - name: rack
          in: formData
          type: string
          description: Name of existing rack to add asset to.
        - name: rack_id
          in: formData
          type: integer
          description: ID of existing rack to add asset to.
        - $ref: '#/parameters/start_at'
        - name: size
          type: integer
          in: formData
          description: Required if adding asset to rack. in U.
        - name: orientation
          type: string
          in: formData
          description: Back if back facing. Otherwise ignored
        - $ref: '#/parameters/where'
        - $ref: '#/parameters/x_pos'
        - $ref: '#/parameters/depth'
        - name: device_id
          type: integer
          description: ID of the related device
          in: formData
        - name: tags
          type: string
          description: add tags (comma separated)
          in: formData
        - name: tags_remove
          type: string
          description: remove tags (comma separated)
          in: formData
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/patch_panel_model_id'
        - $ref: '#/parameters/patch_panel_model'
        - $ref: '#/parameters/numbering_start_from'
        - $ref: '#/parameters/patch_panel_module_model_id'
        - $ref: '#/parameters/patch_panel_module_model'
        - $ref: '#/parameters/module_host_id'
        - $ref: '#/parameters/module_host'
        - $ref: '#/parameters/slot_no'
        - $ref: '#/parameters/width_ratio_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                type: array
                items:
                  example:
                    - asset added/edited.
                    - 54
                    - test_api
                    - true
                    - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteAssets
      description: >-
        This API is used to delete the asset with the asset id supplied as the
        required argument.
      summary: Delete
      tags:
        - Assets
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: asset id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/asset/:
    put:
      operationId: putCustom_fieldsAsset
      description: >-
        Create or update custom fields for assets. "ID" or "name" of asset is
        needed even when value is not being changed
      summary: Custom fields
      tags:
        - Assets
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of asset
        - name: id
          type: string
          in: formData
          description: ID of asset
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api' 
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 29
                  - 34 - 12 (in 3nd Floor @ main office)
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/devices/:
    get:
      operationId: getDevices
      description: Retrieve basic information about all devices
      summary: Get all (brief) v1
      tags:
        - Devices
      parameters:
        - name: type
          type: string
          in: query
          description: >-
            filter by device type (physical, virtual, blade, other, cluster, or
            unknown)
        - name: device_id
          type: integer
          in: query
          description: Filter by Device ID
        - $ref: '#/parameters/device_sub_type'
        - $ref: '#/parameters/device_sub_type_id'
        - $ref: '#/parameters/service_level'
        - $ref: '#/parameters/in_service'
        - $ref: '#/parameters/customer'
        - name: customer_id
          type: integer
          in: query
          description: Filter by Customer ID        
        - $ref: '#/parameters/tags'
        - name: blade_host_id
          type: integer
          in: query
          description: Filter by Blade Host ID
        - $ref: '#/parameters/blade_host_name'
        - name: virtual_host_id
          type: integer
          in: query
          description: Filter by Virtual Host ID
        - $ref: '#/parameters/virtual_host_name'
        - $ref: '#/parameters/building_id'
        - $ref: '#/parameters/building'
        - $ref: '#/parameters/room_id'
        - $ref: '#/parameters/room'
        - $ref: '#/parameters/rack_id'
        - $ref: '#/parameters/rack'
        - $ref: '#/parameters/serial_no'
        - $ref: '#/parameters/serial_no_contains'
        - $ref: '#/parameters/object_category_get'
        - $ref: '#/parameters/object_category_id'
        - $ref: '#/parameters/asset_no'
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/uuid'
        - $ref: '#/parameters/is_it_switch'
        - $ref: '#/parameters/is_it_virtual_host'
        - $ref: '#/parameters/is_it_blade_host'
        - $ref: '#/parameters/hardware'
        - $ref: '#/parameters/hardware_ids'
        - $ref: '#/parameters/os'
        - name: os_category
          type: string
          in: query
          description: Filter by OS Category
        - name: service_displayname
          type: string
          in: query
          description: Filter by display name of service that the device uses.
        - name: storage_room_id
          type: integer
          in: query
          description: Filter by storage room ID
        - name: storage_room
          type: string
          in: query
          description: Filter by name of storage room device is in.
        - $ref: '#/parameters/virtual_subtype'
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              Devices:
                $ref: '#/definitions/devices'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/devices/:
    get:
      operationId: getDevices_2
      description: Retrieve information about all devices
      summary: Get all v2
      tags:
        - Devices
      parameters:
        - $ref: '#/parameters/device_include_cols'
        - name: device_id
          type: string
          in: query
          description: D42 device ID
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/serial_no'
        - $ref: '#/parameters/serial_no_contains'
        - $ref: '#/parameters/asset_no'
        - name: asset_no_contains
          type: string
          in: query
          description: Filter by partial asset number match.
        - $ref: '#/parameters/uuid'
        - $ref: '#/parameters/in_service'
        - $ref: '#/parameters/service_level'
        - name: service_level_id
          type: string
          in: query
          description: D42 ID of service level name.
        - name: type
          type: string
          in: query
          description: >-
            filter by device type (unknown, physical, virtual, or cluster)
        - name: type_id
          type: string
          in: query
          description: 'D42 type ID <br>1: unknown, 2: physical, 3: virtual<br>4: cluster'
        - name: last_edited_lt
          type: string
          in: query
          description: Last edited less than date YYYY-MM-DD format
        - name: last_edited_gt
          type: string
          in: query
          description: Last edited greater than date YYYY-MM-DD format
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - name: objectcategory_id
          type: string
          in: query
          description: D42 ID of object category name.
        - name: objectcategory
          type: string
          in: query
          description: Object category name.
        - name: tags
          type: string
          in: query
          description: Filter by tags, comma-separated for multiple tags. (This is an OR filter, gets all the devices for all comma separated tags.)   
        - $ref: '#/parameters/tags_and'
        - name: cluster_device_id
          type: string
          in: query
          description: D42 ID of cluster device.
        - name: customer_id
          type: string
          in: query
          description: D42 ID of customer or department name.
        - $ref: '#/parameters/customer'
        - name: hardware_id
          type: string
          in: query
          description: D42 ID of hardware.
        - name: hardware
          type: string
          in: query
          description: filter by hardware name
        - name: device_host_chassis_id
          type: string
          in: query
          description: D42 ID of host chassis.
        - name: device_virtual_host_id
          type: string
          in: query
          description: D42 ID of device virtual host.
        - $ref: '#/parameters/rack_id'
        - name: virtualsubtype
          type: string
          in: query
          description: Name of virtual subtype.
        - name: virtualsubtype_id
          type: string
          in: query
          description: ID of virtual subtype.
        - name: os_id
          type: string
          in: query
          description: OS ID.
        - name: os_name
          type: string
          in: query
          description: OS name.
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - name: virtual_host
          type: string
          in: query
          description: Filter by whether virtual host or not. Use yes or no. 
        - name: blade_chassis
          type: string
          in: query
          description: Filter by whether a blade chassis or not. Use yes or no. 
        - name: physicalsubtype
          type: string
          in: query
          description: Physical subtype name. 
        - name: physicalsubtype_id
          type: string
          in: query
          description: D42 ID of physical subtype name. 
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              Devices:
                $ref: '#/definitions/devicesAllv2'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDevice_2
      summary: Create/Update
      description: >-
        This API is used to create a new device with the name supplied as the
        required argument or to update an existing device by an existing name or device ID, serial
        number or uuid. You can also update a device name using the device ID
      tags:
        - Devices
      parameters:
        - name: device_id
          type: integer
          in: formData
          description: >-
            Update a device by its D42 device ID.
        - name: serial_no
          type: string
          description: |-
            The serial number of the device. 
            
            Update Behavior:  
            If you pass a new serial number for an existing device, its serial number will be updated to the new value.  
            - To clear the serial number, pass `serial_no=d42null`.
            - Serial numbers with fewer than 3 characters, or certain generic values like `123456789` or `not specified`, are ignored and not saved.
          in: formData
        - name: name
          type: string
          description: >-
            The device name.  If device with the name already exists, the existing device is updated. 
            If an existing device based on device_id, serial_no or uuid is found, the name will be updated.
          in: formData
        - name: asset_no
          type: string
          in: formData
          description: The asset number of the device.
        - name: uuid
          type: string
          in: formData
          description: >-
            The uuid of the device. If a device with a matching uuid is found, 
            that device is updated.
        - name: virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates the device is a virtual host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type_id
          type: string
          in: formData
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
          description: Device type ID<br>1. unknown 2. physical<br> 3. virtual 4. cluster
        - name: type
          type: string
          in: formData
          enum:
            - 'unknown'
            - 'physical'
            - 'virtual'
            - 'cluster'
          description: Device type by name.
        - name: physicalsubtype_id
          type: string
          in: formData
          description: >-
            Used to set the device subtype - the device must be physical or unknown.<br>
            1. Generic 2. Rackable 3. Blade 4. PDU 5. Access Point 6. CRAC 7. UPS 8. TAP 9. Branch Circuit Power Meter 10. Power Unit 11. WorkStation 12. ThinClient 13. Network Printer 14. Laptop 15. Environment Monitor<br><b> OR</b> D42 ID of user-generated subtype
        - name: physicalsubtype
          type: string
          in: formData
          description: >-
            Either a system-generated subtype name or a user-generated subtype name.
        - name: network_device
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a network switch.
        - name: blade_chassis
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a blade host.
        - name: manufacturer
          type: string
          in: formData
          description: The hardware manufacturer for the device. This is used to match on the correct hardware.
        - name: hardware_id
          type: string
          in: formData
          description: >-
            Hardware model id - for physical devices. Use to set device hardware model. Only for devices without hardware.  
        - name: hardware
          type: string
          in: formData
          description: >-
            Hardware model name. Use instead of hardware_id. For physical devices. Use to set device hardware model.
            If hardware model with provided name is not found and user provided manufacturer, new hardware model will 
            be created and assigned to device. Only for devices without hardware.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. This will not create 
            new hardware models - you can only change to an existing model.
        - name: virtual_host_device_id
          type: string
          in: formData
          description: >-
            Host ID of virtual device. Use <b>d42null</b> to clear.
        - name: virtual_host_device
          type: string
          in: formData
          description: >-
            Host name of virtual device. Use <b>d42null</b> to clear.
        - name: host_chassis_device_id
          type: string
          in: formData
          description: >-
            Host chassis device ID. Use <b>d42null</b> to clear.
        - name: host_chassis_device
          type: string
          in: formData
          description: >-
            Host chassis device name - for blades. Use <b>d42null</b> to clear.
        - name: bladeno
          type: integer
          in: formData
          description: 'Slot number for blade device.'
        - name: chassisslot_id
          type: string
          in: formData
          description: Chassis slot ID. If chassis slot exists, the slot number will be updated to it's slot number.
        - name: service_level_id
          type: string
          in: formData
          description: >-
            Service level ID for the device
        - name: service_level
          type: string
          in: formData
          description: >-
            The service level name for the device. Use instead of service_level_id.
        - name: customer_id
          type: string
          in: formData
          description: Legacy field. Use <b>customers</b> parameter instead of this. ID of the customer. Customer record must already exist. Using this will override all existing customer associations. Use <b>d42null</b> to reset value.
        - name: customer
          type: string
          in: formData
          description: Legacy field. Use <b>customers</b> parameter instead of this. Name of the customer. Customer record must already exist. Using this will override all existing customer associations. Use <b>d42null</b> to reset value.
        - name: customers
          type: string
          in: formData
          description: CSV list of customer names. Customer records must already exist. Use this instead of customer/customer_id. Customers will be associated with the device.
        - name: customers_remove
          type: string
          in: formData
          description: CSV list of customer names. Customers will be disassociated from the device. Use <b>*</b> to clear all customer associations.
        - name: additional_location
          type: string
          in: formData
          description: Additional location info.
        - name: building_id
          type: string
          in: formData
          description: >-
            Building ID. This field should only be used if the device is NOT in a server room, storage room, or rack. 
            Selecting a building will cause any room and rack associations to be deleted.
        - name: building
          type: string
          in: formData
          description: >-
            Building Name. This field should only be used if the device is NOT in a server room, storage room, or rack. 
            Selecting a building will cause any room and rack associations to be deleted.
        - name: storage_room
          type: string
          in: formData
          description: Name of storage room. Device will be automatically removed from rack or server room
        - name: storage_room_id
          type: string
          in: formData
          description: ID of storage room. Device will be automatically removed from rack or server room
        - name: notes
          type: string
          in: formData
          description: >-
            Device notes.
        - name: objectcategory_id
          type: string
          in: formData
          description: >-
            Object category ID. If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: objectcategory
          type: string
          in: formData
          description: >-
            Object category name. Use instead of objectcategory_id. If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: dont_inherit
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            If 'yes', multi-tenancy permissions will not be inherited from the host so you can assign virtual devices 
            and blades devices to different object categories.
        - $ref: '#/parameters/virtualsubtype_id'
        - name: virtualsubtype
          type: string
          in: formData
          enum:
            - Internal VM
            - Amazon EC2 Instance
            - Azure Cloud Service
            - Azure SQL Server
            - Azure Storage
            - Other
            - Outscale Instance
            - Linode Instance
            - DigitalOcean Instance
            - Azure Virtual Machine
            - VMWare
            - Citrix/Xen
            - KVM
            - Hyper-V
            - Docker Container
            - LXC Container
            - Rackspace VM
            - Softlayer VM
            - QEMU
            - Joyent Instance
            - VirtualBox
            - Oracle VM
            - OpenStack
            - Xen
            - LPAR
            - GCE
            - Amazon Service
            - Context
            - Alibaba Cloud Instance
            - Oracle Cloud Instance
            - Kubernetes Container
            - AIX VIOS
            - Nutanix AHV
          description: Virtual subtype name. Use instead of virtual_subtype_id. Only for virtual devices.
        - name: datacenter
          type: string
          in: formData
          description: >-
            Data center name.
        - name: ram_size
          type: string
          in: formData
          description: >-
            RAM. Just numbers. Use <b>d42null</b> to clear.
        - name: ram_size_type_id
          type: string
          in: formData
          description: >-
            RAM size type ID. Use <b>d42null</b> to clear.<br>1 MB | 2 GB | 3 TB
        - name: ram_size_type
          type: string
          in: formData
          description: >-
            RAM size type name. Use instead of ram_type_size. Use <b>d42null</b> to clear.<br>MB - GB - TB
        - name: total_cpus
          type: string
          in: formData
          description: >-
            Total number of CPUs. Use <b>d42null</b> to clear.
        - name: core_per_cpu
          type: string
          in: formData
          description: >-
            Number of Cores/CPU. Use <b>d42null</b> to clear.
        - name: threads_per_core
          type: string
          in: formData
          description: >-
            Number of Threads/Core. Use <b>d42null</b> to clear.
        - name: cpu_speed
          type: string
          in: formData
          description: >-
            CPU speed. Use <b>d42null</b> to clear.
        - name: hz_id
          type: string
          in: formData
          description: >-
            Type ID of CPU Speed. Use <b>d42null</b> to clear.<br> 1 MHz | 2 GHz
        - name: hz
          type: string
          in: formData
          description: >-
            Type name of CPU Speed. Use <b>d42null</b> to clear.<br> MHz - GHz
        - name: hard_disk_count
          type: string
          in: formData
          description: >-
            Total number of HDD. Use <b>d42null</b> to clear.
        - name: hard_disk_size
          type: string
          in: formData
          description: >-
            HDD size. Use <b>d42null</b> to clear. 
        - name: hard_disk_size_type_id
          type: string
          in: formData
          description: >-
            Type ID of hard disk size. Use <b>d42null</b> to clear.<br> GB - TB - PB 
        - name: hard_disk_size_type
          type: string
          in: formData
          description: >-
            Type name of hard disk size. Use instead of hard_disk_size_type_id. Use <b>d42null</b> to clear.<br> GB - TB - PB 
        - name: hw_sw_raid_id
          type: string
          in: formData
          description: >-
            Raid ID. Use <b>d42null</b> to clear.<br> 1. Hardware - 2. Software 
        - name: hw_sw_raid
          type: string
          in: formData
          description: >-
            Raid name. Use instead of hw_sw_raid_id. Use <b>d42null</b> to clear.<br> Hardware - Software 
        - name: raid_type_id
          type: string
          in: formData
          description: >-
            Raid type ID. Use <b>d42null</b> to clear.<br> 1. Raid 0 | 2. Raid 1 | 3. Raid 3 | 4. Raid 5 | 
            5. Raid 6 | 6. Raid 10 | 7. Raid 50 | 8. Raidz | 9. Raidz2
        - name: raid_type
          type: string
          in: formData
          description: >-
            Raid type name. Use instead of raid_type_id Use <b>d42null</b> to clear.<br> Raid 0 | Raid 1 | Raid 3 | Raid 5 | 
            Raid 6 | Raid 10 | Raid 50 | Raidz | Raidz2
        - name: devices_in_clusters_ids
          type: string
          in: formData
          description: >-
            Comma-separated device IDs for devices in cluster. Only valid for cluster devices.
        - name: nonauthoritativealiases
          type: string
          in: formData
          description: >-
            Comma-separated non-authoritative aliases for the device. Must not exist; ignored otherwise.
        - name: nonauthoritativealiases_remove
          type: string
          in: formData
          description: >-
            Comma-separated non-authoritative aliases to remove.
        - name: aliases
          type: string
          in: formData
          description: >-
            Comma separated aliases for the device. Must not exist; ignored otherwise.
        - name: aliases_remove
          type: string
          in: formData
          description: >-
            Comma-separated aliases to remove.
        - name: tags
          type: string
          in: formData
          description: >-
            Comma-separated tags.
        - name: tags_remove
          type: string
          in: formData
          description: >-
            Comma-separated tags to remove.
        - name: bios_version
          type: string
          in: formData
          description: Basic Input/Output system version
        - name: bios_release_date
          type: string
          in: formData
          description: Basic Input/Output system release date
        - name: bios_revision
          type: string
          in: formData
        - name: bios_fw_revision
          type: string
          in: formData
        - name: bios_vendor
          type: string
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/devices/{id}/:
    get:
      operationId: getDevices_id
      description: Retrieve detailed information about a specific device
      summary: Get specific device
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: The ID of the device to retrieve
        - $ref: '#/parameters/device_include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Assets'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteDevicesIdv2
      summary: Delete
      description: >-
        This API is used to delete a device with the device id supplied as the
        required argument
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Device id
        - name: delete_vms
          type: string
          in: formData
          enum:
          - 'yes'
          - 'no'
          description: If deleting a host, also delete VMs on the host - yes/no.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              admin:
                example: <ID>
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putDevicesIdv2
      summary: Update
      description: >-
        This API is used to update a device with the device_id supplied with the provided parameters.
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Device id
        - name: name
          type: string
          description: >-
            The device name.
          in: formData
        - name: asset_no
          type: string
          in: formData
          description: The asset number of the device.
        - name: uuid
          type: string
          in: formData
          description: >-
            The uuid of the device. If a device with a matching uuid is found, 
            that device is updated.
        - name: virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates the device is a virtual host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type_id
          type: string
          in: formData
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
          description: Device type ID<br>1. unknown 2. physical<br> 3. virtual 4. cluster
        - name: type
          type: string
          in: formData
          enum:
            - 'unknown'
            - 'physical'
            - 'virtual'
            - 'cluster'
          description: Device type by name.
        - name: physicalsubtype_id
          type: string
          in: formData
          description: >-
            Used to set the device subtype - the device must be physical or unknown.<br>
            1. Generic 2. Rackable 3. Blade 4. PDU 5. Access Point 6. CRAC 7. UPS 8. TAP 9. Branch Circuit Power Meter 10. Power Unit 11. WorkStation 12. ThinClient 13. Network Printer 14. Laptop 15. Environment Monitor<br><b> OR</b> D42 ID of user-generated subtype
        - name: physicalsubtype
          type: string
          in: formData
          description: >-
            Either a system-generated subtype name or a user-generated subtype name.
        - name: network_device
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a network switch.
        - name: blade_chassis
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a blade host.
        - name: manufacturer
          type: string
          in: formData
          description: The hardware manufacturer for the device. This is used to match on the correct hardware.
        - name: hardware_id
          type: string
          in: formData
          description: >-
            Hardware model id - for physical devices. Use to set device hardware model. Only for devices without hardware.  
        - name: hardware
          type: string
          in: formData
          description: >-
            Hardware model name. Use instead of hardware_id. For physical devices. Use to set device hardware model.
            If hardware model with provided name is not found and user provided manufacturer, new hardware model will 
            be created and assigned to device. Only for devices without hardware.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. This will not create 
            new hardware models - you can only change to an existing model.
        - name: virtual_host_device_id
          type: string
          in: formData
          description: >-
            Host ID of virtual device. Use <b>d42null</b> to clear.
        - name: virtual_host_device
          type: string
          in: formData
          description: >-
            Host name of virtual device. Use <b>d42null</b> to clear.
        - name: host_chassis_device_id
          type: string
          in: formData
          description: >-
            Host chassis device ID. Use <b>d42null</b> to clear.
        - name: host_chassis_device
          type: string
          in: formData
          description: >-
            Host chassis device name - for blades. Use <b>d42null</b> to clear.
        - name: bladeno
          type: integer
          in: formData
          description: 'Slot number for blade device.'
        - name: chassisslot_id
          type: string
          in: formData
          description: Chassis slot ID. If chassis slot exists, the slot number will be updated to it's slot number.
        - name: service_level_id
          type: string
          in: formData
          description: >-
            Service level ID for the device
        - name: service_level
          type: string
          in: formData
          description: >-
            The service level name for the device. Use instead of service_level_id.
        - name: customer_id
          type: string
          in: formData
          description: Legacy field. Use <b>customers</b> parameter instead of this. ID of the customer. Customer record must already exist. Using this will override all existing customer associations. Use <b>d42null</b> to reset value.
        - name: customer
          type: string
          in: formData
          description: Legacy field. Use <b>customers</b> parameter instead of this. Name of the customer. Customer record must already exist. Using this will override all existing customer associations. Use <b>d42null</b> to reset value.
        - name: customers
          type: string
          in: formData
          description: CSV list of customer names. Customer records must already exist. Use this instead of customer/customer_id. Customers will be associated with the device.
        - name: customers_remove
          type: string
          in: formData
          description: CSV list of customer names. Customers will be disassociated from the device. Use <b>*</b> to clear all customer associations.
        - name: additional_location
          type: string
          in: formData
          description: Additional location info. Use 'D42_NULL' to clear Additional Location Info field.
        - name: building_id
          type: string
          in: formData
          description: >-
            Building ID. This field should only be used if the device is NOT in a server room, storage room, or rack. 
            Selecting a building will cause any room and rack associations to be deleted.
        - name: storage_room
          type: string
          in: formData
          description: Name of storage room. Device will be automatically removed from rack or server room
        - name: storage_room_id
          type: string
          in: formData
          description: ID of storage room. Device will be automatically removed from rack or server room
        - name: notes
          type: string
          in: formData
          description: >-
            Device notes.
        - name: objectcategory_id
          type: string
          in: formData
          description: >-
            Object category ID. If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: objectcategory
          type: string
          in: formData
          description: >-
            Object category name. Use instead of objectcategory_id. If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: dont_inherit
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            If 'yes', multi-tenancy permissions will not be inherited from the host so you can assign virtual devices 
            and blades devices to different object categories.
        - $ref: '#/parameters/virtualsubtype_id'
        - name: virtualsubtype
          type: string
          in: formData
          enum:
            - Internal VM
            - Amazon EC2 Instance
            - Azure Cloud Service
            - Azure SQL Server
            - Azure Storage
            - Other
            - Outscale Instance
            - Linode Instance
            - DigitalOcean Instance
            - Azure Virtual Machine
            - VMWare
            - Citrix/Xen
            - KVM
            - Hyper-V
            - Docker Container
            - LXC Container
            - Rackspace VM
            - Softlayer VM
            - QEMU
            - Joyent Instance
            - VirtualBox
            - Oracle VM
            - OpenStack
            - Xen
            - LPAR
            - GCE
            - Amazon Service
            - Context
            - Alibaba Cloud Instance
            - Oracle Cloud Instance
            - Kubernetes Container
            - AIX VIOS
            - Nutanix AHV
          description: Virtual subtype name. Use instead of virtual_subtype_id. Only for virtual devices.
        - name: datacenter
          type: string
          in: formData
          description: >-
            Data center name.
        - name: ram_size
          type: string
          in: formData
          description: >-
            RAM. Just numbers. Use <b>d42null</b> to clear.
        - name: ram_size_type_id
          type: string
          in: formData
          description: >-
            RAM size type ID. Use <b>d42null</b> to clear.<br>1 MB | 2 GB | 3 TB
        - name: ram_size_type
          type: string
          in: formData
          description: >-
            RAM size type name. Use instead of ram_type_size. Use <b>d42null</b> to clear.<br>MB - GB - TB
        - name: total_cpus
          type: string
          in: formData
          description: >-
            Total number of CPUs. Use <b>d42null</b> to clear.
        - name: core_per_cpu
          type: string
          in: formData
          description: >-
            Number of Cores/CPU. Use <b>d42null</b> to clear.
        - name: threads_per_core
          type: string
          in: formData
          description: >-
            Number of Threads/Core. Use <b>d42null</b> to clear.
        - name: cpu_speed
          type: string
          in: formData
          description: >-
            CPU speed. Use <b>d42null</b> to clear.
        - name: hz_id
          type: string
          in: formData
          description: >-
            Type ID of CPU Speed. Use <b>d42null</b> to clear.<br> 1 MHz | 2 GHz
        - name: hz
          type: string
          in: formData
          description: >-
            Type name of CPU Speed. Use <b>d42null</b> to clear.<br> MHz - GHz
        - name: hard_disk_count
          type: string
          in: formData
          description: >-
            Total number of HDD. Use <b>d42null</b> to clear.
        - name: hard_disk_size
          type: string
          in: formData
          description: >-
            HDD size. Use <b>d42null</b> to clear. 
        - name: hard_disk_size_type_id
          type: string
          in: formData
          description: >-
            Type ID of hard disk size. Use <b>d42null</b> to clear.<br> GB - TB - PB 
        - name: hard_disk_size_type
          type: string
          in: formData
          description: >-
            Type name of hard disk size. Use instead of hard_disk_size_type_id. Use <b>d42null</b> to clear.<br> GB - TB - PB 
        - name: hw_sw_raid_id
          type: string
          in: formData
          description: >-
            Raid ID. Use <b>d42null</b> to clear.<br> 1. Hardware - 2. Software 
        - name: hw_sw_raid
          type: string
          in: formData
          description: >-
            Raid name. Use instead of hw_sw_raid_id. Use <b>d42null</b> to clear.<br> Hardware - Software 
        - name: raid_type_id
          type: string
          in: formData
          description: >-
            Raid type ID. Use <b>d42null</b> to clear.<br> 1. Raid 0 | 2. Raid 1 | 3. Raid 3 | 4. Raid 5 | 
            5. Raid 6 | 6. Raid 10 | 7. Raid 50 | 8. Raidz | 9. Raidz2
        - name: raid_type
          type: string
          in: formData
          description: >-
            Raid type name. Use instead of raid_type_id Use <b>d42null</b> to clear.<br> Raid 0 | Raid 1 | Raid 3 | Raid 5 | 
            Raid 6 | Raid 10 | Raid 50 | Raidz | Raidz2
        - name: devices_in_clusters_ids
          type: string
          in: formData
          description: >-
            Comma-separated device IDs for devices in cluster. Only valid for cluster devices.
        - name: nonauthoritativealiases
          type: string
          in: formData
          description: >-
            Comma-separated non-authoritative aliases for the device. Must not exist; ignored otherwise.
        - name: nonauthoritativealiases_remove
          type: string
          in: formData
          description: >-
            Comma-separated non-authoritative aliases to remove.
        - name: aliases
          type: string
          in: formData
          description: >-
            Comma separated aliases for the device. Must not exist; ignored otherwise.
        - name: aliases_remove
          type: string
          in: formData
          description: >-
            Comma-separated aliases to remove.
        - name: tags
          type: string
          in: formData
          description: >-
            Comma-separated tags.
        - name: tags_remove
          type: string
          in: formData
          description: >-
            Comma-separated tags to remove.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/devices/{id}/archive/:            
    post:
      operationId: archiveDevicesIdv2
      description: This API archives a device by ID
      summary: Archive device by ID
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Device id.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/objectArchive'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/devices/all/:
    get:
      operationId: getDevicesAll
      description: Get all devices with detailed output (added in v6.3.4)
      summary: Get all (detailed) v1
      tags:
        - Devices
      parameters:
        - $ref: '#/parameters/include_cols'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/blankasnull'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesAll'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/id/{device-id}/':
    get:
      operationId: getDevicesId
      summary: Get device by ID
      description: Retrieve detailed information about a specific device using device id
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: path
          required: true
        - $ref: '#/parameters/follow'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesAll'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/customer_id/{customer-id}/':
    get:
      operationId: getDevicesCustomer_id
      summary: Get device by customer ID
      description: Retrieve all devices associated with a specific customer
      tags:
        - Devices
      parameters:
        - name: customer-id
          type: integer
          in: path
          required: true
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesCustomerId'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/name/{device-name}/':
    get:
      operationId: getDevicesName
      summary: Get device by name
      description: Retrieve detailed information about a specific device by device name
      tags:
        - Devices
      parameters:
        - name: device-name
          type: string
          in: path
          format: uuid
          required: true
        - $ref: '#/parameters/include_cols'
        - name: follow
          type: string
          in: query
          description: >-
            use yes if you want to see virtuals in a virtual host, modules in a
            blade chassis and devices in a clusetered device
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesCustomerId'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/serial/{device-serial}/':
    get:
      operationId: getDevicesSerial
      summary: Get device by serial
      description: >-
        Retrieve detailed information about a specific device by device serial
        number
      tags:
        - Devices
      parameters:
        - name: device-serial
          type: string
          in: path
          format: uuid
          required: true
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesCustomerId'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/asset/{device-asset}/':
    get:
      operationId: getDevicesAsset
      summary: Get device by asset
      description: >-
        Retrieve detailed information about a specific device by device asset
        number
      tags:
        - Devices
      parameters:
        - name: device-asset
          type: string
          in: path
          format: uuid
          required: true
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/devicesCustomerId'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/id/{device-id}/attachments/':             
    get:
      operationId: getAllDevicesAttachments
      summary: Get attachments by device ID
      description: >-
       Retrieve all file attachments for a specific device using device id.<br>
       Returns a zip file of all the attachments associated with the device with the specified ID in URL.<br>
       Note that this implementation of Swagger does not support file download - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X GET \<br>
       URL/api/1.0/devices/id/3/attachments \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI='
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: formData
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_download:
                example: attachments_archive.6646-2020-01-24.zip
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: uploadDevicesAttachments
      summary: Upload a device attachment
      description: >-
       Uploads a file attachment for a specific device using device id and a selected file.<br>
       Note that this implementation of Swagger does not support file upload - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X POST \<br>
       URL/api/1.0/devices/id/3/attachments/17 \<br>
       -H 'Accept-Encoding: gzip, deflate' \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI='<br>
       -H 'Content-Type: multipart/form-data; boundary=--------------------------216746989913126372322897' \<br>
       -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \<br>
       -F 'name=@/C:/path/to/attachment/Some test pdf.pdf' \<br>
       -F 'file_attachment_details={"some test pdf.pdf":"hello world! I'\''m a pdf description!"}'
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: formData
          required: true
        - name: name
          type: string
          in: formData
          required: True
          description: >-
           The name of the file attachment you select for upload.<br>
           This filename is also required for the file_attachment_details parameter.
        - name: file_attachment_details
          type: string
          in: formData
          required: true
          description: >-
           The name of the file to upload and a description.<br>Example: {"TEST_Attachment-3.txt": "test attachment-3"} 
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - TEST-Attachment-3.txt
                  - attachment_id
                  - 17
                  - success
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/id/{device-id}/attachments/{attachment_id}/':             
    get:
      operationId: getaDevicesAttachment
      summary: Get a device attachment
      description: >-
       Retrieves a specific file attachment for a specific device using device id and attachment id.<br>
       Note that this implementation of Swagger does not support file download - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X GET \<br>
       URL/api/1.0/devices/id/3/attachments/17 \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI=' 
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: formData
          required: true
        - name: attachment_id
          type: integer
          in: formData
          required: true
          description: ID of the attachment to get.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_download:
                example: attachment_1.txt
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/id/{device-id}/attachments/{id}/':             
    delete:
      operationId: deleteDevicesAttachment
      summary: Delete device attachment
      description: Delete a file attachment for a specific device using device ID and the attachment ID
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: formData
          required: true
        - name: id
          type: integer
          in: path
          required: true
          description: ID of the attachment to delete.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              attachment_id:
                example: 34
              success:
                example: 'true'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/devices/{id}/':
    get:
      operationId: getDevices_id
      description: Retrieve detailed information about a specific device
      summary: Get specific device
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: The ID of the device to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Assets'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteDevicesId
      summary: Delete
      description: >-
        This API is used to delete a device with the device id supplied as the
        required argument
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Device id
        - name: delete_vms
          type: string
          in: formData
          enum:
          - 'yes'
          - 'no'
          description: If deleting a host, also delete VMs on the host - yes/no.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              admin:
                example: <ID>
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/:
    post:
      operationId: postDevice
      summary: Create/update
      description: >-
        This API is used to create a new device with the name supplied as the
        required argument or update an existing device that has the name, serial
        # or uuid of the required argument. For information purposes, this is
        also the API that is used by the Device42 autodiscovery tool.
      tags:
        - Devices
      parameters:
        - name: name
          type: string
          description: >-
            Device name. If device with name already exists - the existing
            device is updated. If an existing device based on serial # or uuid
            are found - name is ignored. In that case existing name is not
            changed and you can use new_name if you wish to change the name.
          in: formData
        - name: new_name
          type: string
          description: >-
            As mentioned above, this can be used to change the name of an
            existing device
          in: formData
        - name: serial_no
          type: string
          description: >-
            the serial # of the device. If a device with matching serial # is
            found - that device is updated. Serial # with less than 3 characters
            in length are ignored. Also, certain generic serial #s like
            123456789 or ‘not specified’ are ignored.
          in: formData
        - name: uuid
          type: string
          in: formData
          description: >-
            The uuid of the device. If a device with a matching uuid is found -
            that device is updated.
        - name: asset_no
          type: string
          in: formData
          description: 'the asset # of the device.'
        - name: manufacturer
          type: string
          in: formData
          description: the hardware manufacturer for the device.
        - name: hardware
          type: string
          in: formData
          description: >-
            the name of the hardware model for the device. Use in conjunction
            with the manufacturer argument. However, an update will only occur
            if no hardware model is previously assigned to the device.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. If the device
            is rack mounted, it will unmount the device before changing hardware
            model and attempt to mount it back to same rack location (Changed in
            v6.3.2)
        - name: is_it_switch
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a network switch
        - name: is_it_virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a virtual host
        - name: is_it_blade_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a blade host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type
          type: string
          in: formData
          enum:
            - unknown
            - physical
            - virtual
            - blade
            - cluster
            - other
          description: >-
            is the type for device. Valid values are ‘unknown’, ‘physical’, ‘virtual’,
            ‘blade’, ‘cluster’, or ‘other’.
        - name: service_level
          type: string
          in: formData
          description: >-
            the service level name for the device. The service level must be
            pre-defined in the device42 appliance before it can be referenced in
            an api call.
        - name: virtual_host
          type: string
          in: formData
          description: >-
            Is the name for the host of the virtual machine. Two conditions must
            be met for this value to successfully update: 1. The device must be
            a virtual machine. 2. The virtual host must already exist in the
            device42 application and must be already marked as a virtual host.
        - name: blade_host
          type: string
          in: formData
          description: >-
            the name of the host for the blade machine. Two conditions must be
            met for this value to successfully update: 1. The device must be a
            blade type. 2. The blade host must already exist and must already be
            marked as a blade host.
        - name: slot_no
          type: integer
          in: formData
          description: 'slot # for blade device.'
        - name: storage_room_id
          type: integer
          in: formData
          description: ID of the room to assign device to storage room. Added in v5.5.0
        - name: storage_room
          type: string
          in: formData
          description: >-
            name of the room to assign device to, only used if the room name is
            unique. Added in v5.5.0
        - name: os
          type: string
          in: formData
          description: >-
            the name of the operating system (os needs to be provided if updating
            osver or osverno, case insensitive, gets capitalized upon update/creation)
        - name: osver
          in: formData
          type: string
          description: >-
            the version of the operating system (os needs to be provided if updating
            osver or osverno, case insensitive, gets capitalized upon update/creation).
            Use <b>d42null</b> to clear field.
        - name: osarch
          type: string
          in: formData
          description: The architecture of the operating system (32 or 64)
        - name: osverno
          type: integer
          in: formData
          description: >-
            the version # or build # of the operating system (os needs to be provided if updating
            osver or osverno, case insensitive, gets capitalized upon update/creation)
        - name: memory
          type: string
          in: formData
          description: the total memory(RAM) in MB. Just numbers.
        - name: cpucount
          type: integer
          in: formData
          description: 'total # of CPUs. (If updating, cpupower and cpucore required)'
        - name: cpupower
          type: string
          in: formData
          description: >-
            CPU speed in MHz, just numbers. (If updating, cpucount and cpucore
            required)
        - name: cpucore
          type: string
          in: formData
          description: >-
            number of cores/CPU. Integer. (If updating, cpupower and cpucount
            required)
        - name: hddcount
          type: integer
          in: formData
          description: >-
            total # of HDD (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddsize
          type: string
          in: formData
          description: >-
            HDD Size in GB (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid
          type: string
          in: formData
          enum:
            - none
            - software
            - hardware
          description: >-
            Raid. Possible values: software or hardware. none to clear. (none
            added in v9.1.0) (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid_type
          type: string
          in: formData
          enum:
            - none
            - raid 0
            - raid 1
            - raid 3
            - raid 5
            - raid 6
            - raid 10
            - raid 50
            - raidz
            - raidz2
          description: >-
            Raid Type. (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: macaddress
          type: string
          in: formData
          description: >-
            the mac address value. Use multiple POST/PUT to add multiple mac
            addresses.
        - name: devices_in_cluster
          type: string
          in: formData
          description: >-
            comma separated device names for devices in cluster. Only valid for
            device type cluster.
        - name: appcomps
          type: string
          in: formData
          description: comma separated application component names on this device.
        - name: customer
          type: string
          in: formData
          description: Name of the Customer. Customer record must already exist. Using this will override all existing customer associations. 
        - name: customer_id
          type: string
          in: formData
          description: ID of the Customer record. Customer record must already exist. Using this will override all existing customer associations. 
        - name: contract_id
          type: integer
          in: formData
          description: >-
            ID for the contract. Available via GET /api/api/1.0/contracts/ –
            DEPRECATED in v550.
        - name: contract
          type: string
          in: formData
          description: >-
            Name of the contract. Used only if contract name is unique. –
            DEPRECATED in v550.
        - name: aliases
          type: string
          in: formData
          description: >-
            optional. Comma separated aliases for the device. Must not exist,
            ignored otherwise.
        - name: subtype
          type: string
          in: formData
          description: Only for device type other. Must exist internally first.
        - name: blade_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: clear blade host for device
        - name: virtual_subtype
          type: string
          in: formData
          default: internal VM
          enum:
            - Internal VM
            - Amazon EC2 Instance
            - Azure Cloud Service
            - Azure SQL Server
            - Azure Storage
            - Other
            - Outscale Instance
            - Linode Instance
            - DigitalOcean Instance
            - Azure Virtual Machine
            - VMWare
            - Citrix/Xen
            - KVM
            - Hyper-V
            - Docker Container
            - LXC Container
            - Rackspace VM
            - Softlayer VM
            - QEMU
            - Joyent Instance
            - VirtualBox
            - Oracle VM
            - OpenStack
            - Xen
            - LPAR
            - GCE
            - Amazon Service
            - Context
            - Alibaba Cloud Instance
            - Oracle Cloud Instance
            - Kubernetes Container
            - AIX VIOS
          description: Only for device type virtual. Default is internal VM.
        - name: notes
          type: string
          in: formData
        - name: tags
          type: string
          in: formData
          description: comma separated tags (Added in v5.9.2)
        - name: virtual_host_clear
          type: string
          in: formData
          description: yes to clear virtual host for a VM (added in v9.1.0)
        - name: tags_remove
          type: string
          in: formData
          description: comma separated tags to remove (added in v9.1.0)
        - name: aliases_remove
          type: string
          in: formData
          description: comma separated aliases to remove
        - name: devices_in_cluster_remove
          type: string
          in: formData
          description: >-
            comma separated device names for removing devices in cluster. Only
            valid for device type cluster. (added in v9.2.0)
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
        - name: bios_version
          type: string
          in: formData
          description: Basic Input/Output system version
        - name: bios_release_date
          type: string
          in: formData
          description: Basic Input/Output system release date
        - name: bios_revision
          type: string
          in: formData
        - name: bios_firmware_revision
          type: string
          in: formData
        - name: bios_vendor
          type: string
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putDevice
      description: >-
        Update Device by Name, ID, Serial or Asset. Requires one of the
        following parameters: name, serial, asset, device_id
      summary: Update
      tags:
        - Devices
      parameters:
        - name: name
          type: string
          in: formData
          description: >-
            Updates the device found with that name. Otherwise returns “device
            not found"
        - name: serial
          type: string
          in: formData
          description: >-
            If the serial number is provided, it must be a unique serial number
            or a “device not found” error will result. If it is a unique serial
            number, then the device that has that serial number will be updated.
        - name: asset
          type: string
          in: formData
          description: >-
            If the asset number is provided, it must be a unique asset number or
            a “device not found” error will result. If it is a unique asset
            number, then the device that has that asset number will be updated.
        - name: device_id
          type: string
          in: formData
          description: update the device by Device42 ID
        - name: new_name
          type: string
          description: >-
            As mentioned above, this can be used to change the name of an
            existing device
          in: formData
        - name: serial_no
          type: string
          description: >-
            the serial # of the device. If a device with matching serial # is
            found - that device is updated. Serial # with less than 3 characters
            in length are ignored. Also, certain generic serial #s like
            123456789 or ‘not specified’ are ignored.
          in: formData
        - name: uuid
          type: string
          in: formData
          description: >-
            the uuid of the device. If a device with matching uuid is found -
            that device is updated.
        - name: asset_no
          type: string
          in: formData
          description: 'the asset # of the device.'
        - name: manufacturer
          type: string
          in: formData
          description: the hardware manufacturer for the device.
        - name: hardware
          type: string
          in: formData
          description: >-
            the name of the hardware model for the device. Use in conjunction
            with the manufacturer argument. However, an update will only occur
            if no hardware model is previously assigned to the device.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. If the device
            is rack mounted, it will unmount the device before changing hardware
            model and attempt to mount it back to same rack location (Changed in
            v6.3.2)
        - name: is_it_switch
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a network switch
        - name: is_it_virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a virtual host
        - name: is_it_blade_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a blade host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type
          type: string
          in: formData
          enum:
            - physical
            - virtual
            - blade
            - cluster
            - other
          description: type of the device
        - name: service_level
          type: string
          in: formData
          description: >-
            the service level name for the device. The service level must be
            pre-defined in the device42 appliance before it can be referenced in
            an api call.
        - name: virtual_host
          type: string
          in: formData
          description: >-
            Is the name for the host of the virtual machine. Two conditions must
            be met for this value to successfully update: 1. The device must be
            a virtual machine. 2. The virtual host must already exist in the
            device42 application and must be already marked as a virtual host.
        - name: blade_host
          type: string
          in: formData
          description: >-
            the name of the host for the blade machine. Two conditions must be
            met for this value to successfully update: 1. The device must be a
            blade type. 2. The blade host must already exist and must already be
            marked as a blade host.
        - name: slot_no
          type: integer
          in: formData
          description: 'slot # for blade device.'
        - name: storage_room_id
          type: integer
          in: formData
          description: ID of the room to assign device to storage room. Added in v5.5.0
        - name: storage_room
          type: string
          in: formData
          description: >-
            name of the room to assign device to, only used if the room name is
            unique. Added in v5.5.0
        - name: os
          type: string
          in: formData
          description: >-
            the name of the operating system (os needs to be provided if updating
            osver or osverno, case insensitive, gets capitalized upon update/creation)
        - name: osver
          in: formData
          type: string
          description: >-
            the version of the operating system (os needs to be provided if updating 
            osver or osverno). Use <b>d42null</b> to clear field.
        - name: osarch
          type: string
          in: formData
          description: The architecture of the operating system (32 or 64)
        - name: osverno
          type: integer
          in: formData
          description: >-
            the version # or build # of the operating system (os needs to be provided if
            updating osver or osverno)
        - name: memory
          type: string
          in: formData
          description: the total memory(RAM) in MB. Just numbers.
        - name: cpucount
          type: integer
          in: formData
          description: 'total # of CPUs. (If updating, cpupower and cpucore required)'
        - name: cpupower
          type: string
          in: formData
          description: >-
            CPU speed in MHz, just numbers. (If updating, cpucount and cpucore
            required)
        - name: cpucore
          type: string
          in: formData
          description: >-
            number of cores/CPU. Integer. (If updating, cpupower and cpucount
            required)
        - name: hddcount
          type: integer
          in: formData
          description: >-
            total # of HDD (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddsize
          type: string
          in: formData
          description: >-
            HDD Size in GB (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid
          type: string
          in: formData
          enum:
            - none
            - software
            - hardware
          description: >-
            Raid. Possible values: software or hardware. none to clear. (none
            added in v9.1.0) (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid_type
          type: string
          in: formData
          enum:
            - none
            - raid 0
            - raid 1
            - raid 3
            - raid 5
            - raid 6
            - raid 10
            - raid 50
            - raidz
            - raidz2
          description: >-
            Raid Type. (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: macaddress
          type: string
          in: formData
          description: >-
            the mac address value. Use multiple POST/PUT to add multiple mac
            addresses.
        - name: devices_in_cluster
          type: string
          in: formData
          description: >-
            comma separated device names for devices in cluster. Only valid for
            device type cluster.
        - name: appcomps
          type: string
          in: formData
          description: comma separated application component names on this device.
        - name: customer
          type: string
          in: formData
          description: Name of the Customer. Customer record must already exist. Using this will override all existing customer associations. 
        - name: customer_id
          type: string
          in: formData
          description: ID of the Customer record. Customer record must already exist. Using this will override all existing customer associations. 
        - name: contract_id
          type: integer
          in: formData
          description: >-
            ID for the contract. Available via GET /api/api/1.0/contracts/ –
            DEPRECATED in v550.
        - name: contract
          type: string
          in: formData
          description: >-
            Name of the contract. Used only if contract name is unique. –
            DEPRECATED in v550.
        - name: aliases
          type: string
          in: formData
          description: >-
            optional. Comma separated aliases for the device. Must not exist,
            ignored otherwise.
        - name: subtype
          type: string
          in: formData
          description: Only for device type other. Must exist internally first.
        - name: blade_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: clear blade host for device
        - name: virtual_subtype
          type: string
          in: formData
          default: internal VM
          enum:
            - internal VM
            - ec2
            - azure_vm
            - azure_sql
            - azure_storage
            - other
            - outscale
            - linode
            - digitalOcean
            - vmware
            - citrix
            - kvm
            - hyperv
            - docker
            - lxc
            - rackspace_vm
            - softlayer_vm
            - ovirt
            - joyent_vm
            - virtualbox
          description: Only for device type virtual. Default is internal VM.
        - name: notes
          type: string
          in: formData
        - name: tags
          type: string
          in: formData
          description: comma separated tags (Added in v5.9.2)
        - name: virtual_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: yes to clear virtual host for a VM (added in v9.1.0)
        - name: tags_remove
          type: string
          in: formData
          description: comma separated tags to remove (added in v9.1.0)
        - name: aliases_remove
          type: string
          in: formData
          description: comma separated aliases to remove
        - name: devices_in_cluster_remove
          type: string
          in: formData
          description: >-
            comma separated device names for removing devices in cluster. Only
            valid for device type cluster. (added in v9.2.0)
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/device/:
    put:
      operationId: putCustom_Field_Devices
      summary: Custom fields
      description: Create or update a custom field for a device. The device_id parameter is required to identify the device.
      tags:
        - Devices
      parameters:
        - name: device_id
          in: formData
          description: D42 ID of the device.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/include_in_context_popups'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 8
                  - Business Unit
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/multiserials/:
    post:
      operationId: postMultiSerialDevice
      summary: Create/update multi-serial device by name
      description: >-
        This API is used to create a new device with the name supplied as the
        required argument or update an existing device that with that name. This
        is similar to /api/1.0/devices/ POST call - but you can add
        duplicate serial numbers and UUIDs for high density servers that share
        the same serial # and/or UUID
      tags:
        - Devices
      parameters:
        - name: name
          type: string
          description: >-
            Device name. If device with name already exists - the existing
            device is updated. If an existing device based on serial # or uuid
            are found - name is ignored. In that case existing name is not
            changed and you can use new_name if you wish to change the name.
          in: formData
        - name: new_name
          type: string
          description: >-
            As mentioned above, this can be used to change the name of an
            existing device
          in: formData
        - name: serial_no
          type: string
          description: >-
            the serial # of the device. If a device with matching serial # is
            found - that device is updated. Serial # with less than 3 characters
            in length are ignored. Also, certain generic serial #s like
            123456789 or ‘not specified’ are ignored.
          in: formData
        - name: uuid
          type: string
          in: formData
          description: >-
            the uuid of the device. If a device with matching uuid is found -
            that device is updated.
        - name: asset_no
          type: string
          in: formData
          description: 'the asset # of the device.'
        - name: manufacturer
          type: string
          in: formData
          description: the hardware manufacturer for the device.
        - name: hardware
          type: string
          in: formData
          description: >-
            the name of the hardware model for the device. Use in conjunction
            with the manufacturer argument. However, an update will only occur
            if no hardware model is previously assigned to the device.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. If the device
            is rack mounted, it will unmount the device before changing hardware
            model and attempt to mount it back to same rack location (Changed in
            v6.3.2)
        - name: is_it_switch
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a network switch
        - name: is_it_virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a virtual host
        - name: is_it_blade_host
          type: string
          in: formData
          description: ‘yes’ indicates if device is a blade host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type
          type: string
          in: formData
          enum:
            - physical
            - virtual
            - blade
            - cluster
            - other
          description: >-
            is the type for device. Valid values are ‘physical’, ‘virtual’,
            ‘blade’, ‘cluster’, or ‘other’.
        - name: service_level
          type: string
          in: formData
          description: >-
            the service level name for the device. The service level must be
            pre-defined in the device42 appliance before it can be referenced in
            an api call.
        - name: virtual_host
          type: string
          in: formData
          description: >-
            Is the name for the host of the virtual machine. Two conditions must
            be met for this value to successfully update: 1. The device must be
            a virtual machine. 2. The virtual host must already exist in the
            device42 application and must be already marked as a virtual host.
        - name: blade_host
          type: string
          in: formData
          description: >-
            the name of the host for the blade machine. Two conditions must be
            met for this value to successfully update: 1. The device must be a
            blade type. 2. The blade host must already exist and must already be
            marked as a blade host.
        - name: slot_no
          type: integer
          in: formData
          description: 'slot # for blade device.'
        - name: storage_room_id
          type: integer
          in: formData
          description: ID of the room to assign device to storage room. Added in v5.5.0
        - name: storage_room
          type: string
          in: formData
          description: >-
            name of the room to assign device to, only used if the room name is
            unique. Added in v5.5.0
        - name: os
          type: string
          in: formData
          description: >-
            the name of the operating system (os, osver, and osverno all
            required if updating any of the three).
        - name: osver
          in: formData
          type: string
          description: >-
            the version of the operating system (os, osver, and osverno all
            required if updating any of the three)
        - name: osarch
          type: string
          in: formData
          description: The architecture of the operating system (32 or 64)
        - name: osverno
          type: integer
          in: formData
          description: >-
            the version # or build # of the operating system (os, osver, and
            osverno all required if updating any of the three)
        - name: memory
          type: string
          in: formData
          description: the total memory(RAM) in MB. Just numbers.
        - name: cpucount
          type: integer
          in: formData
          description: 'total # of CPUs. (If updating, cpupower and cpucore required)'
        - name: cpupower
          type: string
          in: formData
          description: >-
            CPU speed in MHz, just numbers. (If updating, cpucount and cpucore
            required)
        - name: cpucore
          type: string
          in: formData
          description: >-
            number of cores/CPU. Integer. (If updating, cpupower and cpucount
            required)
        - name: hddcount
          type: integer
          in: formData
          description: >-
            total # of HDD (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddsize
          type: string
          in: formData
          description: >-
            HDD Size in GB (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid
          type: string
          in: formData
          enum:
            - none
            - software
            - hardware
          description: >-
            Raid. Possible values: software or hardware. none to clear. (none
            added in v9.1.0) (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid_type
          type: string
          in: formData
          enum:
            - none
            - raid 0
            - raid 1
            - raid 3
            - raid 5
            - raid 6
            - raid 10
            - raid 50
            - raidz
            - raidz2
          description: >-
            Raid Type. (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: macaddress
          type: string
          in: formData
          description: >-
            the mac address value. Use multiple POST/PUT to add multiple mac
            addresses.
        - name: devices_in_cluster
          type: string
          in: formData
          description: >-
            comma separated device names for devices in cluster. Only valid for
            device type cluster.
        - name: appcomps
          type: string
          in: formData
          description: comma separated application component names on this device.
        - name: customer
          type: string
          in: formData
          description: Name of the Customer. Customer record must already exist. Using this will override all existing customer associations. 
        - name: customer_id
          type: string
          in: formData
          description: ID of the Customer record. Customer record must already exist. Using this will override all existing customer associations. 
        - name: contract_id
          type: integer
          in: formData
          description: >-
            ID for the contract. Available via GET /api/api/1.0/contracts/ –
            DEPRECATED in v550.
        - name: contract
          type: string
          in: formData
          description: >-
            Name of the contract. Used only if contract name is unique. –
            DEPRECATED in v550.
        - name: aliases
          type: string
          in: formData
          description: >-
            optional. Comma separated aliases for the device. Must not exist,
            ignored otherwise.
        - name: subtype
          type: string
          in: formData
          description: Only for device type other. Must exist internally first.
        - name: blade_host_clear
          type: string
          in: formData
          description: clear blade host for device
        - name: virtual_subtype
          type: string
          in: formData
          default: internal VM
          enum:
            - internal VM
            - ec2
            - azure_vm
            - azure_sql
            - azure_storage
            - other
            - outscale
            - linode
            - digitalOcean
            - vmware
            - citrix
            - kvm
            - hyperv
            - docker
            - lxc
            - rackspace_vm
            - softlayer_vm
            - ovirt
            - joyent_vm
            - virtualbox
          description: Only for device type virtual. Default is internal VM.
        - name: notes
          type: string
          in: formData
        - name: tags
          type: string
          in: formData
          description: comma separated tags (Added in v5.9.2)
        - name: virtual_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: yes to clear virtual host for a VM (added in v9.1.0)
        - name: tags_remove
          type: string
          in: formData
          description: comma separated tags to remove (added in v9.1.0)
        - name: aliases_remove
          type: string
          in: formData
          description: comma separated aliases to remove
        - name: devices_in_cluster_remove
          type: string
          in: formData
          description: >-
            comma separated device names for removing devices in cluster. Only
            valid for device type cluster. (added in v9.2.0)
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/multinodes/:
    post:
      operationId: postMultiNodeDevice
      summary: Create/update multi-node device by name
      description: >-
        This API is used to create a new device with the name supplied as the
        required argument or update an existing device that with that name. This
        is similar to /api/1.0/devices/ POST call - but you can add
        duplicate serial #s and UUID for high density servers that share the
        same serial # and/or UUID
      tags:
        - Devices
      parameters:
        - name: name
          type: string
          description: >-
            Device name. If device with name already exists - the existing
            device is updated. If an existing device based on serial # or uuid
            are found - name is ignored. In that case existing name is not
            changed and you can use new_name if you wish to change the name.
          in: formData
        - name: new_name
          type: string
          description: >-
            As mentioned above, this can be used to change the name of an
            existing device
          in: formData
        - name: serial_no
          type: string
          description: >-
            the serial # of the device. If a device with matching serial # is
            found - that device is updated. Serial # with less than 3 characters
            in length are ignored. Also, certain generic serial #s like
            123456789 or ‘not specified’ are ignored.
          in: formData
        - name: uuid
          type: integer
          in: formData
          description: >-
            the uuid of the device. If a device with matching uuid is found -
            that device is updated.
        - name: asset_no
          type: string
          in: formData
          description: 'the asset # of the device.'
        - name: manufacturer
          type: string
          in: formData
          description: the hardware manufacturer for the device.
        - name: hardware
          type: string
          in: formData
          description: >-
            the name of the hardware model for the device. Use in conjunction
            with the manufacturer argument. However, an update will only occur
            if no hardware model is previously assigned to the device.
        - name: new_hardware
          type: string
          in: formData
          description: >-
            If you want to change the hardware model for a device. If the device
            is rack mounted, it will unmount the device before changing hardware
            model and attempt to mount it back to same rack location (Changed in
            v6.3.2)
        - name: is_it_switch
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a network switch
        - name: is_it_virtual_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a virtual host
        - name: is_it_blade_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: ‘yes’ indicates if device is a blade host
        - name: in_service
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            ‘yes’ indicates if device is in service, ‘no’ indicates not in
            service
        - name: type
          type: string
          in: formData
          enum:
            - physical
            - virtual
            - blade
            - cluster
            - other
          description: the type of the device
        - name: service_level
          type: string
          in: formData
          description: >-
            the service level name for the device. The service level must be
            pre-defined in the device42 appliance before it can be referenced in
            an api call.
        - name: virtual_host
          type: string
          in: formData
          description: >-
            Is the name for the host of the virtual machine. Two conditions must
            be met for this value to successfully update: 1. The device must be
            a virtual machine. 2. The virtual host must already exist in the
            device42 application and must be already marked as a virtual host.
        - name: blade_host
          type: string
          in: formData
          description: >-
            the name of the host for the blade machine. Two conditions must be
            met for this value to successfully update: 1. The device must be a
            blade type. 2. The blade host must already exist and must already be
            marked as a blade host.
        - name: slot_no
          type: integer
          in: formData
          description: 'slot # for blade device.'
        - name: storage_room_id
          type: integer
          in: formData
          description: ID of the room to assign device to storage room. Added in v5.5.0
        - name: storage_room
          type: string
          in: formData
          description: >-
            name of the room to assign device to, only used if the room name is
            unique. Added in v5.5.0
        - name: os
          type: string
          in: formData
          description: >-
            the name of the operating system (os, osver, and osverno all
            required if updating any of the three).
        - name: osver
          in: formData
          type: string
          description: >-
            the version of the operating system (os, osver, and osverno all
            required if updating any of the three)
        - name: osarch
          type: string
          in: formData
          description: The architecture of the operating system (32 or 64)
        - name: osverno
          type: integer
          in: formData
          description: >-
            the version # or build # of the operating system (os, osver, and
            osverno all required if updating any of the three)
        - name: memory
          type: string
          in: formData
          description: the total memory(RAM) in MB. Just numbers.
        - name: cpucount
          type: integer
          in: formData
          description: 'total # of CPUs. (If updating, cpupower and cpucore required)'
        - name: cpupower
          type: string
          in: formData
          description: >-
            CPU speed in MHz, just numbers. (If updating, cpucount and cpucore
            required)
        - name: cpucore
          type: string
          in: formData
          description: >-
            number of cores/CPU. Integer. (If updating, cpupower and cpucount
            required)
        - name: hddcount
          type: integer
          in: formData
          description: >-
            total # of HDD (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddsize
          type: string
          in: formData
          description: >-
            HDD Size in GB (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid
          type: string
          in: formData
          enum:
            - none
            - software
            - hardware
          description: >-
            Raid. Possible values: software or hardware. none to clear. (none
            added in v9.1.0) (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: hddraid_type
          type: string
          in: formData
          enum:
            - none
            - raid 0
            - raid 1
            - raid 3
            - raid 5
            - raid 6
            - raid 10
            - raid 50
            - raidz
            - raidz2
          description: >-
            Raid Type. (hddcount, hddsize, hddraid, and hddraid_type all
            required when updating any of the 4)
        - name: macaddress
          type: string
          in: formData
          description: >-
            the mac address value. Use multiple POST/PUT to add multiple mac
            addresses.
        - name: devices_in_cluster
          type: string
          in: formData
          description: >-
            comma separated device names for devices in cluster. Only valid for
            device type cluster.
        - name: appcomps
          type: string
          in: formData
          description: comma separated application component names on this device.
        - name: customer
          type: string
          in: formData
          description: Name of the Customer. Customer record must already exist. Using this will override all existing customer associations. 
        - name: customer_id
          type: string
          in: formData
          description: ID of the Customer record. Customer record must already exist. Using this will override all existing customer associations. 
        - name: contract_id
          type: integer
          in: formData
          description: >-
            ID for the contract. Available via GET /api/api/1.0/contracts/ –
            DEPRECATED in v550.
        - name: contract
          type: string
          in: formData
          description: >-
            Name of the contract. Used only if contract name is unique. –
            DEPRECATED in v550.
        - name: aliases
          type: string
          in: formData
          description: >-
            optional. Comma separated aliases for the device. Must not exist,
            ignored otherwise.
        - name: subtype
          type: string
          in: formData
          description: Only for device type other. Must exist internally first.
        - name: blade_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: clear blade host for device
        - name: virtual_subtype
          type: string
          in: formData
          default: internal VM
          enum:
            - internal VM
            - ec2
            - azure_vm
            - azure_sql
            - azure_storage
            - other
            - outscale
            - linode
            - digitalOcean
            - vmware
            - citrix
            - kvm
            - hyperv
            - docker
            - lxc
            - rackspace_vm
            - softlayer_vm
            - ovirt
            - joyent_vm
            - virtualbox
          description: Only for device type virtual. Default is internal VM.
        - name: notes
          type: string
          in: formData
        - name: tags
          type: string
          in: formData
          description: comma separated tags (Added in v5.9.2)
        - name: virtual_host_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: yes to clear virtual host for a VM (added in v9.1.0)
        - name: tags_remove
          type: string
          in: formData
          description: comma separated tags to remove (added in v9.1.0)
        - name: aliases_remove
          type: string
          in: formData
          description: comma separated aliases to remove
        - name: devices_in_cluster_remove
          type: string
          in: formData
          description: >-
            comma separated device names for removing devices in cluster. Only
            valid for device type cluster. (added in v9.2.0)
        - name: object_category
          type: string
          in: formData
          description: >-
            If multitenancy is on, a category can be assigned to control access
            to this object, e.g. Prod_East specifies that the users with access
            to the Prod_East category will be able to access this device.
        - name: new_object_category
          type: string
          in: formData
          description: Used to change category on a device if it is already set.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/deviceName'
              code:
                example: 0
        '400':
            $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/physical_subtypes/:        
    get:
      operationId: getPhysicalSubtypes
      description: This API retrieves all device physical subtypes
      summary: Get all physical subtypes
      tags:
        - Devices
      parameters:
        - name: physical_subtype_id
          type: integer
          in: query
          description: Filter by physical subtype ID.
        - name: name
          type: string
          in: query
          description: Filter by physical subtype name.
        - name: storage_room
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is a storage room.
        - name: server_room
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is a server room.
        - name: building
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is a building.
        - name: rack
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is a rack.
        - name: blade_chassis
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is a blade chassis.
        - name: system_generated_subtype
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: Filter if subtype is system generated.
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns.
            For example, ?include_cols=name, subtype_id will only result in name, subtype_id.
            All column names above can be part of include_cols
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              total_count:
                example: 11
              limit:
                example: 50
              physical_subtypes:
                type: array
                items:
                  type: object
                  properties:
                   building:
                    example: 'true'
                   system_generated_subtype:
                    example: 'true'
                   name:
                    example: 'Rackable'
                   subtype_id:
                    example: 4
                   server_room:
                    example: 'false'
                   blade_chassis:
                    example: 'false'
                   rack:
                    example: 'true'
                   storage_room:
                    example: 'false' 
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPhysicalSubtypes
      description: Create/update physical subtypes. Note that you cannot modify system-generated subtypes
      summary: Creates/update a physical subtype
      tags:
        - Devices       
      parameters:
        - name: name
          type: string
          in: formData
          description: Physical subtype name.
        - name: physical_subtype_id
          type: integer
          in: formData
          description: Physical subtype ID; use instead of name.
        - name: storage_room
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if subtype is a storage room.
        - name: server_room
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if subtype is a server room.
        - name: building
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if subtype is a building.
        - name: rack
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if subtype is a rack.
        - name: blade_chassis
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if subtype is a blade chassis.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - physical_subtype added/updated
                  - 11
                  - Warehouse
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
            $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/physical_subtypes/{id}/:            
    get:
      operationId: getPhysicalSubtypes_ID
      description: This API retrieves a physical subtype by ID
      summary: Get physical subtype by ID
      tags:
        - Devices
      parameters:
        - name: id
          type: integer
          in: path
          description: Physical Subtype ID.
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              building:
                example: 'true'
              system_generated_subtype:
                example: 'true'
              name:
                example: 'Rackable'
              physical_subtype_id:
                example: 4
              server_room:
                example: 'false'
              blade_chassis:
                example: 'false'
              rack:
                example: 'true'
              storage_room:
                example: 'false' 
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deletePhysicalSubtypes
      summary: Delete physical subtype
      description: >-
        This API is used to delete the physical subtype with ID
        supplied as the required argument.
      tags:
        - Devices
      parameters:
        - name: id
          in: path
          required: true
          description: Physical Subtype ID
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
            $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/cloud_instance/:
    post:
      operationId: postCloudInstanceDevice
      summary: Create/update device cloud instance
      description: >-
        Update cloud instance information for devices. Requires either device or
        device_id
      tags:
        - Devices
      parameters:
        - name: device
          in: formData
          description: Device name
          type: string
        - name: device_id
          in: formData
          description: Device ID
          type: integer
        - $ref: '#/parameters/instance_id'
        - $ref: '#/parameters/vendor_post'
        - $ref: '#/parameters/status'
        - name: region
          in: formData
          description: Region for cloud instance.
          type: string
        - $ref: '#/parameters/location'
        - $ref: '#/parameters/notes_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            description: 'The above command returns results like this:'
            properties:
              devices:
                $ref: '#/definitions/devices'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/hdd/:
    post:
      operationId: postHDD_field
      summary: Create/update Device HDD
      description: >- 
        This call will add/update HDD in a Device
      tags:
        - Devices
      parameters:
        - name: device 
          in: formData
          description: name of the existing device
          type: string
          required: true
        - name: hd_id
          in: formData
          description: HDD ID; required if size is not provided
          type: integer
        - name: size
          type: integer
          in: formData
          description: The size of the HDD (in GB); required if hd_id is not provided.
        - name: part_no
          type: integer
          in: formData
          description: part number
        - name: manufacturer
          in: formData
          description: >-
            manufacturer name of the hardware model
          type: string
        - name: type
          in: formData
          description: >-
            Type of HDD.
          type: number
          format: float
        - name: rpm
          in: formData
          type: string
        - name: raid_type
          in: formData
          description: >-
            type of raid.
          type: string
        - name: raid_group
          in: formData
          description: >-
            RAID group name
          type: string
        - name: count
          in: formData
          type: string
        - name: description
          in: formData
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            description: 'The above command returns results like this:'
            properties:
              msg:
                example:
                  - "device hd successfully added/updated"
                  - 47
                  - "Hard Disk"
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/custom_field/:
    put:
      operationId: putCustom_Field
      summary: Custom fields
      description: >-
        Create/update custom fields for a device. One of the following parameters is required: name, id, asset, or serial
      tags:
        - Devices
      parameters:
        - name: name
          in: formData
          description: 'name of the device, or'
          type: string
        - name: device_id
          type: integer
          description: ID of the device
          in: formData
        - name: asset
          in: formData
          description: >-
            if there is more than 1 device with the same asset #, this will
            return “device not found”, or
          type: string
        - name: serial
          in: formData
          description: >-
            if there is more than 1 device with the same serial #, this will
            return “device not found”
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/include_in_context_popups'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'  
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 8
                  - nh-switch-01
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device/impactlist/{device-id}/':
    get:
      operationId: getDevicesImpactlist
      description: This API endpoint retrieves the device impact list by ID
      summary: Get device impact list
      tags:
        - Devices
      parameters:
        - name: device-id
          type: integer
          in: path
          required: true
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              children:
                $ref: '#/definitions/devicesImpactList'
              name:
                example: Dependant Apps
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/mountpoints/:
    get:
      operationId: getDeviceMountpoints
      description: Get device mountpoints - introduced in version 10.5.0
      summary: Get device mountpoints
      tags:
        - Devices
      parameters:
        - name: device_id
          in: query
          description: id of the device
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              mountpoint_details:
                type: array
                items:
                  type: object
                  properties:
                    capacity:
                      example: 238504
                    device:
                      example: greg-ws
                    filesystem:
                      example: ''
                    free_capacity:
                      example: 77187.07
                    fstype:
                      example: NTFS
                    id:
                      example: 25
                    label:
                      example: 'C:'
                    last_updated:
                      example: '2016-09-16T15:17:19.110Z'
                    mountpoint:
                      example: 'C:'
              total_count:
                example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDeviceMountpoints
      description: Create/update device mountpoints - introduced in version 10.5.0
      summary: Create/update mountpoints
      tags:
        - Devices
      deprecated: true
      parameters:
        - name: mountpoint
          in: formData
          description: path of the mountpoint
          required: true
          type: string
        - name: device
          in: formData
          description: device mountpoint is assigned to
          required: true
          type: string
        - $ref: '#/parameters/filesytem'
        - $ref: '#/parameters/fstype'
        - $ref: '#/parameters/capacity'
        - $ref: '#/parameters/free_capacity'
        - $ref: '#/parameters/label_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - mount point added/updated
                  - 521
                  - /home/user
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device/mountpoints/{id}/':
    delete:
      operationId: deleteDeviceMountpoints
      description: Delete Device Mountpoints by ID
      summary: Delete device mountpoint
      tags:
        - Devices
      deprecated: true
      parameters:
        - name: id
          in: path
          description: id of the mountpoint to delete
          required: true
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '123'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/device/mountpoints/:
    get:
      operationId: getDeviceMountpoints
      description: Get device mountpoints. API v2.0 uses resource model to support all mountpoints
      summary: Get device mountpoints
      tags:
        - Devices
      parameters:
        - name: device_id
          in: query
          description: ID of the device
          type: string
        - name: filesystem
          in: query
          type: string
          description: Filesystem name
        - name: fstype
          in: query
          type: string
          description: Filesystem type
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              mountpoint_details:
                type: array
                items:
                  type: object
                  properties:
                    capacity:
                      example: 238504
                    device:
                      example: greg-ws
                    filesystem:
                      example: ''
                    free_capacity:
                      example: 77187.07
                    fstype:
                      example: NTFS
                    id:
                      example: 25
                    label:
                      example: 'C:'
                    last_updated:
                      example: '2016-09-16T15:17:19.110Z'
                    mountpoint:
                      example: 'C:'
              total_count:
                example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDeviceMountpoints
      description: Create/update device mountpoints. API v2.0 uses resource model to support all mountpoints
      summary: Create/update mountpoints
      tags:
        - Devices
      parameters:
        - name: mountpoint
          in: formData
          description: Path of the mountpoint
          type: string
          required: true
        - name: device
          in: formData
          description: device or device_id is required if not using fstype/unique_uuid. Device mountpoint is assigned to
          type: string
        - name: device_id
          in: formData
          description: device or device_id is required if not using fstype/unique_uuid. Device ID
          type: string
        - name: fstype
          in: formData
          type: string
          description: Required if not using device or device_id. Mountpoint filesystem type
        - name: unique_uuid
          in: formData
          type: string
          description: Required if not using device or device_id. Unique identifier for mountpoint
        - $ref: '#/parameters/filesytem'
        - $ref: '#/parameters/capacity'
        - $ref: '#/parameters/free_capacity'
        - $ref: '#/parameters/label_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - mount point added/updated
                  - 521
                  - /home/user
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/device/mountpoints/{id}/':
    delete:
      operationId: deleteDeviceMountpoints
      description: Delete Device Mountpoints by ID
      summary: Delete device mountpoint
      tags:
        - Devices
      parameters:
        - name: id
          in: path
          description: id of the mountpoint to delete
          required: true
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '123'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/url/:
    get:
      operationId: getDeviceUrl
      description: Get device URLs - introduced in version 7.0.0
      summary: Get device URLs
      tags:
        - Devices
      parameters:
        - name: device
          in: query
          description: name of the device
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              device_weblinks:
                type: array
                items:
                  type: object
                  properties:
                    device:
                      example: NHCTWS001
                    host:
                      example: ' /v:{{device.name}}'
                    id:
                      example: 2
                    notes:
                      example: TESTSERVER NHCT
                    port:
                      example: ''
                    type:
                      example: rdp
                    url_suffix:
                      example: ' /f /restrictedadmin'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDeviceUrl
      description: >-
        Use this API to associate a URL (e.g. an http, https, or telnet url)
        with a device.
      summary: Add URL to device
      tags:
        - Devices
      parameters:
        - name: type
          in: formData
          description: >-
            the url type (e.g. http, https, telnet). This must be an existing
            url type in device42.
          type: string
          required: true
        - name: device
          in: formData
          description: name of the device to which this url belongs (required parameter)
          type: string
          required: true
        - name: host
          in: formData
          description: >-
            fqdn portion of the url. e.g. for http://www.device42.com/awesome,
            host is www.device42.com
          type: string
        - name: port
          in: formData
          description: port number if any
          type: string
        - name: url_suffix
          in: formData
          description: >-
            url suffix if any. e.g. it is “awesome” based on example given
            above.
          type: string
        - name: notes
          in: formData
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Device url saved succesfully.
                  - 2
                  - 'http://www.device42.com:8080/awesome'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putDeviceUrl
      summary: Update device URL
      description: >-
        Use this API to update and existing URL (e.g. an http, https, or telnet
        url) with a device. Type and device are required if no ID is provided
      tags:
        - Devices
      parameters:
        - name: id
          in: formData
          description: ID of the URL
          type: string
        - name: type
          in: formData
          description: >-
            the url type (e.g. http, https, telnet). This must be an existing
            url type in device42. (required if no ID)
          type: string
        - name: device
          in: formData
          description: name of the device to which this url belongs (required if no ID)
          type: string
        - name: host
          in: formData
          description: >-
            fqdn portion of the url. e.g. for https://example.com/awesome, host
            is example.com
          type: string
        - name: port
          in: formData
          description: port number if any
          type: string
        - name: url_suffix
          in: formData
          description: >-
            url suffix if any. e.g. it is “awesome” based on example given
            above.
          type: string
        - name: notes
          in: formData
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Device url updated
                  - 2
                  - 'http://www.example.com:8080/awesome'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device/url/{id}/':
    delete:
      operationId: deleteDeviceUrl
      summary: Delete a device URL
      description: This API call will delete a device URL (Introduced in v7.0.0)
      tags:
        - Devices
      parameters:
        - name: id
          in: path
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '142'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/rack/:
    post:
      operationId: postDeviceRack
      summary: Add/update device in rack
      description: >-
        This API will add a new or existing device to a rack or will update an
        existing device that is already in the rack. (Introduced in v321)<br>
        Required parameters: <ul><li>device <b>OR</b> device_id <b>OR</b>
        serial_no <b>OR</b> asset_no</li> <li>rack_id <b>OR</b> rack (with
        building, room, or row to identify unique rack) <li>start_at</li>
      tags:
        - Devices
      parameters:
        - name: device
          in: formData
          description: name of the new or existing device
          type: string
        - name: device_id
          in: formData
          description: Device ID of existing device
          type: integer
        - name: serial_no
          type: string
          in: formData
          description: 'serial # of the existing device'
        - name: asset_no
          type: string
          in: formData
          description: 'asset # of the existing device'
        - name: hw_model
          in: formData
          description: >-
            If the hw_model doesn’t exist or doesn’t have a type, we will add it
            as type “regular (rack mountable)” (changed in v6.6.0)
          type: string
        - name: size
          in: formData
          description: >-
            size of the hardware model, only for new hardware model or if
            hardware model doesn’t have size. required for new hardware model
            (added in v6.6.0)
          type: number
          format: float
        - name: manufacturer
          in: formData
          description: >-
            manufacturer of the hardware model. Only for new hardware model
            being added(added in v6.6.0)
          type: string
        - name: rack_id
          in: formData
          description: >-
            required if building name, room name or rack name are not provided.
            This is the id of the rack. It can be obtained from Tools > Import >
            Import Racked Devices.
          type: integer
        - name: building
          in: formData
          description: >-
            building is building name, room is room name, rack is rack name and
            row is optional. This is used if rack_id is not provided and a
            unique rack is found with that combination. This could be just rack
            for rack name, if the rack name is unique. Otherwise add row, room
            or building to identify a unique rack.
          type: string
        - name: room
          in: formData
          type: string
        - name: rack
          in: formData
          type: string
        - name: row
          in: formData
          type: string
        - name: start_at
          in: formData
          description: >-
            This is the starting U location for the device in the rack. Starting
            with v535, you can use “auto” as value to automatically mount the
            device in next available slot.
          type: string
          required: true
        - name: where
          in: formData
          description: >-
            location in rack, one of ‘above’, ‘below’, ‘left’, ‘right’,
            ‘mounted’. Note: If mounted a size must be provided or available
            from the hardware model.
          type: string
        - name: x_pos
          in: formData
          description: >-
            A number between 0 and 2520 representing the position within the u
            slot. 0 is flush left. 2520 is flush right.
          type: string
        - name: orientation
          in: formData
          type: string
          description: >-
            Device mount orientation on rack. By default devices are mounted in front.
          enum:
            - front
            - back
        - name: depth
          in: formData
          type: string
          enum:
            - half
            - full
          description: Depth of device on rack
        - name: reversed
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          deescription: Is the device reversed on the rack?
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - device added or updated in the rack
                  - 2
                  - '[2.0] - RA1 -1st floor'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device/rack/{device_id}/':
    delete:
      operationId: deleteDeviceRackDevice_Id
      summary: Delete from rack
      description: >-
        This API call will remove/delete a device from a rack (Introduced in
        v6.3.2)
      tags:
        - Devices
      parameters:
        - name: device_id
          in: path
          description: ID of the device to be removed from the rack
          required: true
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '142'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device/cpu/:
    post:
      operationId: postDeviceCPU
      summary: Add/update cpu for a device
      description: >-
        This API will add or update CPU for a device 
        <br><br>Required parameters: <ul><li> cpu_id <b>or</b> cores <b>or</b> speed </li> <li> device </li></ul>
      tags:
        - Devices
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of the device CPU.
        - name: description
          type: string
          in: formData
          description: Description of device CPU 
        - name: threads
          in: formData
          description: number of threads
          type: string
        - name: cores
          type: string
          in: formData
          description: >-
            Number of cores/CPU.
        - name: speed
          in: formData
          type: string
          description: 'CPU Speed enter in MHZ, e.g.: 3.5 GHZ use 3500'
        - name: cpu_id
          type: string
          description: Use for updating existing CPU 
          in: formData
        - name: device
          in: formData
          description: name of the new or existing device
          type: string
          required: true
        - name: manufacturer
          in: formData
          description: 'Manufacturer'
          type: string
        - name: count
          in: formData
          type: string
          description: 'Count #'
        - name: part_no
          in: formData
          type: string
          description: 'Part #'       
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - device cpu successfully added/updated
                  - 28
                  - 'cpu1 : Hard Disk sda 10 GB, storage'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'        
  /api/1.0/device/layout/{id}/:
    get:
      operationId: getDeviceLayout
      description: Retrieve information on Device Layout
      summary: Get specific
      tags:
        - Devices
      parameters:
        - name: ID
          type: integer
          description: filter by device ID
          in: path
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              name:
                example: Physical Device Test
              is_blade:
                example: false
              is_blade_chassis:
                example: true
              is_switch:
                example: false
              parts:
                example: []
              direct_ports:
                example: []
              id:
                example: 12
              blades:
                example: []
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/device_ignore_rules/:
    get:
      operationId: getDevice_Ignore_Rules
      description: This call will get all device ignore rules
      summary: Get all
      tags:
        - Device Ignore Rules
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 1
              limit:
                example: 1000
              DeviceIgnoreRules:
                type: array
                items:
                  type: object
                  properties:
                   id:
                    example: 1
                   text:
                    example: macad-test
                   option_type:
                    example: 3
                   device_type_id:
                    example: 2
                   device_type:
                    example: physical
                   physicalsubtype_id:
                    example: 1009
                   physicalsubtype:
                    example: ats
                   virtualsubtype_id:
                    example: 2
                   virtualsubtype:
                    example: Amazon EC2 Instance
                   last_discovery:
                    example: 2020-05-21 14:42
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationID: postDevice_Ignore_Rules
      description: This call creates or updates a device ignore rule
      summary: Create/update
      tags:
        - Device Ignore Rules
      parameters:
        - name: id
          type: string
          in: formData
          description: Required to update an existing ignore rule - the D42 ID of the rule.
        - name: text
          type: string
          in: formData
          description: Text for the ignore rule - in UI, 'Ignored text contains'.
        - name: option_type 
          type: string
          in: formData
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          required: true
          description: >-
            Type of ignore rule for the device - in UI, 'Ignore device based on'.<br>
            1 = Device name<br>
            2 = OS name<br>
            3 = Mac address prefix<br>
            4 = Hardware model<br>
            5 = Tag<br>
            6 = Device type
        - name: text_length_match_type
          type: string
          in: formData
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
          description: >-
            Exact, partial or prefix/suffix matching for length of ignore rule text.<br>
            1 = Partial match<br>
            2 = Exact match<br>
            3 = Begins with<br>
            4 = Ends with
        - name: text_case_match_type 
          type: string
          in: formData
          enum:
            - '1'
            - '2'
          description: >-
            Case sensitivity match for ignore rule text.<br>
            1 = Case insensitive<br>
            2 = Case sensitive            
        - name: device_type_id
          type: string
          in: formData
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
          description: Device type ID<br>1. unknown 2. physical<br> 3. virtual 4. cluster
        - name: device_type
          type: string
          in: formData
          enum:
            - 'unknown'
            - 'physical'
            - 'virtual'
            - 'cluster'
          description: Device type by name.
        - name: physicalsubtype_id
          type: string
          in: formData
          description: >-
            Used to set the device subtype - the device must be physical or unknown.<br>
            1. Generic 2. Rackable 3. Blade 4. PDU 5. Access Point 6. CRAC 7. UPS 8. TAP 9. Branch Circuit Power Meter 10. Power Unit 11. WorkStation 12. ThinClient 13. Network Printer 14. Laptop 15. Environment Monitor<br><b> OR</b> D42 ID of user-generated subtype
        - name: physicalsubtype
          type: string
          in: formData
          description: >-
            Either a system-generated subtype name or a user-generated subtype name.
        - $ref: '#/parameters/virtualsubtype_id'
        - name: virtualsubtype
          type: string
          in: formData
          enum:
            - 'Internal VM'
            - 'Amazon EC2 Instance'
            - 'Azure Cloud Service'
            - 'Azure SQL Server'
            - 'Azure Storage'
            - 'Other'
            - 'Outscale Instance'
            - 'Linode Instance'
            - 'DigitalOcean Instance'
            - 'Azure Virtual Machine'
            - 'VMWare'
            - 'Citrix/Xen'
            - 'KVM'
            - 'Hyper-V'
            - 'Docker Container'
            - 'LXC Container'
            - 'Rackspace VM'
            - 'Softlayer VM'
            - 'QEMU'
            - 'Joyent Instance'
            - 'VirtualBox'
            - 'Oracle VM'
            - 'OpenStack'
            - 'Xen'
            - 'LPAR'
            - 'GCE'
            - 'Amazon Service'
            - 'Context'
            - 'Alibaba Cloud Instance'
            - 'Oracle Cloud Instance'
            - 'Kubernetes Container'
            - 'AIX VIOS'
          description: Virtual subtype name. Use instead of virtualsubtype_id. Only for virtual device type.
        - name: last_discovery
          type: string
          in: formData
          description: The last time this rule was applied to ignore a device during discovery (YYYY-MM-DD HH:MM).
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Device ignore rule added/updated
                  - 11
                  - dtm-device-2
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/device_ignore_rules/{id}/:              
    delete:
      operationId: deleteDevice_Ignore_Rules
      summary: Delete
      description: >-
        Used to delete a device ignore rule with the rule ID as the required argument
      tags:
        - Device Ignore Rules
      parameters:
        - name: id
          in: path
          required: true
          description: D42 ID of the ignore rule to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/1.0/device_name_profile/:
    get:
      operationId: getdevice_name_profile
      description: This call will get all device name profiles
      summary: Get all
      tags:
        - Device Name Profile
      parameters:
        - name: name
          type: string
          in: formData
          description: Used to easily identify different profiles for generating device names.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 1
              limit:
                example: 1000
              device_name_profiles:
                type: array
                items:
                  type: object
                  properties:
                   start_number:
                    example: 1
                   last_used:
                    example: 0
                   suffix:
                    example: SuffixOne
                   number_length:
                    example: 4
                   prefix:
                    example: PrefixOne
                   id:
                    example: 9
                   name:
                    example: DevNameProfile-One
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationID: postdevice_name_profile
      description: This call creates or updates a device name profile
      summary: Create/update
      tags:
        - Device Name Profile
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Used to easily identify different profiles for generating device names.
        - name: number_length
          type: integer
          in: formData
          required: true
          description: Number length between 2 and 7. For numbers up to 9999, it would be 4. Default is 4.
        - name: start_number 
          type: integer
          in: formData
          required: true
          description: Starting number, where you want device numbers to start from. Default is 1.
        - name: last_used 
          type: integer
          in: formData
          required: true
          description: DO NOT CHANGE, unless you know what it is used for :). Default is 0.
        - name: prefix 
          type: string
          in: formData
          description: Prefix for the generated name number; e.g., SecretDC-Server in SecretDC-Server0042.
        - name: suffix 
          type: string
          in: formData
          description: Suffix for the generated name number; e.g., .domain.pvt in SecretDC-Server0042.domain.pvt.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - device_name_profile added/updated
                  - 11
                  - DevNameProfile-Five
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device_name_profile/{id}/:              
    delete:
      operationId: deletedevice_name_profile
      summary: Delete
      description: >-
        This API is used to delete a device name profile with the device name profile id
        supplied as the required argument
      tags:
        - Device Name Profile
      parameters:
        - name: id
          in: path
          required: true
          description: device name profile id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/1.0/object_categories/:
    get:
      operationId: getObject_categories
      description: This call will get information about object categories
      summary: Get all
      tags:
        - Object Categories
      parameters:
        - $ref: '#/parameters/name'
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns. 
            For example:id,name,description,groups
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              object_categories:
                type: array
                items:
                  $ref: '#/definitions/object_categories'
              offset:
                example: 0
              total_count:
                example: 3
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postObject_categories
      description: This call will create/update information about object categories
      summary: Create/update
      tags:
        - Object Categories
      parameters:
        - name: name
          in: formData
          description: Name of object category to create/update
          type: string
          required: true
        - name: description
          in: formData
          description: Description of object category
          type: string
        - name: groups
          type: string
          in: formData
          description: >-
            List of admin groups separated by commas to add.
        - name: groups_remove
          type: string
          in: formData
          description: >-
            List of admin groups separated by commas to remove. The asterisk(*) removes all groups.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Object category added/updated successfully
                  - 4
                  - Web Apps
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/object_categories/{id}/:
    delete:
      operationId: deleteObject_categories
      summary: Delete
      description: >-
        This API is used to delete an object category with the D42 object category ID
        supplied as the required argument.
      tags:
        - Object Categories
      parameters:
        - name: id
          in: path
          required: true
          description: D42 Object Category ID
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/hardwares/:
    get:
      operationId: getHardwares
      description: This call will get information about hardware models
      summary: Get all
      tags:
        - Hardware Models
      parameters:
        - $ref: '#/parameters/name'
        - name: type
          type: string
          in: query
          description: 'could be physical, blade, or other'
        - name: size
          type: string
          in: query
          description: filter by exact size
        - name: depth
          type: string
          in: query
          description: could be half or full
        - $ref: '#/parameters/part_no'
        - $ref: '#/parameters/watts_get'
        - $ref: '#/parameters/manufacturer'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - name: blade_size
          type: string
          in: query
          enum:
            - 'full'
            - 'half'
            - 'double half'
            - 'double full'
            - 'quarter'
          description: Blade size
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              models:
                type: array
                items:
                  $ref: '#/definitions/HardwareModels'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postHardwares
      description: This call will create/update information about hardware models
      summary: Create/update
      tags:
        - Hardware Models
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: >-
            if similar hardware name already exists, first matching entry is
            updated
        - $ref: '#/parameters/new_name'
        - name: type
          type: integer
          in: formData
          enum:
            - 1
            - 2
            - 3
          description: '1 = Regular, 2 = Blade, 3 = Other'
        - name: device_subtype
          type: string
          in: formData
          description: Subtype of "other" type devices
        - name: size
          type: string
          in: formData
          description: Size in U for hardware type regular
        - $ref: '#/parameters/width_ratio_post'
        - name: depth
          type: string
          in: formData
          enum:
            - half
            - full
          description: 'half by default, full to override'
        - $ref: '#/parameters/blade_size'
        - $ref: '#/parameters/part_no_post'
        - $ref: '#/parameters/watts'
        - $ref: '#/parameters/spec_url'
        - $ref: '#/parameters/manufacturer_post'
        - $ref: '#/parameters/front_image_id'
        - $ref: '#/parameters/front_image'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/max_blades_per_row'
        - $ref: '#/parameters/slot_numbering'
        - $ref: '#/parameters/module_pos'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - hardware model added or updated
                  - 1
                  - PE 1950
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/hardwares/{id}/':
    delete:
      operationId: deleteHardwares
      summary: Delete
      description: >-
        This API is used to delete the hardware model with the hardware model id
        supplied as the required argument
      tags:
        - Hardware Models
      parameters:
        - name: id
          in: path
          required: true
          description: hardware model id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/hardware/blade_slot/:    
    get:
      operationId: getBlade_slot
      description: Get hardware model blade slots  
      summary: Get blade slots
      tags:
        - Hardware Models
      parameters:
        - name: hardware_id
          type: integer
          in: path
          description: Filter by hardware ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                hardware:
                  example: Manual Hardware Model
                orientation:
                  example: 1
                x_pos:
                  example: 11
                hardware_id:
                  example: 190
                slot_no:
                  example: 1
                slot_size:
                  example: 1
                y_pos:
                  example: 4
                id:
                  example: 1
                location:
                  example: 1
                width:
                  example: 1
                height:
                  example: 1    
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'        
    post:
      operationId: postBlade_slot
      description: This call adds a blade slot to a hardware model
      summary: Add blade slot
      tags:
        - Hardware Models
      parameters:
        - name: hardware
          type: string
          in: formData
          description: >-
            Hardware model name.
        - name: hardware_id
          type: integer
          in: formData
          description: Hardware model ID.
        - name: id
          type: integer
          in: formData
          description: Slot ID.  
        - name: slot_no
          type: string
          in: formData
          description: Slot number.
        - name: orientation
          type: string
          in: formData
          description: Slot orientation.
        - name: location
          type: string
          in: formData
          description: Slot location.
        - name: slot_size
          type: string
          in: formData
          description: Slot size.
        - name: width
          type: string
          in: formData
          description: Slot width.
        - name: height
          type: string
          in: formData
          description: Slot height.
        - name: x_pos
          type: string
          in: formData
          description: Slot X position.
        - name: y_pos
          type: string
          in: formData
          description: Slot Y position.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - blade slot added/updated
                  - 1
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/hardware/blade_slot/{id}/':
    get:
      operationId: getBlade_slot_id
      description: Get hardware model blade slot by ID
      summary: Get Blade Slot
      tags:
        - Hardware Models
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              chassis_blade_slot:
                type: object
                properties:
                  hardware:
                    example: Manual Hardware Model
                  orientation:
                    example: 1
                  x_pos:
                    example: 11
                  hardware_id:
                    example: 190
                  slot_no:
                    example: 1
                  slot_size:
                    example: 1
                  y_pos:
                    example: 4
                  id:
                    example: 1
                  location:
                    example: 1
                  width:
                    example: 1
                  height:
                    example: 1  
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteBlade_slot
      summary: Delete hardware model blade slot
      description: >-
        This API is used to delete a hardware model blade slot by Slot ID
      tags:
        - Hardware Models
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: Slot ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'          
  /api/1.0/hardware/port/:        
    get:
      operationId: getDirect_port
      description: Get hardware model direct ports    
      summary: Get direct ports
      tags:
        - Hardware Models
      parameters:
        - name: hardware_id
          type: integer
          in: path
          description: Filter by hardware ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                hardware:
                  example: Manual Hardware Model
                orientation:
                  example: 1
                x_pos:
                  example: 11
                hardware_id:
                  example: 190
                port_type_id:
                  example: 1
                port_name:
                  example: P2
                port_type:
                  example: Manual
                y_pos:
                  example: 4
                id:
                  example: 1
                location:
                  example: 1
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDirect_port
      description: This call adds direct port to a hardware model
      summary: Add direct port
      tags:
        - Hardware Models
      parameters:
        - name: hardware
          type: string
          in: formData
          description: >-
            Hardware model name.
        - name: id
          type: integer
          in: formData
          description: Hardware model ID.
        - name: port_name
          type: string
          in: formData
          description: Direct port name.
        - name: port_type_id
          type: string
          in: formData
          description: Direct port type ID.
        - name: location
          type: string
          in: formData
          description: Direct port location.
        - name: x_pos
          type: string
          in: formData
          description: Direct port X position.
        - name: y_pos
          type: string
          in: formData
          description: Direct port Y position.
        - name: orientation
          type: string
          in: formData
          description: Options 1 for "Horizontal" and 2 for "Vertical"
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - direct port added/updated
                  - 1
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/hardware/port/{id}/':
    get:
      operationId: getDirect_port_id
      description: Get hardware model direct port by ID
      summary: Get Direct Port
      tags:
        - Hardware Models
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              direct_port:
                type: object
                properties:
                  hardware:
                    example: Manual Hardware Model
                  orientation:
                    example: 1
                  x_pos:
                    example: 11
                  hardware_id:
                    example: 190
                  port_type_id:
                    example: 1
                  port_name:
                    example: P2
                  port_type:
                    example: Manual
                  y_pos:
                    example: 4
                  id:
                    example: 1
                  location:
                    example: 1
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteDirect_port
      summary: Delete hardware model direct port
      description: >-
        This API is used to delete a hardware model direct port by hardware ID
      tags:
        - Hardware Models
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: Hardware ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/hardware/part_slot/:     
    get:
      operationId: getPart_slot
      description: Get hardware model part slots    
      summary: Get part slots
      tags:
        - Hardware Models
      parameters:
        - name: hardware_id
          type: integer
          in: path
          description: Filter by hardware ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                hardware:
                  example: Manual Hardware Model
                orientation:
                  example: 1
                x_pos:
                  example: 11
                hardware_id:
                  example: 190
                partmodel:
                  example: Core i7-3770
                partmodel_id:
                  example: 1
                y_pos:
                  example: 4
                id:
                  example: 1
                slot_no:
                  example: 1  
                location:
                  example: 1
                width:
                  example: 1
                height:
                  example: 1    
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPart_slot
      description: This call adds a part slot to a hardware model
      summary: Add part slot
      tags:
        - Hardware Models
      parameters:
        - name: hardware
          type: string
          in: formData
          description: >-
            Hardware model name.
        - name: hardware_id
          type: integer
          in: formData
          description: Hardware model ID.
        - name: id
          type: integer
          in: formData
          description: Part slot ID.
        - name: slot_no
          type: string
          in: formData
          description: Part slot number.
        - name: orientation
          type: string
          in: formData
          description: Part slot orientation.
        - name: location
          type: string
          in: formData
          description: Part slot location.
        - name: partmodel
          type: string
          in: formData
          description: Part slot model.
        - name: partmodel_id
          type: string
          in: formData
          description: Part slot model ID.  
        - name: width
          type: string
          in: formData
          description: Part slot width.
        - name: height
          type: string
          in: formData
          description: Part slot height.
        - name: x_pos
          type: string
          in: formData
          description: Part slot X position.
        - name: y_pos
          type: string
          in: formData
          description: Part slot Y position.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - part slot added/updated
                  - 1
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/hardware/part_slot/{id}/':
    get:
      operationId: getPart_slot_id
      description: Get hardware model part slot by ID
      summary: Get Part Slot
      tags:
        - Hardware Models
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              part_slot:
                type: object
                properties:
                  hardware:
                    example: Manual Hardware Model
                  orientation:
                    example: 1
                  x_pos:
                    example: 11
                  hardware_id:
                    example: 190
                  partmodel:
                    example: Core i7-3770
                  partmodel_id:
                    example: 1
                  y_pos:
                    example: 4
                  id:
                    example: 1
                  slot_no:
                    example: 1  
                  location:
                    example: 1
                  width:
                    example: 1
                  height:
                    example: 1 
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deletePart_slot
      summary: Delete hardware model part slot
      description: >-
        This API is used to delete a hardware model part slot by ID
      tags:
        - Hardware Models
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: Part Slot ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'        
  /api/1.0/custom_fields/hardware/:
    put:
      operationId: putCustomfield_hardware
      description: This call adds a custom field to a hardware model
      summary: Custom fields
      tags:
        - Hardware Models
      parameters:
        - name: id
          required: true
          type: integer
          description: Hardware model ID.
          in: formData
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - Skynet
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/hardwares/:
    get:
      operationId: getHardwares_2
      description: This call gets information about hardware models
      summary: Get all
      tags:
        - Hardware Models
      parameters:
        - name: hardware_id
          type: integer
          in: query
          description: Hardware model ID.
        - $ref: '#/parameters/name'
        - name: physicalsubtype_id
          type: integer
          in: query
          description: Physical subtype ID.
        - name: physicalsubtype
          type: string
          in: query
          description: Physical subtype name.
        - name: size
          type: string
          in: query
          description: filter by exact size
        - name: blade_size_id
          type: integer
          in: query
          description: >-
            Blade size ID. <br>1 Full Height | 2 Half Height | 3 Double Half Height | 4 Double Full Height | 5 Quarter Height
        - name: blade_size
          type: string
          in: query
          enum:
            - 'full'
            - 'half'
            - 'double half'
            - 'double full'
            - 'quarter'
          description: Blade size
        - name: depth_id
          type: integer
          in: query
          description: 1 Full Depth | 2 Half Depth
        - name: depth
          type: string
          in: query
          description: half OR full
        - name: width_ratio_id
          type: integer
          in: query
          enum:
            - '2520'
            - '1260'
            - '840'
            - '630'
            - '504'
            - '420'
            - '360'
            - '315'
            - '280'
            - '252'
            - '126'
          description: Width ratio ID.
        - $ref: '#/parameters/width_ratio_get'
        - $ref: '#/parameters/part_no'
        - name: network_device
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a network switch.
        - name: blade_host
          type: string
          in: query
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a blade host.
        - name: watts
          type: integer
          in: query
          description: Filter by exact watts per PSU.
        - name: vendor_id
          type: integer
          in: query
          description: Hardware model vendor ID.
        - name: vendor
          type: string
          in: query
          description: Hardware model vendor name.
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - name: device_id
          type: integer
          in: query
          description: Filter by device ID.
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns. 
            For example, ?include_cols=name, hardware_id will only result in name, hardware_id.
            The following column names can be part of include_cols: hardware_id, name, type, part_number, watts, 
            specification_url, notes, blade_host, network_device, end_of_life_date, end_of_support_date, 
            add_ports_when_creating_device, last_changed, vendor, vendor_id, 
            front_image_id, front_image, back_image_id, back_image, size, depth, depth_id, 
            width_ratio, width_ratio_id, blade_size, blade_size_id, custom_fields
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              hardware_models:
                type: array
                items:
                  $ref: '#/definitions/HardwareModels'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postHardwares_2
      description: This call creates/updates information about hardware models
      summary: Create/update
      tags:
        - Hardware Models
      parameters:
        - name: name
          type: string
          in: formData
          description: >-
            The hardware model name. If hardware model with the name already exists, the existing hardware model is updated. If an existing hardware model based on hardware_id is found, the name will be updated.
        - name: hardware_id
          type: integer
          in: formData
          description: Hardware model ID.
        - name: physicalsubtype_id
          type: integer
          in: formData
          description: Hardware model type ID.
        - name: physicalsubtype
          type: string
          in: formData
          description: Hardware model type name. Use instead of physicalsubtype_id.
        - name: size
          type: string
          in: formData
          description: Size (in U, for non blade models).
        - name: depth_id
          type: integer
          in: formData
          description: 1 Full Depth | 2 Half Depth
        - name: depth
          type: string
          in: formData
          description: half OR full
        - name: width_ratio_id
          type: integer
          in: formData
          enum:
            - '2520'
            - '1260'
            - '840'
            - '630'
            - '504'
            - '420'
            - '360'
            - '315'
            - '280'
            - '252'
            - '126'
          description: Width ratio ID.
        - $ref: '#/parameters/width_ratio_post'
        - name: blade_size_id
          type: integer
          in: formData
          description: >-
            Blade size ID.<br>1 Full Height | 2 Half Height | 3 Double Half Height | 4 Double Full Height | 5 Quarter Height
        - name: blade_size
          type: string
          in: formData
          enum:
            - 'full'
            - 'half'
            - 'double half'
            - 'double full'
            - 'quarter'
          description: Blade size.
        - name: vendor_id
          type: integer
          in: formData
          description: Hardware model vendor ID.
        - name: vendor
          type: string
          in: formData
          description: Hardware model vendor name. Use instead of vendor_id.
        - $ref: '#/parameters/front_image_id'
        - $ref: '#/parameters/front_image'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - name: network_device
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a network switch.
        - name: blade_host
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> indicates if a device is a blade host.
        - name: add_ports_when_creating_device
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: <b>yes</b> if you want ports to be automatically created when a device is created from UI or API.
        - name: part_number
          type: string
          in: formData
          description: Part number.
        - name: watts
          type: integer
          in: formData
          description: Watts per PSU.
        - name: specification_url
          type: string
          in: formData
          description: Specification URL for the hardware model.
        - name: end_of_life_date
          type: string
          in: formData
          description: End of life date. YYYY-MM-DD format.
        - name: end_of_support_date
          type: string
          in: formData
          description: End of support date. YYYY-MM-DD format.
        - name: notes
          type: string
          in: formData
          description: Any notes about the hardware model.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                example:
                  - hardware model added or updated
                  - 1
                  - hardware_model
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/hardwares/{id}/:
    get:
      operationId: getHardwares_2_ID
      description: This call will get information about hardware models by the model ID
      summary: Get model by ID
      tags:
        - Hardware Models
      parameters:
        - name: hardware_id
          type: integer
          in: path
          description: Hardware model ID.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              models:
                type: array
                items:
                  $ref: '#/definitions/HardwareModels'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteHardwares_2
      summary: Delete hardware model
      description: >-
        This API is used to delete the hardware model with the hardware model ID
        supplied as the required argument
      tags:
        - Hardware Models
      parameters:
        - name: id
          in: path
          required: true
          description: Hardware Model ID
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/operatingsystems/:
    get:
      operationId: getOperatingSystems
      description: This call will get information about operating systems
      summary: Get all
      tags:
        - Operating Systems
      parameters:
        - name: name
          type: string
          in: query
          description: 'Filter by OS name'
        - name: manufacturer
          type: string
          in: query
          description: 'Filter by OS manufacturer'
        - name: category
          type: string
          in: query
          description: 'Filter by OS category (ie: Linux, Windows)'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              operatingsystems:
                type: array
                items:
                  $ref: '#/definitions/OperatingSystems'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postOperatingSystems
      description: This call will create/update information about operating systems
      summary: Create/update
      tags:
        - Operating Systems
      parameters:
        - name: name
          type: string
          description: name of the OS
          in: formData
        - $ref: '#/parameters/manufacturer_post'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/category_post'
        - $ref: '#/parameters/licensed_count_post'
        - $ref: '#/parameters/licensing_model'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Operating System added/updated
                  - 77
                  - ESX6.0
                  - false
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/operatingsystems/{id}/':
    get:
      operationId: getOperatingSystemsID
      summary: Get specific
      description: >-
        Retrieve detailed information about a specific OS by os id.
      tags:
        - Operating Systems
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: The ID of the OS to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              operatingsystems:
                type: array
                items:
                  $ref: '#/definitions/OperatingSystems'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteOperatingSystems
      summary: Delete
      description: >-
        This API is used to delete the operating system with the operating
        system id supplied as the required argument
      tags:
        - Operating Systems
      parameters:
        - name: id
          in: path
          required: true
          description: opearting system id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/device_os/:
    get:
      operationId: getDevice_os
      summary: Get by devices
      description: >-
        This call will get information about operating systems and the devices
        they're discovered on. This call will also return device os Data Normalization results, if available.
      tags:
        - Operating Systems
      parameters:
        - name: id
          type: integer
          in: query
          description: ID of Device OS to retrieve
        - $ref: '#/parameters/os'
        - $ref: '#/parameters/os_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 598
              device_os:
                type: array
                items:
                  $ref: '#/definitions/Device_os'
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDevice_os
      description: >-
        This call will create or update operating systems and assign them to a device
      summary: Create/Update on device
      tags:
        - Operating Systems
      parameters:
        - name: device_os_id
          type: string
          in: formData
          description: >-
            ID of specific operating system.<br><br>Use this parameter to change an existing device OS - or -  use the device_id parameter AND the os parameter.<br><br>Do not use this parameter to create a new device OS.
        - name: device_id
          type: string
          in: formData
          description: ID of the device the OS is assigned to.<br><br>Use this parameter AND the os parameter to create a new device OS.
        - name: device
          type: string
          in: formData
          description: Name of device the OS is assigned to.
        - name: os_id
          type: string
          in: formData
          description: ID of OS
        - $ref: '#/parameters/os_post'
        - $ref: '#/parameters/osver'
        - $ref: '#/parameters/osverno'
        - $ref: '#/parameters/license_key'
        - $ref: '#/parameters/count_in_licensing'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - device_os added/updated
                  - 9
                  - Production-server (Ubuntu Linux 16.04 (64-bit))
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/device_os/{device_os_id}/':
    get:
      operationId: getDevice_osID
      summary: Get specific
      description: >-
        Retrieve detailed information about a specific Device OS by device os id.
      tags:
        - Operating Systems
      parameters:
        - name: device_os_id
          type: integer
          in: path
          required: true
          description: The ID of the Device OS to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              total_count:
                example: 1
              device_os:
                type: array
                items:
                  type: object
                  properties:
                    discovered_license_key:
                      example: ''
                    os_id:
                      example: 2
                    osver:
                      example: ''
                    dont_change_via_api:
                      example: 'no'
                    device:
                      example: 'NHCTS003'
                    device_os_id:
                      example: 2
                    license_key:
                      example: ''
                    osverno:
                      example: ''
                    os:
                      example: Microsoft Windows Server 2008 STD
                    id:
                      example: 2
                    count_in_licensing:
                      example: 'yes'
                    device_id:
                      example: 120
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteDevice_os
      summary: Delete
      description: >-
        This API is used to delete the operating system with the operating
        system id supplied as the required argument
      tags:
        - Operating Systems
      parameters:
        - name: device_os_id
          in: path
          description: ID of specific operating system
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 9
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/os_eoleos/:
    get:
      operationId: getOS_eol_eos
      summary: Get OS EOL/EOS
      description: Get Operating Systems End of Life / End of Support Information
      tags:
        - Operating Systems
      parameters:
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              values:
                type: array
                items:
                  type: object
                  properties:
                    version:
                      example: 4.4.0-53-generic
                    id:
                      example: 1
                    os_id:
                      example: 21
                    end_of_life:
                      example: '2017-11-15'
                    end_of_support:
                      example: '2017-11-30'
                    os:
                      example: Ubuntu
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postOS_eol_eos
      description: >-
        This call will create or update an Operating Systems End of Life / End of Support
      summary: Create/Update OS EOL/EOS
      tags:
        - Operating Systems
      parameters:
        - name: os
          in: formData
          type: string
          description: Name of Operating System. 'os' or 'os_id' is REQUIRED when creating a new OS EOL/EOS.
        - name: os_id
          in: formData
          type: integer
          description: ID of Operating System. 'os' or 'os_id' is REQUIRED when creating a new OS EOL/EOS.
        - name: version
          in: formData
          type: string
          description: Version of OS
        - name: end_of_life_date
          in: formData
          type: string
          description: End of Life date. Format is YYYY-MM-DD
        - name: end_of_support_date
          in: formData
          type: string
          description: End of Support date. Format is YYYY-MM-DD
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                example:
                  - O/S EOL/EOS successfully added/updated
                  - 9
                  - Ubuntu / None
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/os_eoleos/{ID}/':
    delete:
      operationId: deleteOS_eol_eos
      summary: Delete OS EOL/EOS
      description: >-
        This API is used to delete the an Operating Systems End of Life / End of Support
      tags:
        - Operating Systems
      parameters:
        - name: id
          in: path
          type: integer
          description: ID of OS EOS/EOL
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 9
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/pdu_models/:
    get:
      operationId: getPdu_models
      description: Get method retrieves all PDU models
      summary: Get all models
      tags:
        - PDU
      parameters:
        - name: name
          type: string
          in: query
          description: filter by model name
        - name: pdu_model_id
          type: integer
          in: query
          description: filter by pdu model id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              pdu_models:
                type: array
                items:
                  $ref: '#/definitions/Pdu_models'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPdu_models
      description: Create/update PDU model
      summary: Create/update model
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/pdu_model_id'
        - name: name
          in: formData
          description: Name of the PDU model you want to create or update
          type: string
        - $ref: '#/parameters/manufacturer_post'
        - $ref: '#/parameters/size'
        - $ref: '#/parameters/sequential_numbering_for_ports'
        - $ref: '#/parameters/depth'
        - $ref: '#/parameters/imgfile_id'
        - $ref: '#/parameters/imgfile'
        - $ref: '#/parameters/back_image_id'
        - $ref: '#/parameters/back_image'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/width_ratio_post'
        - $ref: '#/parameters/post_power_units_type'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU Model added/updated
                  - 16
                  - APC24G
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/pdu_models/{ID}:
    delete:
      operationId: deletePDU_model
      summary: Delete a PDU model
      description: This API is used to delete the PDU model with the PDU model id supplied as the required argument
      tags:
        - PDU
      parameters:
        - name: id
          in: path
          type: integer
          description: ID of the PDU model
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 9
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/power_unit_models/:
    $ref: '#/paths/~1api~11.0~1pdu_models~1'
  /api/1.0/power_unit_models/{id}:
    $ref: '#/paths/~1api~11.0~1pdu_models~1{ID}'
  /api/1.0/pdu_models/ports/:
    post:
      operationId: postPdu_modelsPorts
      description: >-
        Create PDU model ports. Required parameters: <ul><li>pdu_model_id
        <b>OR</b> pdu_model_name</li> <li>count</li> <li>type</li></ul>
      summary: Create ports
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/pdu_model_id'
        - $ref: '#/parameters/pdu_model_name'
        - name: count
          type: integer
          description: number of ports
          required: true
          in: formData
        - name: type
          type: string
          required: true
          description: >-
            Type of the port. If not already existing, a new port type is
            created.
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU Model updated
                  - 16
                  - APC24G
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.1/power_unit_models/ports/:
    get:
      operationId: getPdu_models_ports
      description: Get all ports in a given power unit model
      summary: Get model ports
      tags:
        - PDU
      parameters:
        - name: power_unit_model_id
          type: integer
          description: id of the power unit model
          in: query
      responses:
        '200':
          description: Returns the list of ports in the given power unit model
          schema:
            type: array
            items:
              $ref: '#/definitions/PowerUnitModelPort'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPdu_modelsSinglePort
      description: >-
        Create/Update a single PDU Model Port. <br><br>Required parameters: <ul><li>power_unit_model_id</li>
        <li>port_name</li> <li>port_type</li></ul>
      summary: Create/Update a model port
      tags:
        - PDU
      parameters:
        - name: power_unit_model_id
          type: integer
          description: PDU ID
          in: formData
          required: true
        - name: id
          type: integer
          description: >- 
            id of the power unit model port, setting this will try to update the port with this id.
            An error will be thrown if no port exists with the given id.
          in: formData
        - name: port_name
          type: string
          description: >- 
            Port name. If a port with this name already exists then it'll be updated,
            else a new port will be created.
          required: true
          in: formData
        - name: port_type
          type: string
          required: true
          description: >-
            Type of port. If the type does not already exist, a new port type is
            created.
          in: formData
        - name: x_pos
          type: integer
          description: X Position of port
          in: formData
        - name: y_pos
          type: integer
          description: Y Position of port
          in: formData
        - name: orientation
          type: integer
          enum:
            - 1
            - 2
          description: >-
            Orientation of the port.
            <ul>
              <li>1 - Horizontal</li>
              <li>2 - Vertical</li>
            </ul>
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Power Unit Model Port added/updated
                  - 16
                  - APC24G
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.1/power_unit_models/ports/{id}/:
    delete:
      operationId: deletePdu_models_ports
      description: Delete the power unit model port with the given id
      summary: Delete a model port
      tags:
        - PDU
      parameters:
        - name: id
          type: integer
          description: id of the power unit model port
          in: path
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/general_delete_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/pdus/:
    get:
      operationId: getPDUs
      description: Get method to retrieve all PDUs
      summary: Get all PDUs
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/get_power_units_id'
        - $ref: '#/parameters/get_power_units_name'
        - $ref: '#/parameters/get_power_units_type'
        - $ref: '#/parameters/get_power_units_pdu_model_id'
        - $ref: '#/parameters/get_power_units_pdu_model'
        - $ref: '#/parameters/get_power_units_building_id'
        - $ref: '#/parameters/get_power_units_room_id'
        - $ref: '#/parameters/get_power_units_rack_id'
        - $ref: '#/parameters/get_power_units_serial_no'
        - $ref: '#/parameters/get_power_units_device_id'
        - $ref: '#/parameters/get_power_units_gateway_pdu_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/get_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPDUs
      description: This call will create a PDU
      summary: Create PDU
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/post_power_units_name'
        - $ref: '#/parameters/post_power_units_type'
        - $ref: '#/parameters/post_power_units_pdu_model_id'
        - $ref: '#/parameters/post_power_units_pdu_model'
        - $ref: '#/parameters/post_power_units_notes'
        - $ref: '#/parameters/post_power_units_rated_power'
        - $ref: '#/parameters/post_power_units_outlet_name'
        - $ref: '#/parameters/post_power_units_pdu_serial_no'
        - $ref: '#/parameters/post_power_units_device'
        - $ref: '#/parameters/post_power_units_serial_no'
        - $ref: '#/parameters/post_power_units_asset_no'
        - $ref: '#/parameters/post_power_units_storage_room_id'
        - $ref: '#/parameters/post_power_units_storage_room'
        - $ref: '#/parameters/post_power_units_object_category'
        - $ref: '#/parameters/post_power_units_new_object_category'
        - $ref: '#/parameters/post_power_units_gateway_pdu_id'
        - $ref: '#/parameters/post_power_units_gateway_pdu'
        - $ref: '#/parameters/post_power_units_tags'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/post_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putPDUs
      summary: Update PDU
      description: Put method to update a Power Unit. Either 'name' or 'pdu_id' is REQUIRED.
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/put_power_units_name'
        - $ref: '#/parameters/put_power_units_pdu_id'
        - $ref: '#/parameters/put_power_units_new_name'
        - $ref: '#/parameters/post_power_units_type'
        - $ref: '#/parameters/post_power_units_pdu_model_id'
        - $ref: '#/parameters/post_power_units_pdu_model'
        - $ref: '#/parameters/post_power_units_notes'
        - $ref: '#/parameters/post_power_units_rated_power'
        - $ref: '#/parameters/post_power_units_outlet_name'
        - $ref: '#/parameters/post_power_units_pdu_serial_no'
        - $ref: '#/parameters/post_power_units_device'
        - $ref: '#/parameters/post_power_units_serial_no'
        - $ref: '#/parameters/post_power_units_asset_no'
        - $ref: '#/parameters/post_power_units_storage_room_id'
        - $ref: '#/parameters/post_power_units_storage_room'
        - $ref: '#/parameters/post_power_units_object_category'
        - $ref: '#/parameters/post_power_units_new_object_category'
        - $ref: '#/parameters/post_power_units_gateway_pdu_id'
        - $ref: '#/parameters/post_power_units_gateway_pdu'
        - $ref: '#/parameters/post_power_units_tags'
        - $ref: '#/parameters/put_power_units_tags_remove'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/put_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/pdus/{ID}/':
    get:
      operationId: getPDUsID
      summary: Get specific PDU
      description: >-
        Retrieve detailed information about a specific PDU by PDU ID. This also
        includes end point connections
      tags:
        - PDU
      parameters:
        - name: ID
          in: path
          required: true
          description: The ID of the PDU to retrieve
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/get_power_unit_return_single'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deletePDUs
      summary: Delete a PDU
      description: >-
        This API is used to delete the pdu with the pdu id supplied as the
        required argument
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/delete_power_units_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/general_delete_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/pdus/rack/:
    post:
      operationId: postPdusRack
      description: This call will add/update PDUs in or around a Rack
      summary: Add/update in rack
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/pdu_id'
        - $ref: '#/parameters/pdu'
        - name: rack_id
          type: integer
          description: >-
            This is the ID of the rack. It can be obtained from from Infrastructure > DataCenter > Racks
          in: formData
        - $ref: '#/parameters/building_post'
        - $ref: '#/parameters/where'
        - $ref: '#/parameters/start_at'
        - $ref: '#/parameters/orientation_pdu'
        - $ref: '#/parameters/x_pos'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU Rack Info successfully added/edited.
                  - 19
                  - a3cpdu001
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/pdus/rack/{id}/':
    delete:
      operationId: deletePdusRack
      summary: Delete from rack
      description: >-
        This API is used to delete the power unit from the rack it's in.
        (The power unit itself is not deleted)
      tags:
        - PDU
      parameters:
        - name: id
          in: path
          format: query
          required: true
          description: ID of Power Unit in rack
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: true
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/pdus/ports/:
    post:
      operationId: postPdusPorts
      summary: Update ports w/ no names
      description: >-
        Assign a name and/or an object (see below) objects to a pdu port. It
        will pick the lowest port id # available (or first available port in
        order created)
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/parent_pdu_id'
        - $ref: '#/parameters/parent_pdu'
        - name: port_type
          type: string
          description: Verbose name of the port type. Must exist already.
          in: formData
          required: true
        - name: device
          type: string
          in: formData
          description: Name of the device the port points to.
        - name: device_id
          type: string
          in: formData
          description: ID of the device the port points to
        - name: pdu_id
          type: string
          in: formData
          description: ID of the PDU the port points to
        - name: asset_id
          type: string
          in: formData
          description: ID of the asset the port points to
        - name: name
          type: string
          in: formData
          description: 'PDU port name, typically the PDU port number when autodiscovered.'
        - $ref: '#/parameters/outlet_name'
        - $ref: '#/parameters/watts'
        - $ref: '#/parameters/psu_label'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU port detailed added successfully.'365' test
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putPdusPorts
      summary: Update ports w/ names
      description: >-
        This call requires the name of an existing pdu port and enables you to
        add new or edit existing values for that particular PDU port. Requires
        parent_pdu_id or parent_pdu
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/parent_pdu_id'
        - $ref: '#/parameters/parent_pdu'
        - name: name
          required: true
          description: name of the existing PDU port
          in: formData
          type: string
        - $ref: '#/parameters/outlet_name'
        - name: device
          type: string
          in: formData
          description: Name of the device the port points to.
        - name: device_id
          type: string
          in: formData
          description: ID of the device the port points to
        - name: pdu_id
          type: string
          in: formData
          description: ID of the PDU the port points to
        - name: asset_id
          type: string
          in: formData
          description: ID of the asset the port points to
        - $ref: '#/parameters/watts'
        - $ref: '#/parameters/psu_label'
        - name: clear
          type: string
          in: formData
          enum:
            - yes
            - no
          description: Dissociate objects (device, asset, pdu) from the pdu port. yes/no
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU port detailed edited successfully.'366'2'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/power_units/:
    get:
      operationId: getPower_units
      description: Get method to retrieve all Power Units
      summary: Get all Power Units
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/get_power_units_id'
        - $ref: '#/parameters/get_power_units_name'
        - $ref: '#/parameters/get_power_units_type'
        - $ref: '#/parameters/get_power_units_pdu_model_id'
        - $ref: '#/parameters/get_power_units_pdu_model'
        - $ref: '#/parameters/get_power_units_building_id'
        - $ref: '#/parameters/get_power_units_room_id'
        - $ref: '#/parameters/get_power_units_rack_id'
        - $ref: '#/parameters/get_power_units_serial_no'
        - $ref: '#/parameters/get_power_units_device_id'
        - $ref: '#/parameters/get_power_units_gateway_pdu_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/get_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPdu_models
      description: Create Power Units
      summary: Create Power Unit
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/post_power_units_name'
        - $ref: '#/parameters/post_power_units_type'
        - $ref: '#/parameters/post_power_units_pdu_model_id'
        - $ref: '#/parameters/post_power_units_pdu_model'
        - $ref: '#/parameters/post_power_units_notes'
        - $ref: '#/parameters/post_power_units_rated_power'
        - $ref: '#/parameters/post_power_units_outlet_name'
        - $ref: '#/parameters/post_power_units_pdu_serial_no'
        - $ref: '#/parameters/post_power_units_device'
        - $ref: '#/parameters/post_power_units_serial_no'
        - $ref: '#/parameters/post_power_units_asset_no'
        - $ref: '#/parameters/post_power_units_storage_room_id'
        - $ref: '#/parameters/post_power_units_storage_room'
        - $ref: '#/parameters/post_power_units_object_category'
        - $ref: '#/parameters/post_power_units_new_object_category'
        - $ref: '#/parameters/post_power_units_gateway_pdu_id'
        - $ref: '#/parameters/post_power_units_gateway_pdu'
        - $ref: '#/parameters/post_power_units_tags'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/post_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putPower_units
      description: Put method to update a Power Unit. Either 'name' or 'pdu_id' is REQUIRED.
      summary: Update Power Unit
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/put_power_units_name'
        - $ref: '#/parameters/put_power_units_pdu_id'
        - $ref: '#/parameters/put_power_units_new_name'
        - $ref: '#/parameters/post_power_units_type'
        - $ref: '#/parameters/post_power_units_pdu_model_id'
        - $ref: '#/parameters/post_power_units_pdu_model'
        - $ref: '#/parameters/post_power_units_notes'
        - $ref: '#/parameters/post_power_units_rated_power'
        - $ref: '#/parameters/post_power_units_outlet_name'
        - $ref: '#/parameters/post_power_units_pdu_serial_no'
        - $ref: '#/parameters/post_power_units_device'
        - $ref: '#/parameters/post_power_units_serial_no'
        - $ref: '#/parameters/post_power_units_asset_no'
        - $ref: '#/parameters/post_power_units_storage_room_id'
        - $ref: '#/parameters/post_power_units_storage_room'
        - $ref: '#/parameters/post_power_units_object_category'
        - $ref: '#/parameters/post_power_units_new_object_category'
        - $ref: '#/parameters/post_power_units_gateway_pdu_id'
        - $ref: '#/parameters/post_power_units_gateway_pdu'
        - $ref: '#/parameters/post_power_units_tags'
        - $ref: '#/parameters/put_power_units_tags_remove'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/put_power_unit_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/power_units/{id}/':
    get:
      operationId: getPower_unitsID
      summary: Get specific Power Unit
      description: >-
        Retrieve detailed information about a specific Power Unit by ID. This also
        includes end point connections
      tags:
        - PDU
      parameters:
        - name: ID
          in: path
          required: true
          description: The ID of the Power Unit to retrieve
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/get_power_unit_return_single'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deletePower_units
      description: Delete method to delete a Power Unit
      summary: Delete a Power Unit
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/delete_power_units_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/general_delete_return'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/power_units/ports/:
    post:
      operationId: postPower_unitsPorts
      summary: Update ports w/ no names
      description: >-
        Assign a name and/or an object (see below) objects to a power unit port. It
        will pick the lowest port id # available (or first available port in
        order created)
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/parent_pdu_id'
        - $ref: '#/parameters/parent_pdu'
        - name: port_type
          type: string
          description: Verbose name of the port type. Must exist already.
          in: formData
          required: true
        - name: device
          type: string
          in: formData
          description: Name of the device the port points to.
        - name: device_id
          type: string
          in: formData
          description: ID of the device the port points to
        - name: pdu_id
          type: string
          in: formData
          description: ID of the PDU the port points to
        - name: asset_id
          type: string
          in: formData
          description: ID of the asset the port points to
        - name: name
          type: string
          in: formData
          description: 'PDU port name, typically the PDU port number when autodiscovered.'
        - $ref: '#/parameters/outlet_name'
        - $ref: '#/parameters/watts'
        - $ref: '#/parameters/psu_label'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU port detailed added successfully.'365' test
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putPower_unitsPorts
      summary: Update ports w/ names
      description: >-
        This call requires the name of an existing pdu port and enables you to
        add new or edit existing values for that particular Power Unit port. Requires
        parent_pdu_id or parent_pdu
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/parent_pdu_id'
        - $ref: '#/parameters/parent_pdu'
        - name: name
          required: true
          description: name of the existing PDU port
          in: formData
          type: string
        - $ref: '#/parameters/outlet_name'
        - name: device
          type: string
          in: formData
          description: Name of the device the port points to.
        - name: device_id
          type: string
          in: formData
          description: ID of the device the port points to
        - name: pdu_id
          type: string
          in: formData
          description: ID of the PDU the port points to
        - name: asset_id
          type: string
          in: formData
          description: ID of the asset the port points to
        - $ref: '#/parameters/watts'
        - $ref: '#/parameters/psu_label'
        - name: clear
          type: string
          in: formData
          enum:
            - yes
            - no
          description: Dissociate objects (device, asset, pdu) from the Power Unit port. yes/no
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PDU port detailed edited successfully.'366'2'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/power_units/rack/:
    post:
      operationId: postPower_unitsRack
      description: This call will add/update Power Units in or around a Rack
      summary: Add/update in rack
      tags:
        - PDU
      parameters:
        - $ref: '#/parameters/pdu_id'
        - $ref: '#/parameters/pdu'
        - name: rack_id
          type: integer
          description: >-
            This is the ID of the rack. It can be obtained from from Infrastructure > DataCenter > Racks
          in: formData
        - $ref: '#/parameters/building_post'
        - $ref: '#/parameters/where'
        - $ref: '#/parameters/start_at'
        - $ref: '#/parameters/orientation_pdu'
        - $ref: '#/parameters/x_pos'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Power Unit Rack Info successfully added/edited.
                  - 19
                  - a3cpdu001
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/power_units/rack/{ID}/':
    delete:
      operationId: deletePdusRack
      summary: Delete from rack
      description: >-
        This API is used to delete the power unit from the rack it's in.
        (The power unit itself is not deleted)
      tags:
        - PDU
      parameters:
        - name: id
          in: path
          format: query
          required: true
          description: ID of Power Unit in rack
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: true
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/pdu_infeeds/:
    get:
      operationId: getPduInfeeds
      description: Get method to retrieve all PDU Infeeds
      summary: Get all PDU Infeeds
      tags:
        - PDU
      parameters:
        - name: pdu_id
          in: query
          description: Retrieve all PDU Infeeds for PDU with specified pdu_id
          type: integer
        - name: id
          in: query
          description: Retrieve PDU Infeed with specified ID
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              total_count:
                example: 1
              offset:
                example: 0
              limit:
                example: 1000
              pdu_infeeds:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      example: 'phase 1'
                    active_power:
                      example: '70 Watts'
                    id:
                      example: 8
                    voltage:
                      example: '210 Volts'
                    power_draw:
                      example: '0.50 Amps'
                    pdu_id:
                      example: 7
                    power_factor:
                      example: '0.63'
                    rated_power:
                      example: '16.00 Amps'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putPduInfeed
      description: Update rated power and rated power units information for an existing PDU Infeed
      summary: Update PDU Infeed
      tags:
        - PDU
      parameters:
        - name: id
          type: integer
          in: formData
          required: true
          description: ID of the PDU Infeed
        - name: rated_power
          type: number
          format: float
          in: formData
          description: Rated power for the PDU Infeed. Must also supply rated_power_units when updating this value.
        - name: rated_power_units
          type: string
          in: formData
          description: Rated power units for the PDU Infeed. Supported values are - amps, A, watts, W. Must also supply rated_power when updating this value.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - 'PDU Infeed updated successfully'
                  - 4
                  - 'source1'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/pdu_infeeds/{ID}/':
    put:
      operationId: putPduInfeedID
      description: Update rated power and rated power units information for an existing PDU Infeed
      summary: Update PDU Infeed
      tags:
        - PDU
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: id of the PDU Infeed
        - name: rated_power
          type: number
          format: float
          in: formData
          description: Rated power for the PDU Infeed. Must also supply rated_power_units when updating this value.
        - name: rated_power_units
          type: string
          in: formData
          description: Rated power units for the PDU Infeed. Supported values are - amps, A, watts, W. Must also supply rated_power when updating this value.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - 'PDU Infeed updated successfully'
                  - 4
                  - 'source1'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/patch_panel/{ID}/':
    get:
      operationId: getPatch_panelID
      summary: Get specific
      description: >-
        Retrieve detailed information about a specific Patch Panel by Patch
        Panel ID. This also includes end point connections
      tags:
        - Patch Panels
      parameters:
        - name: ID
          in: path
          required: true
          description: The ID of the Patch Panel to retrieve
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Patch_panel'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'

  '/api/1.0/patch_panel_port/{ID}':
    get:
      operationId: getPatchPanelPortInfo
      summary: Get specific 
      description: >-
        Retrieve detailed information about a specific Patch Panel port by patch panel port ID.
      tags:
        - Patch Panels
      parameters:
        - name: port_id
          in: path
          description: ID of the port
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
              $ref: '#/definitions/Patch_panel_port'          
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/patch_panel_ports/{patch_panel_id}/':
    get:
      operationId: getPatch_panel_portsPatch_panel_id
      description: Retrieves patch panel ports for specified patch panel
      summary: Get all ports
      tags:
        - Patch Panels
      parameters:
        - name: patch_panel_id
          in: path
          required: true
          description: Patch panel id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              properties:
                name:
                  example: 1
                ppport_id:
                  example: 481
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/patch_panel_ports/:
    post:
      operationId: postPatch_panel_portsPatch_panel_id
      summary: Update ports
      description: >-
        Update Patch Panel Ports. Requires the following parameters:
        <ul><li>patch_panel_id <b>OR</b> patch_panel</li> <li>number</li>
      tags:
        - Patch Panels
      parameters:
        - name: patch_panel_id
          in: formData
          description: Patch panel id
          type: string
        - $ref: '#/parameters/patch_panel'
        - name: number
          in: formData
          required: true
          description: Port number for the patch panel
          type: string
        - $ref: '#/parameters/module_slot'
        - $ref: '#/parameters/mac_id'
        - name: mac_address
          in: formData
          type: string
          description: mac_address or hwaddress
        - $ref: '#/parameters/switchport_id'
        - name: switch
          in: formData
          type: string
          description: Must be used with switchport if switchport_id is not used.
        - name: switchport
          in: formData
          type: string
          description: Must be used with switch if switchport_id is not used.
        - name: patch_panel_port_id
          in: formData
          type: string
          description: Or use front_patch_panel and front_port combination
        - $ref: '#/parameters/front_patch_panel_id'
        - $ref: '#/parameters/front_patch_panel'
        - $ref: '#/parameters/front_port'
        - $ref: '#/parameters/label_post'
        - $ref: '#/parameters/obj_label1'
        - $ref: '#/parameters/obj_label2'
        - $ref: '#/parameters/back_connection_id'
        - $ref: '#/parameters/back_switchport_id'
        - $ref: '#/parameters/back_switch'
        - name: back_switchport
          in: formData
          type: string
          description: >-
            Use if back connection type is switch - use in combination with
            back_switch.
        - $ref: '#/parameters/back_patch_panel_id'
        - $ref: '#/parameters/back_patch_panel'
        - $ref: '#/parameters/back_port'
        - $ref: '#/parameters/clear_front'
        - $ref: '#/parameters/clear_back'
        - $ref: '#/parameters/cable_type'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              properties:
                msg:
                  example:
                    - patch port details edited successfully.
                    - 490
                    - 'DC1R1PP1 : 10 (testtest)'
                code:
                  example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/patch_panel_models/:
    get:
      operationId: getPatch_panel_models
      description: Retrieves all patch panel models
      summary: Get all models
      parameters:
        - name: name
          type: string
          in: query
          description: filter by name
      tags:
        - Patch Panels
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              properties:
                module_position:
                  example: horizontal
                name:
                  example: m1
                numbering_direction:
                  example: left-right
                numbering_start_location:
                  example: top-left
                patch_panel_model_id:
                  example: 1
                type:
                  example: Modular
                type_id:
                  example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPatch_panel_models
      description: >-
        Create/update patch panel model. Required parameters:
        <ul><li>patch_panel_model_id <b>OR</b> name</li>
      summary: Create model
      tags:
        - Patch Panels
      parameters:
        - $ref: '#/parameters/patch_panel_model_id'
        - name: name
          in: formData
          description: Name of the patch panel model you want to edit or create.
          type: string
        - $ref: '#/parameters/manufacturer_post'
        - name: type
          type: string
          in: formData
          enum:
            - singluar
            - modular
          default: singluar
        - name: port_type
          description: name of the port type. created if it doesn't exist already
          in: formData
          type: string
        - $ref: '#/parameters/paired_ports'
        - $ref: '#/parameters/imgfile_id'
        - $ref: '#/parameters/imgfile'
        - $ref: '#/parameters/number_of_ports'
        - $ref: '#/parameters/number_of_ports_in_row'
        - $ref: '#/parameters/module_position'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Patch Panel Model added/updated
                  - 12
                  - 48-port-ethernet
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/patch_panel_module_models/:
    get:
      operationId: getPatch_panel_module_models
      description: Retrieves all patch panel module models
      summary: Get all module models
      tags:
        - Patch Panels
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              properties:
                name:
                  example: r1
                number_of_ports:
                  example: 12
                number_of_ports_in_row:
                  example: 6
                patch_panel_module_model_id:
                  example: 1
                port_type:
                  example: Fiber LC
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPatch_panel_module_models
      description: >-
        Create/update patch panel module model. Required parameters:
        <ul><li>patch_panel_module_model_id <b>OR</b> name</li>
      summary: Create/update module model
      tags:
        - Patch Panels
      parameters:
        - $ref: '#/parameters/patch_panel_module_model_id'
        - name: name
          in: formData
          description: Name of the patch panel module model you want to edit or create.
          type: string
        - name: port_type
          description: name of the port type. created if it doesn't exist already
          in: formData
          type: string
        - $ref: '#/parameters/paired_ports'
        - $ref: '#/parameters/number_of_ports'
        - $ref: '#/parameters/number_of_ports_in_row'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Patch Panel Module Model added/updated
                  - 2
                  - 6-port-module
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/parts/:
    get:
      operationId: getParts
      description: Get all parts - introduced in version 5.7.2
      summary: Get all
      tags:
        - Parts Management
      parameters:
        - name: type
          type: string
          description: >-
            type of the partmodel, cpu, mem, hdd for CPU, memory, and Harddisk.
            For others it must match the type name for part model
          in: query
        - name: device
          type: string
          description: name of the device where part is checked out to
          in: query
        - name: device_id
          type: string
          description: id of the device where part is checked out to
          in: query
        - $ref: '#/parameters/device_serial'
        - name: room
          type: string
          description: name of the room where part is checked out to
          in: query
        - name: room_id
          type: string
          description: id of the room where part is checked out to
          in: query
        - $ref: '#/parameters/part_id'
        - $ref: '#/parameters/partmodel_id'
        - name: serial_no
          type: string
          description: serial number of the part
          in: query
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - name: rack_id
          type: string
          description: id of the rack where part is checked out to
          in: query
        - name: rack
          type: string
          description: name of the rack where part is checked out to
          in: query
        - name: asset_id
          type: string
          description: id of the asset where part is checked out to
          in: query
        - $ref: '#/parameters/asset_no'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - $ref: '#/parameters/tags'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              parts:
                type: array
                items:
                  $ref: '#/definitions/Parts'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postParts
      description: Create/update parts - introduced in version 5.7.2
      summary: Create/update
      tags:
        - Parts Management
      parameters:
        - name: type
          type: string
          description: >-
            Part type - new or existing. Must be hdd or harddisk to update HDD
            model parameters (hddsize, hddtype, etc)
          in: formData
        - name: name
          type: string
          description: name of part model - new or existing
          in: formData
        - name: count
          type: integer
          description: number of parts
          in: formData
        - name: part_id
          type: string
          description: Use for updating existing part
          in: formData
        - name: partmodel_id
          type: string
          in: formData
        - name: serial_no
          type: string
          in: formData
          description: >-
            Use for updating existing part. Caution: will update first matching
            serial if multiple parts with same serial exist. Use part_id or
            partmodel_id to uniquely identify.
        - $ref: '#/parameters/firmware'
        - $ref: '#/parameters/assignment'
        - name: room
          in: formData
          type: string
          description: Room name - required if assigned to room
        - name: device
          in: formData
          type: string
          description: Room name - required if assigned to device
        - name: asset_id
          in: formData
          type: integer
          description: Asset name - required if assigned to asset
        - $ref: '#/parameters/date_changed'
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/cores'
        - $ref: '#/parameters/cpuspeed'
        - $ref: '#/parameters/threads'
        - $ref: '#/parameters/ramsize'
        - $ref: '#/parameters/ramtype'
        - $ref: '#/parameters/ramspeed'
        - $ref: '#/parameters/hddsize'
        - $ref: '#/parameters/hddtype'
        - $ref: '#/parameters/hddrpm'
        - $ref: '#/parameters/raid_type'
        - $ref: '#/parameters/raid_group'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Part added/updated
                  - 24
                  - 'Hard Disk WesternDigitalRe250, wd250abyz, PN: wdre250s'
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/parts/{id}/':
    delete:
      operationId: deleteParts
      summary: Delete
      description: >-
        This API is used to delete the part with the part id supplied as the
        required argument
      tags:
        - Parts Management
      parameters:
        - name: id
          in: path
          required: true
          description: part id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/partmodels/:
    get:
      operationId: getPartmodels
      description: Get all part models - introduced in version 5.7.2
      summary: Get all models
      tags:
        - Parts Management
      parameters:
        - $ref: '#/parameters/name'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Partmodels'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPartmodels
      description: Create/update part models - introduced in version 5.7.2
      summary: Create/update models
      tags:
        - Parts Management
      parameters:
        - name: type
          type: string
          description: >-
            Part type - new or existing. Must be hdd or harddisk to update HDD
            model parameters (hddsize, hddtype, etc)
          in: formData
        - name: name
          type: string
          description: name of part model - new or existing
          in: formData
        - $ref: '#/parameters/description_post'
        - name: partmodel_id
          type: string
          in: formData
          description: use for updating existing part model
        - $ref: '#/parameters/modelno'
        - $ref: '#/parameters/partno'
        - $ref: '#/parameters/manufacturer_post'
        - $ref: '#/parameters/media_type'
        - $ref: '#/parameters/connector_type'
        - $ref: '#/parameters/length'
        - $ref: '#/parameters/connectivity'
        - name: total_count
          in: formData
          type: string
        - $ref: '#/parameters/location'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/cores'
        - $ref: '#/parameters/cpuspeed'
        - $ref: '#/parameters/threads'
        - $ref: '#/parameters/ramsize'
        - $ref: '#/parameters/ramtype'
        - $ref: '#/parameters/ramspeed'
        - $ref: '#/parameters/hddsize'
        - $ref: '#/parameters/hddtype'
        - $ref: '#/parameters/hddrpm'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - PartModel added/updated
                  - 17
                  - 'Riser Card intel 123456, PN: 123456'
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/partmodels/{id}/':
    delete:
      operationId: deletePartmodels
      summary: Delete model
      description: >-
        This API is used to delete the part model with the part model id
        supplied as the required argument
      tags:
        - Parts Management
      parameters:
        - name: id
          in: path
          required: true
          description: part model id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/part/:
    put:
      operationId: putCustom_FieldPart
      description: Create/update custom fields for parts
      summary: Custom fields
      tags:
        - Parts Management
      parameters:
        - name: id
          in: formData
          description: ID of part.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'CPU NA, PN: 1000base-lx-sfp'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/partmodel/:
    put:
      operationId: putCustom_FieldPartmodel
      description: Create/update custom fields for Part Models
      summary: Custom fields for models
      tags:
        - Parts Management
      parameters:
        - name: id
          in: query
          description: ID of part.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'  
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 12
                  - '42'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/purchases/:
    get:
      operationId: getPurchases
      description: Get method retrieves all purchases
      summary: Get all
      tags:
        - Purchasing
      parameters:
        - $ref: '#/parameters/purchase_id'
        - $ref: '#/parameters/order_no'
        - name: vendor
          type: string
          description: Vendor name
          in: query
        - $ref: '#/parameters/cost_center'
        - name: building
          type: string
          description: Associated building
          in: query
        - $ref: '#/parameters/completed'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Purchases'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postPurchases
      summary: Create/update
      description: >-
        Create/update purchases. Required parameters: <ul><li>order_no
        <b>OR</b> purchase_id</li>
      tags:
        - Purchasing
      parameters:
        - name: order_no
          in: formData
          type: string
          description: order number / name for the purchase. Can be new or existing.
        - name: purchase_id
          type: string
          in: formData
          description: Can be used instead of order_no to update existing purchase
        - $ref: '#/parameters/line_type'
        - $ref: '#/parameters/line_no'
        - $ref: '#/parameters/vendor_post'
        - $ref: '#/parameters/cost'
        - $ref: '#/parameters/po_date'
        - name: cost_center
          type: string
          in: formData
        - name: building
          type: string
          in: formData
          description: Associated building
        - name: completed
          enum:
            - 'yes'
            - 'no'
          type: string
          in: formData
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/line_name'
        - $ref: '#/parameters/line_quantity'
        - $ref: '#/parameters/line_cost'
        - $ref: '#/parameters/line_cost_center'
        - $ref: '#/parameters/line_customer'
        - $ref: '#/parameters/line_item_type'
        - $ref: '#/parameters/line_asset_ids'
        - $ref: '#/parameters/line_start_date'
        - $ref: '#/parameters/line_end_date'
        - $ref: '#/parameters/line_frequency'
        - $ref: '#/parameters/line_renew_date'
        - $ref: '#/parameters/line_cancel_policy'
        - $ref: '#/parameters/line_contract_type'
        - $ref: '#/parameters/line_service_type'
        - $ref: '#/parameters/line_contract_id'
        - $ref: '#/parameters/line_notes'
        - $ref: '#/parameters/line_completed'
        - $ref: '#/parameters/line_devices'
        - $ref: '#/parameters/line_device_serial_nos'
        - $ref: '#/parameters/line_device_asset_nos'
        - $ref: '#/parameters/line_circuits'
        - $ref: '#/parameters/line_circuit_ids'
        - $ref: '#/parameters/line_building_ids'
        - $ref: '#/parameters/line_certificate_ids'
        - $ref: '#/parameters/line_software_ids'
        - $ref: '#/parameters/line_room_ids'
        - $ref: '#/parameters/line_rack_ids'
        - $ref: '#/parameters/line_part_ids'
        - $ref: '#/parameters/line_device_os_ids'
        - $ref: '#/parameters/line_devices_remove'
        - $ref: '#/parameters/groups_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - purchase updated successfully
                  - 11
                  - thisisatest
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/purchases/{id}/':
    delete:
      operationId: deletePurchases
      summary: Delete
      description: >-
        This API is used to delete the purchase order with the purchase order id
        supplied as the required argument
      tags:
        - Purchasing
      parameters:
        - name: id
          in: path
          required: true
          description: purchase id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/purchases/{purchase-id}/attachments/':             
    get:
      operationId: getAllPurchaseAttachments
      summary: Get attachments by purchase ID
      description: >-
       Retrieve all file attachments for a specific purchase using purchase id.<br>
       Returns a zip file of all the attachments associated with the purchase with the specified ID in URL.<br>
       Note that this implementation of Swagger does not support file download - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X GET \<br>
       URL/api/1.0/purchases/3/attachments \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI='
      tags:
        - Purchasing
      parameters:
        - name: purchase-id
          type: integer
          in: formData
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_download:
                example: attachments_archive.6646-2020-01-24.zip
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/purchase/:
    put:
      operationId: putCustom_FieldPurchases
      description: Create/update custom fields for purchases
      summary: Custom fields
      tags:
        - Purchasing
      parameters:
        - name: order_no
          in: formData
          type: string
          description: order number / name for the purchase. Can be new or existing.
          required: true
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 623
                  - PO1234
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/lifecycle_event/:
    get:
      operationId: getLifecycle_event
      description: Retrieve Life Cycle Events using filters - introduced in version 5.5.7
      summary: Get All
      tags:
        - Asset-Device Life Cycle
      parameters:
        - name: type
          type: string
          description: filter by existing event type
          in: query
        - name: device
          type: string
          description: filter by device name
          in: query
        - name: asset
          type: string
          description: filter by asset name
          in: query
        - name: asset_id
          type: string
          in : query
          description: filter by asset ID
        - $ref: '#/parameters/enduser'
        - $ref: '#/parameters/date_gt'
        - $ref: '#/parameters/date_lt'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              lifecycle_events:
                type: array
                items:
                  properties:
                    date:
                      example: '2013-09-05T04:00:00Z'
                    asset_id:
                      example: 224
                    asset_name:
                      example: heart of gold
                    enduser:
                      example: H. Dent
                    notes:
                      example: R&D Dev Server
                    type:
                      example: Purchased
                    id:
                      example: 4
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putLifecycle_event
      summary: Create/Update
      description: >-
        Use this API to create/update life cycle events for devices or assets. Use
        device, device_id, asset_no, serial_no, or asset_id to indicate the
        device or asset the event is to be created for
      tags:
        - Asset-Device Life Cycle
      parameters:
        - name: id
          type: string
          in: formData
          description: ID of lifecycle event. Required if updating an existing lifecycle event.
        - name: date
          type: string
          description: in YYYY-MM-DD or<br>YYYY-MM-DD HH:MM format.
          in: formData
          required: true
        - name: new_date
          type: string
          in: formData
          description: New date to overwrite current date of lifecycle event.
        - name: type
          type: string
          required: true
          in: formData
          description: must be defined already in device42.
        - name: device
          type: string
          in: formData
          description: Name of the device that the event is for
        - name: device_id
          type: string
          in: formData
          description: ID of the device that the event is for
        - name: asset_no
          type: string
          in: formData
          description: Asset number of the device that the event is for
        - name: serial_no
          type: string
          in: formData
          description: Serial number of the device that the event is for
        - name: asset_id
          type: string
          in: formData
          description: ID of the asset that the event is for
        - name: fully_qualified_username
          type: string
          in: formData
          description: Fully Qualified Username
        - name: tags
          type: string
          in: formData
          description: Comma separated list of tags to add to a lifecycle event.
        - name: tags_remove
          type: string
          in: formData
          description: Comma separated tags to remove for a lifecycle event
        - name: enduser_id
          type: string
          in: formData
          description: ID of the enduser. If enduser_id is provided then user and fully_qualified_name parameters are ignored
        - $ref: '#/parameters/user'
        - $ref: '#/parameters/notes_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - lifecycle event added successfully.
                  - 3
                  - 'Installed on 2013-02-02 17:15:00'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/lifecycle_event/{id}/:
    get:
      operationId: getLifecycle_eventID
      description: Retrieve detailed information about a specific Lifecycle Event.
      summary: Get Specific
      tags:
        - Asset-Device Life Cycle
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: The ID of the Lifecycle Event
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              lifecycle_event:
                type: object
                properties:
                  tags:
                    example: []
                  notes:
                    example: ""
                  date:
                    example: "2021-11-15T20:37:32Z"
                  device:
                    example: "0013548C-4308-4929-AF43-06D6B25D1B8C/marco-vm-azure"
                  type:
                    example: "Inventoried"
                  id:
                    example: 1

        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteLifecycle_event
      summary: Delete
      description: >-
        This API is used to delete a specific Lifecycle Event
      tags:
        - Asset-Device Life Cycle 
      parameters:
        - name: ID
          in: path
          required: true
          description: The ID of the Lifecycle Event
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/vrfgroup/:
    get:
      operationId: getIPAMvrfgroup
      description: Get method retrieves all VRF Groups
      summary: Get all VRF groups
      tags:
        - IPAM
      parameters:
        - name: cloud_infra_id
          type: id
          description: id of the cloud account
          in: query
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              total_count:
                example: 84
              offset:
                example: 0
              limit:
                example: 1000
              vrfgroup:
                type: array
                items:
                  type: object
                  properties:
                    buildings:
                      example: []
                    description:
                      example: Infrastructure
                    tags:
                      example: []
                    groups:
                      example: ''
                    id:
                      example: 1
                    cloud_infra_id:
                      example: 2
                    custom_fields:
                      example: []
                    name:
                      example: Infrastructure Services
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAMvrfgroup
      description: Create/update VRF group
      summary: Create/update VRF group
      tags:
        - IPAM
      parameters:
        - name: name
          in: formData
          required: true
          description: Name of the VRF Group you want to add edit or create
          type: string
        - name: description
          in: formData
          type: string
        - name: groups
          in: formData
          description: >-
            If multitenancy is on, admin groups that have access to this object
            are specified here, e.g. Prod_East:no,Corp:yes specifies that the
            admin groups for this object are Prod_East with view only permission
            and Corp with change permission. If this parameter is present with
            no value, all groups are deleted.
          type: string
        - name: buildings
          in: formData
          description: list of building names for the VRF Group
          type: string
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              msg:
                example:
                  - VRF Group added/updated
                  - 1
                  - blue
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/vrfgroup/{id}/':
    put:
      operationId: putIPAMvrfgroup
      description: Update a specific VRF group
      summary: Update VRF group
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          required: true
          description: VRF Group ID
          type: string
        - name: name
          in: formData
          description: Name of the VRF Group
          type: string
        - name: description
          in: formData
          type: string
        - name: groups
          in: formData
          description: >-
            If multitenancy is on, admin groups that have access to this object
            are specified here, e.g. Prod_East:no,Corp:yes specifies that the
            admin groups for this object are Prod_East with view only permission
            and Corp with change permission. If this parameter is present with
            no value, all groups are deleted.
          type: string
        - name: buildings
          in: formData
          description: list of building names for the VRF Group
          type: string
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              msg:
                example:
                  - VRF Group added/updated
                  - 3
                  - green
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteIPAMvrfgroupId
      summary: Delete VRF group
      description: >-
        This API is used to delete the vrf group with the vrf group id supplied
        as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          required: true
          description: VRF Group ID
          type: string
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/vrfgroup/:
    put:
      operationId: putIPAMCustomFIvrfgroup
      summary: VRF group custom fields
      description: >-
        Create/update custom fields for VRF groups. Required parameters:
        <ul><li>name <b>OR</b> ID</li> <li>key</li>
      tags:
        - IPAM
      parameters:
        - name: name
          type: string
          in: formData
          description: Required if ID not present
        - name: id
          type: string
          in: formData
          description: Required if name not present
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 1
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/subnet/:
    put:
      operationId: putIPAMCustomFIsubnet
      description: Create/update custom fields for subnets
      summary: Subnet custom fields
      tags:
        - IPAM
      parameters:
        - name: network
          type: string
          in: formData
          description: Network IP
          required: true
        - name: mask_bits
          type: string
          in: formData
          required: true
        - name: vrf_group
          type: string
          in: formData
          description: VRF group name
          required: true
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2681
                  - 9.0.0.0/8
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/ip_address/:
    put:
      operationId: putIPAMCustomFIip_address
      description: Create/update custom fields for IP addresses
      summary: IP address custom fields
      tags:
        - IPAM
      parameters:
        - name: ip_address
          type: string
          in: formData
          description: IP address
          required: true
        - name: subnet_id
          type: string
          in: formData
          description: Subnet ID
          required: true
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 13545
                  - 9.0.0.1
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/switchport/:
    put:
      operationId: putIPAMCustomFIswitchport
      summary: Switch port custom fields
      description: >-
        Create/update switch port custom fields.
        Required parameters: <ul><li>id <b>OR</b> port <b>AND</b>
        device_name</li> <li>key</li>
      tags:
        - IPAM
      parameters:
        - name: id
          type: string
          in: formData
          description: ID of the switchport
        - name: port
          type: string
          in: formData
          description: required if ID is not used
        - $ref: '#/parameters/device_name'
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - '1027'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/subnet_category/:
    get:
      operationId: getIPAMsubnetcategory
      description: Get method retrieves all subnet categories
      summary: Get all subnet categories
      tags:
        - IPAM
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                description:
                  example: ''
                id:
                  example: 1
                groups:
                  example: 'AccessToBlue:yes'
                name:
                  example: East Region
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAMsubnetcategory
      summary: Create subnet category
      description: Create subnet category
      tags:
        - IPAM
      parameters:
        - name: name
          in: formData
          required: true
          description: Name of the Subnet Category you want to add edit or create
          type: string
        - name: description
          in: formData
          type: string
        - name: is_it_default
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: >-
            Defaults to no. Only one category can be yes. If yes, this is the
            subnet category to use if none specified in an API or autodiscovery
            update.
        - name: groups
          in: formData
          description: >-
            If multitenancy is on, admin groups that have access to this object
            are specified here, e.g. Prod_East:no,Corp:yes specifies that the
            admin groups for this object are Prod_East with view only permission
            and Corp with change permission. If this parameter is present with
            no value, all groups are deleted.
          type: string
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putIPAMsubnetcategory
      description: Update a specific subnet category
      summary: Update subnet category
      tags:
        - IPAM
      parameters:
        - name: name
          in: formData
          required: true
          description: Name of the Subnet Category
          type: string
        - name: description
          in: formData
          type: string
        - name: is_it_default
          in: formData
          description: >-
            yes or no. Defaults to no. Only one category can be yes. If yes,
            this is the subnet category to use if none specified in an API or
            autodiscovery update.
          type: string
          enum:
            - 'yes'
            - 'no'
        - name: groups
          in: formData
          description: >-
            If multitenancy is on, admin groups that have access to this object
            are specified here, e.g. Prod_East:no,Corp:yes specifies that the
            admin groups for this object are Prod_East with view only permission
            and Corp with change permission. If this parameter is present with
            no value, all groups are deleted.
          type: string
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              msg:
                example:
                  - Subnet category added/updated
                  - 3
                  - blue
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/subnet_category/{id}/':
    delete:
      operationId: deleteIPAMsubnetcategory
      summary: Delete subnet category
      description: >-
        This API is used to delete the subnet category with the subnet category
        id supplied as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          required: true
          description: Subnet category id
          type: integer
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/subnets/:
    get:
      operationId: getIPAMsubnets
      description: Get all subnets - Filter parameters are below
      summary: Get all subnets
      tags:
        - IPAM
      parameters:
        - name: name
          type: string
          description: name of the subnet
          in: query
        - $ref: '#/parameters/vrf_group_id'
        - $ref: '#/parameters/vrf_group'
        - $ref: '#/parameters/parent_subnet_id_get'
        - $ref: '#/parameters/parent_subnet'
        - $ref: '#/parameters/customer_id_get'
        - $ref: '#/parameters/customer'
        - $ref: '#/parameters/subnet_id'
        - name: mask_bits
          in: query
          description: mask bits
          type: string
        - $ref: '#/parameters/mask_bits_lt'
        - $ref: '#/parameters/mask_bits_gt'
        - $ref: '#/parameters/description'
        - $ref: '#/parameters/range_begin'
        - $ref: '#/parameters/range_end'
        - $ref: '#/parameters/gateway'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - $ref: '#/parameters/service_level'
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/category_id'
        - $ref: '#/parameters/vlan_id'
        - name: network
          description: Optional
          type: string
          in: query
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              limit:
                example: 2
              offset:
                example: 0
              subnets:
                type: array
                items:
                  $ref: '#/definitions/IPAMsubnets'
              total_count:
                example: 32
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAMsubnets
      description: Create/update subnets
      summary: Create/update subnet
      tags:
        - IPAM
      parameters:
        - name: network
          in: formData
          type: string
          description: 'Required for creation, cannot be modified after subnet creation.'
          required: true
        - name: mask_bits
          in: formData
          description: Cannot be modified after subnet creation
          required: true
          type: string
        - $ref: '#/parameters/vrf_group_id_post'
        - $ref: '#/parameters/vrf_group_post'
        - name: name
          in: formData
          type: string
        - name: type
          type: string
          in: formData
          enum:
            - Static
            - DHCP
            - Reserved
        - name: type_id
          in: formData
          type: integer
          enum:
            - 1
            - 2
            - 3
        - name: service_level
          in: formData
          type: string
          description: The service level name for the subnet.
        - name: service_level_id
          in: formData
          type: integer
          description: Service level ID for the subnet.
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/gateway_post'
        - $ref: '#/parameters/range_begin_post'
        - $ref: '#/parameters/range_end_post'
        - $ref: '#/parameters/parent_vlan_id'
        - $ref: '#/parameters/parent_subnet_id'
        - $ref: '#/parameters/customer_id'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/subnets_type'
        - $ref: '#/parameters/assigned'
        - $ref: '#/parameters/allocated'
        - $ref: '#/parameters/auto_add_ips'
        - $ref: '#/parameters/category_post'
        - name: category
          in: formData
          type: string
          description: The name of an subnet category to assign to the subnet. Use for initial insert.
        - name: new_category
          in: formData
          description: Use new_category to update/replace an existing subnet category.
          type: string
        - name: category_id
          in: formData
          type: string
          description: ID of the subnet category to assign to the subnet. Use for initial insert.
        - name: new_category_id
          in: formData
          description: Use new_category_id to update/replace an existing subnet category ID.
          type: string
        - $ref: '#/parameters/parent_subnet_name'
        - $ref: '#/parameters/parent_subnet_with_mask'
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              msg:
                example:
                  - >-
                    subnet successfully
                    added/updated'5'NetComm-10.1.2.0/24(Infrastructure Services)
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putIPAMsubnets
      description: Create/update specific subnet
      summary: Create/update specific subnet
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          type: integer
          description: 'ID of the subnet.'
          required: true
        - $ref: '#/parameters/vrf_group_id_post'
        - $ref: '#/parameters/vrf_group_post'
        - name: name
          in: formData
          type: string
        - name: type
          type: string
          in: formData
          enum:
            - Static
            - DHCP
            - Reserved
        - name: type_id
          in: formData
          type: integer
          enum:
            - 1
            - 2
            - 3
        - name: service_level
          in: formData
          type: string
          description: The service level name for the subnet.
        - name: service_level_id
          in: formData
          type: integer
          description: Service level ID for the subnet.
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/gateway_post'
        - $ref: '#/parameters/range_begin_post'
        - $ref: '#/parameters/range_end_post'
        - $ref: '#/parameters/parent_vlan_id'
        - $ref: '#/parameters/parent_subnet_id'
        - $ref: '#/parameters/customer_id'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/subnets_type'
        - $ref: '#/parameters/assigned'
        - $ref: '#/parameters/allocated'
        - $ref: '#/parameters/auto_add_ips'
        - $ref: '#/parameters/category_post'
        - $ref: '#/parameters/category_id_post'
        - $ref: '#/parameters/parent_subnet_name'
        - $ref: '#/parameters/parent_subnet_with_mask'
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              msg:
                example:
                  - subnet successfully added/updated
                  - 345
                  - Finance Group PCs-3.3.3.0/24
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/subnets/{subnet_id}/':
    get:
      operationId: getIPAM_subnet_id
      summary: Get subnet by ID
      description: Get method retrieves subnet with the specified subnet id
      tags:
        - IPAM
      parameters:
        - name: subnet_id
          type: integer
          in: path
          required: true
          description: Subnet Id
      responses:
        '200':
          description: The above command returns the same output as Get All Subnets above
          schema:
            $ref: '#/definitions/IPAMsubnets'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteIPAMsubnets
      summary: Delete subnet
      description: >-
        This API is used to delete the subnet with the subnet id supplied as the
        required argument
      tags:
        - IPAM
      parameters:
        - name: subnet_id
          in: path
          description: subnet id
          type: integer
          required: true
        - name: merge_associated
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: yes/no<br>If the subnet has a parent, merge child subnets and IPs into the parent.<br>IPs without a parent subnet are deleted.
      responses:
        '200':
          description: 'The above command returns JSON structured like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/subnets/customer_id/{customer_id}/':
    get:
      operationId: getIPAM_customer_id
      description: Get method retrieves all subnets by customer ID
      summary: Get all subnets by customer
      tags:
        - IPAM
      parameters:
        - name: customer_id
          type: integer
          in: path
          required: true
          description: Customer Id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                mask_bits:
                  example: 24
                name:
                  example: NetComm
                network:
                  example: 10.1.2.0
                subnet_id:
                  example: 5
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/subnets/create_child/:
    post:
      operationId: postIPAM_subnets_create_child
      description: >-
        Create child subnet. Required parameters: <ul><li>mask_bits</li>
        <li>parent_subnet_id <b>OR</b> vrf_group <b>OR</b> vrf_group_id</li>
      summary: Create child subnet
      tags:
        - IPAM
      parameters:
        - name: mask_bits
          required: true
          in: formData
          description: e.g. 24
          type: string
        - name: parent_subnet_id
          in: formData
          type: string
          description: >-
            ID of the parent subnet. Can be obtained via /api/api/1.0/subnets/
            or Tools > Export > Subnet. Required if vrf_group and vrf_group_id
            are not present.
        - name: vrf_group
          description: >-
            Name of the VRF group. Required if parent_subnet_id or vrf_group_id
            are not present.
          type: string
          in: formData
        - name: vrf_group_id
          type: string
          in: formData
          description: >-
            ID of the VRF group. Required if parent_subnet_id or vrf_group are
            not present.
        - $ref: '#/parameters/parent_mask_bits'
        - name: ipv6
          in: formData
          description: Required if creating an ipv6 subnet
          type: string
        - name: network
          in: formData
          type: string
        - name: subnet_id
          in: formData
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              subnet_id:
                example: 14
              mask_bits:
                example: '25'
              network:
                example: 10.1.2.128
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/vlans/:
    get:
      operationId: getIPAMvlans
      description: Get method retrieves all VLANs
      summary: Get all VLANs
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/vlan_id'
        - $ref: '#/parameters/number'
        - name: name
          type: string
          in: query
          description: filter vlan with the provided name
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - name: description
          type: string
          in: query
          description: vlans with provide description (case insensitive exact match)
        - name: switch_ids
          type: string
          in: query
          description: csv list of switch ids to filter vlans by
        - name: switches
          type: string
          in: query
          description: csv list of switch names to filter vlans by
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              vlans:
                type: array
                items:
                  $ref: '#/definitions/IPAMvlans'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAMvlans
      description: Create VLANs
      summary: Create VLANs
      tags:
        - IPAM
      parameters:
        - name: number
          required: true
          in: formData
          description: VLAN
          type: integer
        - name: name
          type: string
          in: formData
          description: >-
            If left blank, name will be created as VLANxxxx, e.g. VLAN# 342 will
            be named VLAN0342
        - $ref: '#/parameters/description_post'
        - name: switch_ids
          type: string
          in: formData
          description: Comma separated values for switch id's
        - name: switches
          type: string
          in: formData
          description: Comma separated values for switch names.
        - name: tags
          type: string
          in: formData
          description: Add or update tags to a VLAN
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - vlan successfully added
                  - 22
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putIPAMvlans
      description: Create/update specific VLAN
      summary: Update VLAN
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          type: integer
        - $ref: '#/parameters/number_post'
        - name: name
          type: string
          in: formData
          description: >-
            If left blank, name will be created as VLANxxxx, e.g. VLAN# 342 will
            be named VLAN0342
        - name: switch_ids
          type: string
          in: formData
          description: Comma separated values for switch id's
        - name: switches
          type: string
          in: formData
          description: Comma separated values for switch names.
        - $ref: '#/parameters/clear_switches'
        - $ref: '#/parameters/clear_switch_ids'
        - name: tags
          type: string
          in: formData
          description: Add or update tags to a VLAN
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - vlan successfully updated'20'342
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/vlans/{id}/':
    get:
      operationId: getIPAMvlans_id
      summary: Get VLAN by ID
      description: Get method retrieves VLAN by specific VLAN ID
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/IPAMvlans'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putIPAMvlans
      description: Update VLANs by ID in URL
      summary: Update VLANs
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          required: true
          type: integer
        - $ref: '#/parameters/number_post'
        - name: name
          type: string
          in: formData
          description: >-
            If left blank, name will be created as VLANxxxx, e.g. VLAN# 342 will
            be named VLAN0342
        - name: switch_ids
          type: string
          in: formData
          description: Comma separated values for switch id's
        - name: switches
          type: string
          in: formData
          description: Comma separated list of switches for VLAN
        - name: tags
          type: string
          in: formData
          description: Add or update tags to a VLAN
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - vlan successfully updated'20'342
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteIPAMvlans
      summary: Delete VLAN
      description: >-
        This API is used to delete the VLAN with the VLAN ID supplied as the
        required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: vlan id (This is Device42 ID of the VLAN)
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/vlans/smart_merge_all/:
    post:
      operationId: postIPAMvlans_smart_merge_all
      description: Merge VLANs by number, name and switch_ids
      summary: Smart merge VLANs
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/number_post'
        - name: name
          type: string
          in: formData
          description: Only vlans with these names will be merged
        - $ref: '#/parameters/switch_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - all vlans merged successfully
                  - ''
                  - ''
                  - false
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/ips/:
    get:
      operationId: getIPAM_ips
      summary: Get all IPs
      description: >-
        Get method retrieves all IPs. (Added in v5.9.3) By default the limit is
        maximum 1000 IPs per call. Use total_count and offset if over 1000 IPs
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/subnet_id'
        - $ref: '#/parameters/subnet'
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/mac'
        - $ref: '#/parameters/available'
        - name: type
          type: string
          enum:
            - static
            - dhcp
            - reserved
          in: query
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/ip'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - $ref: '#/parameters/ip_id'
        - $ref: '#/parameters/label'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - $ref: '#/parameters/total_count'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ips:
                type: array
                items:
                  $ref: '#/definitions/IPAMips_1'
              limit:
                example: 4
              offset:
                example: 0
              total_count:
                example: 1004
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_ips
      description: Create/update IP addresses
      summary: Create/update IP Address
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/ipaddress'
        - name: label
          type: string
          in: formData
          description: >-
            label for the interface (tag still works for backward compatibility)
            Use the value 'd42_null' to clear up the content of the IP label.
        - name: subnet
          type: string
          in: formData
          description: >-
            name of the subnet you want to add the IP to. Must be unique. The
            reason it must be unique is to handle overlapping subnet ranges. The
            unique name enable selection of the correct subnet. Ignored if
            vrf_group_id or vrf_group is present in the arguments. Works only
            when adding a new IP. For existing IPs, use VRF group parameters.
        - $ref: '#/parameters/macaddress'
        - name: device
          type: string
          in: formData
          description: 'device name, can be new or existing'
        - name: resource_identifier
          type: string
          in: formData
          description: Identifier of an element (resource) to be added to the IP.
        - name: type
          type: string
          in: formData
          enum:
            - static
            - dhcp
            - reserved
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/vrf_group_id_post'
        - $ref: '#/parameters/vrf_group_post'
        - name: available
          in: formData
          enum:
            - 'yes'
            - 'no'
          type: string
        - $ref: '#/parameters/clear_all'
        - name: tags
          type: string
          in: formData
          description: >-
            Update IP address tags (note, different than the antiquated tag
            endpoint. See label parameter above)
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - ip added or updated'76'192.168.1.1
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/ips/:
    get:
      operationId: getIPAM_ips
      summary: Get all IPs (API 2.0)
      description: >-
        Get method retrieves all IPs. API 2.0 version. By default the limit is
        maximum 1000 IPs per call. Use total_count and offset if over 1000 IPs
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/subnet_id'
        - $ref: '#/parameters/subnet'
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/mac'
        - $ref: '#/parameters/available'
        - name: type
          type: string
          enum:
            - static
            - dhcp
            - reserved
          in: query
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/ip'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - $ref: '#/parameters/ip_id'
        - $ref: '#/parameters/label'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
        - $ref: '#/parameters/total_count'
        - name: is_shared
          type: string
          in: query
          enum:
            - yes
            - no
          description: filter by shared devices, will return all devices this IP is shared on.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ips:
                type: array
                items:
                  - $ref: '#/definitions/IPAMips_2_device'
                  - $ref: '#/definitions/IPAMips_2_resource'
              limit:
                example: 4
              offset:
                example: 0
              total_count:
                example: 1004
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_ips
      description: Create/update IP addresses (API 2.0)
      summary: Create/update IP Address (API 2.0)
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/ipaddress'
        - name: label
          type: string
          in: formData
          description: label for the interface
        - name: subnet
          type: string
          in: formData
          description: >-
            name of the subnet you want to add the IP to. Must be unique. The
            reason it must be unique is to handle overlapping subnet ranges. The
            unique name enable selection of the correct subnet. Ignored if
            vrf_group_id or vrf_group is present in the arguments. Works only
            when adding a new IP. For existing IPs, use VRF group parameters.
        - $ref: '#/parameters/macaddress'
        - name: type
          type: string
          in: formData
          enum:
            - static
            - dhcp
            - reserved
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/vrf_group_id_post'
        - $ref: '#/parameters/vrf_group_post'
        - name: available
          in: formData
          enum:
            - 'yes'
            - 'no'
          type: string
        - $ref: '#/parameters/clear_all'
        - name: tags
          type: string
          in: formData
          description: >-
            Update IP address tags
        - name: devices
          type: string
          in: formData
          description: >-
            A comma-separated list of device name(s) to be added 
            to the IP/Device mapping list of devices sharing this IP.
        - name: device_ids
          type: string
          in: formData
          description: >-
            A comma-separated list of device id(s) to be added 
            to the IP/Device mapping list of devices sharing this IP.
        - name: remove_devices
          type: string
          in: formData
          description: >-
            A comma-separated list of device name(s) to be removed 
            from the IP/Device mapping list of devices sharing this IP.
            A wildcard '*' can be specified to remove all device associations
            from this IP.
        - name: remove_device_ids
          type: string
          in: formData
          description: >-
            A comma-separated list of device ID(s) to be removed 
            from the IP/Device mapping list of devices sharing this IP.
            A wildcard '*' can be specified to remove all device associations
            from this IP.
        - name: locked
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: >-
            Lock/unlock the IP/Device mapping for the passed in <b>device_ids</b> or <b>devices</b>. If no devices are passed, this will take no action. If this value is not passed, it will default to <b>No</b> for new IP/Device mappings.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - ip added or updated'76'192.168.1.1
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/ips/{id}/':
    delete:
      operationId: deleteIPAM_ips
      summary: Delete IP address
      description: >-
        This API is used to delete an IP Address with the IP Address ID supplied
        as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: IP Address id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/clear_ip/':
    post:
      operationId: getIPAM_clearIp
      summary: Clear IP address
      description: >-
        This API is used to clear an IP Address attached to the devices with the IP Address ID supplied
        as the required argument
      tags:
        - IPAM
      parameters:
        - name: ip_id
          in: formData
          description: D42 ID of the IP
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              cleared:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/ips/subnet_id/{subnet_id}/':
    get:
      operationId: getIPAM_ips_subnet_id
      description: Get method retrieves all IPs by Subnet ID
      summary: Get all IPs in subnet
      tags:
        - IPAM
      parameters:
        - name: subnet_id
          in: path
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ips:
                type: array
                items:
                  type: object
                  properties:
                    available:
                      example: 'No'
                    device:
                      example: USNHCTVH001
                    ip:
                      example: 10.1.10.5
                    label:
                      example: ''
                    type:
                      example: Reserved
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/search/:
    get:
      operationId: getIPAM_search
      description: Find a specific IP Address
      summary: Find specific IP address
      tags:
        - IPAM
      parameters:
        - name: query
          in: query
          description: enter “ip”
          type: string
          required: true
        - name: string
          in: query
          description: the IP address to search for
          type: string
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              ips:
                type: array
                items:
                  type: object
                  properties:
                    available:
                      example: 'No'
                    device:
                      example: openstack-dev2
                    device_ids:
                      type: array
                      items:
                        type: integer
                      example: [177, 176]
                    device_names:
                      type: array
                      items:
                        type: string
                      example: ['fed33uq01tp9211', 'xenuq01tp9211']
                    ip:
                      example: 10.0.0.3
                    label:
                      example: br100
                    mac_address:
                      example: '00:30:48:63:41:b6'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/suggest_subnet/{id}/':
    get:
      operationId: getIPAM_suggest_subnet_Id
      description: Suggest next available subnet
      summary: Suggest next available subnet
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: ID of the parent subnet
          type: integer
          required: true
        - $ref: '#/parameters/mask_bits'
        - $ref: '#/parameters/subnet'
        - $ref: '#/parameters/subnet_id'
        - $ref: '#/parameters/vrf_group_id'
        - $ref: '#/parameters/vrf_group'
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/if_parent_assigned'
        - $ref: '#/parameters/if_parent_allocated'
        - $ref: '#/parameters/direct_suggestion_only'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ip:
                example: 10.16.0.0
              mask:
                example: 24
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/suggest_ip/:
    get:
      operationId: getIPAM_suggest_ip
      description: Suggest next available IP Address. Can be IPv4 or IPv6
      summary: Suggest next available IP
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/subnet_id'
        - $ref: '#/parameters/subnet'
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/vrf_group_id'
        - $ref: '#/parameters/vrf_group'
        - $ref: '#/parameters/reserve_ip'
        - $ref: '#/parameters/number'
        - name: mask_bits
          in: query
          description: mask bits
          type: string
        - name: start_range
          in: query
          type: string
          description: Will return an IP that is greater or equal to the value provided. If both start_range and end_range are used then this will only return IP's within this range.
        - name: end_range
          in: query
          type: string
          description: Will return an IP that is less or equal to the value provided. If both start_range and end_range are used then this will only return IP's within this range.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ip:
                example: 192.168.1.4
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/macs/:
    get:
      operationId: getIPAM_macs
      description: Get method retrieves all MAC Addresses
      summary: Get all MAC addresses
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/mac'
        - $ref: '#/parameters/device'
        - name: device_id
          in: query
          description: Device ID
          type: string
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 3
              macaddresses:
                type: array
                items:
                  $ref: '#/definitions/IPAMmacs'
              offset:
                example: 0
              total_count:
                example: 159
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_macs
      description: >-
        Create/update MAC addresses. Deprecated since v12.0. Please use
        /switchports/ for more detailed information.
      summary: Create/update MAC address
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/macaddress'
        - $ref: '#/parameters/port_name'
        - $ref: '#/parameters/override'
        - $ref: '#/parameters/vlan_id_post'
        - name: device
          type: string
          in: formData
          description: name of the device
        - name: port_id
          type: string
          in: formData
          description: >-
            Use this parameter or a combination of port and switch to specify
            the port.
        - name: port
          type: string
          in: formData
          description: >-
            Refers to the switchport name (not the interface name) - Use with
            parameter switch
        - name: switch
          type: string
          in: formData
          description: Refers to the device name of the switch
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - 'mac address successfully added/updated''41''00:14:bf:aa:46:18'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/macs/{id}/':
    get:
      operationId: getIPAM_macs_id
      description: Get method retrieves MAC address by specific MAC ID
      summary: Get MAC address by ID
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              device:
                type: object
                properties:
                  asset_no:
                    example: ''
                  device_id:
                    example: 365
                  device_url:
                    example: /api/api/1.0/devices/id/365/
                  name:
                    example: nh-win2k3r2-vm-
                  serial_no:
                    example: 6417-7755-9741-3863-0032-1151-91
                  type:
                    example: virtual
                  uuid:
                    example: 8ED6DBA8-2FC0-DF4B-B35B-12999E9AA851
              macaddress:
                example: '00:15:5d:0b:9e:02'
              macaddress_id:
                example: 61
              port:
                $ref: '#/definitions/IPAMmacs_port'
              port_name:
                example: Microsoft Virtual Machine Bus N
              vlan_id:
                example: 14
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteIPAM_macs_id
      summary: Delete MAC address
      description: >-
        This API is used to delete the MAC address with the MAC address id
        supplied as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          type: integer
          description: Mac address id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/switchports/:
    get:
      operationId: getIPAM_switchports
      description: Get method retrieves all switch ports
      summary: Get all switch ports
      tags:
        - IPAM
      parameters:
        - name: switch_id
          description: ID of the network device port is on
          type: string
          in: query
        - name: include_cols
          type: string
          in: query
          description: >-
            A comma separated list of attributes of the switchport that is only returnable when explicitly specified. 
            Options are primary_vlan, primary_vlan_id, speed, name, mtu, port_type, and full_path_list.
        - $ref: '#/parameters/switch2_id'
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 3
              offset:
                example: 0
              switchports:
                type: array
                items:
                  $ref: '#/definitions/IPAMmacs_port'
              total_count:
                example: 349
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_switchports
      description: >-
        Create/update switch ports. <b>port</b> or <b>hwaddress</b> are
        required
      summary: Create/update switch port
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/port_post'
        - name: port_id
          type: integer
          in: formData
          description: ID of port
        - $ref: '#/parameters/hwaddress'
        - $ref: '#/parameters/new_port'
        - $ref: '#/parameters/switch'
        - $ref: '#/parameters/description_post'
        - name: type
          type: string
          description: Must exist in device42 (add via UI)
          in: formData
        - $ref: '#/parameters/vlan_id_post'
        - $ref: '#/parameters/vlan'
        - $ref: '#/parameters/vlan_ids'
        - $ref: '#/parameters/vlans'
        - $ref: '#/parameters/clear_vlan_ids'
        - $ref: '#/parameters/clear_vlans'
        - $ref: '#/parameters/up'
        - $ref: '#/parameters/up_admin'
        - $ref: '#/parameters/count'
        - $ref: '#/parameters/remote_port_id'
        - $ref: '#/parameters/remote_device'
        - $ref: '#/parameters/remote_port'
        - $ref: '#/parameters/module'
        - $ref: '#/parameters/device2'
        - name: device
          type: string
          in: formData
          description: >-
            name of the direcly connected device (Added in v5.8.2) (used to
            connect remote port for legacy support)
        - $ref: '#/parameters/label_post'
        - name: tags
          in: formData
          type: string
          description: add or update tags to a switchport
        - $ref: '#/parameters/tags_remove'
        - $ref: '#/parameters/mtu'
        - name: name
          in: formData
          type: string
          description: add name of port
        - $ref: '#/parameters/speed'
        - $ref: '#/parameters/remote_port_clear'
        - $ref: '#/parameters/parent_port'
        - $ref: '#/parameters/parent_port_device'
        - $ref: '#/parameters/slave_ports'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - switchport successfully added/updated
                  - 73685
                  - child0
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/switchports/{id}/':
    delete:
      operationId: deleteIPAM_switchports
      summary: Delete switch port
      description: >-
        This API is used to delete the switch port with the switch port id
        supplied as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          type: integer
          description: Switch port id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/switch_templates/:
    get:
      operationId: getIPAM_switch_templates
      description: Get method retrieves all switch templates
      summary: Get all switch templates
      tags:
        - IPAM
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                switch_type:
                  example: Modular/Distributed (Single)
                template_id:
                  example: 2
                template_name:
                  example: m3
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/switches/:
    post:
      operationId: postIPAM_switches
      description: >-
        Create or update using Switch Templates. Required parameters:
        <ul><li>device <b>OR</b> device_id</li> <li>switch_template_id</li>
      summary: Add switch/switch ports w/ templates
      tags:
        - IPAM
      parameters:
        - name: device
          type: string
          in: formData
          description: >-
            Name of new or existing device. Existing device must be a network
            switch. If stacked switches, must be of type 'cluster'
        - name: device_id
          type: string
          in: formData
          description: >-
            ID of existing device. Existing device must be a network switch. IF
            stacked switches, must be of type 'cluster'
        - $ref: '#/parameters/switch_template_id'
        - $ref: '#/parameters/devices'
        - $ref: '#/parameters/device_ids'
        - $ref: '#/parameters/assets'
        - $ref: '#/parameters/asset_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - switchports successfully added '337' oxctrouter
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/tap_ports/:
    get:
      operationId: getIPAM_tap_ports
      description: Get method retrieves all TAP ports
      summary: Get TAP ports
      tags:
        - IPAM
      parameters:
        - name: id
          in: query
          description: id of the tap port
          type: integer
        - name: tap_id
          in: query
          type: integer
          description: TAP ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              tap_ports:
                type: array
                items:
                  $ref: '#/definitions/IPAMtap_ports'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_tap_ports
      description: >-
        Update TAP ports. Required parameters: <ul><li>id <b>OR</b>
        name</li>
      summary: Update TAP port.
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          description: Tap Port ID
          type: integer
        - name: name
          in: formData
          type: string
          description: Name of Tap Port
        - $ref: '#/parameters/label_post'
        - $ref: '#/parameters/monitor_direction'
        - $ref: '#/parameters/monitor_port_1_id'
        - $ref: '#/parameters/monitor_port_2_id'
        - $ref: '#/parameters/mirror_port_id'
        - $ref: '#/parameters/netport_id'
        - $ref: '#/parameters/patch_panel_port_id'
        - $ref: '#/parameters/port_capability'
        - $ref: '#/parameters/port_to_from_id'
        - name: port_type
          type: string
          description: 'Port Type name - RJ45, RJ11, Fiber SC, Fiber FC'
          in: formData
        - $ref: '#/parameters/port_type_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - TAP Port added/updated
                  - 7
                  - 1-Port 1
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/tap_module_models/:
    get:
      operationId: getIPAM_tap_module_models
      description: Get method retrieves all TAP module models
      summary: Get TAP Module Models
      tags:
        - IPAM
      parameters:
        - name: id
          in: query
          description: ID of Tap module model
          type: integer
        - name: name
          in: query
          type: string
          description: Name of Tap module model
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              offset:
                example: 0
              limit:
                example: 1000
              tap_module_models:
                type: array
                items:
                  type: object
                  properties:
                    ports:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            example: 1
                          single_strand:
                            example: false
                          port_capability:
                            example: Device
                          port_to_from:
                            example: Next
                          label:
                            example: X
                          port_type:
                            example: Fiber LC
                          tap_module_model_id:
                            example: 1
                          tap_module_model:
                            example: r1
                          monitor_direction:
                            example: 'null'
                          port_type_id:
                            example: 3
                    id:
                      example: 1
                    name:
                      example: Module 1
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_tap_module_models
      description: >-
        Create/update TAP module models
      summary: Create/update TAP Module Model
      tags:
        - IPAM
      parameters:
        - name: name
          in: formData
          type: string
          description: Name of Tap module model
          required: true
        - name: id
          in: formData
          type: integer
          description: ID of Tap module model. Used to update a Tap module model
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                type: array
                items:
                  example: [TAP Module Model added/updated, 1, Module 1, true, true]
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/tap_module_models/{id}/':
    delete:
      operationId: deleteIPAM_tap_module_models
      summary: Delete
      description: >-
        This API is used to delete the TAP module models with the ID supplied as the
        required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: ID of Tap module model
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '89'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/tap_module_model_ports/:
    get:
      operationId: getIPAM_tap_module_model_ports
      description: Get method retrieves all TAP module model ports
      summary: Get TAP Module Model Ports
      tags:
        - IPAM
      parameters:
        - name: id
          in: query
          description: ID of Tap module model port
          type: integer
        - name: tap_module_model_id
          in: query
          type: integer
          description: ID of Tap module model
        - name: tap_module_model
          in: query
          type: string
          description: Name of Tap module model
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              tap_module_model_ports:
                type: array
                items:
                  type: object
                  properties:
                    port_to_from:
                      example: Next
                    port_type_id:
                      example: 1
                    port_type:
                      example: RJ45
                    tap_module_model:
                      example: Port1
                    monitor_direction:
                      example: 2nd to 1st (Above 2 Device Capable Port)
                    id:
                      example: 1
                    port_capability:
                      example: Device
                    single_strand:
                      example: false
                    tap_module_model_id:
                      example: 1
                    label:
                      example: newPort
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_tap_module_model_port
      description: >-
        Create/update TAP module model port
      summary: Create/update TAP Module Model Port
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          type: integer
          description: ID of Tap module model port. Required if editing an existing tap module model port
        - name: tap_module_model_id
          in: formData
          type: integer
          description: ID of Tap module model. Required if creating a new Tap module model port.
        - name: port_type
          in: formData
          type: string
          description: Port Type. 'port_type' or 'port_type_id' is required if creating a new Tap module model port.
        - name: port_type_id
          in: formData
          type: integer
          description: Port Type ID. 'port_type' or 'port_type_id' is required if creating a new Tap module model port.
        - name: label
          in: formData
          type: string
          description: Label of Tap Module model port
        - name: single_strand
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Is there a single strand between ports
        - name: port_capability
          in: formData
          type: string
          description: To determine if the capability of the port is with a 'Device' or 'Monitor'
          enum:
            - 'Device'
            - 'Monitor'
        - name: port_to_from
          in: formData
          type: string
          description: To determine what position the port is in relation to another. 
          enum:
            - 'Next'
            - 'Above'
        - name: monitor_direction
          in: formData
          type: string
          description: >- 
            To determine the direction of the monitor. Options are as follows:
            1 = 1st to 2nd (Above 2 Device Capable Port)
            2 = 2nd to 1st (Above 2 Device Capable Port)
            3 = both ways (Above 2 Device Ports)
            4 = single strands each 1 way (Above 2 Device Ports)
          enum:
            - 1
            - 2
            - 3
            - 4
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                type: array
                items:
                  example: [TAP Module Model Port added/updated, 1, Port 1, true, true]
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/dns/records/:
    get:
      operationId: getIPAM_dns_records
      description: Get method retrieves all DNS records. (Added in v6.5.0)
      summary: Get DNS records
      tags:
        - IPAM
      parameters:
        - name: domain
          type: string
          description: name of the domain
          in: query
        - name: type
          type: string
          description: type of the record. e.g. AAAA
          in: query
        - name: content_contains
          type: string
          in: query
          description: Returns all records where the content contains the parameter value.
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/nameserver'
        - $ref: '#/parameters/content'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
        - $ref: '#/parameters/dns_zone'
        - $ref: '#/parameters/ttl'
        - $ref: '#/parameters/change_date'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 39
              records:
                type: array
                items:
                  $ref: '#/definitions/IPMdns_records'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_dns_records
      description: Create/update DNS records
      summary: Create DNS record
      tags:
        - IPAM
      parameters:
        - $ref: '#/parameters/domain'
        - name: type
          type: string
          required: true
          description: Type of record
          in: formData
          enum:
            - SOA
            - NS
            - MX
            - A
            - AAAA
            - CNAME
            - PTR
            - TXT
            - SPF
            - SRV
            - CERT
            - DNSKEY
            - DS
            - KEY
            - NSEC
            - RRSIG
            - HINFO
            - LOC
            - NAPTR
            - RP
            - AFSDB
            - SSHFP
        - name: nameserver
          type: string
          description: >-
            If you have overlapping domain names, this is required to
            differentiate between the two
          in: formData
        - name: name
          type: string
          description: Record value (e.g. www) use @ for blank.
          in: formData
        - name: content
          type: string
          description: >-
            Content of certificate. This parameter is used to find existing certificates to update. 
            If a certificate is found, you can use new_content to replace existing content. 
            If no certificate is found, this value will be used to create a new certificate. 
            Leading and trailing white spaces are ignored from this parameter.
          in: formData
        - name: content_raw
          type: string
          in: formData
          description: >-
            Similar to content parameter, but leading and trailing white spaces are not ignored. 
            This parameter is ignored if you use content parameter as well.
        - name: new_content
          type: string
          in: formData
          description: >- 
            This parameter is used to update the content of the certificate. 
            Any value provided here will always overwrite the existing content regardless of value passed in content or content_raw. 
            So, you can use content parameter for searching and new_content for updating. Leading and trailing white spaces are ignored from this parameter
        - name: new_content_raw
          type: string
          in: formData
          description: >- 
            Similar to new_content parameter, but leading and trailing white spaces are not ignored. 
            This parameter is ignored if you use new_content parameter as well.
        - $ref: '#/parameters/prio'
        - name: ttl
          type: string
          description: TTL Value
          in: formData
        - name: tags
          in: formData
          description: set tags for record
          type: string
        - name: tags_remove
          type: string
          description: remove tags for record
          in: formData
        - name: change_date
          type: integer
          in: formData
          description: How many days it takes for DNS change to occur
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - DNS record added/updated successfully '37' oxrouter
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/dns/records/{id}/':
    delete:
      operationId: deleteIPAM_dns_records
      summary: Delete DNS record
      description: >-
        This API is used to delete the DNS record with the DNS Record ID
        supplied as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: DNS Record id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/dns_records/:              
    put:
      operationId: putIPAMCustom_Fielddns_records
      description: Create/updated custom fields for DNS records
      summary: DNS record custom fields
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          description: D42 ID of the DNS record.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'd42Test field'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/dns/zones/:
    get:
      operationId: getIPAM__dns_zones
      description: Retrieves DNS zones
      summary: Get DNS zones
      tags:
        - IPAM
      parameters:
        - name: cloud_infra_id
          type: integer
          in: query
          description: Cloud infrastructure ID.
        - name: domain
          type: string
          in: query
          description: Name of dns domain.
        - name: id
          type: integer
          in: query
          description: ID of DNS Zone
        - name: nameserver
          type: string
          in: query
          description: IP Address or hostname of name server
        - name: tags
          type: string
          in: query
          description: Filter by tags
        - $ref: '#/parameters/tags_and'
        - name: include_cols
          type: string
          in: query
          description: Do not return all columns just the ones specified.
        - $ref: '#/parameters/custom_fields_and'
        - $ref: '#/parameters/custom_fields_or'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              total_count:
                example: 4
              offset:
                example: 0
              dns_zones:
                type: array
                items:
                  type: object
                  properties:
                    nameserver:
                      example: AWS Route53
                    cloud_infra_id:
                      example: 1
                    name:
                      example: lab.device42.net
                    custom_fields:
                      example: []
                    date_added:
                      example: "2021-08-04T20:17:40.103283Z"
                    id:
                      example: 3
                    vrf_group_name:
                      example: AWS
                    notes:
                      example: ""
                    vendor_custom_fields:
                      type: object
                      properties:
                        Owner:
                          example: D42
                        Name:
                          example: TestTag
                    date_updated:
                      example: "2021-08-18T19:24:32.660317Z"
                    tags:
                      example: [m2m, no]
                    vrf_group_id:
                      example: 12
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_dns_zones
      description: Create/update DNS zones
      summary: Create DNS zone
      tags:
        - IPAM
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: Name of DNS zone
        - name: nameserver
          type: string
          required: true
          in: formData
          description: IP Address/hostname of name server
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/vrf_group_post'
        - $ref: '#/parameters/vrf_group_id_post'
        - name: tags
          type: string
          description: Tags for grouping zone entries
          in: formData
        - name: tags_remove
          type: string
          description: remove tags from grouping zone entries
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                example:
                  - DNS Zone added/updated successfully
                  - 5
                  - DNS_host
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/dns/zones/{id}/':
     delete:
      operationId: deleteIPAM_dns_zones
      summary: Delete DNS zone
      description: >-
        This API is used to delete the DNS zone with the DNS zone ID
        supplied as the required argument
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: DNS zone id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/dns_zone/:              
    put:
      operationId: putIPAMCustom_Fielddns_zone
      description: Create/update custom fields for DNS zone
      summary: DNS zone custom fields
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          description: D42 ID of the DNS zone.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'd42Test field'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.1/dns/zones/:
    post:
      operationId: postIPAM_dns_zones
      description: Create/update DNS Zones
      summary: Create DNS Zone
      tags:
        - IPAM
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: Name of DNS zone
        - name: nameserver
          type: string
          required: true
          in: formData
          description: IP Address or hostname of name server
        - name: new_nameserver
          type: string
          in: formData
          description: Use to create a dns zone with new nameserver
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/vrf_group_post'
        - $ref: '#/parameters/vrf_group_id_post'
        - name: tags
          type: string
          description: Tags for grouping zone entries
          in: formData
        - name: tags_remove
          type: string
          description: remove tags from grouping zone entries
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              code:
                example: 0
              msg:
                example:
                  - DNS Zone added/updated successfully
                  - 5
                  - DNS_host
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/ipnat/:
    get:
      operationId: getIPAM_ipnat
      description: Get method retrieves all IP NAT records
      summary: Get all IP NAT records
      tags:
        - IPAM
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              ipnats:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      example: 1
                    ip_address_from:
                      example: 10.1.2.1
                    ip_address_to:
                      example: 42.42.42.42
                    name:
                      example: test
                    notes:
                      example: ''
                    two_way_relation:
                      example: 'False'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIPAM_ipnat
      description: Create IP NAT
      summary: Create IP NAT
      tags:
        - IPAM
      parameters:
        - name: name
          required: true
          description: Name of the NAT IP entry
          in: formData
          type: string
        - $ref: '#/parameters/ip_address_from'
        - $ref: '#/parameters/ip_address_from_end'
        - $ref: '#/parameters/source_port_start'
        - $ref: '#/parameters/source_port_end'
        - $ref: '#/parameters/ip_address_to'
        - $ref: '#/parameters/ip_address_to_end'
        - $ref: '#/parameters/target_port_start'
        - $ref: '#/parameters/target_port_end'
        - $ref: '#/parameters/two_way_relation'
        - $ref: '#/parameters/protocol'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/vrf_group_from'
        - $ref: '#/parameters/vrf_group_id_from'
        - $ref: '#/parameters/vrf_group_to'
        - $ref: '#/parameters/vrf_group_id_to'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - IP Nat added.'1'OX Global NAT
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putIPAM_ipnat
      description: Update IP NAT (Added in v7.0.0)
      summary: Update IP NAT
      tags:
        - IPAM
      parameters:
        - name: id
          in: formData
          description: ID of the NAT entry - Required if not in the URL
          type: string
          required: true
        - name: name
          description: Name of the NAT IP entry
          in: formData
          type: string
        - name: ip_address_from
          description: The external IP address
          type: string
          in: formData
        - name: ip_address_to
          type: string
          description: The internal IP address
          in: formData
        - $ref: '#/parameters/two_way_relation'
        - $ref: '#/parameters/notes_post'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - IP Nat updated.'1'OX Global NAT
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/ipnat/{id}':
    delete:
      operationId: deleteIPAM_ipnat
      description: This API is used to delete the IP NAT
      summary: Delete IP NAT
      tags:
        - IPAM
      parameters:
        - name: id
          in: path
          description: Name of Id
          required: true
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/appcomps/:
    get:
      operationId: getAppcomps
      description: Get Application Components
      summary: Get all
      tags:
        - Application Components
      parameters:
        - name: device_id
          type: string
          description: filter by id of device
          in: query
        - $ref: '#/parameters/device'
        - name: name
          type: string
          in: query
          description: Partial name to filter application components by
        - name: resource_id
          type: string
          in: query
          description: Filter by id of resource
        - name: category_id
          type: string
          in: query
          description: Filter by application category id
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns.
            For example: custs_affected, depends_on, depends_on_ids, dependent, dependent_ids, custom_fields, depend_device_id, device, device_preferred_alias, services, category_id, category, tags
        - name: category
          type: string
          in: query
          description: Filter by application category
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              appcomps:
                type: array
                items:
                  properties:
                    appcomp_id:
                      example: 33
                    appcomp_url:
                      example: /api/api/1.0/appcomps/33/
                    name:
                      example: Device42 Production
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAppcomps
      description: Create/Update application components
      summary: Create/update
      tags:
        - Application Components
      parameters:
        - name: name
          required: true
          type: string
          in: formData
          description: unique name for component
        - name: device
          required: false
          type: string
          in: formData
          description: device (name) that this component is dependent on
        - $ref: '#/parameters/group_owner'
        - $ref: '#/parameters/what'
        - $ref: '#/parameters/depends_on'
        - $ref: '#/parameters/dependents'
        - $ref: '#/parameters/groups_affected'
        - $ref: '#/parameters/device_reason'
        - $ref: '#/parameters/depends_on_reasons'
        - $ref: '#/parameters/appcomp_category'
        - $ref: '#/parameters/appcomp_categoryid'
        - name: tags_remove
          type: string
          in: formData
          description: Remove tags from application component
        - name: customer
          type: string
          in: formData
          description: Customer name
        - name: notes
          type: string
          in: formData
          description: Any additional notes
        - name: service_detail_ids
          type: string
          in: formData
          description: CSV list of Service Instances in the application component
        - name: software_detail_ids
          type: string
          in: formData
          description: CSV list of Software In Use ids in the application component
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of tags for the app component.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Application Component added or updated.'35'Corp Wiki
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/appcomps/{appcomp_id}/':
    get:
      operationId: getAppcompsAppcomp_id
      description: Get application components by ID
      summary: Get specific
      tags:
        - Application Components
      parameters:
        - name: appcomp_id
          in: path
          format: uuid
          description: Appcomp id
          type: string
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              appcomp_id:
                example: 15
              custom_fields:
                type: array
                items:
                  $ref: '#/definitions/Appcomps_Custom_fields'
              dependent:
                example: >-
                  mobileapp.com - prodserver-001, retailsite.com -
                  prodserver-031
              depends_on:
                example: Apache Tomcat Server
              device:
                example: USNHCTVMWPROD
              group_owner:
                example: US Infrastructure Operations
              groups_affected:
                example: ''
              name:
                example: VMWare Farm
              notes:
                example: ''
              what:
                example: ''
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteAppcomps
      summary: Delete
      description: >-
        This API is used to delete the application component with the
        application component id supplied as the required argument
      tags:
        - Application Components
      parameters:
        - name: appcomp_id
          in: path
          description: IP Address id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/appcomp/:
    put:
      operationId: putCustom_FieldAppcomp
      description: >-
        Custom fields for application components. 
        Required parameters: <ul><li>id <b>OR</b> name</li> <li>key</li>
      summary: Custom fields
      tags:
        - Application Components
      parameters:
        - name: id
          description: ID of application component
          type: string
          in: formData
        - name: name
          description: name of application component
          in: formData
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/show_on_chart'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated '35' Corp Wiki
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/appcomp_templates/':
    get:
      operationId: getAppCompTemplate
      summary: Get templates
      description: Get all application component templates
      tags:
        - Application Components
      parameters:
        - name: id
          type: string
          in: formData
          description: Filter by Application component template ID.
        - name: name
          type: string
          in: formData
          description: Filter by Application component template name.
        - name: enabled
          type: string
          in: formData
          enum:
            - "yes"
            - "no"
          description: Filter by the status application component template - yes/no
        - name: rule_type
          type: string
          in: formData
          enum:
            - "Windows"
            - "*Nix"
          description: Filter by Target environment of the template.<br> Windows |  *Nix
        - name: rule_type_id
          type: number
          in: formData
          enum:
            - 0
            - 1
          description: Filter by rule type id
        - name: service_id
          type: string
          in: formData
          description: Filter by ID of the associated service.
        - name: service_listening_port
          type: string
          in: formData
          description: Filter the services listening on this port.
        - name: app_name_pattern
          type: string
          in: formData
          description: Filter by name pattern. Pattern can contain the following variables:<br>%(device_name)s (this variable is required), %(discovered_listening_ip)s, %(listening_port)s, %(app_template_name)s. When <b>match_type</b> is Regular Expression, up to 4 more variables are available. %(regex_name)s represents full string match, %(regex_name1)s, %(regex_name2)s, %(regex_name3)s - represent first three group matches (if available).
        - name: related_services_listening_port
          type: string
          in: formData
          description: Filter Related services listening on this port.
        - name: config_file_location
          type: string
          in: formData
          description: Filter by config file location
        - name: traverse_subdirectories
          type: string
          in: formData
          enum:
            - "yes"
            - "no"
          description: Options yes/no
        - name: filename_filter
          type: string
          in: formData
          description: Filter by File name.
        - name: application_category_id 
          type: string
          in: formData
          description: Filter by Application component category id.
        - name: application_category_name
          type: string
          in: formData
          enum:
             - "Application Layer"
             - "Database"
             - "Load Balancer"
             - "Other"
             - "Web Server"
          description: Filter by Application component category name.
        - name: what
          type: string
          in: formData
          description: What is impacted by the Application?
        - name: customer_id
          type: string
          in: formData
          description: Filter by ID of the responsible customer or department for the application.
        - name: customer
          type: string
          in: formData
          description: Filter by Name of the responsible customer or department for the application.
        - name: last_changed_lt         
          type: string
          in: query
          description: Filter by last changed date less than (YYYY-MM-DD)
        - name: last_changed_gt        
          type: string
          in: query
          description: Filter by last changed date greater than (YYYY-MM-DD)
        - name: service_cmd_arg_match
          type: string
          in: formData
          description: Filter service instances on Path Args values with provided value. Value can either be text or regular expression, based on <b>match_type</b> value.
        - name: tags
          type: string
          in: formData
          description: Filter by tags
        - name: match_type
          type: string
          in: formData
          enum:
            - "Text"
            - "Regular Expression"
          description: Filter by type of match of command argument text.<br>Text | Regular Expression
        - name: match_type_id
          type: number
          in: formData
          enum:
            - 0
            - 1
          description: Filter by match type id.<br>0 for Text | 1 for Regular Expression
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              app_component_templates:
                type: array
                items:
                  properties:
                    traverse_subdirectories:
                      example: yes
                    config_file_location:
                      example: /opt/atlassian/jira/conf/
                    id:
                      example: 13
                    application_category_id:
                      example: 2
                    what:
                      example: Services
                    rule_type_id:
                      example: 1
                    rule_type:
                      example: Windows
                    application_category_name:
                      example: Application Layer
                    associated_software_id:
                       example: 53,   
                    related_services_ids:
                      example: 55,
                    service_listening_port:
                      example: 8080
                    app_name_pattern:
                      example: "%(device_name)s - %(app_template_name)s"
                    customer:
                      example: ABC LLC
                    name:
                      example: App-Comp-Template-T2
                    enabled:
                      example: yes
                    service_cmd_arg_match:
                      example: service
                    match_type:
                      example: Text
                    match_type_id:
                      example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAppCompTemplate
      summary: Create/update template
      description: Create/update an application component template
      tags:
        - Application Components
      parameters:
        - name: id
          type: integer
          in: formData
          description: Application component template ID. Leave blank and provide a name to create a new template.<br>Use ID to update an existing template.
        - name: name
          type: string
          in: formData
          required: true
          description: Application component template name.
        - name: enabled
          type: string
          in: formData
          enum:
            - "yes"
            - "no"
          description: Enable the application component template - yes/no.
        - name: rule_type
          type: string
          in: formData
          enum:
            - "Windows"
            - "*Nix"
          description: Target environment for the template.<br> Windows | *Nix <br>Provide either rule_type or rule_type_id.
        - name: rule_type_id
          type: number
          in: formData
          enum:
            - 0
            - 1
          description: Target environment for the template.<br> 0 - Windows | 1 - *Nix <br>Provide either rule_type or rule_type_id.
        - name: service_id
          type: integer
          in: formData
          description: ID of the associated service used by the template to create the app component. Provide either service_id or service.
        - name: associated_software_id
          type: integer
          in: formData  
          description: ID of the associated software used by the template to create the app component.
        - name: service
          type: string
          in: formData
          description: Name of the associated service used by the template to create the app component. Provide either service_id or service.
        - name: service_listening_port
          type: string
          in: formData
          description: Find only services listening on this port.
        - name: app_name_pattern
          type: string
          in: formData
          description: Pattern can contain the following variables:<br>%(device_name)s (this variable is required), %(discovered_listening_ip)s, %(listening_port)s, %(app_template_name)s, %(regex_name)s, %(regex_name1)s, %(regex_name2)s, %(regex_name3)s. Regex variables will only be available if <b>match_type</b> is Regular Expression. <b>regex_name</b> will represent full match, <b>regex_name1</b>, <b>regex_name2</b>, <b>regex_name3</b> will represent first 3 group matches (if available).
        - name: related_services_listening_port
          type: string
          in: formData
          description: Related services listening on this port.
        - name: config_file_location
          type: string
          in: formData
          description: Location to start search for configuration files based on pattern.
        - name: traverse_subdirectories
          type: string
          in: formData
          enum:
            - "yes"
            - "no"
          description: Option to determine if discovery should traverse subdirectories when searching for configuration files.
        - name: filename_filter
          type: string
          in: formData
          description: File name pattern to use while searching for configuration files.
        - name: application_category
          type: string
          in: formData
          enum:
            - "Application Layer"
            - "Database"
            - "Load Balancer"
            - "Other"
            - "Web Server"
          description: Application component category. Provide either application_category or application_category_id.
        - name: application_category_id 
          type: number
          in: formData
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
          description: Application component category id. <br> 1 - Database | 2 - Application Layer | 3 - Web Server | 4 - Load Balancer | 5 - Other <br>Provide either application_category or application_category_id. 
        - name: customer_id
          type: integer
          in: formData
          description: ID of the customer or department responsible for the application. Provide either customer_id or customer.
        - name: customer
          type: string
          in: formData
          description: Name of the customer or department responsible for the application. Provide either customer_id or customer.
        - name: what
          type: string
          in: formData
          description: What is impacted by the application?
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of tags for the application template.
        - name: tags_remove
          type: string
          in: formData
          description: Comma-separated list of tags to remove from the application template.
        - name: related_services_ids
          type: string
          in: formData
          description: Comma-separated list of IDs of related services.
        - name: related_services_ids_remove
          type: string
          in: formData
          description: Comma-separated list of related service IDs to remove.
        - name: related_software_ids
          type: string
          in: formData
          description: Comma-separated list of IDs of related software.
        - name: related_software_ids_remove
          type: string
          in: formData
          description: Comma-separated list of related software IDs to remove.
        - name: service_cmd_arg_match
          type: string
          in: formData
          description: You can either use text matching or regular expression matching (regex). For text matching, only services containing the provided Command Argument text in path args will be matched. For regex matching, provided expression will be applied to path args. Only Python Regular Expression syntax is supported. When using regex, up to 4 new name variables will be available. <b>regex_name</b> will represent full match, <b>regex_name1</b>, <b>regex_name2</b>, <b>regex_name3</b> will represent first 3 group matches (if available). Type of search will depend on <b>match_type</b> attribute.
        - name: match_type
          type: string
          in: formData
          enum:
            - "Text"
            - "Regular Expression"
          description: Type of match of command argument text.<br>Text | Regular Expression<br>Provide either match_type or match_type_id.
        - name: match_type_id
          type: number
          in: formData
          enum:
            - 0
            - 1
          description: ID of type of match of command argument text.<br>0 - Text | 1 - Regular Expression<br>Provide either match_type or match_type_id.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Application Component Template added or updated. App-Comp_Template-3
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/appcomp_templates/{id}/':
    delete:
      operationId: deleteAppCompTemplate
      summary: Delete template
      description: >-
        This API is used to delete an application component template with the
        template ID supplied as the required argument
      tags:
        - Application Components
      parameters:
        - name: id
          in: path
          description: D42 ID of the application component template.
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '4'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/app_group_calc_template/:
    get:              
      operationId: getappgroupcalctemplate
      description: This call will get all Application Group Calculation Templates
      summary: Get all AG Calculation Templates
      tags:
        - Application Groups
      parameters:
        - name: name
          type: string
          in: query
          description: Full or partial name of Application Group Calculation Templates
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 1
              limit:
                example: 1000  
              templates:
                type: array
                items:
                  $ref: '#/definitions/AppGroupCalcTemplateGet'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'           
    post:
      operationId: postappgroupcalctemplate
      description: This call creates or updates an Application Group Calculation Templates
      summary: Create/update Calculation Template
      tags:
        - Application Groups
      parameters:
        - in: body
          name: body
          description: Application Group Calculation Templates to create
          required: true
          schema:
            $ref: '#/definitions/AppGroupCalcTemplate'

      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Application Group Calculation Logic Template added/updated
                  - 11
                  - AG Template
                  - true
                  - true
              code:
                example: 0
          '400':
            $ref: '#/definitions/BadRequest'
          '401':
            $ref: '#/definitions/Unauthorized'
          '403':
            $ref: '#/definitions/Forbidden'
          '404':
            $ref: '#/definitions/NotFound'
          '500':
            $ref: '#/definitions/InternalServerError'
          '503':
            $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/app_group_calc_template/{id}/:
    get:              
      operationId: getappgroupcalctemplate_by_id
      description: This call will get a Application Group Calculation Templates by ID
      summary: Get a single Calculation Template
      tags:
        - Application Groups
      parameters:
        - name: id
          type: integer
          in: path
          description: Application Group Calculation Template id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/AppGroupCalcTemplateGet'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'             
    delete:
      operationId: deleteappgroupcalctemplate_by_id
      summary: Delete Calculation Template
      description: >-
        This API is used to delete the Application Group Calculation Template with the template id supplied as
        the required argument
      tags:
        - Application Groups
      parameters:
        - name: id
          type: integer
          in: path
          description: Application Group Calculation Template id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/application_group/{id}/items:
    get:
      operationId: getappgroupitems
      description:  This call will get the items associated with the provided Application Group ID
      summary: Get Application Group items
      tags:
        - Application Groups
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: ID of the Application Group
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: object
            properties:
              devices:
                type: object
                $ref: '#/definitions/groupItemDevice'
              resources:
                type: object
                $ref: '#/definitions/groupItemResource'  
              appcomponents:
                type: object
                $ref: '#/definitions/groupItemappcomponents'
              services:
                type: object
                $ref: '#/definitions/groupItemServices'  
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/2.0/app_group_calc_rule/:
    get:
      operationId: getappgroupcalcrule
      description: This call will get all Application Group Calculation Rules
      summary: Get all Application Group Calculation Rules
      tags:
        - Application Groups
      parameters:
        - name: name
          type: string
          in: query
          description: Full or partial name of Application Group Calculation Rules
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 1
              limit:
                example: 1000  
              rules:
                type: array
                items:
                  $ref: '#/definitions/AppGroupCalcRuleGet'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postappgroupcalcrule
      description: This call creates or updates an Application Group Calculation Rule
      summary: Create/update Application Goup Calculation Rule
      tags:
        - Application Groups
      parameters:
        - in: body
          name: body
          description: Application Group Calculation Rule to create/update
          required: true
          schema:
            $ref: '#/definitions/AppGroupCalcRulePost'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Application Group Calculation Rule added/updated
                  - 11
                  - AG Rule
                  - true
                  - true
              code:
                example: 0
          '400':
            $ref: '#/definitions/BadRequest'
          '401':
            $ref: '#/definitions/Unauthorized'
          '403':
            $ref: '#/definitions/Forbidden'
          '404':
            $ref: '#/definitions/NotFound'
          '500':
            $ref: '#/definitions/InternalServerError'
          '503':
            $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/app_group_calc_rule/{id}/:
    get:
      operationId: getappgroupcalcrule_by_id
      description: This call will get a Application Group Calculation Rule by ID
      summary: Get a single Application Group Calculation Rule
      tags:
        - Application Groups
      parameters:
        - name: id
          type: integer
          in: path
          description: Application Group Calculation Rule id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/AppGroupCalcRuleGet'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteappgroupcalcrule_by_id
      summary: Delete Application Group Calculation Rule
      description: >-
        This API is used to delete the Application Group Calculation Rule with the rule id supplied as
        the required argument
      tags:
        - Application Groups
      parameters:
        - name: id
          type: integer
          in: path
          description: Application Group Calculation Rule id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/businessapps/:
    get:              
      operationId: getbusinessApps
      description: This call will get all business services
      summary: Get all
      tags:
        - Business Services
      parameters:
        - name: vendor_id
          type: integer
          in: query
          description: ID of Vendor
        - name: name
          type: string
          in: query
          description: Name of Business Service
        - name: device_id
          type: integer
          in: query
          description: ID of Device
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 9
              limit:
                example: 1000  
              businessapps:
                type: array
                items:
                  properties:
                    service_level_id:
                      example: 'null'
                    technical_app_owner:
                      example: 'null'
                    custom_fields:
                      example: '[]'
                    app_type:
                      example: Commercial Off the Shelf (COTS)
                    businessapp_id:
                      example: '16'
                    description:
                      example: ''
                    is_contains_pii:
                      example: 'false'
                    criticality:
                      example: 'null'
                    tags:
                      example: []
                    vendor_id:
                      example: 1
                    name:
                      example: Online Store
                    app_type_id:
                      example: 2
                    dr_time_goal:
                      example: 'null'
                    is_internet_accessible:
                      example: 'y'
                    service_level:
                      example: '2'
                    business_app_owner:
                      example: 'Sales'
                    business_app_owner_id:
                      example: '3'
                    groups:
                      example: ''
                    cust_owner_id:
                      example: 'null'
                    migration_group:
                      example: 'ATSC'
                    created:
                      example: '2022-01-19T15:34:55.055Z'
                    cust_owner:
                      example: 'null'
                    migration_group_id:
                      example: 'null'
                    dr_point_goal:
                      example: 'null'
                    last_changed:
                      example: '2020-04-30T14:33:27.177Z'
                    notes:
                      example: 'null'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'           
    post:
      operationId: postbusinessApps
      description: This call creates or updates a business service
      summary: Create/update
      tags:
        - Business Services
      parameters:
        - name: id
          type: integer
          in: formData
          description: ID of an existing Business Service. Do not enter an ID if you are creating a new application.
        - name: vendor_id
          type: integer
          in: formData
          description: ID of Vendor
        - name: name
          type: string
          in: formData
          description: Name of the Business Service. REQUIRED to create a new application.
        - name: app_type
          type: string
          in: formData
          description: Business Service type. Number or string from the following list.<br> 1. Commercial Off the Shelf (COTS)<br>2. COTS with Customization<br>3. Custom
        - name: technical_app_owner
          type: string
          in: formData
          description: End user designated as the technical app owner. Use the value 'd42null' to clear up the content of the field.
        - name: business_app_owner
          type: string
          in: formData
          description: End user designated as the business service owner. Use the value 'd42null' to clear up the content of the field.
        - name: description
          type: string
          in: formData
          description: Description of Business service. Use the value 'd42null' to clear up the content of the field.
        - name: app_type_id
          type: integer
          in: formData
          description: ID of the application type
        - name: business_app_owner_id
          type: integer
          in: formData
          description: Business service owner ID
        - name: technical_app_owner_id
          type: integer
          in: formData
          description: Technical application owner ID
        - name: cust_owner_id
          type: integer
          in: formData
          description: Customer owner ID
        - name: service_level_id
          type: integer
          in: formData
          description: D42 ID of service level name.
        - name: criticality_id
          type: integer
          in: formData
          description: Criticality ID
        - name: migration_group_id
          type: integer
          in: formData
          description: ID of migration group
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of tags for the Business service.
        - name: tags_remove
          type: string
          in: formData
          description: Remove tags from Business service
        - name: dr_point_goal
          type: string
          in: formData
          description: Disaster Recovery (DR) recovery point objective.<br>Please use the format <b>1w 2d 3h 4m 5s</b> to denote 1 week, 2 days, 3 hours, 4 minutes, and 5 seconds. Individual terms are optional, and numbers must be integers. Use the value 'd42null' to clear up the content of the field.
        - name: dr_time_goal
          type: string
          in: formData
          description: Disaster Recovery (DR) recovery time objective.<br>Please use the format <b>1w 2d 3h 4m 5s</b> to denote 1 week, 2 days, 3 hours, 4 minutes, and 5 seconds. Individual terms are optional, and numbers must be integers. Use the value 'd42null' to clear up the content of the field.
        - name: cust_owner
          type: string
          in: formData
          description: Customer owner name. Use the value 'd42null' to clear up the content of the field.
        - name: service_level
          type: string
          in: formData
          description: Service Level name. Use the value 'd42null' to clear up the content of the field.
        - name: is_contains_pii
          type: string
          in: formData
          enum:
            - 'True'
            - 'False'
          description: Whether the application contains Personally Identifiable Information.
        - name: is_internet_accessible
          type: string
          in: formData
          enum:
            - 'True'
            - 'False'
          description: Whether the application has internet access.
        - name: migration_group
          type: string
          in: formData
          description: Business service Migration Group name. Use the value 'd42null' to clear up the content of the field.
        - name: criticality
          type: string
          in: formData
          description: Business service Critically name. Use the value 'd42null' to clear up the content of the field.
        - name: notes
          type: string
          in: formData
          description: Any additional notes for the application. Use the value 'd42null' to clear up the content of the field.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - business_app added/updated
                  - 11
                  - Sales Lead Gen
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/businessapps/{id}/:
    get:              
      operationId: getbusinessApps_id
      description: This call will get a business service by ID
      summary: Get specific
      tags:
        - Business Services
      parameters:
        - name: id
          in: path
          description: Business Service ID.
          type: integer
          required: true  
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 9
              limit:
                example: 1000  
              businessapps:
                type: array
                items:
                  properties:
                    technical_app_owner:
                      example: 'null'
                    custom_fields:
                      example: '[]'
                    app_type:
                      example: Commercial Off the Shelf (COTS)
                    is_contains_pii:
                      example: 'null'
                    name:
                      example: Online Store
                    dr_time_goal:
                      example: 'null'
                    is_internet_accessible:
                      example: 'y'
                    service_level:
                      example: '2'
                    business_app_owner:
                      example: 'Sales'
                    migration_group:
                      example: 'ATSC'
                    last_changed:
                      example: '2020-04-30T14:33:27.177Z'
                    notes:
                      example: 'null'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'           
    delete:
      operationId: deletebusinessApps
      summary: Delete
      description: >-
        This API is used to delete the business service with the businessapp id supplied as
        the required argument
      tags:
        - Business Services
      parameters:
        - name: id
          type: integer
          in: path
          description: businessapp id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/businessapp/:
    put:
      operationId: putCustom_FieldbusinessApp
      description: >-
        Create or update custom fields for a Business Service. Required parameters - <ul><li>id <b>OR</b> name</li> <li>key</li>
      summary: Custom fields
      tags:
        - Business Services
      parameters:
        - name: id
          description: ID of the Business Service
          type: string
          in: formData
        - name: name
          description: Name of the Business Service
          in: formData
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/show_on_chart'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'App update target'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/businessapps/id/{businessservice-id}/attachments/':             
    get:
      operationId: getAllBusinessAppAttachments
      summary: Get attachments by business service ID
      description: >-
       Retrieve all file attachments for a specific business service using business service id.<br>
       Returns a zip file of all the attachments associated with the business service with the specified ID in URL.<br>
       Note that this implementation of Swagger does not support file download - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X GET \<br>
       URL/api/1.0/businessapps/id/3/attachments \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI='
      tags:
        - Business Services
      parameters:
        - name: businessservice-id
          type: integer
          in: formData
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_download:
                example: attachments_archive.6646-2020-01-24.zip
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: uploadBusinessappAttachments
      summary: Upload a business service attachment
      description: >-
       Uploads a file attachment for a specific business service using business service id and a selected file.<br>
       Note that this implementation of Swagger does not support file upload - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X POST \<br>
       URL/api/1.0/businessapps/id/3/attachments/17 \<br>
       -H 'Accept-Encoding: gzip, deflate' \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI='<br>
       -H 'Content-Type: multipart/form-data; boundary=--------------------------216746989913126372322897' \<br>
       -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \<br>
       -F 'name=@/C:/path/to/attachment/testpdf.pdf' \<br>
       -F 'file_attachment_details={"testpdf.pdf":"hello world! I'\''m a pdf description!"}'
      tags:
        - Business Services
      parameters:
        - name: businessservice-id
          type: integer
          in: formData
          required: true
        - name: name
          type: string
          in: formData
          required: True
          description: >-
           The name of the file attachment you select for upload.<br>
           This filename is also required for the file_attachment_details parameter.
        - name: file_attachment_details
          type: string
          in: formData
          required: true
          description: >-
           The name of the file to upload and a description.<br>Example: {"TEST_Attachment-3.txt": "test attachment-3"} 
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              testpdf.pdf:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  attachment_id:
                    type: integer
                    example: 17
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/businessapps/id/{businessservice-id}/attachments/{attachment_id}/':             
    get:
      operationId: getaBusinessAppAttachment
      summary: Get a business service attachment
      description: >-
       Retrieves a specific file attachment for a specific business service using business service id and attachment id.<br>
       Note that this implementation of Swagger does not support file download - use another mechanism such as CURL.<br>
       <br>cURL example:<br>
       curl -X GET \<br>
       URL/api/1.0/businessapps/id/3/attachments/17 \<br>
       -H 'Authorization: Basic YWRtaW46YWRtIW5kNDI=' 
      tags:
        - Business Services
      parameters:
        - name: businessservice-id
          type: integer
          in: formData
          required: true
        - name: attachment_id
          type: integer
          in: formData
          required: true
          description: ID of the attachment to get.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_download:
                example: attachment_1.txt
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/businessapps/id/{businessservice-id}/attachments/{id}/':             
    delete:
      operationId: deleteBusinessAppAttachment
      summary: Delete business service attachment
      description: Delete a file attachment for a specific business service using business service ID and the attachment ID
      tags:
        - Business Services
      parameters:
        - name: businessservice-id
          type: integer
          in: formData
          required: true
        - name: id
          type: integer
          in: path
          required: true
          description: ID of the attachment to delete.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              attachment_id:
                example: 34
              success:
                example: 'true'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/businessapps/elements/{uuid}/:
    get:              
      operationId: getbusinessAppsElements_uuid
      description: This call will get a business service element
      summary: Get an element
      tags:
        - Business Services
      parameters:
        - name: uuid
          type: string
          in: path
          required: true
          description: The UUID of the single element you are looking for.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/businessapps_element'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:              
      operationId: businessAppsElements_uuid
      description: This call will delete a business service element
      summary: Delete an element
      tags:
        - Business Services
      parameters:
        - name: uuid
          type: string
          in: path
          required: true
          description: The UUID of the single element to delete.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/businessapps_element_delete'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'                 
  /api/1.0/businessapps/elements/:
    post:
      operationId: postbusinessAppsElements
      description: >-
        Add elements (devices, resources, or appplication components) to a business service.
        <p>To add a single element (device) to a Business Service, use the<br>
        <b>device_id</b> OR <b>device_name</b> parameters. ID will be used before the name.
        <p>To add multiple elements (devices) to a Business Service, use the<br>
        <b>device_ids</b> OR <b>device_names</b> parameters. ID will be used before the name
        <p>To add a single element (resource) to a Business Service, use the<br>
        <b>resource_id</b>, <b>resource_name</b>, OR <b>resource_identifier</b> parameters. ID will be used before the name and identifier.
        <p>To add multiple elements (resources) to a Business Service, use the<br>
        <b>resource_ids</b> OR <b>resource_names</b> parameters. ID will be used before the name
        <p>To add a single element (application component) to a Business Service, use the<br>
        <b>appcomp_id</b> OR <b>appcomp_name</b> parameters. ID will be used before the name.
        <p>To add multiple elements (application component) to a Business Service, use the<br>
        <b>appcomp_ids</b> OR <b>appcomp_names</b> parameters. ID will be used before the name
        <p>To add a single element (business service) to a Business Service, use the<br>
        <b>associated_businessservice_id</b> OR <b>associated_businessservice_name</b> parameters. ID will be used before the name.
        <p>To add multiple elements (business service) to a Business Service, use the<br>
        <b>associated_businessservice_ids</b> OR <b>associated_businessservice_names</b> parameters. ID will be used before the name
      summary: Add element
      tags:
        - Business Services
      parameters:
        - name: businessapp_id
          required: true
          type: integer
          in: formData
          description: The ID of an existing Business Service to add elements (devices) to.
        - name: device_id
          type: integer
          in: formData
          description: ID of an element (device) to add to the business service.
        - name: device_name
          type: string
          in: formData
          description: Name of an element (device) to add to the business service.
        - name: device_ids
          type: string
          in: formData
          description: CSV list of the IDs of elements (devices) to add to the business service.
        - name: device_names
          type: string
          in: formData
          description: CSV list of names of the elements (devices) to add to the business service.
        - name: resource_id
          type: integer
          in: formData
          description: ID of an element (resource) to add to the business service.
        - name: resource_name
          type: string
          in: formData
          description: Name of an element (resource) to add to the business service.
        - name: resource_identifier
          type: string
          in: formData
          description: Identifier of an element (resource) to add to the business service.
        - name: resource_ids
          type: string
          in: formData
          description: CSV list of the IDs of elements (resources) to add to the business service.
        - name: resource_names
          type: string
          in: formData
          description: CSV list of names of the elements (resources) to add to the business service.
        - name: resource_identifiers
          type: string
          in: formData
          description: CSV list of identifiers of the elements (resources) to add to the business service.
        - name: appcomp_id
          type: integer
          in: formData
          description: ID of an element (application component) to add to the business service.
        - name: appcomp_name
          type: string
          in: formData
          description: Name of an element (application component) to add to the business service.
        - name: appcomp_ids
          type: string
          in: formData
          description: CSV list of the IDs of elements (application components) to add to the business service.
        - name: appcomp_names
          type: string
          in: formData
          description: CSV list of names of the elements (application components) to add to the business service.
        - name: associated_businessservice_id
          type: integer
          in: formData
          description: ID of an element (business service) to add to the business service.
        - name: associated_businessservice_name
          type: string
          in: formData
          description: Name of an element (business service) to add to the business service.
        - name: associated_businessservice_ids
          type: string
          in: formData
          description: CSV list of the IDs of elements (business services) to add to the business service.
        - name: associated_businessservice_names
          type: string
          in: formData
          description: CSV list of names of the elements (business services) to add to the business service.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - element(s) added to business_app CRM App
                  - 11
                  - 1234, 5678
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deletebusinessAppsElements
      summary: Delete element
      description: >-
        This API is used to delete the business service element
      tags:
        - Business Services
      parameters:
        - name: businessapp_id
          type: integer
          description: business service id
          in: query
          required: true
        - name: device_id
          type: integer
          description: device id of business element
          in: query
        - name: resource_id
          type: integer
          description: resource id of business element
          in: query
        - name: appcomp_id
          type: integer
          description: appcomp id of business element
          in: query
        - name: associated_businessservice_id
          type: integer
          description: associated business service id of business element
          in: query  
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              uuid:
                example: '03b30f77-1638-4d34-911e-5c63da8de9d9'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    get:              
      operationId: getbusinessAppsElements
      description: This call will get business service elements
      summary: Get elements
      tags:
        - Business Services
      parameters:
        - name: name
          type: string
          in: query
          description: The name (case-insensitive) of the element to seach for.
        - name: businessapp_id
          type: integer
          in: query
          description: The ID of the business service the element belongs to.  
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              businessapp_elements:
                type: array
                items:
                  properties:
                    businessapp_id:
                      example: 2
                    businessapp_element_uuid:
                      example: '344316e2-409d-4bbf-b994-f4e3f152947a'
                    device_id:
                      example: 5
                    name:
                      example: 'test device'
                    orphaned:
                      example: 'no'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/businessapps/connections/{uuid}/:
    get:              
      operationId: getbusinessAppsConnections_uuid
      description: This call will get a business service connection
      summary: Get a connection
      tags:
        - Business Services
      parameters:
        - name: uuid
          type: string
          in: path
          required: true
          description: The UUID of the single connection you are looking for.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/businessapps_connection'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/businessapps/connections/:
    get:              
      operationId: getbusinessAppsConnections
      description: This call will get business service connections
      summary: Get connections
      tags:
        - Business Services
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              businessapp_connections:
                type: array
                items:
                  properties:
                    businessapp_connection_uuid:
                      example: '344316e2-409d-4bbf-b994-f4e3f152947a'
                    from_businessapp_element_uuid:
                      example: '344316e2-409d-4bbf-b994-f4e3f152947b'
                    to_businessapp_element_uuid:
                      example: '344316e2-409d-4bbf-b994-f4e3f152947c'
                    type:
                      example: 'test'
                    labels:
                      example: 'test'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/services/:
    get:
      operationId: getServices
      description: Get services
      summary: Get
      tags:
        - Services
      parameters:
        - name: service_id
          in: query
          description: D42 ID of the service
          type: string
          required: true
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/vendor'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              services:
                type: array
                items:
                  $ref: '#/definitions/Services'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postServices
      description: Create/update services
      summary: Create/update
      tags:
        - Services
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/display_name'
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/service_type'
        - $ref: '#/parameters/vendor_post'
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/notes'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service added/updated
                  - 2
                  - DisplayLinkManager
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/services/{id}/':
    delete:
      operationId: deleteServices
      summary: Delete
      description: >-
        This API is used to delete the service with the service id supplied as
        the required argument. Note: You will only be able to delete the service
        if the supplied username has the correct permissions
      tags:
        - Services
      parameters:
        - name: id
          in: path
          format: uuid
          description: service id
          type: string
          required: true
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: 114
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/service_details/:
    get:
      operationId: getService_details
      description: Get service details
      summary: Get service details
      tags:
        - Services
      parameters:
        - $ref: '#/parameters/device_id'
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/service_id'
        - $ref: '#/parameters/service_detail_id'
        - $ref: '#/parameters/user_id'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '543'
              service_details:
                type: array
                items:
                  $ref: '#/definitions/Service_details'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postService_details
      description: Create/update service details
      summary: Create/update service details
      tags:
        - Services
      parameters:
        - $ref: '#/parameters/service_name'
        - $ref: '#/parameters/service_display_name'
        - $ref: '#/parameters/vendor_post'
        - $ref: '#/parameters/description_post'
        - $ref: '#/parameters/service_type'
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/startmode'
        - $ref: '#/parameters/state'
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/user'
        - $ref: '#/parameters/appcomp'
        - $ref: '#/parameters/install_date'
        - $ref: '#/parameters/status'
        - $ref: '#/parameters/at_logon'
        - $ref: '#/parameters/at_startup'
        - $ref: '#/parameters/event_based'
        - $ref: '#/parameters/idle_time'
        - $ref: '#/parameters/other_trigger'
        - $ref: '#/parameters/other_type'
        - $ref: '#/parameters/minutes'
        - $ref: '#/parameters/hours'
        - $ref: '#/parameters/days'
        - $ref: '#/parameters/weeks'
        - $ref: '#/parameters/day_of_month'
        - $ref: '#/parameters/month_of_year'
        - $ref: '#/parameters/day_of_week'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service_detail added/updated
                  - 1
                  - Reddit Tracker
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/service_detail/{id}/':
    delete:
      operationId: deleteService_details
      summary: Delete service details
      description: >-
        This API is used to delete the service details with the service details id
        supplied as the required argument. Note: You will only be able to delete
        the service if the supplied username has the correct permissions
      tags:
        - Services
      parameters:
        - name: id
          in: path
          format: uuid
          description: service detail id
          type: string
          required: true
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/service_ports/:
    get:
      operationId: getService_ports
      description: Get service ports
      summary: Get service ports
      tags:
        - Services
      parameters:
        - name: id
          in: query
          description: filter by id of the service port
          type: string
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '565'
              service_ports:
                type: array
                items:
                  $ref: '#/definitions/Service_ports'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postService_ports
      description: Create/update service ports
      summary: Create/update service port
      tags:
        - Services
      parameters:
        - $ref: '#/parameters/port'
        - $ref: '#/parameters/device_name'
        - $ref: '#/parameters/listening_ip'
        - $ref: '#/parameters/description'
        - $ref: '#/parameters/discovered_service'
        - $ref: '#/parameters/discovered_process'
        - $ref: '#/parameters/mapped_service'
        - $ref: '#/parameters/remote_ips'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service port added/updated
                  - 1
                  - '0.0.0.0:80'
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/service_ports/{id}/':
    delete:
      operationId: deleteService_ports
      summary: Delete service port
      description: >-
        This API is used to delete the service port with the service port id
        supplied as the required argument. Note: You will only be able to delete
        the service port if the supplied username has the correct permissions
      tags:
        - Services
      parameters:
        - name: id
          in: path
          format: uuid
          description: service port id
          type: string
          required: true
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/listener_connection_stats/:
    get:
      operationId: getListener_connection_stats
      description: Get listener connection statistics
      summary: Get listener connection statistics
      tags:
        - Services
      parameters:
        - $ref: '#/parameters/listener_device_name'
        - $ref: '#/parameters/port'
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              client_ips:
                example: 76.127.207.96
              client_stats:
                type: array
                items:
                  $ref: '#/definitions/Client_stats'
              description:
                example: ''
              id:
                example: 2207
              listener_device_id:
                example: 2440
              listener_device_name:
                example: prod-retail-webfrontend
              listener_service:
                example: sshd
              listening_ip:
                example: 0.0.0.0
              port:
                example: 22
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/network_shares/:
    get:
      operationId: getNetwork_shares
      description: Get network shares
      summary: Get network shares
      tags:
        - Services
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              networkshare_details:
                type: array
                items:
                  $ref: '#/definitions/Networkshare_details'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/listener_connection_stats/:
    get:
      operationId: getListenerConnectionStats
      summary: Get listener connection statistics
      description: Retrieve all listener connection statistics
      tags:
        - Services
      parameters:
        - name: port
          in: query
          description: child is optional assuming you have a parent created (see examples)
          type: string
        - name: device_name
          in: query
          description: the name of the device
          type: string
        - $ref: '#/parameters/listener_device_name'
        - $ref: '#/parameters/discovered_service'
        - $ref: '#/parameters/mapped_service'
        - name: service_instance_id
          in: query
          description: filter by id of the service instance in use
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Listener_connection_stats'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/listener_connection_stats/{id}':
    get:
      operationId: getListenerConnectionStatsByID
      summary: Get listener connection statistics by ID
      description: Retrieve listener connection statistics by service port ID
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service port id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Listener_connection_stats_id'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/scheduled_tasks/:
    get:
      operationId: getScheduledTasks
      summary: Get scheduled tasks
      description: Retreive information about all scheduled tasks
      tags:
        - Services
      parameters:
        - name: id
          in: query
          description: filter results by Service schedule ID
          type: integer
        - name: device_id
          in: query
          description: device id
          type: integer
        - name: device
          in: query
          description: device
          type: string
        - name: user_id
          in: query
          description: user id
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 2
              service_schedules:
                $ref: '#/definitions/Service_schedules'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postScheduledTasks
      description: >-
        Create/update scheduled task. 3 parameters are required: <ul><li>schedule_name
        <b>OR</b> service_name <b>OR</b> name</li> <li>device_id <b>OR</b>
        device</li> <li>caption</li>
      summary: Create/update scheduled task
      tags:
        - Services
      parameters:
        - name: schedule_id
          in: formData
          description: schedule id
          type: integer
        - name: service_detail_id
          in: formData
          description: filter by id of the service in use
          type: integer
        - name: schedule_name
          in: formData
          description: schedule name
          type: string
        - name: service_name
          in: formData
          description: The executable name of the service
          type: string
        - name: name
          in: formData
          description: name
          type: string
        - name: device
          in: formData
          description: The device that this service runs on
          type: string
        - name: device_id
          in: formData
          description: The ID of the device that this service runs on
          type: integer
        - name: caption
          in: formData
          description: caption
          type: string
          required: true
        - name: user_id
          in: formData
          description: end user id
          type: string
        - name: sched_description
          in: formData
          description: schedule description
          type: string
        - name: arguments
          in: formData
          description: arguments
          type: string
        - name: status
          in: formData
          description: status
          type: string
        - name: install_Date
          in: formData
          description: >-
            (note capital D for schedules) only for schedule based services
            where startmode = 'Scheduled'
          type: string
        - name: at_logon
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: at_startup
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: event_based
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: idle_time
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: other_trigger
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: other_type
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: minutes
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: hours
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: days
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: weeks
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: day_of_month
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: month_of_year
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
        - name: day_of_week
          in: formData
          description: only for schedule based services where startmode = 'Scheduled'
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - task schedule added/updated
                  - 8
                  - task-0025
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/scheduled_tasks/{id}':
    get:
      operationId: getScheduledTasksByID
      summary: Get scheduled task by ID
      description: Retrieve scheduled task by service schedule ID
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service schedule id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Service_schedule'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteScheduledTasksByID
      summary: Delete scheduled task
      description: >-
        Used to delete the scheduled task with the service schedule ID as the
        required argument. Note: You will only be able to delete the scheduled
        task if the supplied username has the correct permissions
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service schedule id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '2'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/services/:
    get:
      operationId: getServices2
      summary: Get all services
      description: You can filter services by following parameters in the query string
      tags:
        - Services
      parameters:
        - name: id
          in: query
          description: D42 ID of the service
          type: integer
        - name: displayname
          in: query
          description: name of the service
          type: string
        - name: category
          in: query
          description: name of the category
          type: string
        - name: vendor
          in: query
          description: vendor name
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              services:
                $ref: '#/definitions/Services'
              total_count:
                example: 2
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postServices2
      description: >-
        Create/update service. Required parameters: <ul> <li>name <b>OR</b>
        display_name</li>
      summary: Create/update service
      tags:
        - Services
      parameters:
        - name: name
          in: formData
          description: name for service
          type: string
        - name: display_name
          in: formData
          description: 'if not provided, the name is used as display name'
          type: string
        - name: vendor
          in: formData
          description: Names of vendor
          type: string
        - name: description
          in: formData
          description: description of service
          type: string
        - name: notes
          in: formData
          description: notes
          type: string
        - name: category
          in: formData
          description: Name of category
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service added/updated
                  - 97
                  - ''
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/services/{id}':
    delete:
      operationId: deleteServicesByID
      summary: Delete service by ID
      description: >-
        This API is used to delete the service with the service id supplied as
        the required argument. Note: You will only be able to delete the service
        if the supplied username has the correct permissions. (Added in v6.3.4)
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '99'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/service_instances/:
    get:
      operationId: getServiceInstances
      summary: Get service instances
      description: >-
        You can filter service details by following parameters in the query
        string
      tags:
        - Services
      parameters:
        - name: device_id
          in: query
          description: filter by id of the device
          type: integer
        - name: device
          in: query
          description: filter by name of the device
          type: string
        - name: service_id
          in: query
          description: filter by id of the service
          type: integer
        - name: service_detail_id
          in: query
          description: filter by id of the service in use
          type: integer
        - name: user_id
          in: query
          description: filter by id of the user
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              service_details:
                $ref: '#/definitions/Service_instances'
              offset:
                example: 0
              limit:
                example: 1000
              total_count:
                example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postServiceInstances
      description: >-
        Create/update service instance. Required parameters are either: <ul><li>service_name
        <b>OR</b> service_display_name <b>OR</b> service_id</li> <li> device
        <b>OR</b> device_id</li><p>------ OR
        ------<li>service_detail_id</li></ul>
      summary: Create/update service instance
      tags:
        - Services
      parameters:
        - name: service_detail_id
          in: formData
          description: service detail id
          type: integer
        - name: device
          in: formData
          description: The device that this service runs on
          type: string
        - name: device_id
          in: formData
          description: id of the device
          type: integer
        - name: listening_ip
          in: formData
          description: the local IP address that listening on this port
          type: string
        - name: port
          in: formData
          description: the listening port on this device
          type: integer
        - name: loadbalancer
          in: formData
          description: loadbalancer
          type: string
        - name: service_name
          in: formData
          description: The executable name of the service
          type: string
        - name: service_display_name
          in: formData
          description: The user freindly display name of the service
          type: string
        - name: service_id
          in: formData
          description: service id
          type: integer
        - name: user_id
          in: formData
          description: id of the user
          type: string
        - name: remove_appcomp_ids
          in: formData
          description: comma separated list of application components IDs to remove
          type: integer
        - name: clear_appcomps
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Set to 'yes' to clear associated application components
        - name: appcomps
          in: formData
          description: >-
            comma separated list of application components to associated with
            service instance
          type: string
        - name: service_path
          in: formData
          description: service path
          type: string
        - name: install_date
          in: formData
          description: install date
          type: string
        - name: state
          in: formData
          description: >-
            The current running state of this service. Valid values are
            'Running', 'Started', 'Paused', 'Stopped' and 'Unknown'
          type: string
        - name: ignore_client_connections
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
        - name: startmode
          in: formData
          description: >-
            The start mode of this service - valid values are 'Automatic',
            'Manual', 'Disabled' and 'Unknown'
          type: string
        - name: pinned
          in: formData
          description: pinned
          type: string
        - name: topology_status
          in: formData
          description: topology status
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service_detail added/updated
                  - 173
                  - Service001
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/service_instances/{id}':
    get:
      operationId: getServiceInstancesByID
      summary: Get service instances by ID
      description: Retrieve service instance information by Service Instance ID
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service instance id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Service_instance'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteServiceInstancesByID
      summary: Delete service instances by ID
      description: >-
        This API is used to delete the service detail with the service detail id
        supplied as the required argument. Note - You will only be able to
        delete the service if the supplied username has the correct permissions
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/service_listener_ports/:
    get:
      operationId: getServiceListenerPorts
      summary: Get service listener ports
      description: You can filter service ports by following parameters in the query string
      tags:
        - Services
      parameters:
        - name: port
          in: query
          description: port
          type: string
        - name: device_name
          in: query
          description: the name of the device
          type: string
        - $ref: '#/parameters/listener_device_name'
        - $ref: '#/parameters/discovered_service'
        - $ref: '#/parameters/mapped_service'
        - name: service_instance_id
          in: query
          description: filter by id of the service instance in use
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Service_listener_ports'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postServiceListenerPorts
      description: >-
        Create/update service listener port. Required parameters: <ul> <li>id</li></ul>
        <b>---------- OR ----------</b> <ul> <li>port</li> <li>device_name
        <b>OR</b> device_id</li> <li>listening_ip <b>OR</b> remote_ips</li>
        </ul>
      summary: Create/update service listener port
      tags:
        - Services
      parameters:
        - name: id
          in: formData
          description: service port id
          type: integer
        - name: port
          in: formData
          description: the listening port on this device
          type: integer
        - name: device_name
          in: formData
          description: the name of the device
          type: string
        - name: device_id
          in: formData
          description: device id
          type: integer
        - $ref: '#/parameters/listening_ip'
        - $ref: '#/parameters/remote_ips'
        - name: discovered_service_id
          in: formData
          description: device service id
          type: integer
        - $ref: '#/parameters/discovered_service_post'
        - name: discovered_service_display_name
          in: formData
          description: discovered service display name
          type: string
        - $ref: '#/parameters/discovered_process'
        - name: discovered_process_display_name
          in: formData
          description: discovered process display name
          type: string
        - $ref: '#/parameters/mapped_service_post'
        - name: mapped_service_display_name
          in: formData
          description: mapped service display name
          type: string
        - $ref: '#/parameters/protocol'
        - name: remote_port_time
          in: formData
          description: remote port time
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service port added/updated
                  - 5
                  - '0.0.0.0:9999'
                  - true
                  - true
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/service_listener_ports/{id}/':
    get:
      operationId: getServiceListenerPortsByID
      summary: Get service listener port by ID
      description: Retrieve Service Listener port information by service port ID
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service port id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Service_listener_port'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putServiceListenerPorts
      description: >-
        Currently, in order to update a service port, id (path),
        device_name/device_id, and listening_ip/remote_ips are needed even if
        they are staying the same - we use those fields to identify the port
      summary: Create/update service listener port
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service port id
          type: integer
          required: true
        - name: port
          in: formData
          description: the listening port on this device
          type: integer
        - name: device_name
          in: formData
          description: the name of the device
          type: string
        - name: device_id
          in: formData
          description: device id
          type: integer
        - $ref: '#/parameters/listening_ip'
        - $ref: '#/parameters/remote_ips'
        - name: discovered_service_id
          in: formData
          description: device service id
          type: integer
        - $ref: '#/parameters/discovered_service_post'
        - name: discovered_service_display_name
          in: formData
          description: discovered service display name
          type: string
        - $ref: '#/parameters/discovered_process'
        - name: discovered_process_display_name
          in: formData
          description: discovered process display name
          type: string
        - $ref: '#/parameters/mapped_service_post'
        - name: mapped_service_display_name
          in: formData
          description: mapped service display name
          type: string
        - $ref: '#/parameters/protocol'
        - name: remote_port_time
          in: formData
          description: remote port time
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - service port added/updated
                  - 4
                  - '123.0.0.2:25'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/service_client_connections/{id}':
    get:
      operationId: getServiceClientConnections
      summary: Get service client connections
      description: Get service client connection information by service detail ID
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Service_client_connections'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/ignored_service/:
    get:
      operationId: getIgnoredService
      summary: Get ignored services
      description: >-
        Retrieve list of Ignored Services; filter ignored service details by
        following parameters in query string
      tags:
        - Services
      parameters:
        - name: ignored_id
          in: query
          description: service id
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 4
              offset:
                example: 0
              limit:
                example: 1000
              ignored_services:
                type: array
                items:
                  type: object
                  properties:
                    ignored_level:
                      type: integer
                    active:
                      type: boolean
                    ignored_text:
                      type: string
                    id:
                      type: integer
                  example:
                    - ignored_level: 1
                      active: true
                      ignored_text: AeLookupSvc
                      id: 1
                    - ignored_level: 2
                      active: true
                      ignored_text: AeLookupSvc
                      id: 2
                    - ignored_level: 1
                      active: true
                      ignored_text: AJRouter
                      id: 3
                    - ignored_level: 2
                      active: true
                      ignored_text: AJRouter
                      id: 4
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postIgnoredService
      description: Create/update ignored service
      summary: Create/update ignored service
      tags:
        - Services
      parameters:
        - name: ignored_level
          in: formData
          description: 'ignored level - 1 for Service Name, 2 for Service Instance Args'
          type: integer
          required: true
        - name: ignored_text
          in: formData
          description: ignored text
          type: string
          required: true
        - name: active
          in: formData
          description: active flag
          type: boolean
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - ignored service added/updated
                  - 1
                  - ignored text
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/ignored_service/{id}/':
    delete:
      operationId: deleteIgnoredServiceByID
      description: >-
        This API is used to delete the ignored service with the ignored service
        id supplied as the required argument. Note: You will only be able to
        delete the service if the supplied username has the correct permissions
      summary: Delete ignored service
      tags:
        - Services
      parameters:
        - name: id
          in: path
          description: service id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/software_details/:
    get:
      operationId: getSoftware_details
      description: Get software details
      summary: Get software details
      tags:
        - Software
      parameters:
        - name: device_id
          type: string
          description: filter by id of device
          in: query
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/software_id'
        - $ref: '#/parameters/software_detail_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 3
              offset:
                example: 0
              software_details:
                type: array
                items:
                  $ref: '#/definitions/Get_Software_details'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postUpdateService_ports
      description: Create/update software details
      summary: Create/update software details
      tags:
        - Software
      parameters:
        - $ref: '#/parameters/software'
        - name: device
          in: formData
          description: The name of the device where this software is installed
          type: string
          required: true
        - $ref: '#/parameters/version'
        - name: user
          type: string
          in: formData
          description: The user assigned to this software
        - name: vendor
          type: string
          in: formData
          description: 'The vendor that created the server, linked to Organization'
        - $ref: '#/parameters/install_date'
        - $ref: '#/parameters/count_in_licensing'
        - $ref: '#/parameters/license_key'
        - $ref: '#/parameters/license_key_count'
        - $ref: '#/parameters/license_use_count'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - software_detail added/updated
                  - 1
                  - Some Enterprise DB
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/software_details/{id}/':
    delete:
      operationId: deleteSoftware_detail
      summary: Delete software details
      description: >-
        This API is used to delete the software details with the software details
        ID supplied as the required argument. Note: You will only be able to
        delete the software if the supplied username has the correct
        permissions
      tags:
        - Software
      parameters:
        - name: id
          in: path
          description: software detail id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/software/:
    get:
      operationId: getSoftware_Component_details
      summary: Get software component details
      description: >-
        You can filter software details by following parameters in the query
        string
      tags:
        - Software
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/category'
        - name: vendor
          type: string
          in: query
          description: Software vendor
        - $ref: '#/parameters/licensing_model_get'
        - $ref: '#/parameters/software_type'
        - $ref: '#/parameters/deployment_type'
        - $ref: '#/parameters/tags'
        - $ref: '#/parameters/tags_and'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '2016'
              software:
                type: array
                items:
                  $ref: '#/definitions/Get_Software_Component_details'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postUpdateSoftware_Components
      summary: Create/update software component
      description: >-
        Create/update software component. Required parameters: <ul><li>name
        <b>OR</b> id</li> <li>licensing_model</li> <li>software_type</li>
      tags:
        - Software
      parameters:
        - name: name
          in: formData
          type: string
          description: The name of the software (new or existing)
        - $ref: '#/parameters/id_post'
        - name: category
          type: string
          in: formData
          description: Filter by user-defined software categories (new or existing)
        - name: vendor
          type: string
          in: formData
          description: Software Vendor (new or existing)
        - name: licensed_count
          type: integer
          in: formData
          description: The number of licenses purchased for the software component.
        - name: licensing_model
          type: string
          in: formData
          default: Individual - Device/Perpetual
          description: >-
            Custom models can be made via UI. Existing values include: Free,
            Trial, Individual - User/Perpetual, Individual - User/Subscription,
            Named User / Perpetual, Volume - User/Perpetual, Concurrent -
            User/Perpetual, Individual - Device/Perpetual, Individual -
            Device/Subscription, Node Locked / Perpetual, Volume -
            Device/Perpetual, OEM, CAL / Per Seat Device, CAL / Per Seat User,
            CAL / Per Server, CAL / Per Processor, CAL / Per Mailbox
          required: true
        - name: software_type
          enum:
            - Managed
            - Unmanaged
            - Prohibited
            - Ignored
          type: string
          in: formData
          default: Managed
          description: Default software type is Managed.
          required: true
        - name: deployment_type
          enum:
            - SaaS
            - Mobile
            - Desktop
            - Server
            - D42_NULL
          type: string
          in: formData
          description: Deployment Type. The default value is empty. To clear the deployment type, use <b>D42_NULL</b>.
          required: false
        - name: tags
          in: formData
          type: string
        - name: tags_remove
          type: string
          description: remove tags from component
          in: formData
        - $ref: '#/parameters/track_licensed_by_count'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/aliases'
        - name: aliases_remove
          in: formData
          type: string
          description: comma separated aliases to remove
        - name: description
          in: formData
          type: string
          description: Description of software
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - software added/updated
                  - 1
                  - New_Software
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/soft_eoleos/:
    post:
      operationId: postUpdateSoftware_EOLEOS
      summary: Create/update software component EOL/EOS dates
      description: >-
        Create/update End of Life/End of Support dates for a software component.<br><br>Required parameters: <ul><li>software_id
        <b>AND</b></li> <li>version</li>
      tags:
        - Software
      parameters:
        - name: id
          in: formData
          type: string
          description: The D42 ID of the software EOL/EOS record.<br>Do NOT use when creating software EOL/EOS.
        - name: software_id
          type: string
          in: formData
          description: D42 ID of the software component for which you want to create/update EOL/EOS dates.
          required: true
        - name: software
          type: string
          in: formData
          description: Name of the software component.
        - name: version
          type: string
          in: formData
          description: Software component version.
          required: true
        - name: end_of_life_date
          type: string
          in: formData
          description: Software End of Life date.<br>(yyyy-mm-dd).
        - name: end_of_support_date
          type: string
          in: formData
          description: Software End of Support date.<br>(yyyy-mm-dd).
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Software EOL/EOS successfully added/updated
                  - 15
                  - Adobe ColdFusion 2018 / 2018.0.0.0
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/software/:
    put:
      operationId: putCustom_FieldSoftware_Components
      description: >-
        Create/update software component custom fields.<br><br>
        Required parameters - <ul><li>id <b>OR</b> name</li> <li>key</li>
      summary: Software Component custom fields
      tags:
        - Software
      parameters:
        - name: id
          description: ID of the Software Component
          type: string
          in: formData
        - name: name
          description: Name of the Software Component
          in: formData
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/show_on_chart'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'Software Component Owner'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/software/{id}/':
    delete:
      operationId: deleteSoftware_Component
      summary: Delete software component
      description: >-
        This API is used to delete the software detail with the software detail
        id supplied as the required argument. Note: You will only be able to
        delete the software if the supplied username has the correct
        permissions
      tags:
        - Software
      parameters:
        - name: id
          in: path
          description: software detail id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/software/license_keys/:
    get:
      operationId: getSoftware_License_Keys
      summary: Get software license keys
      description: >-
        Get software license keys.
        You can filter software license keys by following parameters in the
        query string
      tags:
        - Software
      parameters:
        - $ref: '#/parameters/software_id'
        - $ref: '#/parameters/software_name'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              software_license_keys:
                type: array
                items:
                  $ref: '#/definitions/Get_Software_License_Keys'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postUpdateSoftware_Licenses
      summary: Create/Update software license
      description: >-
        Create/update software licenses. Required parameters: <ul><li>id
        <b>OR</b> software_id <b>OR</b> software_name</li>
      tags:
        - Software
      parameters:
        - name: id
          description: The ID of the software_license_key object (use if updating)
          type: string
          in: formData
        - name: software_id
          description: The id of the software component
          type: string
          in: formData
        - name: software_name
          type: string
          in: formData
          description: software component name
        - name: key
          type: string
          description: software license key
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - software license key added/updated
                  - 2
                  - '1618'
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/software/license_keys/{id}/':
    delete:
      operationId: deleteSoftware_License_Keys
      summary: Delete software license key
      description: >-
        This API is used to delete the software license key with the software
        license key id supplied as the required argument. Note: You will only be
        able to delete the software key if the supplied username has the correct
        permissions
      tags:
        - Software
      parameters:
        - name: id
          in: path
          description: software detail id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/softwareinuse/:
    put:
      operationId: putCustomfield_softwareinuse
      description: This call adds a custom field to a software details model.
      summary: Custom fields
      tags:
        - Software
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of software
        - name: id
          type: string
          in: formData
          description: ID of software
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/groups_post'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - Skynet
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/certificates/:
    get:
      operationId: get_certificates
      summary: Get
      description: >-
        This API is used to return the certificates you have added or discovered
        in Device42
      tags:
        - Certificates
      parameters:
        - name: certificate_id
          in: query
          description: ID of the certificate
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '1'
              certificate_details:
                type: array
                items:
                  $ref: '#/definitions/Get_certificates'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postUpdate_certificates
      summary: Create/update
      description: >-
        This API is used to update or add new certificates in bulk. Note: If you
        enter the DNS for the certificate, that is the only required field.
        Otherwise valid_from and valid_to are required
      tags:
        - Certificates
      parameters:
        - name: id
          in: formData
          type: string
          description: ID is only required if updating an existing certificate
        - name: dns
          in: formData
          description: >-
            dns address of the site certificate is issued for.
          type: string
        - name: issued_to
          in: formData
          description: Entity certificate is issued to.
          type: string
        - name: issued_by
          in: formData
          type: string
          description: The entity issuing the certificate
        - name: valid_from
          in: formData
          type: string
          description: >-
            The start date of the certificate. Required if creating a new certificate. YYYY-MM-DD format
        - name: valid_to
          in: formData
          type: string
          description: >-
            The expiration date of the certificate. Required if creating a new certificate. YYYY-MM-DD format
        - name: subject
          in: formData
          type: string
          description: The person, or entity identified.
        - name: version
          in: formData
          type: string
          description: The version of the encoded certificate
        - name: serial_number
          in: formData
          type: string
          description: Used to uniquely identify the certificate
        - name: signature_algorithm
          in: formData
          type: string
          description: The algorithm used to create the signature.
        - name: signature_hash
          in: formData
          type: string
          description: The actual signature to verify that it came from the issuer
        - name: san
          type: string
          in: formData
          description: Subject Alternative Name
        - name: digital_signature_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            True when the subject public key is used for verifying digital
            signatures
        - name: content_commitment_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
        - name: key_encipherment_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            True when the subject public key is used for enciphering private or
            secret keys
        - name: data_encipherment_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            True when the subject public key is used for directly enciphering
            raw user data without the use of an intermediate symmetric cipher.
        - name: key_agreement_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: True when the subject public key is used for key agreement.
        - name: key_cert_sign_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            True when the subject public key is used for verifying signatures on
            public key certificates.
        - name: crl_sign_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            True when the subject public key is used for verifying signatures on
            certificate revocation lists.
        - name: encipher_only_usage
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: >-
            When the encipherOnly bit is asserted and the keyAgreement bit is
            also set, the subject public key may be used only for enciphering
            data while performing key agreement.
        - name: decipher_only_usage
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: >-
            When the decipherOnly bit is asserted and the keyAgreement bit is
            also set, the subject public key may be used only for deciphering
            data while performing key agreement.
        - name: extended_key_usage
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: >-
            Indicates the purpose of the public key contained in the
            certificate. It contains a list of OIDs, each of which indicates an
            allowed use.
        - name: vendor
          type: string
          in: formData
          description: The name of the vendor that provided this certificate
        - name: end_point_type
          type: string
          in: formData
        - name: end_point_id
          type: string
          in: formData
        - name: groups
          type: string
          in: formData
          description: >-
            Use only if Multitenancy is on. List of groups separated by commas.
            Each group has name followed by colon followed by yes or no for
            change_permission, eg. CorpUS:yes, CorpNY:no.
        - name: tags
          type: string
          description: Comma separated list of tags
          in: formData
        - name: tags_remove
          type: string
          description: Comma separated list of tags to remove
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - certificate added/updated
                  - test.device42.com
                  - test.device42.com
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/certificates/{ID}/':
    delete:
      operationId: deleteCertificates
      summary: Delete
      description: >-
        This API is used to delete the certificate with the certificate id supplied as
        the required argument
      tags:
        - Certificates
      parameters:
        - name: ID
          type: integer
          in: path
          description: certificate id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/certificate/:
    put:
      operationId: put_Custom Fields
      summary: Custom fields
      description: Custom fields
      tags:
        - Certificates
      parameters:
        - name: name
          type: string
          description: Name of the certificate
          in: formData
        - name: id
          type: string
          description: ID of certificate
          in: formData
          required: true
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - name: custom_field
          type: string
          in: formData
          description: Custom Value
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - Skynet
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/certificate_instances/:
    get:
      operationId: getCertificateInstances
      summary: Get
      description: >-
        This API is used to return the certificate instances you have added or discovered
        in Device42
      tags:
        - Certificate Instances
      parameters:
        - name: certificate_id
          type: integer
          in: query
          description: filter by certificate_id          
        - name: device_id
          type: integer
          in: query
          description: filter by device_id       
        - name: device
          type: string
          in: query
          description: filter by device name       
        - name: fqdn
          type: string
          in: query
          description: filter by fqdn
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '1'
              certificate_details:
                type: array
                items:
                  $ref: '#/definitions/Get_certificate_instances'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postUpdateCertificateInstances
      summary: Create/update
      description: >-
        This API is used to update or add new certificate instances in bulk. 
      tags:
        - Certificate Instances
      parameters:
        - name: id
          in: formData
          type: integer
          description: ID is only required if updating an existing certificate instance
        - name: device_id
          in: formData
          type: integer
          description: The ID of the device associated with the certificate instance. Required if device is not provided.         
        - name: device
          in: formData
          type: string
          description: The device name or alias associated with the certificate instance. Required if device_id is not provided.
        - name: certificate_id
          in: formData
          type: integer
          description: The ID of the certificate associated with the certificate instance. Required if certificate is not provided. 
        - name: certificate
          in: formData
          type: string
          description: The name of the certificate associated with the certificate instance. Required if certificate_id is not provided.        
        - name: fqdn
          in: formData
          type: string
          description: Fully qualified domain name
        - name: ip
          in: formData
          type: string
          description: IP address    
        - name: valid_from
          in: formData
          type: string
          description: >-
            The start date of the certificate. Only filled if different than associated certificate. YYYY-MM-DD format        
        - name: valid_to
          in: formData
          type: string
          description: >-
            The expiration date of the certificate. Only filled if different than associated certificate. YYYY-MM-DD format
        - name: serial_number
          in: formData
          type: string
          description: Serial Number    
        - name: ssl_version
          in: formData
          type: string
          description: SSL version
        - name: cipher_suites
          in: formData
          type: string
          description: Cipher suites supported by the certificate in json format. e.g. - {'TLSv1.0':'["TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"]'}         
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Certificate instance added/updated successfully
                  - 1
                  - example.com - DEVICEA2Z001
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/certificate_instances/{ID}/':
    get:
      operationId: getCertificateInstancesById
      summary: Get
      description: >-
        This API is used to return the certificate instances you have added or discovered
        in Device42
      tags:
        - Certificate Instances
      parameters:
        - name: id
          type: integer
          in: path
          description: certificate instance id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/Get_certificate_instances'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteCertificateInstanceById
      summary: Delete
      description: >-
        This API is used to delete the certificate instance with the certificate instance id supplied as
        the required argument
      tags:
        - Certificate Instances
      parameters:
        - name: ID
          type: integer
          in: path
          description: certificate instance id
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'                    
  /api/1.0/passwords/:
    get:
      operationId: getPassword
      description: Retrieve usernames and passwords. You must be a superuser to access the API.
      summary: Get accounts
      tags:
        - Secrets
      parameters:
        - $ref: '#/parameters/category'
        - $ref: '#/parameters/label'
        - $ref: '#/parameters/username'
        - $ref: '#/parameters/device'
        - $ref: '#/parameters/appcomp'
        - $ref: '#/parameters/id'
        - $ref: '#/parameters/plain_text'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              Passwords:
                type: array
                items:
                  properties:
                    username:
                      example: sharepointadmin
                    last_pw_change:
                      example: '2013-11-05T19:29:35Z'
                    notes:
                      example: ''
                    label:
                      example: sharepoint admin account
                    first_added:
                      example: '2013-11-05T19:07:05.534Z'
                    password:
                      example: L8tirgcd&Loh
                    id:
                      example: 5
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: post_Update_Passwords
      summary: Create/update
      description: >-
        Create / Update Secrets (Passwords). Use id if updating existing secret - else,
        username and password are required. You must be a superuser to access the API <br>
        NOTE: Secrets/Password passphrase has been disabled on the swagger demo instance. When you use <b>Try It</b> functionality with API method that provides or modifies a secret, you will receive an error.
      tags:
        - Secrets
      parameters:
        - name: id
          type: string
          in: formData
          description: Required to modify an existing secret
        - $ref: '#/parameters/username_post'
        - $ref: '#/parameters/password'
        - $ref: '#/parameters/label_post'
        - name: category
          type: string
          in: formData
          description: The secret's category. If it doesn't exist a new one will be created.
        - name: storage_id
          type: string
          in: formData
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
          description: The secret's storage type. 1=Normal 2=Burnt 3=CyberArk 4=Delinea 5=HashiCorp Vault
        - name: devices
          type: string
          in: formData
          description: A comma separated list of device names.
        - $ref: '#/parameters/appcomps'
        - $ref: '#/parameters/days_before_expiry'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/view_users'
        - $ref: '#/parameters/view_groups'
        - $ref: '#/parameters/view_edit_users'
        - $ref: '#/parameters/view_users_remove'
        - $ref: '#/parameters/use_only_users_remove'
        - $ref: '#/parameters/view_edit_users_remove'
        - $ref: '#/parameters/view_groups_remove'
        - $ref: '#/parameters/use_only_groups'
        - $ref: '#/parameters/use_only_groups_remove'
        - $ref: '#/parameters/view_edit_groups'
        - $ref: '#/parameters/view_edit_groups_remove'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Password added with username adminmh (and label alabel)
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/passwords/{id}/':
    delete:
      operationId: delete_Password
      summary: Delete
      description: >-
        This API is used to delete the secret with the secret id supplied as
        the required argument. Note: You will only be able to delete the
        secret if the supplied username has the correct permissions. You must be a superuser to access the API
      tags:
        - Secrets
      parameters:
        - name: id
          in: path
          description: id of the secret
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/password/:
    post:
      operationId: post_Custom_Fields
      summary: Custom fields
      description: Custom fields. You must be a superuser to access the API
      tags:
        - Secrets
      parameters:
        - name: username
          type: string
          in: formData
          required: true
          description: Name of the secret
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - Skynet
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/customers/:
    get:
      operationId: getCustomers
      description: Get all customers
      summary: Get all
      tags:
        - Customers
      parameters:
        - $ref: '#/parameters/include_cols'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              Customers:
                type: array
                items:
                  $ref: '#/definitions/Customers'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postCustomers
      summary: Create/update
      description: Create/update customers
      tags:
        - Customers
      parameters:
        - name: id
          in: formData
          description: Customer id
          type: integer
        - name: name
          type: string
          description: Customer name
          in: formData
        - name: contact_info
          type: string
          description: Text field for contact information
          in: formData
        - $ref: '#/parameters/notes_post'
        - name: type
          type: string
          enum:
            - customer
            - department
          in: formData
        - name: new_name
          type: string
          in: formData
          description: New name for an existing customer 'name'.<br>If the customer 'name' does not exist, this creates a new customer. 
        - $ref: '#/parameters/groups_post'
        - name: manager
          type: string
          in: formData
          description: Name of manager
        - name: customer_ids
          type: string
          in: formData
          description: Comma separated list of customer ids which are part of this customer
        - name: user_ids
          type: string
          in: formData
          description: Comma separated list of end user ids which are part of this customer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Customer added or updated.
                  - 4
                  - Skynet
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/customers/{id}/':
    delete:
      operationId: deleteCustomers
      summary: Delete
      description: >-
        This API is used to delete the customer with the customer id supplied as
        the required argument
      tags:
        - Customers
      parameters:
        - name: id
          in: path
          description: IP Address id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '1'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/customers/contacts/:
    post:
      operationId: post_Update_Customer_Contacts
      summary: Create/update customer contacts
      description: Create/update customer contacts
      tags:
        - Customers
      parameters:
        - name: contact_id
          type: string
          in: formData
          description: Customer contact id
        - name: name
          type: string
          in: formData
          description: Customer contact name. <b>Required if contact_id not provided</b>
        - name: type
          type: string
          in: formData
          description: Contact type. <b>Required if contact_id not provided</b>.
        - name: customer
          type: string
          in: formData
          description: Customer name. Must already exist. <b>Required if contact_id not provided</b>
        - $ref: '#/parameters/email'
        - $ref: '#/parameters/phone'
        - name: address
          type: string
          description: Text field
          in: formData
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - customer contact record added/updated successfully
                  - 5
                  - mickeymouse
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/customers/contacts/{id}/':
    delete:
      operationId: deleteCustomerContact
      summary: Delete customer contacts
      description: >-
        This API is used to delete the customer contact with the customer contact id supplied as the
        required argument
      tags:
        - Customers
      parameters:
        - name: id
          in: path
          description: Customer Contact id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/customer/:
    put:
      operationId: put_Custom Fields
      summary: Custom fields
      description: Custom fields
      tags:
        - Customers
      parameters:
        - name: name
          required: true
          type: string
          description: Name of the customer
          in: formData
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 4
                  - Skynet
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/vendors/:
    get:
      operationId: getVendors
      description: Get all vendors
      summary: Get all
      tags:
        - Vendors
      parameters:
        - $ref: '#/parameters/vendor_name'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              vendors:
                type: array
                items:
                  $ref: '#/definitions/Get_all_Vendors'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postVendors
      summary: Create/update
      description: Create/update vendors
      tags:
        - Vendors
      parameters:
        - name: name
          required: true
          type: string
          in: formData
          description: Vendor name
        - $ref: '#/parameters/account_no'
        - $ref: '#/parameters/home_page'
        - $ref: '#/parameters/contact_info'
        - $ref: '#/parameters/escalation_1'
        - $ref: '#/parameters/escalation_2'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
        - name: tags
          type: string
          in: formData
          description: >-
            Comma-separated list of tags (no spaces) for the vendor.
        - name: tags_remove
          type: string
          in: formData
          description: >-
            Comma-separated list of tags (no spaces) to remove.
        - name: aliases
          type: string
          in: formData
          description: Semicolon-separated list of vendor aliases (no spaces).
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Vendor added or updated.
                  - 39
                  - CDW
                  - false
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/vendors/{id}/':
    delete:
      operationId: deleteVendors
      summary: Delete
      description: >-
        This API is used to delete the vendor with the vendor id supplied as the
        required argument
      tags:
        - Vendors
      parameters:
        - name: id
          in: path
          description: IP Address id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/vendor/:
    put:
      operationId: putCustom_fieldsVendors
      description: >-
        Create or update custom fields for vendors. "ID" or "name" of vendor is
        needed even when value is not being changed
      summary: Custom fields
      tags:
        - Vendors
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of vendor
        - name: id
          type: string
          in: formData
          description: Vendor ID or UI > Tools > Export > Vendors
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 7
                  - 2nd Floor @ main office
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/vendors/merge/:
    post:
      operationId: mergeVendors
      summary: Merge
      description: Merge vendors
      tags:
        - Vendors
      parameters:
        - name: primary_vendor_id
          required: true
          type: string
          in: formData
          description: >-
            Vendor ID into which to merge other vendor(s) into
        - name: vendor_ids
          required: true
          type: string
          in: formData
          description: >-
            Comma separated list of vendor ids to be merged
        - name: software_combine
          required: false
          type: boolean
          in: formData
          description: >-
            Automatically merge software (this will override like named software)
      responses:
        '200':
          description: 'The above command returns a success message like this:'
          schema:
            properties:
              msg:
                example:
                  - Vendors merged successfully
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/circuits/:
    get:
      operationId: getCircuits
      description: Get all circuits
      summary: Get all
      tags:
        - Telco Circuits
      parameters:
        - name: id
          in: query
          description: ID for the circuit (D42 ID)
          type: integer
        - $ref: '#/parameters/circuit_id'
        - name: type
          type: string
          in: query
          description: Type of circuit
        - name: origin_type
          in: query
          enum:
            - cable
            - circuit
            - switchport
            - vendor
            - patch_panel_port
          description: Type of origin point.
          type: string
        - $ref: '#/parameters/origin_id'
        - name: end_point_type
          in: query
          enum:
            - cable
            - circuit
            - switchport
            - vendor
            - patch_panel_port
          description: Type of end point.
          type: string
        - $ref: '#/parameters/end_point_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              circuits:
                type: array
                items:
                  $ref: '#/definitions/Get_all_Circuits'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: post_Update_Circuits
      description: Create/update circuits
      summary: Create/update
      tags:
        - Telco Circuits
      parameters:
        - name: ID
          in: formData
          description: ID for the specific circuit (D42 ID)
          type: integer
        - name: circuit_id
          type: string
          in: formData
          description: general circuit ID - required for new circuits
        - name: type
          type: string
          in: formData
          description: type of circuit - required for new circuits
        - name: order_date
          type: string
          in: formData
          description: Format is YYYY-MM-DD
        - name: provision_date
          type: string
          in: formData
          description: Format is YYYY-MM-DD
        - name: turn_on_date
          type: string
          in: formData
          description: Format is YYYY-MM-DD
        - name: expiration_date
          in: formData
          type: string
          description: Format is YYYY-MM-DD
        - $ref: '#/parameters/notes_post'
        - name: bandwidth
          type: integer
          in: formData
          description: bandwidth in kbps (multiply factor of 1024)
        - $ref: '#/parameters/vendor_post'
        - name: vendor_id
          in: formData
          type: integer
          description: ID of the vendor
        - name: customer
          type: string
          description: customer name
          in: formData
        - name: customer_id
          in: formData
          type: integer
          description: ID of the customer
        - name: dmarc
          type: string
          in: formData
          description: name of the DMARC
        - name: dmarc_id
          type: integer
          in: formData
          description: ID of the DMARC
        - name: origin_type
          in: formData
          enum:
            - cable
            - circuit
            - switchport
            - vendor
            - patch_panel_port
          description: Type of origin point. <b>Must be used with origin_id</b>
          type: string
        - $ref: '#/parameters/origin_id_post'
        - $ref: '#/parameters/origin_circuit_id_post'
        - $ref: '#/parameters/origin_switchport_post'
        - $ref: '#/parameters/origin_switch_post'
        - name: origin_port_id
          in: formData
          type: integer
          description: ID of the Origin Port. This will set the origin type to 'switchport' and assign the port ID.
        - $ref: '#/parameters/origin_patch_panel_port_post'
        - $ref: '#/parameters/origin_patch_panel_post'
        - $ref: '#/parameters/origin_patch_panel_id_post'
        - name: origin_back_patch_panel
          in: formData
          type: string
          enum:
            - yes
            - no
          description: If the origin object is a patch panel port, this parameter can be used indicate the circuit is on the back of the patch panel or not.
        - $ref: '#/parameters/origin_vendor_post'
        - name: end_point_type
          in: formData
          type: string
          enum:
            - cable
            - circuit
            - switchport
            - vendor
            - patch_panel_port
          description: Type of end point. <b>Must be used with end_point_id</b>
        - $ref: '#/parameters/end_point_id_post'
        - $ref: '#/parameters/end_point_circuit_id_post'
        - $ref: '#/parameters/end_point_switchport_post'
        - $ref: '#/parameters/end_point_switch_post'
        - name: end_port_id
          in: formData
          type: integer
          description: ID of the Endpoint Port. This will set the endpoint type to 'switchport' and assign the port ID.
        - $ref: '#/parameters/end_point_patch_panel_port_post'
        - $ref: '#/parameters/end_point_patch_panel_post'
        - $ref: '#/parameters/end_point_patch_panel_id_post'
        - name: end_back_patch_panel
          in: formData
          type: string
          enum:
            - yes
            - no
          description: If the endpoint object is a patch panel port, this parameter can be used indicate the circuit is on the back of the patch panel or not.
        - $ref: '#/parameters/end_point_vendor_post'
        - name: origin_clear
          in: formData
          type: string
          description: providing this parameter (any value) will clear the origin object from the circuit.
        - name: end_clear
          in: formData
          type: string
          description: providing this parameter (any value) will clear the endpoint object from the circuit.
        - name: status
          in: formData
          type: string
          description: Circuit status
        - name: new_circuit_id
          in: formData
          type: string
          description: providing this parameter (string) will change the circuit id of the circuit.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Circuit added/updated
                  - 49
                  - chicago-main
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/circuits/{id}/':
    get:
      operationId: getCircuitsByID
      description: Get circuit by ID
      summary: Get specific circuit by ID
      tags:
        - Telco Circuits
      parameters:
        - name: id
          in: path
          description: ID for the circuit (D42 ID)
          type: integer
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              circuits:
                type: array
                items:
                  $ref: '#/definitions/Get_all_Circuits'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteCircuit
      summary: Delete
      description: >-
        This API is used to delete the circuit with the circuit id supplied as
        the required argument
      tags:
        - Telco Circuits
      parameters:
        - name: id
          in: path
          description: circuit id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/circuit/:
    put:
      operationId: put_Custom_Fields
      description: Create/update custom fields for circuits. (Added in v5.9.3) Either ID or circuit_id is required
      summary: Custom fields
      tags:
        - Telco Circuits
      parameters:
        - name: ID
          in: formData
          description: ID for the cricuit (D42 ID)
          type: string
        - name: circuit_id
          type: string
          description: circuit_id for the circuit
          in: formData
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 1
                  - chicago-main
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/powercircuits/:
    get:
      operationId: get_All_Power_Circuits
      description: Get all power circuits
      summary: Get all
      tags:
        - Power Circuits
      parameters:
        - name: breakerpanel_id
          type: string
          in: query
          description: Breaker panel ID
        - $ref: '#/parameters/bcpm_id'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              power_circuits:
                type: array
                items:
                  $ref: '#/definitions/Get_all_Power_Circuits'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: post_Update_PowerCircuits
      description: Create/update power circuit
      summary: Create/update
      tags:
        - Power Circuits
      parameters:
        - name: id
          in: formData
          description: Power circuit ID. Required if breakerpanel_id and number is not provided.
          type: integer
        - name: breakerpanel_id
          in: formData
          description: Breaker panel ID. Required if id is not provided.Used to identify the power circuit when the ID is not provided and to update the breaker panel association when the ID is provided.
          type: string
        - name: number
          type: string
          in: formData
          description: Number of the circuit on the breaker panel. Required if id is not provided.
        - name: label
          type: string
          in: formData
          description: Label of the circuit on the breaker panel
        - name: connection
          type: string
          in: formData
          description: Description of the connection for the circuit
        - $ref: '#/parameters/voltage'
        - $ref: '#/parameters/amps'
        - $ref: '#/parameters/powerunit_connection_ids'
        - $ref: '#/parameters/device_connection_ids'
        - $ref: '#/parameters/device_connection_names'
        - $ref: '#/parameters/asset_connection_ids'
        - name: new_number
          type: string
          in: formData
          description: Providing this parameter (string) will change the circuit number of the circuit.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - power circuit added/updated
                  - 89
                  - Server Room/4
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/powercircuits/{id}/':
    delete:
      operationId: deletePowerCircuit
      summary: Delete
      description: >-
        This API is used to delete the power circuit with the ID supplied as the
        required argument
      tags:
        - Power Circuits
      parameters:
        - name: id
          in: path
          description: Power circuit ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '89'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/cables/:
    get:
      operationId: getCables
      summary: Get all
      description: Retrieve information about all cables
      tags:
        - Cables
      parameters:
        - name: cable_id
          type: integer
          in: query
          description: filter by cable_id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              cable:
                type: array
                items:
                  $ref: '#/definitions/Cable'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postCables
      description: Create/update cable information
      summary: Create/update
      tags:
        - Cables
      parameters:
        - name: ID
          in: formData
          description: Device42 ID of cable
          type: string
        - $ref: '#/parameters/cable_id'
        - name: vendor
          type: string
          description: Cable vendor
          in: formData
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/groups_post'
        - name: room_id
          type: string
          description: Room ID
          in: formData
        - name: room
          type: string
          description: Room name
          in: formData
        - name: origin_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Option to clean up cable origin
        - $ref: '#/parameters/origin_type_post'
        - $ref: '#/parameters/origin_id_post'
        - $ref: '#/parameters/origin_connector_type_post'
        - $ref: '#/parameters/origin_cable_type'
        - $ref: '#/parameters/origin_cable_color'
        - $ref: '#/parameters/origin_optic_type'
        - $ref: '#/parameters/origin_back_patch_panel'
        - name: end_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Option to clean up cable endpoint
        - $ref: '#/parameters/end_point_type_post'
        - $ref: '#/parameters/end_point_id_post'
        - $ref: '#/parameters/end_connector_type'
        - $ref: '#/parameters/end_cable_type'
        - $ref: '#/parameters/end_cable_color'
        - $ref: '#/parameters/end_optic_type'
        - $ref: '#/parameters/end_point_back_pach_panel'
        - $ref: '#/parameters/end_point_multiple'
        - $ref: '#/parameters/cable_length'
        - $ref: '#/parameters/cable_length_units'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - cable added/updated
                  - 9
                  - 'Cable #9 [new Cable]'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/cables/{id}/':
    delete:
      operationId: deleteCable
      summary: Delete
      description: >-
        This API is used to delete the cable with the ID supplied as the
        required argument
      tags:
        - Cables
      parameters:
        - name: id
          in: path
          description: Cable ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '89'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/service_level/:
    get:
      operationId: getService_level
      description: Get all Service Levels (devices)
      summary: Get all
      tags:
        - Service Levels
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              type: object
              properties:
                id:
                  example: 1
                name:
                  example: Production
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postService_level
      description: Create service level
      summary: Create
      tags:
        - Service Levels
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Name of the Service Level
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Service level added
                  - 11
                  - Decommissioned
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/admingroups/:
    get:
      operationId: getAdmingroups
      summary: Get all admin groups
      description: Get all admin groups
      tags:
        - Admin Users-Groups
      parameters:
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns. 
            For example:id,name,members,permissions
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              admingroups:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      example: 6
                    members:
                      example:
                        - User1
                        - User2
                    name:
                      example: System Generated Read, Add and Edit
              total_count:
                example: 1
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAdminGroups
      description: Create/update admin groups  - Must be a Super User to create or update admin groups
      summary: Create/update admin groups
      tags:
        - Admin Users-Groups
      parameters:
        - name: id
          type: integer
          in: formData
          description: Admin group id - used to update a specific admin group.  Required for update if name is not provided
        - name: name
          type: string
          in: formData
          description: Admin group name - required if creating a new group or if id parameter is not provided
        - name: members
          type: string
          in: formData
          description: >-
            List of admin users separated by commas to add.
        - name: members_remove
          type: string
          in: formData
          description: >-
            List of admin users separated by commas to remove.
        - name: permissions
          type: string
          in: formData
          description: >-
            List of permissions separated by commas to add.
        - name: permissions_remove
          type: string
          in: formData
          description: >-
            List of permissions separated by commas to remove.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - admin group added or updated
                  - 30
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/admingroups/{id}/':
    delete:
      operationId: deleteAdminGroups
      summary: Delete admin group 
      description: >-
        This API is used to delete an admin group with the admin group id supplied as
        the required argument - Must be a Super User to delete admin groups
      tags:
        - Admin Users-Groups
      parameters:
        - name: id
          in: path
          description: Admin group ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/adminusers/:
    get:
      operationId: getAdminusers
      description: Get all admin users - Must be a Super User to access list of admin users
      summary: Get all admin users 
      tags:
        - Admin Users-Groups
      parameters:
        - name: username
          type: string
          in: query
          description: Filter by username
        - name: email
          type: string
          in: query
          description: Filter by email address
        - name: include_cols
          type: string
          in: query
          description: >-
            Return only specified columns. 
            For example:auth_type,is_active,is_staff,username,id,email,groups,is_superuser,last_login,date_joined,
            password_doesnt_expire,last_name,first_name,invalid_login_attempts          
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              adminusers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      example: 125
                    username:
                      example: JohnDoe
                    auth_type:
                      example: Local
                    email:
                      example: JohnDoe@device42.com
                    groups:
                      type: array
                      items:
                        type: string
                      example: 
                        - System Generated Read Only
                        - GroupABC
                    is_superuser:
                      example: false
                    first_name:
                      example: John
                    last_name:
                      example: Doe
                    is_staff:
                      example: true
                    is_active:
                      example: true
                    last_login:
                      example: 2022-02-06T03:52:55.925Z
                    date_joined:
                      example: 2022-02-06T03:52:55.925Z
                    last_password_changed:
                      example: 2022-02-06T03:52:55.925Z
                    password_doesnt_expire:
                      example: false
                    invalid_login_attempts:
                      example: 2
              total_count:
                example: 1
              limit:
                example: 1000
              offset:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAdminUsers
      description: Create/update admin users  - Must be a Super User to create or update admin users
      summary: Create/update admin users
      tags:
        - Admin Users-Groups
      parameters:
        - name: id
          type: integer
          in: formData
          description: Admin user id - used to update a specific admin user.  Required for update if username is not provided
        - name: username
          type: string
          in: formData
          description: >-
            Admin user name - required if creating a new user or if id parameter is not provided<br>
            This value may contain only letters, numbers and @/./+/-/_/=/,/\\\\ characters
        - name: password
          type: string
          in: formData
          required: false
          description: New user password - required if creating a new user
        - name: first_name
          type: string
          in: formData
          required: false
          description: First name of admin user
        - name: last_name
          type: string
          in: formData
          required: false
          description: Last name of admin user
        - name: email
          type: string
          in: formData
          required: false
          description: Email address of admin user
        - name: is_superuser
          type: boolean
          in: formData
          required: false
          description: Is super user
        - name: is_staff
          type: boolean
          in: formData
          required: false
          description: Is staff user
        - name: is_active
          type: boolean
          in: formData
          required: false
          description: Is admin user active
        - name: password_doesnt_expire
          type: boolean
          in: formData
          required: false
          description: Password does not expire for this admin user
        - name: groups
          type: string
          in: formData
          description: >-
            Admin groups to assign user to. Note: groups with commas need to be
            wrapped in quotes. ie: “System Generated Read, Add, Edit and Delete”
        - name: new_username
          type: string
          in: formData
          description: >- 
            Change username of an existing admin user. This parameter is ignored when creating a new admin user.<br> 
            This value may contain only letters, numbers and @/./+/-/_/=/,/\\\\ characters
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - administrator added or updated
                  - 30
                  - test
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/adminusers/{id}/':
    get:              
      operationId: getAdminUserByID
      description: Get specific Admin User by ID - Must be a Super User to get the Admin User
      summary: Get specific admin user by id
      tags:
        - Admin Users-Groups
      parameters:
        - name: id
          in: path
          description: D42 Admin User ID
          type: integer
          required: true  
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              id:
                example: 125
              username:
                example: JohnDoe
              auth_type:
                example: Local
              email:
                example: JohnDoe@device42.com
              groups:
                type: array
                items:
                  type: string
                example: 
                  - System Generated Read Only
                  - GroupABC
              is_superuser:
                example: false
              first_name:
                example: John
              last_name:
                example: Doe
              is_staff:
                example: true
              is_active:
                example: true
              last_login:
                example: 2022-02-06T03:52:55.925Z
              date_joined:
                example: 2022-02-06T03:52:55.925Z
              last_password_changed:
                example: 2022-02-06T03:52:55.925Z
              password_doesnt_expire:
                example: false
              invalid_login_attempts:
                example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'           
    delete:
      operationId: deleteAdminUsers
      summary: Delete admin user 
      description: >-
        This API is used to delete an Admin User with the Admin User id supplied as
        the required argument - Must be a Super User to delete admin users
      tags:
        - Admin Users-Groups
      parameters:
        - name: id
          in: path
          description: D42 Admin User ID
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/endusers/:
    get:
      operationId: getEndusers
      description: Get all end users
      summary: Get all
      tags:
        - End Users
      parameters:
        - name: name
          type: string
          in: query
          description: Full or partial name of enduser
        - name: domain
          type: string
          in: query
          description: Fully qualified username
        - name: email
          in: query
          type: string
          description: Email of enduser
        - name: id
          type: integer
          in: query
          description: Enduser ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              values:
                type: array
                items:
                  type: object
                  properties:
                    domain:
                      example: internal.dev
                    name:
                      example: Thom Yorke
                    notes:
                      example: OK Computer
                    email:
                      example: tyorke@somedomain.net
                    contact:
                      example: 'phone: 203-555-5555'
                    location:
                      example: Not Here
                    adusername:
                      example: None
                    id:
                      example: '132'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postEndUsers
      description: Create/update end users
      summary: Create/update
      tags:
        - End Users
      parameters:
        - name: id
          type: integer
          in: formData
          description: enduser id. This is required if <b>name</b> is not passed.
        - name: name
          type: string
          in: formData
          description: enduser name. This is required if <b>id</b> is not passed.
        - $ref: '#/parameters/email'
        - name: contact
          type: string
          in: formData
        - name: location
          type: string
          in: formData
        - $ref: '#/parameters/notes_post'
        - name: create_new
          type: boolean
          in: formData
          description: Set to <b>true</b> to force creation of new user with the passed in parameters.
            <b>name</b> is required when set to <b>true</b>.
            This parameter is ignored if <b>id</b> is passed.
        - name: new_name
          type: string
          in: formData
          description: Change name of an existing enduser. This parameter is ignored when creating a new enduser. 
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - enduser added or updated
                  - 11
                  - Milton
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/endusers/{id}/':
    delete:
      operationId: deleteEndUsers
      summary: Delete
      description: >-
        This API is used to delete the end user with the end user id supplied as
        the required argument
      tags:
        - End Users
      parameters:
        - name: id
          in: path
          description: end user id
          type: integer
          required: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '114'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/custom_fields/endusers/':
   put:
      operationId: putCustom_fieldsEndUsers
      description: >-
        Create or update custom fields for End Users. "ID" or "name" of End Users is
        needed even when value is not being changed
      summary: Custom fields
      tags:
        - End Users
      parameters:
        - name: name
          type: string
          in: formData
          description: Name of EndUser
        - name: id
          type: string
          in: formData
          description: ID of EndUser
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 220
                  - “NetworkService”
                  - true,
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'            
  '/api/1.0/reports/id/{id}/':
    get:
      operationId: getReports
      description: Run a report and retrieve results
      summary: Run
      tags:
        - Reports
      parameters:
        - name: id
          in: path
          required: true
          type: integer
        - $ref: '#/parameters/csv_format'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              file_url:
                example: >-
                  /var/www/graphics/images/temp/report-201523February0521AM528423.txt
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/history/:
    get:
      operationId: getHistory
      summary: Get
      description: >-
        Retrieves all history for the past one week. (Note, as of 10.3.0
        Device42 now has a more robust audit log available at
        /api/api/1.0/auditlogs/
      tags:
        - History
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              $ref: '#/definitions/getHistory'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/history/<number_of_weeks>/:
    get:
      operationId: getHistoryNumber_of_weeks
      summary: Get by weeks
      description: Retrieves history for specified number of weeks in the past
      tags:
        - History
      deprecated: true
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            type: array
            items:
              $ref: '#/definitions/getHistory'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auditlogs/:
    get:
      operationId: getAuditlogs
      summary: Get
      description: Retrieves the audit history for all changes made in Device42
      tags:
        - Audit Log
      parameters:
        - $ref: '#/parameters/object_id'
        - $ref: '#/parameters/content_type'
        - $ref: '#/parameters/action_time_gt'
        - $ref: '#/parameters/action_time_lt'
        - name: related
          type: string
          in: query
          description: Related audit changes. Options are 'all' or 'related'
        - name: action
          type: sting
          in: query
          description: >- 
            What action was taken described in the audit.
            Options are Insert, Delete, Update, Truncate, View, Login, API
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/getAuditLogs'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteAuditlogs
      summary: Delete
      description: >-
        Deletes audit history logs made in Device42
      tags:
        - Audit Log
      parameters:
        - name: days
          in: formData
          description: Events older than “days” will be deleted
          type: integer
          required: true
        - name: chunk_size
          in: formData
          type: integer
          description: Use to limit the number of records that will be deleted.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              chunk_size:
                example: 1000
              loops:
                example: 7
              deleted audit records:
                example: true
              days:
                example: 1
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/networks/:
    get:
      operationId: getAuto_discoveryNetworks
      summary: Get network jobs
      description: Retrieves all autodiscovery jobs for networking devices
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    end_ip:
                      example: ''
                    job_id:
                      example: 54
                    name:
                      example: job54
                    start_ip:
                      example: 192.168.11.21
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryNetworks
      description: Create/update network discovery job
      summary: Create/update network job
      tags:
        - Autodiscovery
        - snmp
      parameters:
        - name: name
          type: string
          required: true
          description: name of the job
          in: formData
        - name: server
          type: string
          in: formData
          description: FQDN or IP of the server(s) or cidr or ranges.
        - name: exclude_servers
          type: string
          in: formData
          description: IP or FQDN of server(s) or cidr or ranges to exclude.
        - name: service_level
          type: string
          in: formData
          description: Name of service level.
        - name: clear_service_level
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Clear existing service level.
        - name: customer
          type: string
          in: formData
          description: Name of customer/department.
        - name: clear_customer
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Clear existing customer.
        - name: ip_address
          type: string
          in: formData
          description: IP address.<br><b>NOTE</b> - this is a legacy parameter; use server param instead.
        - name: end_ip_address
          type: string
          in: formData
          description: End IP address.<br><b>NOTE</b> - this is a legacy parameter; use server param instead.
        - name: enable_pdu_monitoring
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Enable PDU monitoring - yes/no.
        - name: polling_interval
          type: integer
          in: formData
          description: Polling interval in seconds. Adjusted to the nearest available interval value. (e.g., 300 = 5 minutes, 1800 = 30 minutes).
        - name: remote_collector_id
          type: string
          in: formData
          description: <b>Note:</b> REQUIRED if you enable PDU Monitoring.<br>The D42 ID of the remote collector to use for this job.
        - name: do_port_check
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Run nmap port-scan prior to discovery.
        - name: snmp_min_parallel
          type: integer
          in: formData
          description: Set nmap option min_parallelism (Only change if directed by Support).
        - $ref: '#/parameters/snmp_string'
        - $ref: '#/parameters/snmp_strings'
        - $ref: '#/parameters/snmp_string_ids'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/strip_domain_name'
        - $ref: '#/parameters/autodiscover_cdp_devices'
        - $ref: '#/parameters/use_name_alias_port_descr'
        - $ref: '#/parameters/clear_existing_schedule'
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - name: mask_bits
          type: integer
          in: formData
          description: mask bits (integer only)
        - $ref: '#/parameters/snmp_port'
        - $ref: '#/parameters/snmp_version'
        - $ref: '#/parameters/snmp_string_id'
        - $ref: '#/parameters/snmpv3_auth_password_id'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password_id'
        - $ref: '#/parameters/snmpv3_user'
        - $ref: '#/parameters/snmpv3_auth_mode'
        - $ref: '#/parameters/snmpv3_auth_protocol'
        - $ref: '#/parameters/snmpv3_auth_password'
        - $ref: '#/parameters/snmpv3_privacy_protocol'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password'
        - $ref: '#/parameters/snmpv3_context'
        - $ref: '#/parameters/get_all_switch_ports'
        - $ref: '#/parameters/delete_older_mac_association_after'
        - $ref: '#/parameters/delete_switch_port_not_found'
        - $ref: '#/parameters/vlans_to_ignore'
        - $ref: '#/parameters/port_name_prefix_to_ignore_macs'
        - $ref: '#/parameters/debug_level'
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/skip_vlan_indexing'
        - $ref: '#/parameters/vrfgroup'
        - $ref: '#/parameters/object_category'
        - $ref: '#/parameters/discover_services'
        - $ref: '#/parameters/discover_parts'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: network autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryNetworks
      description: >-
        Execute network job. Required parameters: name or job_id
      summary: Run network job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/networks/{id}/:              
    delete:
      operationId: deleteAuto_discoveryNetworks
      summary: Delete network job
      description: Deletes network (SNMP) discovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the network(SNMP) job to delete
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/nmap/:
    get:
      operationId: getAuto_discoverynmap
      summary: Get nmap jobs
      description: Retrieves all autodiscovery nmap jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 1
                    schedule_time:
                      example: ''
                    schedule_day:
                      example: ''
                    end_ip:  
                      example: ''
                    start_ip:
                      example: ''
                    target:  
                      example: 10.42.0.1-10.42.0.10, 10.42.1.0/24, device42-sandbox, device42-prod
                    exclude_targets:
                      example: 10.42.0.3, 10.42.1.42-10.42.1.50, device42-prod
                    name:
                      example: Nmap-job-1
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoverynmap
      description: Create nmap autodiscovery job
      summary: Create nmap job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: ip_start
          in: formData
          type: string
          description: Legacy Field. Please use Target property
        - name: ip_end
          in: formData
          type: string
          description: Legacy Field. Please use Target property
        - $ref: '#/parameters/target'
        - $ref: '#/parameters/exclude_targets'
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job.
          required: true
        - name: nameserver
          type: string
          in: formData
          description: IP/FQDA of name server
        - name: os_detection
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Select yes to detect operating system.
        - name: services_detection
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Select yes to detect services.
        - name: object_category
          type: string
          in: formData
          description: Name of subnet category for discovered subnets
        - name: new_object_category
          type: string
          in: formData
          description: Update an existing object category.
        - name: overwrite_device_categories
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Overwrite the object categories for existing discovered devices.<br><br>Note - this is equivalent to the 'Overwrite existing object categories' parameter shown in the D42 Nmap UI.
        - name: vrfgroup
          in: formData
          type: string
          description: Name of vrf group for discovered subnets
        - name: vrfgroup_id
          in: formData
          type: string
          description: D42 ID of group for discovered subnets
        - name: tags
          in: formData
          type: string
          description: Comma separated list of tags
        - name: tags_remove
          in: formData
          type: string
          description: Comma separated list of tags to remove
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: nmap autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoverynmap
      description: >-
        Execute nmap job. Required parameters: name or job_id
      summary: Run nmap job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id supplied
          in: formData
        - name: job_id
          type: string
          description: D42 ID of the job - required if no name supplied
          in: formData
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/pingsweep/:
    get:
      operationId: getAuto_discoveryPingsweep
      summary: Get pingsweep jobs
      description: Retrieve all autodiscovery pingsweep jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    strip_domain_suffix:
                      example: 'no'
                    create_new_subnet:
                      example: 'yes'
                    name:
                      example: job54
                    overwrite_subnet_category:
                      example: 'yes'
                    schedule_time:
                      example: ''
                    schedule_days:
                      example: ''
                    job_id:
                      example: 2
                    vrfgroup:
                      example: ''
                    debug_level:
                      example: Debug Off
                    reverse_dns:
                      example: 'no'
                    type:
                      example: ''
                    networks:
                      example: 8.8.8.0/28
                    subnet_category:
                      example: ''
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryPingsweep
      summary: Create/update pingsweep job
      description: Create/update pingsweep job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          description: name of the job
          in: formData
        - name: networks
          type: string
          in: formData
          description: Networks to search. Required if new
        - name: type
          type: string
          in: formData
          enum:
            - Static
            - DHCP
            - Reserved
          description: Choose if you want to automatically assign type to discovered IPs.
        - name: strip_domain_suffix
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: Strip everything after the first dot
        - $ref: '#/parameters/clear_existing_schedule'
        - name: debug_level
          type: string
          enum:
            - Debug Off
            - Debug On
          in: formData
        - name: reverse_dns
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: >-
            Add devices by reverse DNS of discovered IP. (Recommended to leave
            unchecked and use other discovery methods for devices)
        - name: create_new_subnet
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: Create new subnet for networks not found
        - name: vrfgroup
          type: string
          in: formData
          description: name of vrf group for discovered subnets
        - name: subnet_category
          type: string
          in: formData
          description: name of subnet category for discovered subnets
        - name: overwrite_subnet_categories
          type: string
          enum:
            - 'yes'
            - 'no'
          description: >-
            If a subnet is discovered that exists and already has a subnet
            category, the category will be overwritten and all child subnets of
            the discovered subnet will also get the new category.
          in: formData
        - name: remote_collector_id
          type: integer
          in: formData
          description: ID of the remote collector to use for this job
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Ping Sweep autodiscovery job added
                  - 4
                  - test_job
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryPingsweep
      description: >-
        Execute pingsweep job. Required parameters: name or job_id
      summary: Run pingsweep job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/blade_disc/:
    get:
      operationId: getAuto_discoveryBlade_disc
      summary: Get Blade jobs
      description: Retrieves all Blade autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 54
                    name:
                      example: job54
                    port:
                      example: 163  
                    servers:
                      example: 192.168.3.1
                    snmp_version:
                      example: v3
                    icmp_tcp_port_check:
                      example: yes
                    debug_level:
                      example: Debug Off
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryBlade_disc
      description: Create/update blade autodiscovery job
      summary: Create/update blade job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: server
          type: string
          in: formData
          description: FQDN or IP of the server(s) or cidr or ranges.
        - name: ipaddress
          type: string
          in: formData
          description: IP address. Required if new
        - $ref: '#/parameters/end_ip_address'
        - $ref: '#/parameters/snmp_string'
        - $ref: '#/parameters/snmp_string_id'
        - $ref: '#/parameters/snmp_strings'
        - $ref: '#/parameters/snmp_string_ids'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/strip_domain_name'
        - $ref: '#/parameters/clear_existing_schedule'
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - $ref: '#/parameters/snmp_port'
        - $ref: '#/parameters/snmp_version'
        - $ref: '#/parameters/snmpv3_user'
        - $ref: '#/parameters/snmpv3_auth_mode'
        - $ref: '#/parameters/snmpv3_auth_protocol'
        - $ref: '#/parameters/snmpv3_auth_password'
        - $ref: '#/parameters/snmpv3_privacy_protocol'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password'
        - $ref: '#/parameters/snmpv3_context'
        - $ref: '#/parameters/debug_level'
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/name_to_use_for_newly_discovered_module'
        - $ref: '#/parameters/toggle_in_service_on_module_power_state'
        - $ref: '#/parameters/module_not_found'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: network autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryBlade_disc
      description: >-
        Execute blade autodiscovery job. Required parameters: name or job_id
      summary: Run blade job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/portscan/:
    get:
      operationId: getAuto_discoveryPortscans
      description: Get all portscan jobs
      summary: Retrieves all portscan autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: '8305'
              limit:
                example: '1'
              offset:
                example: '0'
              jobs:
                  type: array
                  items:
                    $ref: '#/definitions/auto_discoveryPortscan'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryPortscan
      summary: Create/Update portscan job
      description: Create/update portscan autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          in: formData
          description: name of the job
          required: true
        - name: server
          type: string
          description: IP or FQDN of target server
          in: formData
          required: true
        - name: exclude_servers
          type: string
          description: Exclude Server(s)
          in: formData
        - name: task_name_template
          type: string
          description: >-
            Auto-created Task Name Template. AD Task names must be unique! Supported tags: %platform% - nix/windows, %name% - this task name
          in: formData
        - $ref: '#/parameters/debug_level'
        - name: vserver_debug_level
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: >-
            vServer Debug level
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/ignore_host_serial'
        - $ref: '#/parameters/ignore_host_uuid'
        - $ref: '#/parameters/discover_vms'
        - name: discover_vm_creation_date
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Discover VM Creation Date (vSphere 6.7+)
        - name: set_device_dnp
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Do NOT inherit object category from parent
        - $ref: '#/parameters/device_name_format'
        - name: add_nonauthoritativealiases
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Add Non-Authoritative Aliases to device
        - $ref: '#/parameters/ignore_ipv6'
        - name: ignore_subnets
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Ignore Subnets
        - $ref: '#/parameters/ignore_virt_subtype'
        - $ref: '#/parameters/discover_parts'
        - $ref: '#/parameters/capture_hosts_file'
        - $ref: '#/parameters/discover_software'
        - $ref: '#/parameters/initial_software_type'
        - $ref: '#/parameters/discover_services'
        - $ref: '#/parameters/discover_applications'
        - $ref: '#/parameters/discover_cloudid'
        - name: discover_cluster
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Discover Cluster Information
        - $ref: '#/parameters/store_config_files'
        - name: store_software_config_files
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Store Software Config Files
        - name: store_registry_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Store Registry Information
        - name: store_filesystem_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Store File System Information
        - $ref: '#/parameters/strip_domain_suffix'
        - name: servername_as_devicename
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use the server as the device name. If yes, use the server name as the device name. (this does not apply to entered IPs, CIDR blocks or IP ranges)
        - $ref: '#/parameters/service_level_post'
        - name: object_category_id
          type: string
          in: formData
          description: >-
            Object Category ID for discovered devices. Existing object category will not be overwritten.
        - name: object_category
          type: string
          in: formData
          description: >-
            Object Category for discovered devices. Existing object category will not be overwritten.
        - name: new_object_category
          type: string
          in: formData
          description: >-
            Object Category for discovered devices. Existing object category will be overwritten.
        - name: overwrite_device_categories
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Overwrite existing object categories.  If a device is discovered that exists and already has an object category, then if this box is checked, the category will be overwritten and all child devices of the discovered device will also get the new category.
        - $ref: '#/parameters/customer_id'
        - $ref: '#/parameters/clear_customer'
        - name: vrfgroup_id
          type: string
          in: formData
          description: >-
            VRF Group ID for discovered devices- $ref: '#/parameters/vrf_group_id_post'
        - name: vrfgroup
          type: string
          in: formData
          description: VRF Group for discovered devices
        - $ref: '#/parameters/remote_collector_id'
        - name: polling_interval
          type: integer
          in: formData
          description: >-
            Polling interval.<br>
            interval <= 300 - 5 minutes<br>
            interval <= 600 - 10 minutes<br>
            interval <= 900 - 15 minutes<br>
            interval <= 1800 - 30 minutes<br>
            interval <= 3600 - 1 hour<br>
            interval <= 7200 - 2 hours<br>
            interval <= 14400 - 4 hours<br>
            interval <= 21600 - 6 hours<br>
            interval <= 43200 - 12 hours<br>
            otherwise - 24 hours
        - $ref: '#/parameters/enable_resources_monitoring'
        - name: collect_db_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect database server information. Use yes or no.
        - name: ignore_host_os_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Ignore Host OS Info
        - name: allow_sudo
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Allow command to run as sudo
        - name: allow_su
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Allow su to another user
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - name: username
          type: string
          in: formData
          description: username to use in discovery. Required when creating a new job.
        - name: password
          type: string
          in: formData
          description: password to use in discovery. Required when creating a new job.
        - name: db_username
          type: string
          in: formData
          description: Username for DB discovery. Required if collect_db_info is 'yes'
        - name: db_password
          type: string
          in: formData
          description: Password for DB discovery. Required if collect_db_info is 'yes'
        - name: tags
          type: string
          in: formData
          description: >-
            Comma-separated tags.
        - name: tags_remove
          type: string
          description: remove tags (comma separated)
          in: formData
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/remove_password_ids'

      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - TCP Port Scan autodiscovery job added
                  - 10
                  - Create_by_API
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryPortscan
      description: Execute TCP Portscan job
      summary: Run TCP Portscan job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/portscan/{id}/:
    get:
      operationId: getAuto_discoveryPortscan
      description: This call will get information about TCP portscan job by the ID
      summary: Get portscan autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: TCP Portscan Job ID.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            $ref: '#/definitions/auto_discoveryPortscan'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteAuto_discoveryPortscan
      summary: Delete portscan autodiscovery job
      description: >-
        This API is used to delete a portscan autodiscovery job with the id supplied as the
        required argument
      tags:
        - Autodiscovery
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Device id
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              admin:
                example: <ID>
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/power_disc/:
    post:
      operationId: postAuto_discoveryPower_disc
      description: Create/update power autodiscovery job
      summary: Create/update power job
      tags:
        - Autodiscovery
      deprecated: true  
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - $ref: '#/parameters/appliance'
        - name: server
          type: string
          in: formData
          description: FQDN or IP of the server(s) or cidr or ranges.
        - name: ipaddress
          type: string
          in: formData
          description: IP address. Required if new
        - $ref: '#/parameters/end_ip_address'
        - $ref: '#/parameters/snmp_string'
        - $ref: '#/parameters/snmp_strings'
        - $ref: '#/parameters/snmp_string_ids'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/strip_domain_name'
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/vrfgroup'
        - $ref: '#/parameters/object_category'
        - name: category
          in: formData
          description: subnet category to assign to addresses of discovered units
          type: string
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - $ref: '#/parameters/snmp_port'
        - $ref: '#/parameters/snmp_version'
        - $ref: '#/parameters/snmp_string_id'
        - $ref: '#/parameters/snmpv3_auth_password_id'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password_id'
        - $ref: '#/parameters/snmpv3_user'
        - $ref: '#/parameters/snmpv3_auth_mode'
        - $ref: '#/parameters/snmpv3_auth_protocol'
        - $ref: '#/parameters/snmpv3_auth_password'
        - $ref: '#/parameters/snmpv3_privacy_protocol'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password'
        - $ref: '#/parameters/snmpv3_context'
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/name_to_use_for_newly_discovered_module'
        - $ref: '#/parameters/toggle_in_service_on_module_power_state'
        - $ref: '#/parameters/module_not_found'
        - $ref: '#/parameters/name_to_use_for_newly_discovered_pdu'
        - $ref: '#/parameters/polling_interval'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Power autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryPower_disc
      description: Execute power autodiscovery job
      summary: Run power job
      tags:
        - Autodiscovery
      deprecated: true
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/vserver/:
    get:
      operationId: getAuto_discoveryvServer
      summary: Get all vServer jobs
      description: Retrieves all vServer autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    url_prefix:
                      example: https
                    job_id:
                      example: 54
                    name:
                      example: vserverjob54
                    port:
                      example: 443
                    target:
                      example: 192.168.11.21
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryVserver
      description: Create/update vServer autodiscovery job
      summary: Create/update vServer job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: server
          type: string
          in: formData
          description: IP or FQDN of target server
          required: true
        - name: platform
          in: formData
          type: string
          enum:
            - windows
            - classic winrm
            - docker api
            - docker
            - nutanix
            - linux
            - vmware
            - unix
            - aix hmc
            - openvz
            - oracle vm
            - lxc
            - kvm
            - libvirt
            - ovirt
            - redhat
            - citrix xen
            - sccm
          required: true
        - name: use_ftp
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use FTP instead of Telnet for discovery.
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - name: password_ids
          type: string
          in: formData
          description: One or more D42 password ID numbers separated by commas
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - name: object_category
          type: string
          in: formData
          description: category of discovered vservers and vms
        - $ref: '#/parameters/debug_level'
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/url_prefix'
        - name: port
          type: string
          in: formData
          description: specify port
        - $ref: '#/parameters/url_suffix'
        - name: username
          type: string
          in: formData
          description: username to use in discovery. Required when creating a new job.
        - name: password
          type: string
          in: formData
          description: password to use in discovery. Required when creating a new job.
        - name: collect_db_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect database server information. Use yes or no.
        - name: db_username
          type: string
          in: formData
          description: Username for DB discovery. Required if collect_db_info is 'yes'
        - name: db_password
          type: string
          in: formData
          description: Password for DB discovery. Required if collect_db_info is 'yes'
        - name: collect_with_db_server
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect SCCM by using the database server. Use yes or no.
        - $ref: '#/parameters/strip_domain_suffix'
        - $ref: '#/parameters/prepend_vmhostname'
        - $ref: '#/parameters/ignore_powered_off'
        - $ref: '#/parameters/discover_vms'
        - $ref: '#/parameters/vm_name_to_use'
        - $ref: '#/parameters/add_multiple_vm_names_as_alias'
        - $ref: '#/parameters/toggle_service_level_on_vm_power_state'
        - $ref: '#/parameters/get_guest_os_info'
        - $ref: '#/parameters/ignore_guest_uuid'
        - $ref: '#/parameters/vm_not_found'
        - $ref: '#/parameters/track_vm_name_change'
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/hostidlist'
        - $ref: '#/parameters/vm_add_disk'
        - $ref: '#/parameters/host_allow_duplicate_serials'
        - $ref: '#/parameters/ignore_host_serial'
        - $ref: '#/parameters/ignore_host_uuid'
        - $ref: '#/parameters/overwrite_object_categories'
        - $ref: '#/parameters/remote_collector_id'
        - $ref: '#/parameters/use_service_account'
        - $ref: '#/parameters/ignore_ipv6'
        - $ref: '#/parameters/ignore_virt_subtype'
        - $ref: '#/parameters/device_name_format'
        - $ref: '#/parameters/discover_parts'
        - $ref: '#/parameters/capture_hosts_file'
        - $ref: '#/parameters/discover_software'
        - $ref: '#/parameters/initial_software_type'
        - name: discover_lines_of_code
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: If enabled, please set the max timeout for the discovery to greater than 5 minutes.
        - $ref: '#/parameters/discover_services'
        - $ref: '#/parameters/discover_applications'
        - $ref: '#/parameters/store_config_files'
        - $ref: '#/parameters/discover_cloudid'
        - $ref: '#/parameters/customer_id'
        - $ref: '#/parameters/clear_customer'
        - $ref: '#/parameters/vrf_group_id_post'
        - $ref: '#/parameters/service_level_device_id'
        - $ref: '#/parameters/sudo_retry'
        - $ref: '#/parameters/alternate_sudo'
        - $ref: '#/parameters/use_domain_server'
        - $ref: '#/parameters/ldap_server'
        - $ref: '#/parameters/use_fqdn'
        - $ref: '#/parameters/ldap_filter_type'
        - $ref: '#/parameters/ldap_unpwd_id'
        - $ref: '#/parameters/alternate_sudo_password_id'
        - $ref: '#/parameters/polling_interval'
        - $ref: '#/parameters/enable_resources_monitoring'
        - name: ignore_host_os_info
          in: formData
          type: string
          enum:
            - 'yes'
            - 'no'
          description: Option to ignore the Host OS name
        - $ref: '#/parameters/exclude_servers'
        - name: allow_su
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Allow super user permissions to another user
        - name: use_ftps
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use FTPS instead of Telnet for discovery.
        - name: use_winrm
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use WinRM for windows discovery instead of WDS/WMI.
        - name: use_winrm_wds
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use WinRM through the WDS service for windows discovery instead of WDS using WMI or direct WinRM from RC.
        - name: sync_notes
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Sync Notes. Currently only for VMWare.
        - name: discover_vcloud
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Discover vCloud. Only for VMWare.
        - name: add_custom_attributes_as_custom_fields
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Get Custom Attributes as Custom Fields. Only for VMWare.
        - name: remote_ip_exclusions
          type: string
          in: formData
          description: start_ip-end_ip of remote IP range to exclude,eg.<br><b>1.1.1.1-1.1.1.5</b>
            <br>Provide comma separated values to exclude multiple ranges, eg. <br><b>1.1.1.1-1.1.1.2,3.2.2.2-3.2.2.255</b>
        - name: remote_ip_exclusions_clear
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Remove all remote_ip_exclusions from vserver
        - name: add_tags_as_custom_fields
          type: integer
          in: formData
          enum:
            - 1
            - 2
          description: >-
            Add vCloud vendor tags as custom fields.<br>
            Works only if "Discover vCloud" checked. Tags with keys greater than 32 characters will be omitted. <br>
            1: Tag as key, description as value 2: Category as key, tag as value
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - name: ignore_disc_nics
          type: string
          in : formData
          description: Ignore the following interfaces (* for all or name(s) that starts with entered text as CSV)
        - name: ignore_disc_ips
          type: string
          in : formData
          description: Ignore the following IPs (can be IP(s), CIDR(s) and/or range(s).
        - name: ignore_disc_macs
          type: string
          in : formData
          description: Ignore the following MACs (* for all or MAC(s) that starts with entered text as CSV)
        - $ref: '#/parameters/remove_password_ids'
        - name: prioritize_dns_name
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: yes or no
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - vserver autodiscovery job added
                  - 10
                  - Create_by_API
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryVserver
      description: Execute vServer job
      summary: Run vServer job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/cloudaccount/:
    get:
      operationId: getAuto_discoveryCloudaccount
      summary: Get all cloud jobs
      description: Retrieves all cloud autodiscovery jobs
      tags:
        - Autodiscovery
        - cloud
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 54
                    name:
                      example: Oraclejob54
                    cloud_type:
                      example: oracle cloud
                    vendor:
                      example: oracle
                    remote_collector:
                      example: rc-223-la
                    user_id:
                      example: sjapo4duy17re45
                    key_file:
                      example: b48b-9acd57b4a3a0
                    tenant_id:
                      example: a41cde6e-8f12-44b8
                    oracle_regions:
                      example: us-ashburn-1,us-phoenix-1
                    instance_not_found:
                      example: Change status
                    collect_db_info:
                      example: 'no'
                    db_usernames:
                      example: []
                    db_password_ids:
                      example: []
                    add_tags_to_device:
                      example: 2
                    add_tags_as_custom_fields:
                      example: 3
                    vendor_metadata_source:
                      example: 2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryCloudaccount
      description: >-
        Create/update a cloud autodiscovery job.<br>
        <p><b>Required parameters by cloud vendor or job type.</b><br>(API parameter = UI equivalent)</i><p>ALL DISCOVERY JOBS<br>- name = Name<br>- cloud_type = Cloud Type
        <p>AMAZON AWS<br>- accountid = Access Key ID<br>- secret_key OR secret_key_id = Secret Key<br>- regions = Regions<br>
        <p>MICROSOFT AZURE<br>- auth_type = Authentication Type<br>- accountid = Client ID (Service Principal) or Username (User Credentials)<br>- secret_key OR secret_key_id = Client Secret (Service Principal) or Password (User Credentials)<br>- subscriptionid = Subscription ID<br>- tenant = Tenant ID
        <p>LINODE<br>- api_key OR api_key_id = API Key
        <p>DIGITALOCEAN<br>- token_key = Token Key
        <p>OPENSTACK<br>- ip = URL<br>- username = User<br>- secret_key OR secret_key_id = Password<br>- tenant = Project Name
        <p>GOOGLE CLOUD<br>- tenant = Project ID<br>- secret_key OR secret_key_id = Credentials JSON<br>- google_regions = Zones
        <p>ALIBABA CLOUD<br>- accountid = Access Key ID<br>- secret_key OR secret_key_id = Access Key Secret
        <p>ORACLE CLOUD<br>- accountid = User ID<br>- api_key OR api_key_id = Fingerprint<br>- secret_key OR secret_key_id = Key File<br>- tenant = Tenant ID<br>- oracle_regions = Zones
        <p>STANDALONE KUBERNETES<br>- ip = URL<br>- auth_type = Authentication Type<br>- accountid = Bearer Token or Basic Credentials (depending on Authentication Type)
        <p>ARISTA CLOUDVISION<br>- server = node(s)<br>- auth_type = Authentication Type<br>- username (Basic Credentials Only)<br>- secret_key (password if auth_type = Basic Authentication, API Token if auth_type = Bearer Token)<br>- tenant (CVSaaS only)
        <p>JAMF<br>- ip = URL<br>- accountid = User ID
        <p>WORKSPACE ONE<br>- ip = URL<br>- tenant = Tenant<br>- accountid = Basic Credentials
      summary: Create/update cloud job
      tags:
        - Autodiscovery
        - cloud
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: Name of the discovery job; required for all jobs.
        - $ref: '#/parameters/cloud_type'
        - $ref: '#/parameters/secret_key_id'
        - $ref: '#/parameters/vendor_post'
        - name: kubernetes_discovery
          in: formData
          description: Available for Amazon AWS, Microsoft Azure, and standalone Kubernetes. <br>Yes / No
          type: string
          enum:
            - 'yes'
            - 'no'
        - name: remote_collector_id
          in: formData
          description: ID number of the remote collector (RC) to use for the job.
          type: string     
        - name: customer_id
          in: formData
          description: Customer ID number for discovered devices.
          type: string    
        - $ref: '#/parameters/clear_customer'
        - name: device_name_format
          in: formData
          description: Name format for discovered cloud instances (only for Alibaba Cloud, Amazon AWS, Google Cloud, MS Azure, Oracle Cloud).
          type: string     
          enum:
            - 'Instance ID + name (if defined)'
            - 'Instance ID'
            - 'Name (only use if unique)'
        - name: container_not_found
          in: formData
          description: For Kubernetes discovery.<br>1 = changes status, 2 = delete container
          type: string
          enum:
            - '1'
            - '2'
        - name: auth_type
          in: formData
          description: Type of authentication credentials for MS Azure and Standalone Kubernetes.
          type: string
          enum:
            - 'User Credentials'
            - 'Service Principal'
            - 'Bearer Token'
            - 'Basic Credentials'
        - name: accountid
          type: string
          in: formData
          description: Required for Alibaba Cloud, Amazon AWS, Kubernetes, MS Azure, Oracle Cloud, Jamf, Workspace ONE.
        - $ref: '#/parameters/vrfgroup'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/remove_unfound_instances'
        - $ref: '#/parameters/strip_domain_name'
        - $ref: '#/parameters/add_suffix'
        - $ref: '#/parameters/match_name_only_for_virtuals'
        - $ref: '#/parameters/match_name_only_for_hypervisor'
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - name: object_category
          type: string
          in: formData
          description: category of discovered vservers and vms
        - $ref: '#/parameters/debug_level'
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/secret_key'
        - $ref: '#/parameters/regions'
        - $ref: '#/parameters/aws_roles'
        - aws_roles_remove:
          name: aws_roles_remove
          in: formData
          type: string
          description: >-
            Comma separated names of aws_roles to remove from a cloud discovery job. Use <b> * </b> to clear all aws_roles from a cloud discovery job.
        - name: azure_cloud_definition
          type: string
          in: formData
          enum:
            - 'Public'
            - 'China'
            - 'US Gov.'
            - 'German'
          description: Cloud Definition for MS Azure discovery jobs.   
        - name: google_regions
          type: string
          in: formData
          description: comma-separated list of Google region names
        - name: oracle_regions
          type: string
          in: formData
          description: comma-separated list of Oracle region names
        - $ref: '#/parameters/subscriptionid'
        - name: ip
          type: string
          in: formData
          description: OpenStack URL; Standalone Kubernetes URL; Jamf URL; Workspace ONE URL;
        - name: server
          type: string
          in: formData
          description: (Arista CloudVision; IP(s) or hostname(s) for CVP nodes)
        - $ref: '#/parameters/tenant'
        - name: username
          type: string
          in: formData
          description: OpenStack username - required for OpenStack
        - name: api_key
          type: string
          in: formData
          description: Oracle Cloud Fingerprint; Linode API Key
        - name: api_key_id
          type: string
          in: formData
          description: Oracle Cloud Fingerprint; Linode API Key
        - $ref: '#/parameters/api_token'
        - $ref: '#/parameters/token_key'
        - name: alibaba_regions
          in: formData
          description: Comma-separated list of Alibaba Cloud region names.
          type: string     
        - name: features
          in: formData
          type: string
          description: >-
            Comma-separated list of features. 
            Choices for AWS are: s3, ebs, route53, databases, elb, functions, redshift, dynamodb, efs. 
            Choices for GCP are: databases. 
            Choices for AZURE are: databases, functions. 
            Use 'D42_NULL' to disable advanced features for Cloud discovery jobs.
        - name: collect_db_info
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect database server information. Use yes or no. ( Cosmos DB for PostgreSQL only )
        - name: db_username
          type: string
          in: formData
          description: Username for DB discovery. Required if collect_db_info is 'yes'
        - name: db_password
          type: string
          in: formData
          description: Password for DB discovery. Required if collect_db_info is 'yes'
        - name: extended_discovery
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect summary information on all AWS/Azure resources that are not supported by full discovery yet. Use yes or no.
        - name: chromeos_discovery
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Collect summary information on all ChromeOS devices in Google Cloud Platform discovery. Use yes or no.
        - name: use_env_credentials
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Use cloud credentials from environment not from job. Only supported for AWS.
        - name: discover_all_subscriptions
          type: boolean
          in: formData
          description: Discover all Subscriptions within Azure Tenant.
        - $ref: '#/parameters/service_level_post'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - name: add_tags_as_custom_fields
          type: integer
          in: formData
          enum:
            - 1
            - 2
            - 3
          description: >-
            The way how to add vendor metadata.<br>
            1: Do nothing 2: Add as custom fields 3: Add as tags
        - name: vendor_metadata_source
          type: integer
          in: formData
          enum:
            - 1
            - 2
          description: >-
            Metadata source ( For Google Cloud Only ).<br>
            1: Labels 2: Custom Metadata
        - $ref: '#/parameters/remove_password_ids'
        - name: add_tags_to_device
          type: integer
          in: formData
          enum:
            - 1
            - 2
          description: >-
            Add tags to device ( For Google Cloud Only ).<br>
            1: Do nothing 2: Import Tags
      responses:
        '200':
          description: 'The above command returns results like this:'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryCloudaccount
      description: Execute cloud job
      summary: Run cloud job
      tags:
        - Autodiscovery
        - cloud
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/cloud_infrastructure/:
    get:
      operationId: getCloud_infrastructure
      summary: Get AWS cloud info
      description: Retrieves cloud account for AWS discovery
      tags:
        - Cloud Account
      parameters:
        - name: id
          type: string
          in: formData
          description: Cloud account id.
        - name: account
          type: string
          in: formData
          description: Cloud account.
        - name: organization
          type: string
          in: formData
          description: Organization.
        - name: name
          type: string
          in: formData
          description: Name.
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of infrastucture tags.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 1
              limit:
                example: 1000
              offset:
                example: 0  
              cloud_infrastructures:
                type: array
                items:
                  type: object
                  properties:
                   account:
                    example: 458407285063
                   cloud_vendor_id:
                    example: 1
                   notes:
                    example: New Notes
                   tags:
                    example: []
                   last_changed:
                    example: 2020-06-19T16:40:02.528Z
                   first_added:
                    example: 2020-06-19T16:13:18.179Z
                   organization:
                    example: D42 Internal
                   last_edited:
                    example: 2020-06-19T16:40:02.811Z
                   id:
                    example: 1
                   custome_fields:
                    example: []  
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postCloud_infrastructure
      description: Modify cloud infrastructure for AWS discovery
      summary: Update AWS cloud info
      tags:
        - Cloud Account
      parameters:
        - name: id
          type: string
          in: formData
          description: Cloud account id (search only).
        - name: account
          type: string
          in: formData
          description: Cloud account (search only).
        - name: notes
          type: string
          in: formData
          description: Infrastucture notes.
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of infrastucture tags.
        - name: tags_remove
          type: string
          in: formData
          description: Remove existing tags - yes/no.
          enum:
            - 'yes'
            - 'no'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - cloud infrastructure added/updated
                  - 11
                  - rajj
                  - true
                  - false
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/cloud_infrastructure/{id}/:              
    delete:
      operationId: deleteCloud_infrastructure
      summary: Delete cloud info
      description: Deletes cloud account ID and all attached cloud resources
      tags:
        - Cloud Account
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the infrastructure to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/1.0/custom_fields/cloud_infrastructure/:              
    put:
      operationId: putCustom_FieldCloud_infrastructure
      description: Create/updated custom fields for cloud account
      summary: Cloud info custom fields
      tags:
        - Cloud Account
      parameters:
        - name: id
          in: formData
          description: ID of the cloud account.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'D42-internal'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/resource/:
    get:
      operationId: getCloud_resource
      summary: Get cloud resource
      description: Retrieves cloud resources for AWS discovery
      tags:
        - Resources
      parameters:
        - name: id
          type: integer
          in: formData
          description: Cloud resource id.
        - name: name
          type: string
          in: formData
          description: Resource name (partial match).
        - name: identifier
          type: string
          in: formData
          description: Resource identifier.
        - name: device
          type: string
          in: formData
          description: Device name.
        - name: vendor_define_type
          type: string
          in: formData
          description: Vendor definition type.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 128
              resource:
                type: array
                items:
                  properties:
                    category:
                      example: Device
                    zones:
                      example: usa-east-2a
                    identifier:
                      example: i-0d90158f3cf3e7e19
                    tags:
                      example: ""
                    name:
                      example: d42-internal
                    notes:
                      example: oracle cloud
                    last_changed:
                      example: 2020-06-19T16:13:18.225Z
                    subtype:
                      example: []
                    cloud_infra_id:
                      example: 2
                    region:
                      example: usa-east-2
                    root_resource_id:
                      example: 2
                    root_resource:
                      example: wbd42pstgr1
                    last_edited:
                      example: 2020-06-19T16:13:18.229Z
                    first_added:
                      example: 2020-06-19T16:13:18.229Z
                    id:
                      example: 3
                    resource_storage:
                      example: []
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postCloud_resource
      description: Modify cloud resource for AWS discovery
      summary: Update cloud resource
      tags:
        - Resources
      parameters:
        - name: id
          type: string
          in: formData
          description: Cloud resource id (search only).
        - name: identifier
          type: string
          in: formData
          description: Cloud resource identifier (search only).
        - name: notes
          type: string
          in: formData
          description: Resource notes.
        - name: tags
          type: string
          in: formData
          description: Comma-separated list of resource tags.
        - name: tags_remove
          type: string
          in: formData
          description: Remove existing tags - yes/no.
          enum:
            - 'yes'
            - 'no'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - resource added/updated
                  - 11
                  - d42_internal
                  - true
                  - false
              code:
               example: 0 
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/resource/{id}/:              
    delete:
      operationId: deleteCloud_resource
      summary: Delete cloud resource
      description: Deletes cloud resource ID and all attached cloud resources
      tags:
        - Resources
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the resource to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/2.0/resource/{id}/archive/:            
    post:
      operationId: archiveResourceIdv2
      description: This API archives a resource by ID
      summary: Archive resource by ID
      tags:
        - Resources
      parameters:
        - name: id
          type: integer
          in: path
          required: true
          description: Resource id.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                $ref: '#/definitions/objectArchive'
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/custom_fields/resource/:              
    put:
      operationId: putCustom_FieldCloud_resource
      description: Create/updated custom fields for cloud resource
      summary: Cloud resource custom fields
      tags:
        - Resources
      parameters:
        - name: id
          in: formData
          description: ID of the cloud resource.
          required: true
          type: string
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/related_field_name'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/related_field_value_by_id'
        - $ref: '#/parameters/value'
        - $ref: '#/parameters/clear_value'
        - $ref: '#/parameters/notes_post'
        - $ref: '#/parameters/clear_notes'
        - $ref: '#/parameters/bulk_fields'
        - $ref: '#/parameters/multi_select'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - custom key pair values added or updated
                  - 2
                  - 'CPU NA, PN: 1000base-lx-sfp'
                  - true
                  - false
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/resource_relationship/:
    get:
      operationId: getResource_relationship
      summary: Get cloud resource relationships
      description: Retrieves cloud resource relationships for AWS
      tags:
        - Resources
      parameters:
        - name: id
          type: string
          in: formData
          description: Cloud resource id.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              total_count:
                example: 128
              resource_relationships:
                type: array
                items:
                  properties:
                    from_resource:
                      example: []
                    category:
                      example: Volume
                    vendor_custom_fields:
                      example: []
                    last_edited:
                      example: 2020-06-21T16:13:18.225Z
                    name:
                      example: d42-internal  
                    tags:
                      example: []
                    notes:
                      example: new notes
                    cloud_infra:
                      example: []
                    account:
                      example: AW90746321
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/resource_relationship/{id}/:              
    delete:
      operationId: deleteResource_relationship
      summary: Delete cloud resource relationship
      description: Deletes cloud resource relationship ID and attached resource relationships
      tags:
        - Resources
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the resource relationship to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/1.0/auto_discovery/snmp_disc/:
    get:
      operationId: getAuto_discoverySnmp_disc
      summary: Get all SNMP jobs
      description: Retrieves all SNMP autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 54
                    name:
                      example: snmpjob54
                    port:
                      example: 163  
                    servers:
                      example: 192.168.3.1
                    snmp_version:
                      example: v3
                    icmp_tcp_port_check:
                      example: yes
                    debug_level:
                      example: Debug Off
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoverySnmp_disc
      description: Create/update other SNMP autodiscovery job
      summary: Create/update SNMP job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: server
          type: string
          in: formData
          description: FQDN or IP of the server(s) or cidr or ranges.
        - name: ip_address
          type: string
          in: formData
          description: IP address. Required if new
        - $ref: '#/parameters/end_ip_address'
        - $ref: '#/parameters/snmp_string'
        - $ref: '#/parameters/snmp_string_id'
        - $ref: '#/parameters/snmp_strings'
        - $ref: '#/parameters/snmp_string_ids'
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job.
        - name: do_port_check
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Run nmap port-scan prior to discovery.
        - name: snmp_min_parallel
          type: integer
          in: formData
          description: Set nmap option min_parallelism (Only change if directed by Support).
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/strip_domain_name'
        - $ref: '#/parameters/clear_existing_schedule'
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - $ref: '#/parameters/snmp_port'
        - $ref: '#/parameters/snmp_version'
        - $ref: '#/parameters/snmpv3_auth_password_id'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password_id'
        - $ref: '#/parameters/snmpv3_user'
        - $ref: '#/parameters/snmpv3_auth_mode'
        - $ref: '#/parameters/snmpv3_auth_protocol'
        - $ref: '#/parameters/snmpv3_auth_password'
        - $ref: '#/parameters/snmpv3_privacy_protocol'
        - $ref: '#/parameters/snmpv3_privacy_protocol_password'
        - $ref: '#/parameters/snmpv3_context'
        - $ref: '#/parameters/debug_level'
        - name: service_level
          type: string
          in: formData
          description: service level of discovered devices
        - name: snmp_timeout
          type: integer
          in: formData
          description: timeout for the snmp job
        - name: snmp_retries
          type: integer
          in: formData
          description: number of retries for the snmp job
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/clear_customer'
        - name: ignore_logical_ports
          required: false
          type: boolean
          in: formData
          default: false
          description: Ignore logical ports.
        - customer_id:
          name: customer_id
          in: formData
          type: string
          description: D42 ID of customer or department name.
        - name: customer
          type: string
          in: formData
          description: Name of customer/department.
        - $ref: '#/parameters/remove_password_ids'
        - $ref: '#/parameters/autodiscover_cdp_devices'
        - $ref: '#/parameters/delete_older_mac_association_after'
        - $ref: '#/parameters/delete_switch_port_not_found'
        - $ref: '#/parameters/discover_parts'
        - $ref: '#/parameters/exclude_servers'
        - $ref: '#/parameters/get_all_switch_ports'
        - $ref: '#/parameters/hostname_precedence'
        - $ref: '#/parameters/module_not_found'
        - $ref: '#/parameters/name_to_use_for_newly_discovered_module'
        - $ref: '#/parameters/polling_interval'
        - $ref: '#/parameters/port_name_prefix_to_ignore_macs'
        - $ref: '#/parameters/skip_vlan_indexing'
        - $ref: '#/parameters/toggle_in_service_on_module_power_state'
        - $ref: '#/parameters/use_name_alias_port_descr'
        - $ref: '#/parameters/vlans_to_ignore'
        - $ref: '#/parameters/vrfgroup'
        - name: category
          in: formData
          description: name of the category
          type: string
        - name: port_name_prefix_to_mark_as_uplink
          type: string
          in: formData
          description: Port name prefix to mark as uplink. Marks discovered ports with these switch port prefix names (comma separated) as uplinks.
        - name: query_device_advertised_contexts
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Query device advertised contexts
        - name: Secondary Contexts
          type: string
          in: formData
          description: Comma separated values of secondary contexts.
        - name: ignore_oids
          type: string
          in: formData
          description: Ignore the following OIDs
        - name: vlans_to_include
          type: string
          in: formData
          description: Comma separated or range values of VLAN to include.
        - name: dont_add_new_device_on_remote_port
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Ignore remote port device information
        - name: enable_pdu_monitoring
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Enable PDU monitoring - yes/no.
        - name: overwrite_object_categories
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Overwrite the object categories for existing discovered devices.<br><br>Note - this is equivalent to the 'Overwrite existing object categories' parameter shown in the D42 Nmap UI.
        - name: overwrite_subnet_categories
          type: string
          enum:
            - 'yes'
            - 'no'
          description: >-
            If a subnet is discovered that exists and already has a subnet
            category, the category will be overwritten and all child subnets of
            the discovered subnet will also get the new category.
        - name: send_sfp_as_parts
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Add SFP ports as Parts
        - name: include_unit_name
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Include the power unit name in the Device42 name assigned to the power unit
        - name: include_serial_in_name
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Include the serial number in the Device42 name assigned to the power unit
        - name: include_ip_in_name
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Include the serial number in the Device42 name assigned to the power unit
        - name: service_level_module
          type: string
          in: formData
          description: Service Level for Module not found
        - name: device_category
          type: string
          in: formData
          description: Object Category for discovered devices.Existing object category will not be overwritten.
        - name: ignore_os
          type: string
          in: formData
          description: Ignore the following OS(s)
        - name: discovered_port_types_to_ignore
          type: string
          in: formData
          description: Discovered port types to ignore separated by commas.
        - name: remove_discovered_port_types_to_ignore
          type: string
          in: formData
          description: Remove from Discovered port types to ignore list separated by commas.
        - name: discovered_port_types_not_to_count
          type: string
          in: formData
          description: Discovered port types not to count separated by commas.
        - name: remove_discovered_port_types_not_to_count
          type: string
          in: formData
          description: Remove from Discovered port types not to count list separated by commas.
        - name: scan_all_protocols
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
          description: yes or no
      responses:
        '200':
          description: 'The above command returns results like this:'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoverySnmp_disc
      description: Execute SNMP autodiscovery job
      summary: Run SNMP job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/auto_discovery/storagearraytarget/:
    get:
      operationId: getAuto_discoveryStorageArray
      summary: Get all storage array jobs
      description: Retrieves all storage array autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 54
                    name:
                      example: SA-Test-Job-2
                    platform:
                      example: netapp  
                    servers:
                      example: 192.168.3.1
                    schedule_days:
                      example: ''
                    schedule_time:
                      example: ''
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryStorageArray
      description: Create/update a storage array autodiscovery job
      summary: Create/update storage array job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: server
          type: string
          in: formData
          description: IP or FQDN of target server(s).<br>REQUIRED if new.
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job.<br>REQUIRED if new.
        - name: platform
          type: string
          in: formData
          enum:
            - 'emc-ecs'
            - 'emc-smis'
            - 'emc-unity'
            - 'hp3par'
            - 'infinidat'
            - 'isilon'
            - 'netapp'
            - 'orcl-zfs'
            - 'pure-storage'
            - 'hitachi'
            - 'lsi'
            - 'ibm'
            - 'dell-equal'
            - 'hp3par'
            - 'xtrem-io'
            - 'tintri'
            - 'recover-point'
            - 'hp-lefthand'
            - 'hdsg1k'
            - 'data-domain'
            - 'ibm-flash'
            - 'dell-compellent'
            - 'nimble'
            - 'hpe-storeeasy'
            - 'emc-uni-rest'
            - 'dell-powerstore'
            - 'purity-fb'
            - 'lenovo'
          description: Storage Array platform.
        - name: url_prefix
          type: string
          in: formData
          enum:
            - 'http'
            - 'https'
        - name: port
          type: string
          in: formData
          description: Specify port. Use UI default if unsure.
        - name: exclude_servers
          type: string
          in: formData
          description: IP or FQDN of servers to exclude.
        - name: polling_interval
          type: integer
          in: formData
          description: Polling interval in seconds.
        - name: enable_resources_monitoring
          type: string
          in: formData
          enum:
            - 'yes'
            - 'no'
          description: Enable performance data collection.
        - name: max_timeout
          type: integer
          in: formData
          description: Maximum timeout on connection (in seconds).
        - name: netapp_target
          type: string
          in: formData
          enum:
            - 'filer'
            - 'dfm'
            - 'ocum'
          description: Netapp target type.
        - name: netap_protocol
          type: string
          in: formData
          enum:
            - 'https'
            - 'http'
            - 'insecure-https'
          description: Netapp protocol type.
        - name: sat_not_found
          type: string
          in: formData
          enum:
            - '1'
            - '2'
          description: Action for Storage Array not found.<br>1 = Keep array resource.<br>2 = Delete array resource.
        - name: username
          type: string
          in: formData
          description: Username to use for discovery.
        - name: password
          type: string
          in: formData
          description: Password to use for discovery.
        - name: password_ids
          type: string
          in: formData
          description: One or more D42 password ID numbers separated by commas.
        - name: token_auth
          type: string
          in: formData
          description: Whether to authenticate with the token or username/password.
          enum:
            - 'yes'
            - 'no'
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - storage array job added/updated
                  - 11
                  - d42_internal
                  - true
                  - false
              code:
               example: 0 
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryStorageArray
      description: Execute a storage array autodiscovery job
      summary: Run storage array job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: Name of the job<br>- required if no job_id supplied
          in: formData
        - name: job_id
          type: string
          description: D42 ID for the job<br>- required if no job name supplied
          in: formData
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/auto_discovery/storagearraytarget/{id}/:              
    delete:
      operationId: deleteStorageArray_discovery
      summary: Deletes storage array job
      description: Deletes a storage array autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          in: path
          required: true
          description: ID of Storage Array discovery job to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '11'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'         
  /api/1.0/auto_discovery/ipmi/:
    get:
      operationId: getAuto_discoveryIpmi
      summary: Get all IPMI/Redfish jobs
      description: Retrieves all IPMI/Redfish autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 54
                    name:
                      example: IPMIjob54
                    discovery_type:
                      example: IPMI
                    ip_start:
                      example: 10.42.54.17
                    ip_end:
                      example: 10.42.54.21
                    serial_to_use:
                      example: Product serial  
                    servers:
                      example: 192.168.3.1
                    host_name_to_use:
                      example: Serial / Reverse DNS / IP
                    vrfgroup:
                      example: ''
                    add_hardware_model:
                      example: no
                    overwrite_device_name:
                      example: yes
                    debug_level:
                      example: Debug Off
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryIpmi
      description: Create IPMI/Redfish autodiscovery job
      summary: Create IPMI/Redfish job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - $ref: '#/parameters/ip_start'
        - $ref: '#/parameters/ip_end'
        - $ref: '#/parameters/bmc_user'
        - $ref: '#/parameters/bmc_password'
        - $ref: '#/parameters/hostname_to_use'
        - $ref: '#/parameters/update_model_if_found'
        - $ref: '#/parameters/run_as_operator'
        - $ref: '#/parameters/overwrite_device_name'
        - name: object_category
          type: string
          in: formData
        - name: vrfgroup
          type: string
          in: formData
          description: name of vrf group for discovered subnets
        - name: vrfgroup_id
          type: number
          in: formData
          description: id of vrf group for discovered subnets
        - $ref: '#/parameters/overwrite_object_categories'
        - $ref: '#/parameters/clear_existing_schedule'
        - name: groups
          type: string
          in: formData
          description: name of one or more groups separated by commas
        - name: debug_level
          type: string
          enum:
            - 'yes'
            - 'no'
          in: formData
        - $ref: '#/parameters/discovery_type'
        - $ref: '#/parameters/remote_collector_id'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: IPMI autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryIpmi
      description: Execute IPMI/Redfish autodiscovery job
      summary: Run IPMI job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/ucs/:
    get:
      operationId: getAuto_discoveryUcs
      summary: Get all UCS/ACI/Load Balancer jobs
      description: Retrieves all UCS/ACI/Load Balancer autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    decommissioned_service_level_id:
                      example: ''
                    job_id:
                      example: 54
                    hostname_to_use:
                      example: 2
                    platform:
                      example: UCS
                    name:
                      example: UCSjob54
                    exclude_servers:
                      example: ''
                    server:
                      example: 10.42.54.21
                    device_category:
                      example: ''  
                    schedule_days:
                      example: 1,2,4
                    schedule_time:
                      example: 23:00
                    debug_level:
                      example: Debug Off
                    port:
                      example: 443
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryUcs
      description: Create/update a UCS/ACI/Load Balancer autodiscovery job
      summary: Create/update UCS/ACI/Load Balancer job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - $ref: '#/parameters/remote_collector_id'
        - name: platform
          in: formData
          type: string
          required: true
          enum:
          - 'UCS'
          - 'ACI'
          - 'F5'
          - 'NetScaler'
          - 'Alteon'
          - 'Cisco Prime'
          description: Required
        - name: server
          in: formData
          type: string
          description: FQDN or IP of the server(s) or CIDR or ranges
        - name: port
          in: formData
          type: string
          required: true
          description: Default is 443 - use this default if you are not sure.
        - name: use_ssl
          in: formData
          type: string
          description: Default is Yes - use this default if you are not sure.
          enum:
          - 'Yes'
          - 'No'
        - name: exclude_servers
          in: formData
          type: string
          description: Servers to ignore  
        - name: username
          in: formData
          type: string
          required: True
        - name: password
          in: formData
          type: string
          required: True  
        - name: password_id
          type: integer
          in: formData
          description: The D42 ID of the existing secret for the password for the job.
        - name: hostname_to_use
          type: string
          in: formData
          required: true
          description: Required - relevant for new devices only. If a device with same serial number already exists, name is ignored
          enum:
          - 'Serial #' 
          - 'Discovered Name'
        - name: hostname_precedence
          type: string
          in: formData
          description: Discovered name for the device is given precedence over existing name in the system.
          enum:
          - 'Yes'
          - 'No'
        - name: toggle_service_level_on_power_state
          type: string
          in: formData
          description: Toggle the service level of a device based on power state.
          enum:
          - 'Yes'
          - 'No'
        - name: decommissioned_service_level_id
          type: string
          in: formData
          description: Service level for decommissioned devices.
        - name: vrf_group_id
          in: formData
          type: string
          description: VRF Group for discovered devices.
        - name: object_category
          type: string
          in: formData
          description: Existing object category will not be overwritten.
        - $ref: '#/parameters/overwrite_object_categories'
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/clear_existing_schedule'
        - name: debug_level
          type: string
          in: formData
          enum:
            - 'Debug Off'
            - 'Debug On'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
        - $ref: '#/parameters/remove_password_ids'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - ucs autodiscovery job added
                  - 11
                  - UCS-AD-1
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryUcs
      description: Execute UCS/ACI/Load Balancer autodiscovery job
      summary: Run UCS/ACI/Load Balancer job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/dns/:
    get:
      operationId: getAuto_discoveryDns
      summary: Get DNS jobs
      description: Retrieves all autodiscovery jobs for DNS
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    nameserver:
                      example: 192.168.11.104
                    zonename:
                      example: 10.10.in-addr.arpa
                    job_id:
                      example: '10'
                    schedule:
                      example: 'M T W Th F S Su 09:44:18 ; M T F S Su 09:44:23 ;'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryDns
      description: Create DNS autodiscovery job
      summary: Create DNS job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/zonename'
        - name: nameserver
          type: string
          description: IP/FQDN of the nameserver
          required: true
          in: formData
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job.
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: DNS Zone autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryDns
      description: Execute DNS autodiscovery job
      summary: Run DNS job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/auto_discovery/database_discovery/:
    get:
      operationId: getAuto_discoveryDBDiscovery
      summary: Get Database Discovery jobs
      description: Retrieves all autodiscovery jobs for Database Discovery
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              offset:
                example: 0
              database_discovery:
                type: array
                items:
                  properties:
                    job_id:
                      example: 1
                    remote_collector_id:
                      example: 10
                    last_status:
                      example: success
                    schedule_time:
                      example: 16:08
                    schedule_days:
                      example: 0,1,2,3,4,5,6
                    adm_interval:
                      example: 1800
                    debug_level:
                      example: "on"
                    job_name:
                      example: Demo Database Discovery
                    database_accounts:
                      type: array
                      items:
                        properties:
                          server:
                            example: 10.90.11.5
                          dba_id:
                            example: 17
                          appcomp_id:
                            example: 4
                          connection_name:
                            example: oracle_name
                          platform:
                            example: oracle
                          secret_id:
                            example: 1
                          instance:
                            example: ORCL2
                          port:
                            example: 1521
              total_count:
                example: 30
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryDBDiscovery
      description: Create Database Discovery autodiscovery job
      summary: Create Database Discovery job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: Name of the job
        - $ref: '#/parameters/remote_collector_id'
        - name: debug_level
          type: string
          in: formData
          enum:
            - 'Debug Off'
            - 'Debug On'
        - name: adm_interval
          type: integer
          in: formData
          description: >-
            Interval in seconds to periodically sample Database Connections.
            Valid values are: 0, 1800, 3600, 7200, 14400, 21600, 43200, 86400.
            No Database Connection sampling will occur if the value is zero.
        - name: connection_name
          type: string
          required: true
          in: formData
          description: Name of the connection
        - name: appcomp_id
          type: integer
          required: true
          in: formData
          description: Application component ID to be associated with the discovered database
        - name: platform
          required: true
          in: formData
          description: Database platform
          type: string
          enum:
            - oracle
            - mssql
            - postgres
            - db2
        - name: server
          type: string
          required: true
          in: formData
          description: Database server
        - name: port
          type: integer
          required: true
          in: formData
          description: Database port
        - name: instance
          type: string
          in: formData
          description: Database Instance for Oracle. Required for Oracle
        - name: database
          type: string
          in: formData
          description: Database for Postgres/DB2. Required for Postgres, required for DB2 if "databases" is not supplied
        - name: databases
          type: string
          in: formData
          description: Databases for DB2. Required for DB2 if "database" is not supplied
        - name: db_username
          type: string
          in: formData
          description: Username for Database discovery. Required if "db_password" is supplied
        - name: db_password
          type: string
          in: formData
          description: Password for Database discovery. Required if "db_username" is supplied
        - name: credential_id
          type: integer
          in: formData
          description: Password ID for Database discovery. Required if "db_username"/"db_password" are not supplied
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/clear_existing_schedule'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                type: array
                items:
                  example:
                    - database discovery autodiscovery job added
                    - 54
                    - test_api
                    - true
                    - true
              code:
                example:
                  0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryDBDiscovery
      description: Execute Database Discovery autodiscovery job
      summary: Run Database Discovery job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/auto_discovery/database_discovery/{id}/':
    delete:
      operationId: deleteAuto_discoveryDBDiscovery
      summary: Delete Database Discovery job
      description: >-
        Deletes an Database Discovery autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          in: path
          required: true
          description: ID of Database Discovery discovery job to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '182'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/auto_discovery/dhcp_discovery/:
    get:
      operationId: getAuto_discoveryDHCPDiscovery
      summary: Get DHCP Discovery jobs
      description: Retrieves all autodiscovery jobs for DHCP Discovery
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              offset:
                example: 0
              dhcp_discovery:
                type: array
                items:
                  properties:
                    job_id:
                      example: 1
                    remote_collector_id:
                      example: 10
                    use_win_rm:
                      example: false
                    wds:
                      example: "10.90.11.23"
                    last_status:
                      example: success
                    schedule_time:
                      example: 16:08
                    schedule_days:
                      example: 0,1,2,3,4,5,6
                    debug_level:
                      example: "on"
                    job_name:
                      example: Demo DHCP Discovery
                    dhcp_servers:
                      type: array
                      items:
                        properties:
                          server:
                            example: 10.90.11.5
                          dhcp_conn_id:
                            example: 17
                          secret_id:
                            example: 1
              total_count:
                example: 30
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryDHCPDiscovery
      description: Create DHCP Discovery autodiscovery job
      summary: Create DHCP Discovery job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: Name of the job
        - $ref: '#/parameters/remote_collector_id'
        - name: debug_level
          type: string
          in: formData
          enum:
            - 'Debug Off'
            - 'Debug On'
        - name: use_win_rm
          type: boolean
          required: false
          in: formData
          description: Flag to indicate whether use WinRM for discovery
        - name: wds
          in: formData
          description: WDS server to use
          type: string
        - name: server
          type: string
          required: true
          in: formData
          description: DHCP server
        - name: dhcp_username
          type: string
          in: formData
          description: Username for DHCP discovery. Required if "dhcp_password" is supplied
        - name: dhcp_password
          type: string
          in: formData
          description: Password for DHCP discovery. Required if "dhcp_username" is supplied
        - name: credential_id
          type: integer
          in: formData
          description: Password ID for DHCP discovery. Required if "dhcp_username"/"dhcp_password" are not supplied
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/customer_form'
        - $ref: '#/parameters/clear_customer'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                type: array
                items:
                  example:
                    - DHCP discovery autodiscovery job added
                    - 54
                    - test_api
                    - true
                    - true
              code:
                example:
                  0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryDHCPDiscovery
      description: Execute DHCP Discovery autodiscovery job
      summary: Run DHCP Discovery job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/2.0/auto_discovery/dhcp_discovery/{id}/':
    delete:
      operationId: deleteAuto_discoveryDHCPDiscovery
      summary: Delete DHCP Discovery job
      description: >-
        Deletes an DHCP Discovery autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          in: path
          required: true
          description: ID of DHCP Discovery autodiscovery job to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '182'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/certificate/:
    get:
      operationId: getAuto_discoveryCertificate
      summary: Get certificate jobs
      description: Retrieves all autodiscovery jobs for certificates
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    end_ip_address:
                      example: 10.42.42.100
                    follow_chain:
                      example: 'no'
                    job_id:
                      example: '1'
                    name:
                      example: D42
                    ports:
                      example: '443'
                    start_ip_address:
                      example: 10.42.42.0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryCertificate
      description: Create Certificate autodiscovery job
      summary: Create certificate job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - $ref: '#/parameters/server'
        - $ref: '#/parameters/start_ip_address'
        - name: end_ip_address
          in: formData
          type: string
          description: Legacy Field. Please use Server property
        - $ref: '#/parameters/exclude_servers'
        - $ref: '#/parameters/ports'
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job
        - name: get_cipher_suites
          type: boolean
          in: formData
          description: Find cipher suites supported by the server
        - $ref: '#/parameters/follow_chain'
        - name: debug_level
          type: string
          enum:
            - 'yes'
            - 'no'
          default: 'no'
          in: formData
        - name: dont_add_new_devices
          type: string
          in: formData
          enum:
            - 'true'
            - 'false'
          description: Protocol and cipher suites information will be ignored if device doesn't exist.  
        - $ref: '#/parameters/schedule_time'
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/tags_post'
        - $ref: '#/parameters/tags_remove_generic'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Certificate autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryCertificate
      description: Execute certificate autodiscovery job
      summary: Run certificate job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/adldap/:
    get:
      operationId: getAuto_discoveryAdldap
      summary: Get all AD/LDAP jobs
      description: Retrieves all AD/LDAP autodiscovery jobs
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 2
                    name:
                      example: AD-TestAdmins
                    ldap_settings:
                      example: Active Directory/LDAP Settings
                    dn_type:
                      example: Group 
                    group_dn:
                      example: adsasd
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryAdldap
      description: >-
        Create/update AD/LDAP autodiscovery job. Required parameters: <ul><li>name</li><li>group_dn</li>
      summary: Create/update AD/LDAP job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: group_dn
          type: string
          required: true
          in: formData
          description: Group or OU DN
        - name: ldap_settings
          type: string
          in: formData
          description: optional if system only has 1 ldap settings or a default ldap domain or domain is provided - exact case insensitive search on name of LDAP settings to use
        - name: domain
          type: string
          in: formData
          description: exact case insensitive search on name of LDAP domain to use
        - name: username
          type: string
          in: formData
          description: user name to set for job
        - name: password
          type: string
          in: formData
          description: set password for job
        - name: password_id
          type: string
          in: formData
          description: actual ID of secret to use
        - name: enduser_contact_attribute
          type: string
          in: formData
          description: End user contact attribute
        - name: enduser_location_attribute
          type: string
          in: formData
          description: End user location attribute
        - name: enduser_notes_attribute
          type: string
          in: formData
          description: End user notes attribute
        - name: recursive
          type: boolean
          in: formData
          description: Recursively search nested groups
        - name: username_lowercase
          type: boolean
          in: formData
          description: Add username in lowercase
        - name: ignore_existing_admins
          type: boolean
          in: formData
          description: Ignore existing Administrators
        - name: clear_existing_admin_perms
          type: boolean
          in: formData
          description: clear any existing Administrator Permissions Groups
        - name: type
          type: string
          in: formData
          description: administrators / end users
        - name: dn_type
          type: string
          in: formData
          description: Group or OU DN
        - name: custom_filter
          type: string
          in: formData
          description: optional Custom Filter
        - name: schedule_name
          in: formData
          description: schedule name
          type: string
        - $ref: '#/parameters/clear_existing_schedule'
        - $ref: '#/parameters/schedule_days'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - vserver autodiscovery job added
                  - 10
                  - Create_by_API
                  - true
                  - true
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryAdldap
      description: Execute AD/LDAP job
      summary: Run AD/LDAP job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          description: name of the job - required if no job_id
          in: formData
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/auto_discovery/adldap/{id}/':
    delete:
      operationId: deleteAdldap_discovery
      summary: Delete AD/LDAP job
      description: >-
        Deletes an AD/LDAP autodiscovery job
      tags:
        - Autodiscovery
      parameters:
        - name: id
          in: path
          required: true
          description: ID of AD/LDAP discovery job to delete.
          type: string
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '182'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/auto_discovery/warranty/:
    get:
      operationId: getAuto_discoveryWarranty
      summary: Get warranty jobs
      description: Retrieves all autodiscovery jobs for warranties. Must be a Super User to access Warranty API.
      tags:
        - Autodiscovery
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    type:
                      example: Dell
                    job_id:
                      example: 1
                    api_version:
                      example: 5
                    name:
                      example: WarrantyTest
                    order_number_type:
                      example: common
                    schedule_time:
                      example: 16:08
                    schedule_days:
                      example: 0,1,2,3,4,5,6
                    debug_level: 
                      example: 1
                    remote_collector_id:
                      example: 10
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postAuto_discoveryWarranty
      description: Create Warranty autodiscovery job. Must be a Super User to access Warranty API.
      summary: Create warranty job
      tags:
        - Autodiscovery
      parameters:
        - name: name
          type: string
          required: true
          in: formData
          description: name of the job
        - name: vendor
          type: string
          in: formData
          description: Warranty vendor
          required: true
        - name: enc_access_key_id
          type: integer
          in: formData
          description: Required for HP, IBM, Lenovo, and Meraki vendors
        - name: enc_access_key
          type: string
          in: formData
          description: Required for HP, IBM, Lenovo, and Meraki vendors
        - name: enc_secret_key_id
          type: integer
          in: formData
          description: Required for HP vendor.
        - name: enc_secret_key
          type: string
          in: formData
          description: Required for HP vendor.
        - name: api_version
          type: string
          in: formData
          description: Required for Dell vendor.
        - name: remote_collector_id
          type: string
          in: formData
          description: D42 ID of the remote collector to use for this job
        - name: order_number_type
          type: string
          in: formData
          enum:
            - 'randomly generated and same for all purchases'
            - 'randomly generated and unique for every purchase'
          default: 'randomly generated and same for all purchases'
        - name: debug_level
          type: string
          enum:
            - 'yes'
            - 'no'
          default: 'no'
          in: formData
        - $ref: '#/parameters/schedule_days'
        - $ref: '#/parameters/schedule_time'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Warranty autodiscovery job added
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putAuto_discoveryWarranty
      description: Execute warranty autodiscovery job. Must be a Super User to access Warranty API.
      summary: Run warranty job
      tags:
        - Autodiscovery
      parameters:
        - $ref: '#/parameters/job_id_wname'
        - $ref: '#/parameters/run'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Task is scheduled for running
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'    
  ':4343/healthstats/':
    get:
      operationId: getHealthstats
      description: >-
        This will return the health status of Device42 including:<br>
        - current version number<br>
        - current used CPU percentage<br>
        - current database size<br>
        - current disk space used<br>
        - current memory usage<br>
        - the status of each remote collector including version number and state<br>
        - the status of recent backups<br>
        - the status of system packages and runtime environements (if requesting full stats)<br>
        - the status of last upgrade (if requesting full stats)<br>
        <br>
        Note - backup status response can also include:<br>
        - Please save backup destination settings first\ @ 2020-12-05 09:26:43<br>
        - Backup not run since last reboot. Please check.
      summary: Get
      tags:
      - Health Status
      parameters:
      - name: full
        type: string
        required: false        
        enum:
          - 'yes'
          - 'no'
        description: Check full set of health stats on appliance? yes/no.  Additional information includes system 
          package status and last upgrade status in form of OK/NOK.  Additional statuses are static and do not change between
          upgrades.
        in: query
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            "$ref": "#/definitions/healthstat_status"
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  ':4343/api/1.0/backup_schedules/':
    post:
      operationId: postBackup_schedules
      summary: Create
      description: Create or update backup schedule at set date and times
      tags:
      - Backup Schedules
      parameters:
      - name: name
        type: string
        required: true
        description: name of backup job
        in: formData
      - "$ref": "#/parameters/method"
      - name: schedule_time
        required: true
        type: string
        description: time to perform backup (0:00 to 23:59)
        in: formData
      - name: job_id
        type: string
        description: id of backup job if modifying existing one
        in: formData
      - name: schedule_days
        in: formData
        type: string
        description: >-
          Comma separated days of week, where Monday = 0. e.g. 0,1,2 will set the job
          for Mon, Tue and Wed.
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                - backup schedule added/updated
                - 4
                - test3
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    get:
      operationId: getBackup_schedules
      description: Get backup schedules
      summary: Get
      tags:
      - Backup Schedules
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              jobs:
                type: array
                items:
                  properties:
                    job_id:
                      example: 1
                    method:
                      example: 3
                    name:
                      example: test
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  ':4343/api/1.0/backup_schedules/{ID}/':
    delete:
      operationId: deleteBackup_schedules
      summary: Delete
      description: This will delete a scheduled backup
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: Scheduled Backup ID
      tags:
      - Backup Schedules
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                - backup schedule deleted
                - 4
                - test3
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  ':4343/api/1.0/appliancemode/':
    post:
      operationId: postAppliancemode
      summary: Set
      description: This will set the Device42 appliance to Standby or Production mode.
        Used in conjunction with automatic backups and restores for a warm HA solution
      tags:
      - Standby or Production Mode
      parameters:
      - "$ref": "#/parameters/appliance_mode"
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example: Appliance Manager standby mode set to True. Background jobs
                  disabled
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/tags/:
    get:
      operationId: getTags
      summary: Get all
      description: >-
        This will return a full list of tags available in your Device42
        instance
      tags:
        - Tags
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              limit:
                example: 1000
              offset:
                example: 0
              tags:
                type: array
                items:
                  properties:
                    name:
                      example: 1 tag
              total_count:
                example: 30
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/1.0/saved_doql_queries/:
    get:
      operationId: getSaved_doql_queries
      description: Retrieve information about all saved DOQL queries. You must be a superuser to access the API
      summary: Get all
      tags:
        - DOQL Queries
      parameters:
        - $ref: '#/parameters/name'
        - $ref: '#/parameters/last_updated_lt'
        - $ref: '#/parameters/last_updated_gt'
        - $ref: '#/parameters/first_added_lt'
        - $ref: '#/parameters/first_added_gt'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              savedDOQL:
                $ref: '#/definitions/savedDOQLQueries'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postSaved_doql_queries
      description: >-
        Create/update a saved DOQL query. You must be a superuser to access the API. Required parameters: <ul><li>name</li>
      summary: Create/update
      tags:
        - DOQL Queries
      parameters:
        - name: name
          type: string
          in: formData
          required: true
          description: Name of saved DOQL. Required if creating new saved DOQL
        - name: id
          type: string
          in: formData
          description: Saved DOQL ID if modifying existing one
        - name: saved_query
          type: string
          in: formData
          description: Text of DOQL Query
        - name: notes
          type: string
          in: formData
          description: User entered notes
        - name: include_headers
          type: string
          in: formData
          description: Boolean value to whether to export header or not in CSV format
        - name: output_format
          type: string
          in: formData
          description: Choices of csv or json
        - name: tags
          type: string
          in: formData
          description: Comma-separated tags
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Saved DOQL added successfully
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  '/api/1.0/saved_doql_queries/{ID}/':
    get:
      operationId: getSaved_doql_queriesID
      summary: Get specific
      description: >-
        Retrieve detailed information about a specific saved DOQL query. You must be a superuser to access the API
      tags:
        - DOQL Queries
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: The ID of the Saved DOQL to retrieve
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              name:
                example: Power_outlet1
              tags:
                type: array
                example: power
              include_headers:
                example: true
              notes:
                example: ""
              saved_query:
                example: select * from view_rudata_v2
              output_type:
                example: csv
              id:
                example: 182
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteSaved_doql_queriesID
      summary: Delete
      description: >-
        This API is used to delete saved DOQL query with the saved DOQL ID supplied as the
        required argument. You must be a superuser to access the API
      tags:
        - DOQL Queries
      parameters:
        - name: ID
          type: integer
          in: path
          required: true
          description: Saved DOQL Query ID
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '182'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /services/data/v1.0/query/:
    get:
      operationId: getDOQLData
      description: Get DOQL data
      summary: Get DOQL and Saved DOQL data
      tags:
        - DOQL
      parameters:
        - name: query
          in: query
          description: >-
            The DOQL query you want to run, a SELECT command whose results are to be returned.
          type: string
          required: true
        - name: delimiter
          in: query
          description: >-
            Specifies the character that separates columns within each row (line) of the file. 
            The default a comma. This must be a single one-byte character.
          type: string
        - name: header
          in: query
          description: >-
            If ‘yes’ specifies that the file contains a header line with the names of each column in the file. 
            On output, the first line contains the column names from the table
          type: string
        - name: quote
          in: query
          description: >-
            Specifies the quoting character to be used when a data value is quoted. 
            The default is double-quote. This must be a single one-byte character.
          type: string
        - name: null_string
          in: query
          description: >-
            Specifies the string that represents a null value. The default is an unquoted empty string.
          type: string
        - name: quote_escape
          in: query
          type: string
          description: >-
            Specifies the character that should appear before a data character that matches the QUOTE value. 
            The default is the same as the QUOTE value
        - name: output_type
          in: query
          type: string
          enum:
            - 'csv'
            - 'json'
          description: Specify output format for DOQL results. 'csv' is the default output format if parameter is not specified
      responses:
        '200':
          description: 'The above command returns results like this:'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDOQLData
      description: >-
        Use this API to query DOQL database
      summary: Query DOQL Database
      tags:
        - DOQL
      parameters:
        - name: query
          in: formData
          description: >-
            The DOQL query you want to run, a SELECT command whose results are to be returned.
          type: string
          required: true
        - name: delimiter
          in: formData
          description: >-
            Specifies the character that separates columns within each row (line) of the file. 
            The default a comma. This must be a single one-byte character.
          type: string
        - name: header
          in: formData
          description: >-
            If ‘yes’ specifies that the file contains a header line with the names of each column in the file. 
            On output, the first line contains the column names from the table
          type: string
        - name: quote
          in: formData
          description: >-
            Specifies the quoting character to be used when a data value is quoted. 
            The default is double-quote. This must be a single one-byte character.
          type: string
        - name: null_string
          in: formData
          description: >-
            Specifies the string that represents a null value. The default is an unquoted empty string.
          type: string
        - name: quote_escape
          in: formData
          type: string
          description: >-
            Specifies the character that should appear before a data character that matches the QUOTE value. 
            The default is the same as the QUOTE value
        - name: output_type
          in: formData
          type: string
          enum:
            - 'csv'
            - 'json'
          description: Specify output format for DOQL results. 'csv' is the default output format if parameter is not specified.
      responses:
        '200':
          description: 'The above command returns results like this:'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/dbb/:
    get:
      operationId: getDBBInformation
      description: Get information for DBBs in Device42. You must be a superuser to access the API.
      summary: Get DBB Information
      tags:
        - DOQL
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              view_dbb_compute_v2:
                type: object
                properties:
                  last_refresh_date:
                      example: '2023-07-10T19:01:06.655567+00:00'
                  refresh_queued:
                    example: false
                  row_count:
                    example: 4200
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/dbb/refresh/:
    get:
      operationId: getDBBRefresh
      description: Get list of DBBs that are queued for refresh. You must be a superuser to access the API.
      summary: Get Queued DBB Refresh
      tags:
        - DOQL
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              dbbs:
                example:
                  - view_dbb_compute_v2
                  - view_dbb_security_v2
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    post:
      operationId: postDBBRefresh
      description: Use this API to queue one or all DBBs for a refresh. You must be a superuser to access the API.
      summary: Queue DBB Refresh
      tags:
        - DOQL
      parameters:
        - name: dbb_name
          in: formData
          description: Name of the DBB you want to refresh. If this parameter is not passed, all DBBs will be refreshed.
          type: string
          required: false
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - A refresh has already been queued.
              code:
                example: 1

        '202':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - DBB has been queued for refresh.
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
  /api/2.0/custom_fields/:
    get:
      operationId: getCustomFields
      summary: Get custom fields
      description: >-
        Get custom fields for given model. Required parameters are: <ul><li>object name</li></ul>
      tags:
        - Custom fields
      parameters:
        - $ref: '#/parameters/object_name'
        - name: id
          type: integer
          description: Custom Field ID
          in: query
        - name: type
          type: string
          in: query
          description: >-
            this is the custom field type. If left blank, default is text
          enum:
            - text
            - number
            - date
            - related_field
            - boolean
            - url
            - picklist
            - json
            - markup
        - name: key
          type: string
          description: Custom Field Name
          in: query
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              custom_fields:
                $ref: '#/definitions/custom_fields'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    delete:
      operationId: deleteCustomField
      summary: Delete custom field
      description: >-
        Delete custom field. Required parameters are: <ul><li>object name</li><li><b>ID</b> or <b>Key</b></li></ul>
        If you want to delete custom fields that are in use, please pass in <b>delete_in_use</b> parameter, default action is
        to not delete fields in use.
      tags:
        - Custom fields
      parameters:
        - $ref: '#/parameters/object_name'
        - name: id
          type: integer
          in: query
          description: Custom Field ID
        - name: key
          type: string
          in: query
          description: Custom Field Name
        - name: delete_in_use
          type: boolean
          in: query
          description: pass in <b>true</b> if you want to delete custom field that is in use
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              deleted:
                example: 'true'
              id:
                example: '182'
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
    put:
      operationId: putCustomField
      summary: Add or Update Custom field
      description: >-
        Create or update custom field. Required parameters are: <ul><li>object name</li><li>key</li></ul>
      tags:
        - Custom fields
      parameters:
        - name: object_name
          type: string
          enum:
            - application_group
            - application_group_calculation_rule
            - appcomp
            - appcomp_template
            - asset
            - building
            - business_service
            - cable
            - certificate
            - circuit
            - cloud_account
            - customer
            - device
            - dns_records
            - dns_zone
            - endusers
            - hardware_model
            - ip_address
            - part
            - partmodel
            - pdu
            - port
            - purchase
            - rack
            - resource
            - room
            - secret
            - service
            - service_instance
            - software
            - software_instance
            - subnet
            - vendor
            - vlan
            - vrfgroup
          description: Name of the object
          in: formData
          required: true
        - $ref: '#/parameters/key'
        - $ref: '#/parameters/custom_field_type'
        - $ref: '#/parameters/mandatory'
        - $ref: '#/parameters/filterable'
        - $ref: '#/parameters/log_for_api'
        - $ref: '#/parameters/add_to_picklist'
        - $ref: '#/parameters/remove_from_picklist'
        - $ref: '#/parameters/delete_in_use'
        - $ref: '#/parameters/multi_select'
        - $ref: '#/parameters/include_in_context_popups'
        - $ref: '#/parameters/related_field_name'
      responses:
        '200':
          description: 'The above command returns results like this:'
          schema:
            properties:
              msg:
                example:
                  - Custom key field added or updated
                  - 2
                  - IPAddress_cf
                  - True
                  - True
              code:
                example: 0
        '400':
          $ref: '#/definitions/BadRequest'
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          $ref: '#/definitions/NotFound'
        '500':
          $ref: '#/definitions/InternalServerError'
        '503':
          $ref: '#/definitions/ServiceUnavailable'
parameters:
  address:
    name: address
    type: string
    in: query
    description: Name of building
    required: true
  address_post:
    name: address
    type: string
    in: formData
    description: Address of building
  appcomp:
    name: appcomp
    type: string
    in: query
    description: The application component that depends on this service
  appcomp_category:
    name: category
    type: string
    in: formData
    enum:
      - Database
      - Application Layer
      - Web Server
      - Load Balancer
      - Other
    description: Application Component Category can be - Database, Application Layer, Web Server, Load Balancer, Other. Category Values are case sensitive.
  appcomp_categoryid:
    name: category_id
    type: integer
    in: formData
    enum:
      - 1
      - 2
      - 3
      - 4
      - 5
    description: Application Component Category ID can be 1-Database, 2-Application Layer, 3-Web Server, 4-Load Balancer, 5-Other. ‘category_id’ is used by discovery to initially set the category of an application component and cannot be used to change the category once set. If you would like to change the category of an Application Component, use ‘category’ parameter.
  at_logon:
    name: at_logon
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  at_startup:
    name: at_startup
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  appcomps:
    name: appcomps
    type: string
    in: formData
    description: A comma separated list of application component names.
  appliance:
    name: appliance
    type: string
    in: formData
    description: name of the monitoring appliance
    required: true
  appliance_mode:
    name: appliance_mode
    type: string
    in: formData
    enum:
      - standby
      - production
    required: true
  api_token:
    name: api_token
    type: string
    in: formData
    description: Linode API token - Required for Linode
  aliases:
    name: aliases
    type: string
    in: formData
    description: any software aliases
  access_key:
    name: access_key
    type: string
    in: formData
    description: Required for Amazon - AWS Account ID (Deprecated in 12.0)
  account_no:
    name: account_no
    type: string
    in: formData
  account_id:
    name: account_id
    type: string
    in: formData
    description: Amazon Account ID - Required for Amazon AWS
  action_time_gt:
    name: action_time_gt
    type: string
    in: query
    description: >-
      Filters actions that have happened past the time entered (ie, greater than
      2 weeks) in YYYY-MM-DDTHH:MM:ss.uuuuuu (ie 2016-10-27T13:52:01.213416)
  action_time_lt:
    name: action_time_lt
    type: string
    in: query
    description: >-
      Returns actions within the last X amount of days in
      YYYY-MM-DDTHH:MM:ss.uuuuuu (ie 2016-10-27T13:52:01.213416)
  add_suffix:
    name: add_suffix
    type: string
    in: formData
  add_multiple_vm_names_as_alias:
    name: add_multiple_vm_names_as_alias
    type: string
    in: formData
    description: add any additional names found as device alias
  add_to_picklist:
    name: add_to_picklist
    type: string
    in: formData
    description: >-
      Comma separated values to add to picklist. If type is picklist and custom
      field is new, this is a required field. Duplicates will be ignored.
  remove_from_picklist:
    name: remove_from_picklist
    type: string
    in: formData
    description: >-
      Comma separated values to be removed from picklist. Duplicates will be ignored. Values that are in use will Not be deleted, unless <b>delete_in_use</b> parameter is provided and set to <b>yes</b>
  mandatory:
    name: mandatory
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Is custom field mandatory? yes/no
  filterable:
    name: filterable
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Is custom field filterable? yes/no
  log_for_api:
    name: log_for_api
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Log custom field? yes/no  
  multi_select:
    name: multi_select
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Applies only to Picklist fields. Is custom field multi select? yes/no
  related_field_value_by_id:
    name: related_field_value_by_id
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Select yes if you want to set the related field value by ID. 
  clear_notes:
    name: clear_notes
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Yes to clear any existing notes
  include_in_context_popups:
    name: include_in_context_popups
    type: string
    in: formData
    enum:
      - 'true'
      - 'false'
    description: Applies only to Device custom fields. Include the custom field in device pop-up panels and layout pages (true/false).<br> For example, the pop-up when you click a device on a rack view.
  delete_in_use:
    name: delete_in_use
    type: string
    enum:
      - 'yes'
      - 'no'
    in: formData
    description: pass in <b>yes</b> if you want to delete Picklist value that is in use. Used in conjunction with <b>remove_from_picklist</b>.
  regions:
    name: regions
    type: string
    in: formData
    description: Comma separated region names for Amazon AWS
  aws_roles:
    name: aws_roles
    type: string
    in: formData
    description: Comma separated names of Amazon AWS Roles
  assets:
    name: assets
    type: string
    in: formData
    description: comma separated names of new assets.
  asset_id:
    name: asset_id
    type: integer
    in: query
    description: Filter by Asset ID.
  asset_ids:
    name: asset_ids
    type: string
    in: formData
    description: comma separated values of existing assets.
  asset_no:
    name: asset_no
    type: string
    in: query
    description: 'filter by asset # (Added in v6.0.0)'
  asset_no_contains:
    name: asset_no_contains
    type: string
    in: query
    description: 'search for any asset that contains matching asset # (Added in v9.2.0)'
  assigned:
    name: assigned
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: ‘yes’ if assigned. ‘no’ (default) if unassigned.
    type: string
  assignment:
    name: assignment
    in: formData
    description: 'room, device, rma - required if assigning device'
    type: string
  allocated:
    name: allocated
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: ‘yes’ if allocated. ‘no’ (default) if unallocated.
    type: string
  alternate_sudo:
    name: alternate_sudo
    in: formData
    type: string
  alternate_sudo_password_id:
    name: alternate_sudo_password_id
    in: formData
    type: string
  auto_add_ips:
    name: auto_add_ips
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: >-
      If ‘yes’, addresses within subnet will be automatically added to Device42.
      (Only available in POST)
    type: string
  auth_type:
    name: auth_type
    in: formData
    description: User Credentials or Service Principal
    type: string
  available:
    name: available
    in: query
    enum:
      - 'yes'
      - 'no'
    description: could be yes or no
    type: string
  amps:
    name: amps
    in: formData
    description: The rated amps on this circuit
    type: string
  asset_connection_ids:
    name: asset_connection_ids
    in: formData
    description: A comma-separated list of asset IDs connected to this circuit
    type: string
  autodiscover_cdp_devices:
    name: autodiscover_cdp_devices
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: yes to enable CDP/LLDP (added in v8.3.2)
    type: string
  back_image_id:
    name: back_image_id
    in: formData
    type: integer
    description: >-
      Back Image file ID.
  back_image:
    name: back_image
    in: formData
    type: string
    description: name of the back image file. Use instead of back_image_id.
  back_connection_id:
    name: back_connection_id
    in: query
    type: string
    description: >-
      ID for the back connection port. Available via GET at
      /api/api/1.0/patch_panel_ports// or Tools > Export > Patch Panel Port
  back_switchport_id:
    name: back_switchport_id
    in: formData
    type: string
    description: Used if back connection type is switch.
  back_switch:
    name: back_switch
    in: formData
    type: string
    description: >-
      If back connection type is switch, use switch and switchport names in
      combination.
  back_patch_panel_id:
    name: back_patch_panel_id
    in: formData
    type: string
    description: >-
      ID of the back patch panel - if a patch panel port is connected in back
      (Added in v5.8.2)
  back_patch_panel:
    name: back_patch_panel
    in: formData
    type: string
    description: >-
      Name of the back patch panel - if a patch panel port is connected in back
      (Added in v5.8.2)
  back_port:
    name: back_port
    in: formData
    type: string
    description: >-
      Number of the port on the back patch panel - if a patch panel port is
      connected in back (Added in v5.8.2)
  bmc_user:
    name: bmc_user
    in: formData
    type: string
    description: username for discovery
    required: true
  bmc_password:
    name: bmc_password
    in: formData
    type: string
    description: password for discovery
    required: true
  blade_size:
    name: blade_size
    in: formData
    enum:
      - 1
      - 2
      - 3
      - 4
      - 5
    description: >-
      1=Full Height 2=Half Height 3=Double Half Height 4=Double Full Height
      5=Quarter Height
    type: integer
  blade_host_name:
    name: blade_host_name
    type: string
    in: query
    description: filter by blade host name
  building_id:
    name: building_id
    type: integer
    in: query
    description: filter by building ID (Added in v5.9.0)
  building:
    name: building
    type: string
    in: query
    description: filter by building name
  building_post:
    name: building
    type: string
    in: formData
  blankasnull:
    name: blankasnull
    type: string
    in: query
    description: >-
      yes / no - if yes, we convert empty strings to null
  bulk_fields:
    name: bulk_fields
    in: formData
    description: >-
      comma separated key value pairs, with key and value separated by colon.
      e.g.key1:value1, key2:value2
    type: string
  bandwidth:
    name: bandwidth
    in: query
    description: bandwidth in kbps (mutiply factor of 1024)
    type: string
  breakerpanel_id:
    name: breakerpanel_id
    in: formData
    required: true
    description: Breaker panel ID
    type: string
  bcpm_id:
    name: bcpm_id
    in: query
    description: Branch Circuit Power Meter ID
    type: string
  blanksasnull:
    name: blanksasnull
    in: query
    type: string
  cable_id:
    name: cable_id
    type: string
    in: formData
    description: Cable ID/Name
    required: true
  customer:
    name: customer
    type: string
    in: query
    description: filter by customer name
  customer_form:
    name: customer
    type: string
    in: formData
    description: Name of existing customer.
  custom_field_type:
    name: type
    type: string
    in: formData
    description: >-
      this is the custom field type. If left blank, default is text. Date should
      be formatted as YYYY-MM-DD
    enum:
      - text
      - number
      - date
      - related_field
      - boolean
      - url
      - picklist
      - json
      - markup
  custom_fields_and:
    name: custom_fields_and
    type: string
    in: query
    description: 'filter by custom fields, and filter, format of key1:value1,key2:value2'
  custom_fields_or:
    name: custom_fields_or
    type: string
    in: query
    description: 'filter by custom fields, or filter, format of key1:value1,key2:value2'
  capacity:
    name: capacity
    in: formData
    type: string
    description: capacity of mountpoint in MB
  capture_hosts_file:
    name: capture_hosts_file
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  csv_format:
    name: csv_format
    in: query
    type: string
    description: >-
      If this parameter is ‘xls’ or is not present, an Excel file(.xlsx) will be
      produced. If this parameter is ‘tab’, a tab-delimited file(.txt) will be
      created.
  customer_id:
    name: customer_id
    in: formData
    type: string
  customer_id_get:
    name: customer_id
    in: query
    description: ID of the customer (Added in v6.3.0)
    type: string
  category:
    name: category
    in: query
    description: name of the category
    type: string
  category_post:
    name: category
    in: formData
    description: >-
      If multitenancy is on, admin groups that have access to this object are
      specified here, e.g. Prod_East:no, Corp:yes specifies that the admin groups
      for this object are Prod_East with view only permission and Corp with
      change permission. Use for initial insert.
    type: string
  category_id:
    name: category_id
    in: query
    description: ID of the category
    type: string
  category_id_post:
    name: category_id
    in: formData
    description: ID of the category - use for initial insert.
    type: string
  clear_all:
    name: clear_all
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: >-
      If yes - then IP is marked as available and device and mac address
      associations are cleared. Also notes and label fields are cleared. Added
      in v5.7.2
    type: string
  clear_front:
    name: clear_front
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: “yes” will clear front connection for port
    type: string
  clear_back:
    name: clear_back
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: “yes” will clear back connection on port
    type: string
  clear_customer:
    name: clear_customer
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Clear all previously set customers on discovered objects.
    type: string
    default: 'no'
  cloud_type:
    name: cloud_type
    in: formData
    enum:
      - Amazon AWS
      - Microsoft Azure
      - Linode
      - DigitalOcean
      - OpenStack
      - Google Cloud
      - Alibaba Cloud
      - Oracle Cloud
      - Standalone Kubernetes
      - Arista CloudVision
      - Jamf
      - Workspace ONE
    description: Required for all jobs.
    type: string
    required: true
  cable_type:
    name: cable_type
    in: formData
    description: named value of the cable type. Must already exist.
    type: string
  clear_value:
    name: clear_value
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: yes to clear existing value for that field
    type: string
  clear_existing_schedule:
    name: clear_existing_schedule
    in: formData
    enum:
      - 'yes'
      - 'no'
    type: string
  count:
    name: count
    in: formData
    description: Whether to include the port in total count or not.
    type: string
    enum:
      - 'yes'
      - 'no'
  count_in_licensing:
    name: count_in_licensing
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Whether or not to count OS in licensing
    type: string
  completed:
    name: completed
    in: query
    description: Line Item is completed
    type: string
  content:
    name: content
    in: query
    description: Content (e.g. IP address for type A)
    type: string
  content_type:
    name: content_type
    in: query
    description: Returns changes done to a particular content type
    type: string
  contact_name_post:
    name: contact_name
    in: formData
    type: string
  contact_phone_post:
    name: contact_phone
    in: formData
    type: string
  change_date:
    name: change_date
    in: query
    type: string
  col_size:
    name: col_size
    in: formData
    type: string
    description: how many racks wide the rack is
  cores:
    name: cores
    in: formData
    type: string
    description: number of cores
  connector_type:
    name: connector_type
    in: formData
    type: string
    description: 'Type of connector, ie rj45'
  connectivity:
    name: connectivity
    in: formData
    type: string
    description: 'New or existing (not used for CPU, RAM, HDD)'
  cost:
    name: cost
    in: formData
    type: string
  cost_center:
    name: cost_center
    in: query
    type: string
    description: Cost Center
  cpuspeed:
    name: cpuspeed
    in: formData
    type: string
    description: 'enter in MHZ, e.g.: 3.5 GHZ use 3500'
  contact_info:
    name: contact_info
    type: string
    in: formData
  connection:
    name: connection
    type: string
    in: query
    description: Text field.
  cable_length:
    name: cable_length
    type: string
    in: formData
    description: Length of Cable
  circuit_id:
    name: circuit_id
    type: string
    in: query
    description: circuit id
  cable_length_units:
    name: cable_length_units
    type: string
    in: formData
    description: Units for Cable Length (“m” or “ft”)
  contact:
    name: contact
    type: string
    in: query
    description: ''
  object_name:
    name: object_name
    type: string
    enum:
      - application_group
      - application_group_calculation_rule
      - appcomp
      - appcomp_template
      - asset
      - building
      - business_service
      - cable
      - certificate
      - circuit
      - cloud_account
      - customer
      - device
      - dns_records
      - dns_zone
      - endusers
      - hardware_model
      - ip_address
      - part
      - partmodel
      - pdu
      - port
      - purchase
      - rack
      - resource
      - room
      - secret
      - service
      - service_instance
      - software
      - software_instance
      - subnet
      - vendor
      - vlan
      - vrfgroup
    description: Name of the object
    in: query
    required: true
  days:
    name: days
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  device_connection_ids:
    name: device_connection_ids
    type: string
    in: formData
    description: A comma-separated list of device IDs connected to this circuit
  device_connection_names:
    name: device_connection_names
    type: string
    in: formData
    description: A comma-separated list of device names connected to this circuit
  day_of_month:
    name: day_of_month
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  day_of_week:
    name: day_of_week
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  debug_level:
    name: debug_level
    type: string
    in: formData
    enum:
      - No Debug
      - Normal Debug
      - Extended Debug
  date_changed:
    name: date_changed
    type: string
    in: formData
    description: 'Update the Date Changed field, using format YYYY-MM-DD HH:MM:SS'
  date:
    name: date
    type: string
    in: query
  date_gt:
    name: date_gt
    type: string
    in: query
    description: filter by date greater than (YYYY-MM-DD)
  date_lt:
    name: date_lt
    type: string
    in: query
    description: filter by date less than (YYYY-MM-DD)
  device:
    name: device
    type: string
    in: query
    description: Device name
  devices:
    name: devices
    type: string
    in: formData
    description: comma separated names of new devices.
  device_name:
    name: device_name
    type: string
    in: formData
    description: required if switchport ID not used
  device_name_format:
    name: device_name_format
    type: string
    in: formData
    enum:
      - hostname
      - hostname_plus_domain
      - hostname_add_domain_alias
      - hostname_plus_domain_add_hostname_alias
  device_id:
    name: device_id
    type: string
    in: query
    description: Device ID
    required: true
  device_ids:
    name: device_ids
    type: string
    in: formData
    description: comma separated values of existing devices.
  device_sub_type:
    name: device_sub_type
    type: string
    in: query
    description: filter by device sub type (Added in v14.7.2)
  device_sub_type_id:
    name: device_sub_type_id
    type: integer
    in: query
    description: filter by device sub type id (Added in v14.7.2)
  device2:
    name: device2
    in: formData
    description: name of the device2 that port belongs to. (added in v5.8.1)
    type: string
  device_serial:
    name: device_serial
    in: query
    description: 'serial number of the device, where part is checked out to'
    type: string
  device_reason:
    name: device_reason
    in: formData
    description: string for the device reason on this appcomp (added in v6.6.0)
    type: string
  description:
    name: description
    in: query
    description: matching description (added in v7.2.0)
    type: string
  description_post:
    name: description
    in: formData
    type: string
  depth:
    name: depth
    in: formData
    enum:
      - half
      - full
    description: Half depth by default. full to override. Optional.
    type: string
  device_os_id:
    name: device_os_id
    in: path
    description: ID of specific operating system
    type: integer
    required: true
  display_name:
    name: display_name
    in: query
    description: 'if not provided, the name is used as display name'
    type: string
    required: true
  discover_vms:
    name: discover_vms
    in: formData
    description: discover VMs or strictly hypervisors
    enum:
      - 'yes'
      - 'no'
    type: string
  discovery_type:
    name: discovery_type
    in: formData
    default: IPMI
    enum:
      - IPMI
      - Redfish
    type: string
  discover_parts:
    name: discover_parts
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  discover_software:
    name: discover_software
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  discover_cloudid:
    name: discover_cloudid
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  discover_applications:
    name: discover_applications
    in: formData
    enum:
      - 'yes'
      - 'no'
    type: string
  discovered_service:
    name: discovered_service
    in: query
    description: the name of the discovered service listening on this IP/port
    type: string
  discovered_service_post:
    name: discovered_service
    in: formData
    description: the name of the discovered service listening on this IP/port
    type: string
  discover_services:
    name: discover_services
    type: string
    enum:
      - 'yes'
      - 'no'
    in: formData
  discovered_process:
    name: discovered_process
    in: formData
    description: the process name that has a handle to the port
    type: string
  domain:
    name: domain
    in: formData
    description: name of the domain
    type: string
    required: true
  days_before_expiry:
    name: days_before_expiry
    type: string
    in: formData
    description: number of days before secret is set as expired
  dns_zone:
    name: dns_zone
    in: query
    type: string
  D42 ID for the rack(s):
    name: D42 ID for the rack(s)
    in: query
    type: string
    description: D42 ID for the part(s)
  depends_on:
    name: depends_on
    in: formData
    type: string
    description: >-
      Names of app components this component depends on, separated by commas -
      must match component names exactly.
  dependents:
    name: dependents
    in: formData
    type: string
    description: >-
      Names of app components that depend on this component separated by commas
      - must match component names exactly.
  depends_on_reasons:
    name: depends_on_reasons
    in: formData
    type: string
    description: >-
      list of string pairs for dependent appcomps on this appcomp e.g. =>
      depend_appcomp_name1:reason1, depend_appcomp_name2:reason2,
      depend_appcomp_nameN:reason3 (added in v6.6.0)
  delete_older_mac_association_after:
    name: delete_older_mac_association_after
    in: formData
    type: string
    description: number of days (added in v10.4.0)
  delete_switch_port_not_found:
    name: delete_switch_port_not_found
    in: formData
    type: string
    description: yes or no to delete switch ports not found (added in v10.4.0)
  direct_suggestion_only:
    name: direct_suggestion_only
    in: query
    type: string
    description: yes or no to suggest subnet only if is found directly on provided subnet (added in v18.08.00)
  dramc_id:
    name: dramc_id
    in: query
    type: string
    description: ID of the DMARC
  dmarc:
    name: dmarc
    in: query
    type: string
    description: DMARC name
  email:
    name: email
    type: string
    in: formData
    description: Text field.
  escalation_1:
    name: escalation_1
    type: string
    in: formData
    description: Text field.
  escalation_2:
    name: escalation_2
    type: string
    in: formData
    description: Text field.
  enduser:
    name: enduser
    in: query
    type: string
    description: filter by end user name
  event_based:
    name: event_based
    in: query
    type: string
    description: only for schedule based services where startmode = ‘Scheduled’
  end_point_type:
    name: end_point_type
    in: query
    enum:
      - device
      - circuit
      - switchport
      - vendor
      - patch_panel_port
    type: string
    description: Type of end point.
  end_point_type_post:
    name: end_point_type
    in: formData
    type: string
    enum:
      - cable
      - circuit
      - switchport
      - tap_port
      - patch_panel_port
      - vendor
    description: Type of end point.
  enable_resources_monitoring:
    name: enable_resources_monitoring
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  end_point_id:
    name: end_point_id
    in: query
    type: integer
    description: ID of the end point
  end_point_id_post:
    name: end_point_id
    in: formData
    type: integer
    description: ID of the end point. <b>Must be used with end_point_type</b>
  end_point_device:
    name: end_point_device
    in: query
    type: string
    description: 'if end_point type is device, this is name of the device. Absent otherwise'
  end_point_device_post:
    name: end_point_device
    in: formData
    type: string
    description: 'if end_point type is device, this is name of the device. Absent otherwise'
  end_point_circuit_id:
    name: end_point_circuit_id
    in: query
    type: string
    description: >-
      if end_point type is circuit, this is circuit_id of the circuit. Absent
      otherwise
  end_point_switchport:
    name: end_point_switchport
    in: query
    type: string
    description: >-
      if end_point type is switchport, this is name of the switch port. Absent
      otherwise
  end_point_switch:
    name: end_point_switch
    in: query
    type: string
    description: >-
      if end_point type is switchport, this is name of the switch. Absent
      otherwise
  end_point_patch_panel_port:
    name: end_point_patch_panel_port
    in: query
    type: string
    description: >-
      if end_point type is patch_panel_port, this is name of the patch panel
      port. Absent otherwise
  end_point_patch_panel:
    name: end_point_patch_panel
    in: query
    type: string
    description: >-
      if end_point type is patch_panel_port, this is name of the patch panel.
      Absent otherwise
  end_point_patch_panel_id:
    name: end_point_patch_panel_id
    in: query
    type: string
    description: >-
      if end_point type is patch_panel_port, this is ID of the patch panel.
      Absent otherwise
  end_point_vendor:
    name: end_point_vendor
    in: query
    type: string
    description: if end_point type is vendor, this is name of the vendor. Absent otherwise
  end_point_circuit_id_post:
    name: end_point_circuit_id
    in: formData
    type: string
    description: >-
      if end_point type is circuit, this is circuit_id of the circuit. Absent
      otherwise
  end_point_switchport_post:
    name: end_point_switchport
    in: formData
    type: string
    description: >-
      if end_point type is switchport, this is name of the switch port. Used with end_point_switch. Absent
      otherwise
  end_point_switch_post:
    name: end_point_switch
    in: formData
    type: string
    description: >-
      if end_point type is switchport, this is name of the switch. Used with end_point_switchport. Absent
      otherwise
  end_point_patch_panel_port_post:
    name: end_point_patch_panel_port
    in: formData
    type: string
    description: >-
      if end_point type is patch_panel_port, this is name of the patch panel
      port. Absent otherwise
  end_point_patch_panel_post:
    name: end_point_patch_panel
    in: formData
    type: string
    description: >-
      if end_point type is patch_panel_port, this is name of the patch panel.
      Absent otherwise
  end_point_patch_panel_id_post:
    name: end_point_patch_panel_id
    in: formData
    type: integer
    description: >-
      if end_point type is patch_panel_port, this is ID of the patch panel.
      Absent otherwise
  end_point_vendor_post:
    name: end_point_vendor
    in: formData
    type: string
    description: 'if end_point type is vendor, this is name of the vendor. Absent otherwise'
  end_connector_type:
    name: end_connector_type
    in: formData
    type: string
    description: Connector Type (User Definable)
  end_cable_type:
    name: end_cable_type
    in: formData
    type: string
    description: Endpoint Cable Type (User Definable)
  end_cable_color:
    name: end_cable_color
    in: formData
    type: string
    description: Endpoint Cable Color
  end_optic_type:
    name: end_optic_type
    in: formData
    type: string
    description: 'Optic Type (Definable, ie multimode)'
  end_point_back_pach_panel:
    name: end_point_back_pach_panel
    in: formData
    type: string
    description: ''
  end_point_multiple:
    name: end_point_multiple
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
    description: yes to allow multiple endpoints
  end_ip_address:
    name: end_ip_address
    in: formData
    type: string
    description: End IP address
  exclude_servers:
    name: exclude_servers
    in: formData
    type: string
    description: comma separated liste of addresses to exclude
  firmware:
    name: firmware
    type: string
    in: formData
  first_number:
    name: first_number
    type: string
    in: formData
    description: 'default 0, add to change.'
  first_added_lt:
    name: first_added_lt
    type: string
    in: query
    description: first added less than date YYYY-MM-DD format
  first_added_gt:
    name: first_added_gt
    type: string
    in: query
    description: first added equal to or greater than date YYYY-MM-DD format
  follow:
    name: follow
    type: string
    in: query
    description: >-
      use yes if you want to see virtuals in a virtual host, modules in a blade
      chassis and devices in a clustered device (Added in v5.7.4)
  follow_chain:
    name: follow_chain
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    default: 'no'
  front_image_id:
    name: front_image_id
    type: string
    in: formData
  front_image:
    name: front_image
    type: string
    in: formData
    description: name of the image file (Added in v5.8.2)
  front_patch_panel_id:
    name: front_patch_panel_id
    type: string
    in: formData
    description: >-
      Name of the front patch panel - if a patch panel port is connected in
      front (Added in v5.8.2)
  front_patch_panel:
    name: front_patch_panel
    type: string
    in: formData
    description: >-
      Name of the front patch panel - if a patch panel port is connected in
      front (Added in v5.8.2)
  front_port:
    name: front_port
    type: string
    in: formData
    description: >-
      Number of the port on the front patch panel - if a patch panel port is
      connected in front (Added in v5.8.2)
  filesytem:
    name: filesytem
    in: formData
    type: string
    description: mountpoint filesystem
  fstype:
    name: fstype
    in: formData
    type: string
    description: mountpoint filesystem type
  free_capacity:
    name: free_capacity
    in: formData
    type: string
    description: free capacity of mountpoint in MB
  grid_rows:
    name: grid_rows
    in: formData
    description: number of rows in the room grid
    type: string
  grid_cols:
    name: grid_cols
    in: formData
    description: number of columns in the room grid
    type: string
  gateway:
    name: gateway
    in: query
    description: Gateway (added in v7.2.0)
    type: string
  gateway_post:
    name: gateway
    in: formData
    description: Gateway (added in v7.2.0)
    type: string
  groups:
    name: groups
    in: query
    description: >-
      If multitenancy is on, admin groups that have access to this object are
      specified here, e.g. Prod_East:no,Corp:yes specifies that the admin groups
      for this object are Prod_East with view only permission and Corp with
      change permission. If this parameter is present with no value, all groups
      are deleted.
    type: string
  groups_post:
    name: groups
    in: formData
    description: >-
      If multitenancy is on, admin groups that have access to this object are
      specified here, e.g. Prod_East:no,Corp:yes specifies that the admin groups
      for this object are Prod_East with view only permission and Corp with
      change permission. If this parameter is present with no value, all groups
      are deleted.
    type: string
  group_owner:
    name: group_owner
    in: formData
    description: >-
      Name of group that is responsible for this component - must match group
      name exactly.
    type: string
  groups_affected:
    name: groups_affected
    in: formData
    description: >-
      Names of affected groups separated by commas - must match group names
      exactly.
    type: string
  get_all_switch_ports:
    name: get_all_switch_ports
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: yes or no to get all switch ports (added in v10.4.0)
    type: string
  get_guest_os_info:
    name: get_guest_os_info
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  hardware:
    name: hardware
    type: string
    in: query
    description: >-
      filter by name of hardware model, comma separated for multiple hardware
      models (or filter). (Added in v6.3.2)
  hardware_ids:
    name: hardware_ids
    type: string
    in: query
    description: 'filter by ID of hardware models, comma separated'
  hours:
    name: hours
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  horizontal_grid_numbering:
    name: horizontal_grid_numbering
    type: string
    in: formData
    description: numeric by default
    enum:
      - numeric
      - alphabetic
      - alphabetic_doubled
  horizontal_grid_start:
    name: horizontal_grid_start
    type: string
    in: formData
  hwaddress:
    name: hwaddress
    in: formData
    description: mac or wwn. Required if no port.
    type: string
  hddsize:
    name: hddsize
    in: formData
    description: 'enter in GB, e.g.: 250 GB enter 250'
    type: string
  hddtype:
    name: hddtype
    in: formData
    description: new or existing
    type: string
  hddrpm:
    name: hddrpm
    in: formData
    description: new or existing
    type: string
  height:
    name: height
    in: formData
    description: room height
    type: string
  home_page:
    name: home_page
    type: string
    in: formData
    description: Text field.
  hostname_to_use:
    name: hostname_to_use
    type: string
    in: query
    enum:
      - '1 (Serial # / Reverse DNS / IP)'
      - '2 (Discovered Name / Serial # / Reverse DNS / IP)'
      - '3 (Reverse DNS / Discovered Name / Serial # / IP)'
    required: true
  hostname_precedence:
    name: hostname_precedence
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  hostidlist:
    name: hostidlist
    type: string
    in: formData
  host_allow_duplicate_serials:
    name: host_allow_duplicate_serials
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  id:
    name: id
    type: string
    in: query
    description: 'The ID of the software, required if not using NAME'
  id_post:
    name: id
    type: string
    in: formData
    description: 'The ID of the software, required if not using NAME'
  idle_time:
    name: idle_time
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  is_it_switch:
    name: is_it_switch
    type: string
    in: query
    enum:
      - 'yes'
      - 'no'
    description: filter by whether switch or not. Use yes or no. (Added in v6.3.2)
  is_it_virtual_host:
    name: is_it_virtual_host
    type: string
    in: query
    description: filter by whether virtual host or not. Use yes or no. (Added in v6.3.2)
  is_it_blade_host:
    name: is_it_blade_host
    type: string
    in: query
    description: filter by whether blade host or not. Use yes or no. (Added in v6.3.2)
  if_parent_assigned:
    name: if_parent_assigned
    type: string
    in: query
    description: >-
      no => Don't suggest subnet whose parents are assigned<br>
      yes => Suggest subnet even if parents are assigned
  if_parent_allocated:
    name: if_parent_allocated
    type: string
    in: query
    description: >-
      no => Don't suggest subnet whose parents are allocated<br>
      yes => Suggest subnet even if parents are allocated
  imgfile_id:
    name: imgfile_id
    type: integer
    in: formData
    description: >-
      Image file ID.
  imgfile:
    name: imgfile
    type: string
    in: formData
    description: name of the image file (Added in v5.8.2). Use instead of imgfile_id
  in_service:
    name: in_service
    type: string
    in: query
    description: filter by whether in service or not. Use yes or no.
  in_service_status:
    name: in_service
    type: string
    in: formData
    description: Filter by whether in service or not. Use yes or no.
    enum:
      - 'yes'
      - 'no'
  install_date:
    name: install_date
    type: string
    in: formData
    description: The date that the software was installed
  include_cols:
    name: include_cols
    type: string
    in: query
    description: >-
      do not return all columns just the ones specified. For example,
      ?include_cols=name, device_id, rack will only result in name, device_id,
      and rack included in the output. The following column names can be part of
      include_cols: name, device_id, rack, name, device_id, serial_no, asset_no,
      uuid, notes, in_service, service_level, type, id, last_updated, tags,
      customer_id, customer, hw_model, hw_size, manufacturer, hw_depth, rack,
      start_at, rack_id, orientation, row, room, building, reversed, blade_host_name,
      blade_host_id, slot_number, virtual_host_name, location, device_sub_type,
      os, osarch, osver, osverno, custom_fields, device_purchase_line_items,
      device_external_links, ip_addresses, mac_addresses, cpucount, cpucore,
      cpuspeed, ram, hddcount, hddsize, hddraid, hddraid_type, hdd_details,
      pdu_mapping_url,modules, vms, devices, aliases, xpos, ucs_manager,
      preferred_alias
  device_include_cols:
    name: include_cols
    type: string
    in: query
    description: >-
      Return only specified columns.
      For example, ?include_cols=name, device_id will only result in name and device_id
      included in the output. The following column names can be part of include_cols:
      device_id, name, type_id, type, serial_no, asset_no, uuid, notes, last_updated, first_added, objectcategory_id,
      objectcategory, ucsmanager, service_level_id, service_level, customer_id, customer, customers, do_not_propagate_device_permissions,
      in_service, virtual_host, blade_chassis, device_url, hardware_id, hardware, physicalsubtype_id, physicalsubtype, blade_slot_no,
      host_chassis_device_id, chassis_slot_id, device_virtual_host_id, device_cluster_id, additional_location_info, rack_id,
      start_at, orientation_id, orientation, xpos, where_id, where, reversed, virtualsubtype_id, virtualsubtype, datastores,
      data_center, os_id, os_name, os_version, os_version_no, os_architecture_id, os_architecture, total_cpus, core_per_cpu,
      threads_per_core, cpu_speed, hz_id, hz, ram, ram_size_type_id, ram_size_type, hard_disk_count, hard_disk_size, hard_disk_size_type_id,
      hard_disk_size_type, hw_sw_raid, hw_sw_raid_id, raid_type, raid_type_id, building_id, calculated_building_id, storage_room,
      storage_room_id, aliases, nonauthoritativealiases, custom_fields, tags
  building_include_cols:
    name: include_cols
    type: string
    in: query
    description: >-
      Return only specified columns.
      For example, ?include_cols=name, building_id will only result in name and building_id 
      included in the output. The following column names can be part of include_cols:
      building_id, name, address, contact_name, contact_phone, notes, tags, custom_fields, latitude, longitude, image_url
  instance_id:
    name: instance_id
    in: formData
    type: integer
    description: The cloud instance ID of the device
  ipv6:
    name: ipv6
    in: query
    description: 'if creating an ipv6 subnet, &ipv6 will need to be passed,'
    type: string
    required: true
  ip:
    name: ip
    in: query
    description: ip address (added in v6.3.0)
    type: string
  ips:
    name: ips
    in: query
    description: Details for all the IPs
    type: string
  ip_id:
    name: ip_id
    in: query
    description: D42 ID of the IP
    type: string
  ipaddress:
    name: ipaddress
    in: formData
    description: >-
      If a matching IP address is found, it will update the first matched IP
      address(unless you specify a vrf_group or vrf_group_id, then it matches or
      adds IP to that VRF group)
    type: string
    required: true
  ip_address_from:
    name: ip_address_from
    in: formData
    description: The external IP address
    type: string
    required: true
  ip_address_from_end:
    name: ip_address_from_end
    in: formData
    description: used for mapping a range of addresses rather than a single IP
    type: string
  ip_address_to:
    name: ip_address_to
    in: formData
    description: The internal IP address
    type: string
    required: true
  ip_address_to_end:
    name: ip_address_to_end
    in: formData
    description: used for mapping a range of addresses rather than a single IP
    type: string
  ip_start:
    name: ip_start
    in: formData
    description: starting IP address
    type: string
    required: true
  ip_end:
    name: ip_end
    in: formData
    description: 'ending IP address, use same as start for single address'
    type: string
    required: true
  ignore_powered_off:
    name: ignore_powered_off
    in: formData
    description: Ignore powered off vms
    enum:
      - 'yes'
      - 'no'
    type: string
  ignore_guest_uuid:
    name: ignore_guest_uuid
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  ignore_host_serial:
    name: ignore_host_serial
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  ignore_host_uuid:
    name: ignore_host_uuid
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  ignore_ipv6:
    name: ignore_ipv6
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  ignore_virt_subtype:
    name: ignore_virt_subtype
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  initial_software_type:
    name: initial_software_type
    in: formData
    type: string
    enum:
      - managed
      - unmanaged
      - prohibited
      - ignored
  job_id:
    name: job_id
    in: formData
    description: D42 ID for the job
    type: string
    required: true
  job_id_wname:
    name: job_id
    in: formData
    description: D42 ID for the job - required if no name
    type: string
  joyent_keyname:
    name: joyent_keyname
    in: formData
    description: Only for Joyent
    type: string
  key:
    name: key
    in: formData
    description: Can be new or existing. This is the custom field name.
    type: string
    required: true
  last_updated_lt:
    name: last_updated_lt
    type: string
    in: query
    description: last updated less than date YYYY-MM-DD format
  last_updated_gt:
    name: last_updated_gt
    type: string
    in: query
    description: last updated equal to or greater than date YYYY-MM-DD format
  limit:
    name: limit
    type: string
    in: query
    description: return this number of devices
  location:
    name: location
    in: formData
    type: string
    description: Location/region of instance deployment
  label:
    name: label
    in: query
    type: string
  label_post:
    name: label
    in: formData
    type: string
  length:
    name: length
    in: formData
    type: string
    description: Cable length
  licensed_count_post:
    name: licensed_count
    in: formData
    type: string
    description: Number of purchased licenses of operating system
  licensing_model:
    name: licensing_model
    in: formData
    type: string
  licensing_model_get:
    name: licensing_model
    in: formData
    type: string
  license_key:
    name: license_key
    in: formData
    type: string
    description: OS license key
  line_type:
    name: line_type
    in: formData
    type: string
    description: required for any new line being added for both device or contract.
  line_no:
    name: line_no
    in: formData
    type: string
    description: >-
      required for existing line items, use existing line # to change existing
      line item.
  line_name:
    name: line_name
    in: formData
    type: string
  line_quantity:
    name: line_quantity
    in: formData
    type: string
    description: 'can be calculated automatically from # of objects associated'
  line_cost:
    name: line_cost
    in: formData
    type: string
    description: cost for single object / item.
  line_cost_center:
    name: line_cost_center
    in: formData
    type: string
  line_customer:
    name: line_customer
    in: formData
    type: string
  line_item_type:
    name: line_item_type
    in: formData
    type: string
    enum:
      - device
      - asset
      - device_os
      - rack
      - shipping
      - tax
      - other
    description: Default is device.
  line_asset_ids:
    name: line_asset_ids
    in: formData
    type: string
    description: Comma separated asset_id. Only applicable if line_item_type is asset.
  line_start_date:
    name: line_start_date
    in: formData
    type: string
    description: Date in YYYY-MM-DD format
  line_end_date:
    name: line_end_date
    in: formData
    type: string
    description: Date in YYYY-MM-DD format
  line_frequency:
    name: line_frequency
    in: formData
    type: string
    enum:
      - one time
      - monthly
      - quarterly
      - bi-annually
      - annually
  line_renew_date:
    name: line_renew_date
    in: formData
    type: string
    description: Date in YYYY-MM-DD format
  line_cancel_policy:
    name: line_cancel_policy
    in: formData
    type: string
  line_contract_type:
    name: line_contract_type
    in: formData
    type: string
  line_service_type:
    name: line_service_type
    in: formData
    type: string
    description: 'new service type will be created, if it doesn’t exist (added in v9.0.2)'
  line_contract_id:
    name: line_contract_id
    in: formData
    type: string
    description: (added in v9.0.2)
  ldap_server:
    name: ldap_server
    type: string
    in: formData
  ldap_filter_type:
    name: ldap_filter_type
    type: string
    in: formData
    enum:
      - all
      - servers
      - custom
      - custom_ldap_filter
  ldap_unpwd_id:
    name: ldap_unpwd_id
    type: string
    in: formData
  line_notes:
    name: line_notes
    in: formData
    type: string
  line_completed:
    name: line_completed
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  line_devices:
    name: line_devices
    in: formData
    type: string
    description: >-
      Comma separated device names. Only applicable if line_item_type is device.
      Will create new devices if device with name specific here does not exist.
  line_device_serial_nos:
    name: line_device_serial_nos
    in: formData
    type: string
    description: >-
      Comma separated serial numbers. Only applicable if line_item_type is
      device. Will only work on existing serial numbers.
  line_device_asset_nos:
    name: line_device_asset_nos
    in: formData
    type: string
    description: >-
      Comma separated asset numbers. Only applicable if line_item_type is
      device. Will only work on existing asset numbers.
  line_circuits:
    name: line_circuits
    in: formData
    type: string
    description: circuit ID name
  line_circuit_ids:
    name: line_circuit_ids
    in: formData
    type: string
    description: D42 ID for the circuit(s)
  line_building_ids:
    name: line_building_ids
    in: formData
    type: string
    description: D42 ID for the building(s)
  line_certificate_ids:
    name: line_certificate_ids
    in: formData
    type: string
    description: D42 ID for the certificate(s)
  line_software_ids:
    name: line_software_ids
    in: formData
    type: string
    description: D42 ID for the software
  line_room_ids:
    name: line_room_ids
    in: formData
    type: string
    description: D42 ID for the room(s)
  line_rack_ids:
    name: line_rack_ids
    in: formData
    type: string
    description: D42 ID for the rack(s)
  line_part_ids:
    name: line_part_ids
    in: formData
    type: string
    description: D42 ID for the part(s)
  line_device_os_ids:
    name: line_device_os_ids
    in: formData
    type: string
    description: D42 ID for the Device OS
  line_devices_remove:
    name: line_devices_remove
    in: formData
    type: string
    description: >-
      Comma separated device names to clear from a purchase line. Use <b> * </b> to clear all devices from a purchase line.
      Use with line_no or line_name.
  listening_ip:
    name: listening_ip
    in: formData
    type: string
    description: the name of the device
  listener_device_name:
    name: listener_device_name
    in: query
    type: string
    description: Name of device with listening services
  license_key_count:
    name: license_key_count
    type: string
    in: formData
    description: The number of licenses this software key supports
  license_use_count:
    name: license_use_count
    type: string
    in: formData
    description: the number of licenses that are in use for this software instance
  max_blades_per_row:
    name: max_blades_per_row
    in: formData
    type: string
  mask_bits:
    name: mask_bits
    in: query
    description: mask bits (added in v7.2.0)
    type: string
    required: true
  mask_bits_lt:
    name: mask_bits_lt
    in: query
    description: less than mask bits (added in v7.2.0)
    type: string
  mask_bits_gt:
    name: mask_bits_gt
    in: query
    description: greater than mask bits (added in v7.2.0)
    type: string
  mac:
    name: mac
    in: query
    description: mac address
    type: string
  mac_id:
    name: mac_id
    in: formData
    description: >-
      mac_id references port_id value. mac_id available via GET at
      /api/api/1.0/macs/ or Tools > Export > MAC Address * Please see note below
    type: string
  macaddress:
    name: macaddress
    in: formData
    description: MAC address – can be new or existing
    type: string
  mapped_service:
    name: mapped_service
    in: query
    description: the name of the mapped service listening on this IP/port
    type: string
  mapped_service_post:
    name: mapped_service
    in: formData
    description: the name of the mapped service listening on this IP/port
    type: string
  match_name_only_for_virtuals:
    name: match_name_only_for_virtuals
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  match_name_only_for_hypervisor:
    name: match_name_only_for_hypervisor
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  module:
    name: module
    in: formData
    description: >-
      name of the blade that port belongs to. Blade device must be part of the
      switch. (added in v5.8.1)
    type: string
  module_slot:
    name: module_slot
    in: formData
    description: 'change patch panel port for a certain module slot # (Added in v5.8.2)'
    type: string
  media_type:
    name: media_type
    in: formData
    description: Type of media
    type: string
  method:
    name: method
    in: formData
    description: 'Backup method: 1 for mail,2 for sftp,3 for nfs or 4 for amazon s3'
    type: string
    required: true
  minutes:
    name: minutes
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
    type: string
  mtu:
    name: mtu
    in: formData
    description: add value for mtu
    type: string
  month_of_year:
    name: month_of_year
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
    type: string
  monitor_direction:
    name: monitor_direction
    in: formData
    description: 'Direction - to, both (optional, only for PortCap: Monitor)'
    type: string
  monitor_port_1_id:
    name: monitor_port_1_id
    in: formData
    type: integer
  monitor_port_2_id:
    name: monitor_port_2_id
    in: formData
    type: integer
  mirror_port_id:
    name: mirror_port_id
    in: formData
    type: integer
  manufacturer:
    name: manufacturer
    in: query
    type: string
    description: name of the hardware manufacturer.
  manufacturer_post:
    name: manufacturer
    in: formData
    type: string
    description: name of the hardware/software manufacturer.
  module_host_id:
    name: module_host_id
    in: formData
    type: integer
    description: ID of Module Host
  module_host:
    name: module_host
    in: formData
    type: string
    description: >-
      Name of the Module host. Must be unique asset name for this to work. (use
      instead of ID, Added in v5.8.2)
  module_pos:
    name: module_pos
    in: formData
    type: string
    enum:
      - horizontal
      - vertical
  module_position:
    name: module_position
    in: formData
    type: string
    description: >-
      for Modular Patch Panel Models. Possible values are horizontal or vertical
      (Added in v5.8.2)
  module_not_found:
    name: module_not_found
    in: formData
    type: string
    description: >-
      action to take on module not found. One of: Remove Host Association,
      Change Service Level, Delete Module (default is no action)
  modelno:
    name: modelno
    in: formData
    type: string
    description: 'Model # of the part model'
  network:
    name: network
    in: query
    description: optional
    type: string
    required: true
  name_to_use_for_newly_discovered_module:
    name: name_to_use_for_newly_discovered_module
    type: string
    in: formData
    description: name to use
  name_to_use_for_newly_discovered_pdu:
    name: name_to_use_for_newly_discovered_pdu
    type: string
    in: formData
    description: >-
      one of: Name discovered by SNMP, Name plus serial number, Name plus serial
      number plus IP
  name:
    name: name
    type: string
    in: query
    description: filter by name (Added in v6.0.0)
  new_name:
    name: new_name
    type: string
    in: formData
    description: Use to change name of object.
  numbering_start_from_bottom:
    name: numbering_start_from_bottom
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: 'default is yes, no to change, otherwise ignored.'
  notes:
    name: notes
    in: query
    type: string
    description: Any additional notes
  notes_post:
    name: notes
    in: formData
    type: string
    description: Any additional notes
  number:
    name: number
    in: query
    description: vlan number
    type: integer
  number_post:
    name: number
    in: formData
    description: vlan number
    type: integer
  new_port:
    name: new_port
    in: formData
    description: rename existing port
    type: string
  netport_id:
    name: netport_id
    in: formData
    type: integer
  nameserver:
    name: nameserver
    in: query
    description: Nameserver
    type: string
  numbering_start_from:
    name: numbering_start_from
    in: formData
    description: 'This is starting # for patch panel ports. Defaults to 1 if not entered.'
    type: integer
  number_of_ports:
    name: number_of_ports
    in: formData
    description: >-
      number of ports. required for creating a new patch panel type singular.
      Ignored for patch panel type modular
    type: string
  number_of_ports_in_row:
    name: number_of_ports_in_row
    in: formData
    description: >-
      number of ports in a row. required for creating a new patch panel type
      singular. Ignored for patch panel type modular
    type: string
  os:
    name: os
    type: string
    in: query
    description: filter by OS name (added in v8.3.0)
  os_post:
    name: os
    type: string
    in: formData
    description: Operating system name.<br><br>Use this parameter to create or change a device OS. See the device parameters above.
  object_id:
    name: object_id
    type: integer
    in: query
    description: 'Filters by object ID (ie, device ID, asset ID)'
  os_id:
    name: os_id
    type: string
    in: query
    description: Operating system ID
  osver:
    name: osver
    type: string
    in: formData
    description: Operating system version name
  osverno:
    name: osverno
    type: string
    in: formData
    description: Operating system version number
  obj_label1:
    name: obj_label1
    type: string
    in: formData
    description: object label 1
  obj_label2:
    name: obj_label2
    type: string
    in: formData
    description: object label 2
  object_category:
    name: object_category
    type: string
    in: formData
    description: name of subnet category for discovered subnets
  object_category_pdu:
    name: object_category
    type: string
    in: formData
  object_category_get:
    name: object_category
    type: string
    in: query
    description: filter by object category
  origin_cable_type:
    name: origin_cable_type
    type: string
    in: formData
    description: Cable Type (User definable)
  origin_cable_color:
    name: origin_cable_color
    type: string
    in: formData
    description: Origin Cable Color
  object_category_id:
    name: object_category_id
    type: integer
    in: query
    description: filter by object category ID
  origin_connector_type:
    name: origin_connector_type
    type: string
    in: query
    description: Connector Type (User Definable)
  origin_connector_type_post:
    name: origin_connector_type
    type: string
    in: formData
    description: Connector Type (User Definable)
  other_trigger:
    name: other_trigger
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  other_type:
    name: other_type
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  offset:
    name: offset
    type: string
    in: query
    description: >-
      start with this device (e.g. limit=100&offset=50 means start with the 50th
      device and return the next 100 devices)
  override:
    name: override
    in: formData
    description: >-
      smart – will detect if the port_name passed exist or not, if not – it is
      added to the current port name. Helpful, if you want to track all the port
      names for that mac address (e.g. eth0 & bond0).<br>yes – change the port
      name. This is default behavior even if you don’t pass this parameter<br>no
      – will not change the port name
    type: string
    enum:
      - smart
      - 'yes'
      - 'no'
  overwrite_object_categories:
    name: overwrite_object_categories
    in: formData
    enum:
      - 'yes'
      - 'no'
    type: string
  orientation_rack:
    name: orientation
    in: formData
    type: string
    description: >-
      orientation of the rack in room layout view. Possible values: right, left,
      up or down.
    enum:
      - left
      - right
      - up
      - down
  orientation_pdu:
    name: orientation
    in: formData
    description: >-
      orientation of the PDU in rack. back for rear facing, otherwise front is
      default.
    type: string
  outlet_name:
    name: outlet_name
    in: formData
    description: outlet name
    type: string
  outscale_regions:
    name: outscale_regions
    in: formData
    description: Comma separated region names for Outscale
    type: string
  order_no:
    name: order_no
    in: query
    description: Order number
    type: string
  order_date:
    name: order_date
    in: query
    description: Order number
    type: string
  origin_type:
    name: origin_type
    in: query
    enum:
      - device
      - circuit
      - switchport
      - vendor
      - patch_panel_port
    description: Type of origin point.
    type: string
  origin_type_post:
    name: origin_type
    in: formData
    enum:
      - cable
      - circuit
      - switchport
      - tap_port
      - patch_panel_port
    description: Type of origin point.
    type: string
  origin_id:
    name: origin_id
    in: query
    description: ID of the origin point
    type: integer
  origin_id_post:
    name: origin_id
    in: formData
    description: ID of the origin point. <b>Must be used with origin_type</b>
    type: integer
  origin_device:
    name: origin_device
    in: query
    description: 'if origin type is device, this is name of the device. Absent otherwise'
    type: string
  origin_device_post:
    name: origin_device
    in: formData
    description: 'if origin type is device, this is name of the device. Absent otherwise'
    type: string
  origin_circuit_id:
    name: origin_circuit_id
    in: query
    description: >-
      if origin type is circuit, this is circuit_id of the circuit. Absent
      otherwise
    type: string
  origin_circuit_id_post:
    name: origin_circuit_id
    in: formData
    description: >-
      if origin type is circuit, this is circuit_id of the circuit. Absent
      otherwise
    type: string
  origin_switchport:
    name: origin_switchport
    in: query
    description: >-
      if origin type is switchport, this is name of the switch port. Absent
      otherwise
    type: string
  origin_switchport_post:
    name: origin_switchport
    in: formData
    description: >-
      if origin type is switchport, this is name of the switch port. Used with origin_switch. Absent
      otherwise
    type: string
  origin_switch:
    name: origin_switch
    in: query
    description: 'if origin type is switchport, this is name of the switch. Absent otherwise'
    type: string
  origin_switch_post:
    name: origin_switch
    in: formData
    description: 'if origin type is switchport, this is name of the switch. Absent otherwise. Used with origin_switchport'
    type: string
  origin_patch_panel_port:
    name: origin_patch_panel_port
    in: query
    description: >-
      if origin type is patch_panel_port, this is name of the patch panel port.
      Absent otherwise
    type: string
  origin_patch_panel_port_post:
    name: origin_patch_panel_port
    in: formData
    description: >-
      if origin type is patch_panel_port, this is name of the patch panel port.
      Absent otherwise
    type: string
  origin_patch_panel:
    name: origin_patch_panel
    in: query
    description: >-
      if origin type is patch_panel_port, this is name of the patch panel.
      Absent otherwise
    type: string
  origin_patch_panel_id:
    name: origin_patch_panel_id
    in: query
    description: >-
      if origin type is patch_panel_port, this is ID of the patch panel. Absent
      otherwise
    type: string
  origin_patch_panel_post:
    name: origin_patch_panel
    in: formData
    description: >-
      if origin type is patch_panel_port, this is name of the patch panel.
      Absent otherwise
    type: string
  origin_patch_panel_id_post:
    name: origin_patch_panel_id
    in: formData
    description: >-
      if origin type is patch_panel_port, this is ID of the patch panel. Absent
      otherwise
    type: integer
  origin_vendor:
    name: origin_vendor
    in: query
    description: 'if origin type is vendor, this is name of the vendor. Absent otherwise'
    type: string
  origin_vendor_post:
    name: origin_vendor
    in: formData
    description: 'if origin type is vendor, this is name of the vendor. Absent otherwise'
    type: string
  origin_optic_type:
    name: origin_optic_type
    in: formData
    description: 'Optic Type (Definable, ie multimode)'
    type: string
  origin_back_patch_panel:
    name: origin_back_patch_panel
    in: formData
    type: string
  paired_ports:
    name: paired_ports
    in: formData
    enum:
      - 'yes'
      - 'no'
    type: string
  patch_panel_model_id:
    name: patch_panel_model_id
    in: formData
    description: Patch Panel Model ID or UI Tools > Export > Patch Panel Model
    type: integer
  patch_panel:
    name: patch_panel
    in: formData
    description: Must be a unique asset name for this to work (Added in v5.8.2)
    type: string
  patch_panel_model:
    name: patch_panel_model
    in: formData
    description: 'Name of the patch panel model (use instead of ID, Added in v5.8.2)'
    type: string
  powerunit_connection_ids:
    name: powerunit_connection_ids
    in: formData
    description: A comma-separated list of PU IDs connected to this circuit
    type: string
  patch_panel_module_model_id:
    name: patch_panel_module_model_id
    in: formData
    type: integer
    description: ID of the Patch Panel Module model
  patch_panel_module_model:
    name: patch_panel_module_model
    in: formData
    description: 'Name of the patch panel module model (use instead of ID, Added in v5.8.2)'
    type: string
  parent_subnet_id:
    name: parent_subnet_id
    in: formData
    description: 'Change the parent subnet of the subnet. Note: must be valid parent.'
    type: string
  parent_subnet_id_get:
    name: parent_subnet_id
    in: query
    description: ID of the parent subnet
    type: string
  parent_subnet:
    name: parent_subnet
    in: query
    description: parent subnet name
    type: string
  parent_subnet_with_mask:
    name: parent_subnet
    in: formData
    description: >-
      Parent subnet network with mask. The netowrk and mask sould be separated by <b>/</b>. Eg. 12.0.0.0/24
      <br>Provide <b>vrf_group</b> or <b>vrf_group_id</b> if parent subnet belongs to a VRF Group.
      Otherwise this will match a parent subnet without VRF group
    type: string
  parent_subnet_name:
    name: parent_subnet_name
    in: formData
    description: >-
      Parent subnet name.<br>Provide <b>vrf_group</b> or <b>vrf_group_id</b> if parent subnet belongs to a VRF Group.
      Otherwise this will match a parent subnet without VRF group
    type: string
  parent_mask_bits:
    name: parent_mask_bits
    in: formData
    description: >-
      only if searching within a VRF and you want to restrict to certain parents
      with particular mask bits (added in v9.0.0)
    type: string
  parent_vlan_id:
    name: parent_vlan_id
    in: formData
    type: string
  part_no:
    name: part_number
    in: query
    type: string
    description: 'filter by part #'
  part_no_post:
    name: part_no
    in: formData
    type: string
  part_id:
    name: part_id
    in: query
    type: string
    description: id of the part (added in v6.3.3)
  partmodel_id:
    name: partmodel_id
    in: query
    type: string
    description: id of the part model (added in v6.3.3)
  parent_pdu_id:
    name: parent_pdu_id
    in: formData
    type: string
    description: Available from /api/api/1.0/pdus/ or Tools
  parent_pdu:
    name: parent_pdu
    in: formData
    type: string
    description: name of the parent PDU. Must be unique name. Added in v5.8.2
  partno:
    name: partno
    in: formData
    description: 'Part # of the part model'
    type: string
  parent_port:
    name: parent_port
    in: formData
    type: string
  parent_port_device:
    name: parent_port_device
    in: formData
    type: string
  patch_panel_port_id:
    name: patch_panel_port_id
    in: formData
    type: integer
  pdu:
    name: pdu
    in: formData
    type: string
    description: name of the PDU. only works if the name is unique in the system
  pdu_id:
    name: pdu_id
    in: formData
    type: integer
    description: ID of the PDU to be edited
  pdu_model:
    name: pdu_model
    in: formData
    type: string
    description: >-
      Name of the PDU model. You can use this instead of the ID above. (Added in
      v5.8.2)
  pdu_model_name:
    name: pdu_model_name
    in: formData
    type: string
    description: Name of the PDU model you want to add ports to.
  pdu_model_id:
    name: pdu_model_id
    in: formData
    type: string
    description: ID of the PDU model you want to update
  polling_interval:
    name: polling_interval
    in: formData
    description: Polling interval in seconds. Adjusted to the nearest available interval value. (e.g., 300 = 5 minutes, 1800 = 30 minutes)
    type: string
  port:
    name: port
    in: query
    description: child is optional assuming you have a parent created (see examples)
    type: string
    required: true
  port_post:
    name: port
    in: formData
    description: >-
      child is optional assuming you have a parent created. Required if no
      hwaddress<br>Note: Do not use a port alias for the port name.
    type: string
  ports:
    name: ports
    in: formData
    description: 'default is 443, comma separated'
    type: string
  port_name:
    name: port_name
    in: formData
    description: 'Interface name. (Please note: This is NOT the switchport name.)'
    type: string
  port_id:
    name: port_id
    in: query
    description: >-
      For the port and switch option, port refers to the switchport name (not
      the interface name) and switch refers to the device name of the switch.
    type: string
  port_number:
    name: port_number
    in: query
    description: port number
    type: string
  port_capability:
    name: port_capability
    in: formData
    description: 'Port Capability - Device, Monitor'
    type: string
  port_to_from_id:
    name: port_to_from_id
    in: formData
    type: integer
  port_type:
    name: port_type
    in: query
    description: 'Port Type Name - RJ45, RJ11, Fiber LC, Fiber SC, Fiber FC'
    type: string
    required: true
  port_type_id:
    name: port_type_id
    in: formData
    type: integer
  po_date:
    name: po_date
    in: formData
    type: string
  port_name_prefix_to_ignore_macs:
    name: port_name_prefix_to_ignore_macs
    in: formData
    type: string
  prio:
    name: prio
    in: formData
    description: Priority for MX record.
    type: string
  protocol:
    name: protocol
    in: formData
    description: 'the transport protocol, ie TCP'
    type: string
  psu_label:
    name: psu_label
    in: formData
    description: >-
      typically used when device has multiple power supplies, e.g.: power supply
      1, power supply 2, etc.
    type: string
  purchase_id:
    name: purchase_id
    in: query
    description: Device42 Purchase ID
    type: string
  plain_text:
    name: plain_text
    in: query
    enum:
      - 'yes'
      - 'no'
    description: >-
      Decrypt the password and return the plain text version. ?plain_text=yes
      will decrypt and display the password.
    type: string
  platform:
    name: platform
    in: formData
    type: string
    enum:
      - windows
      - classic winrm
      - docker api
      - docker
      - nutanix
      - linux
      - vmware
      - unix
      - aix hmc
      - openvz
      - oracle vm
      - lxc
      - kvm
      - libvirt
      - ovirt
      - redhat
      - citrix xen
      - sccm
  password:
    name: password
    type: string
    in: formData
    description: The password for the given username.
  phone:
    name: phone
    type: string
    in: formData
    description: Text field.
  provision_date:
    name: provision_date
    type: string
    in: query
    description: Text field.
  prepend_vmhostname:
    name: prepend_vmhostname
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  get_power_units_id:
    name: id
    type: integer
    in: query
    description: ID of Power Unit
  get_power_units_name:
    name: name
    type: string
    in: query
    description: Name of Power Unit
  get_power_units_type:
    name: type
    type: string
    in: query
    description: Type of Power Unit
    enum:
      - 'PDU'
      - 'UPS'
      - 'ATS'
      - 'Environment Monitor'
  get_power_units_pdu_model_id:
    name: pdu_model_id
    type: integer
    in: query
    description: ID of Power Unit Model
  get_power_units_pdu_model:
    name: pdu_model
    type: string
    in: query
    description: Name of Power Unit Model
  get_power_units_building_id:
    name: building_id
    type: integer
    in: query
    description: ID of Building that the Power Unit is in.
  get_power_units_room_id:
    name: room_id
    type: integer
    in: query
    description: ID of Room that the Power Unit is in.
  get_power_units_rack_id:
    name: rack_id
    type: integer
    in: query
    description: ID of Rack that the Power Unit is on
  get_power_units_serial_no:
    name: serial_no
    type: integer
    in: query
    description: Serial Number of Power Unit
  get_power_units_device_id:
    name: device_id
    type: integer
    in: query
    description: ID of Device
  get_power_units_gateway_pdu_id:
    name: gateway_pdu_id
    type: integer
    in: query
    description: ID of gateway Power Unit
  post_power_units_name:
    name: name
    type: string
    in: formData
    required: true
    description: Name of Power Unit
  post_power_units_type:
    name: type
    type: string
    in: formData
    enum:
      - 'PDU'
      - 'UPS'
      - 'ATS'
      - 'Environment Monitor'
    description: Type of Power Unit. Default is Pdu
  post_power_units_pdu_model_id:
    name: pdu_model_id
    type: integer
    in: formData
    description: ID of Power Unit Model. Only pdu_model_id or pdu_model can be used.
  post_power_units_pdu_model:
    name: pdu_model
    type: string
    in: formData
    description: Name of Power Unit Model. Only pdu_model_id or pdu_model can be used.
  post_power_units_notes:
    name: notes
    type: string
    in: formData
    description: Any additional notes
  post_power_units_rated_power:
    name: rated_power
    type: string
    in: formData
    description: >- 
      Rated Power of Power Unit. No need to use this field if infeeds are shown.
      (e.g. 250 amps or maybe something like 75a / 75a / 75a for a 3-phase pdu)
  post_power_units_outlet_name:
    name: outlet_name
    type: string
    in: formData
    description: Name of outlet the Power Unit Port is using
  post_power_units_pdu_serial_no:
    name: pdu_serial_no
    type: integer
    in: formData
    description: Serial number of Power Unit
  post_power_units_device:
    name: device
    type: string
    in: formData
    description: Name of Device that maps with Power Unit
  post_power_units_serial_no:
    name: serial_no
    type: integer
    in: formData
    description: Serial number of device
  post_power_units_asset_no:
    name: asset_no
    type: integer
    in: formData
    description: Asset number of device
  post_power_units_storage_room_id:
    name: storage_room_id
    type: integer
    in: formData
    description: ID of storage room power unit is in. Only storage_room_id or storage_room can be used.
  post_power_units_storage_room:
    name: storage_room
    type: string
    in: formData
    description: Name of storage room power unit is in. Only storage_room_id or storage_room can be used.
  post_power_units_object_category:
    name: object_category
    type: string
    in: formData
    description: Name of Object Category
  post_power_units_new_object_category:
    name: new_object_category
    type: string
    in: formData
    description: Use to change Object Category
  post_power_units_gateway_pdu_id:
    name: gateway_pdu_id
    type: integer
    in: formData
    description: >-
      ID of gateway PDU to set. Only gateway_pdu_id or gateway_pdu can be used. 
      You cannot set gateway power unit when a device mapping is set.
  post_power_units_gateway_pdu:
    name: gateway_pdu
    type: string
    in: formData
    description: >- 
      Name of gateway PDU to set. Only gateway_pdu_id or gateway_pdu can be used.
      You cannot set gateway power unit when a device mapping is set.
  post_power_units_tags:
    name: tags
    type: string
    in: formData
    description: Add tags to Power Unit
  put_power_units_pdu_id:
    name: pdu_id
    type: integer
    in: formData
    description: ID of Power Unit. Either 'name' or 'pdu_id' is REQUIRED.
  put_power_units_name:
    name: name
    type: string
    in: formData
    description: Name of Power Unit. Either 'name' or 'pdu_id' is REQUIRED.
  put_power_units_new_name:
    name: new_name
    type: string
    in: formData
    description: Use to change the name of the Power Unit
  put_power_units_tags_remove:
    name: tags_remove
    type: string
    in: formData
    description: Use to remove tags
  delete_power_units_id:
    name: id
    type: integer
    in: path
    description: ID of Power Unit
  run:
    name: run
    type: string
    in: formData
    required: true
    description: yes to start
  run_as_operator:
    name: run_as_operator
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  overwrite_device_name:
    name: overwrite_device_name
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  row:
    name: row
    type: string
    in: formData
    description: >-
      this row field is for the name of the rows, and not related to the grid
      positioning of the rack
  room_id:
    name: room_id
    type: integer
    in: query
    description: filter by room ID (Added in v5.9.0)
  room_id_post:
    name: room_id
    type: string
    in: formData
    description: Room ID if Room name is not unique
  room:
    name: room
    type: string
    in: query
    description: >-
      filter by room name. Only works if room ID is not present (Added in
      v5.9.0)
  raid_type:
    name: raid_type
    type: string
    in: formData
    description: type of RAID
  raid_group:
    name: raid_group
    type: string
    in: formData
    description: RAID group name
  ramsize:
    name: ramsize
    type: string
    in: formData
    description: 'enter in MB, e.g.: 8 GB enter 8192'
  ramtype:
    name: ramtype
    type: string
    in: formData
    description: 'e.g.: DDR3'
  ramspeed:
    name: ramspeed
    type: string
    in: formData
    description: 'e.g.: 1600'
  rack_id:
    name: rack_id
    type: integer
    in: query
    description: filter by rack ID (Added in v5.9.0)
  rack:
    name: rack
    type: string
    in: query
    description: >-
      filter by rack name. Only works if rack ID is not present (Added in
      v5.9.0)
  rated_power:
    name: rated_power
    type: string
    in: formData
  related_field_name:
    name: related_field_name
    type: string
    in: formData
    enum:
      - appcomp
      - building
      - businessapp
      - certificate
      - circuit
      - cloudinfrastructure
      - costcenter
      - customer
      - device
      - dns_zone
      - endusers
      - hardware
      - ip_address
      - netport
      - organisation
      - os
      - pdu
      - pdu_model
      - powercircuit
      - purchase
      - rack
      - room
      - servicecategory
      - software_category
      - software
      - vlan
    description: >-
      Required if type = related_field. The existing field to relate this
      custom field to. Below are details for some of the fields that have been renamed
      or require further clarification.
      appcomp (for application components), businessapp (for Business Service),
      circuit (for Telco Circuit), cloudinfrastructure (for Cloud Account), 
      hardware (for device hardware model), netport (for Switch Port),
      organisation (for Vendor), pdu (for Power Unit), pdu_model (for Power Unit Model),
      purchase (for Purchase Order), software (for Software Component),
      vlan (for Subnet)
  related_device_id:
    name: related_device_id
    type: integer
    in: query
    description: ID of the related device (added in v9.3.0)
  raised_floor:
    name: raised_floor
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  raised_floor_height:
    name: raised_floor_height
    type: string
    in: formData
    description: height of raised floor
  reverse_xaxis:
    name: reverse_xaxis
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: '''yes'' reverses the numbering order on the x-axis'
  reverse_yaxis:
    name: reverse_yaxis
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: '''yes'' reverses the numbering order on the y-axis'
  remote_collector_id:
    name: remote_collector_id
    type: string
    in: formData
  range_begin:
    name: range_begin
    in: query
    description: Range Begin (added in v7.2.0)
    type: string
  range_begin_post:
    name: range_begin
    in: formData
    description: Range Begin (added in v7.2.0)
    type: string
  range_end:
    name: range_end
    in: query
    description: Range End (added in v7.2.0)
    type: string
  range_end_post:
    name: range_end
    in: formData
    description: Range End (added in v7.2.0)
    type: string
  remove_unfound_instances:
    name: remove_unfound_instances
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  remote_port_id:
    name: remote_port_id
    in: formData
    description: ID of the remote connected switch port.
    type: string
  remote_ips:
    name: remote_ips
    in: formData
    description: >-
      the comma separated list of remote IPs that are connected to this
      listening IP/port
    type: string
  remote_device:
    name: remote_device
    in: formData
    description: Name of the switch for remote connected switch port.
    type: string
  remote_port:
    name: remote_port
    in: formData
    description: Name of the port for remote connected switch port.
    type: string
  remote_port_clear:
    name: remote_port_clear
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: 'if set to yes, will clear the remote port'
    type: string
  reserve_ip:
    name: reserve_ip
    in: query
    enum:
      - 'yes'
      - 'no'
    description: >-
      If value of yes is passed, the suggested IP is reserved. Return value also
      adds reserved as yes or no. (added in v7.2.0)
    type: string
  row_size:
    name: row_size
    in: formData
    description: How many rows long the rack is
    type: string
  snmp_string:
    name: snmp_string
    in: formData
    type: string
    description: 'required, if new'
  snmp_port:
    name: snmp_port
    in: formData
    type: integer
    description: snmp port (integer only) (added in v10.4.0)
  snmp_version:
    name: snmp_version
    in: formData
    type: string
    default: v2c
    enum:
      - v1
      - v2c
      - v3
  snmp_string_id:
    name: snmp_string_id
    in: formData
    type: string
    description: The id of the password for the community string
  snmp_strings:
    name: snmp_strings
    in: formData
    type: string
    description: >-
      Can be comma separated list of community strings to use multiple community
      strings
  snmp_string_ids:
    name: snmp_string_ids
    in: formData
    type: string
    description: >-
      Can be comma separated list of community string IDs to use multiple
      community strings
  snmpv3_auth_password_id:
    name: snmpv3_auth_password_id
    in: formData
    type: string
    description: The id of the password for the auth password
  snmpv3_privacy_protocol_password_id:
    name: snmpv3_privacy_protocol_password_id
    in: formData
    type: string
    description: The id of the password for the privacy protocol password
  snmpv3_user:
    name: snmpv3_user
    in: formData
    type: string
    description: name of snmp v3 user (added in v10.4.0)
  snmpv3_auth_mode:
    name: snmpv3_auth_mode
    in: formData
    type: string
    enum:
      - noAuthoNoPriv
      - authNoPriv
      - authPriv
  snmpv3_auth_protocol:
    name: snmpv3_auth_protocol
    in: formData
    type: string
    enum:
      - MD5
      - SHA
      - SHA256
      - SHA512
  snmpv3_auth_password:
    name: snmpv3_auth_password
    in: formData
    type: string
    description: password (added in v10.4.0)
  snmpv3_privacy_protocol:
    name: snmpv3_privacy_protocol
    in: formData
    type: string
    enum:
      - DES
      - 3DES
      - AES
      - AES128
      - AES192
      - AES192C
      - AES256
      - AES256C
  snmpv3_privacy_protocol_password:
    name: snmpv3_privacy_protocol_password
    in: formData
    type: string
    description: password (added in v10.4.0)
  snmpv3_context:
    name: snmpv3_context
    in: formData
    type: string
  schedule_time:
    name: schedule_time
    in: formData
    type: string
    description: >-
      Time in HH:MM format if you want to schedule the job. Note: Must be
      formatted as text NOT date. For multiple schedules, separate with a slash
      (/).
  schedule_days:
    name: schedule_days
    in: formData
    type: string
    description: >-
      Comma separated days of week, where Monday = 0. e.g. 0,1,2 will set the job
      for Mon, Tue and Wed. For multiple schedules, separate with a slash (/).
  strip_domain_name:
    name: strip_domain_name
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  strip_domain_suffix:
    name: strip_domain_suffix
    in: formData
    type: string
    description: Strip domain suffix if discovered on VMs or hypervisor
    enum:
      - 'yes'
      - 'no'
  service_type:
    name: service_type
    type: string
    in: query
    description: could be ignored or tracked. Default is tracked.
  secret_key:
    name: secret_key
    type: string
    in: formData
    description: Amazon AWS, MS Azure, OpenStack, Google Cloud, Alibaba Cloud, Oracle Cloud
  secret_key_id:
    name: secret_key_id
    type: string
    in: formData
    description: Amazon AWS, MS Azure, OpenStack, Google Cloud, Alibaba Cloud, Oracle Cloud
  server:
    name: server
    type: string
    in: formData
    description: IP or FQDN of target server
    required: true
  service_level_device_id:
    name: service_level_device_id
    type: string
    in: formData
  service_name:
    name: service_name
    type: string
    in: query
    required: true
    description: The executable name of the service
  service_display_name:
    name: service_display_name
    type: string
    in: query
    required: true
    description: The user freindly display name of the service
  service_id:
    name: service_id
    type: string
    in: query
    description: filter by id of the service
  service_detail_id:
    name: service_detail_id
    type: string
    in: query
    description: filter by id of the service in use
  serial_no:
    name: serial_no
    type: string
    in: query
    description: 'filter by serial # (Added in v6.0.0)'
  serial_no_contains:
    name: serial_no_contains
    type: string
    in: query
    description: filter by partial serial match (Added in 9.7.1)
  sequential_numbering_for_ports:
    name: sequential_numbering_for_ports
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: Could be “yes” or “no”. Yes if ports are numbered starting from 1.
  skip_vlan_indexing:
    name: skip_vlan_indexing
    type: string
    in: formData
    description: yes or no (added in v10.4.0)
  status:
    name: status
    in: formData
    type: string
    description: 'Instance status (ie, running, stopped)'
  state:
    name: state
    in: query
    type: string
    description: >-
      The current running state of this service. Valid values are ‘Running’,
      ‘Started’, ‘Paused’, ‘Stopped’ and ‘Unknown’
  startmode:
    name: startmode
    in: query
    type: string
    description: >-
      The start mode of this service - valid values are ‘Automatic’, ‘Manual’,
      ‘Disabled’ and ‘Unknown’
  subnet_id:
    name: subnet_id
    in: query
    description: ID of the subnet (added in v7.2.0)
    type: string
  subnets_type:
    name: type
    in: formData
    enum:
      - 'Static'
      - 'DHCP'
      - 'Reserved'
      - 'D42_NULL'
    description: type of the subnet. Pass <b>D42_NULL</b> to empty out type.
    type: string
  subscriptionid:
    name: subscriptionid
    in: formData
    description: MS Azure Subscription ID
    type: string
  subnet:
    name: subnet
    in: query
    description: name of the subnet
    type: string
  sudo_retry:
    name: sudo_retry
    in: formData
    type: string
  service_level:
    name: service_level
    type: string
    in: query
    description: filter by service level name
  service_level_post:
    name: service_level
    type: string
    in: formData
    description: Must already exist
  show_on_chart:
    name: show_on_chart
    type: string
    in: formData
    description: Show the field on impact charts
  slot_numbering:
    name: slot_numbering
    type: string
    in: formData
    enum:
      - top_to_bottom
      - bottom_to_top
      - left_to_right
      - right_to_left
  switch:
    name: switch
    in: formData
    description: >-
      d42 will look for existing port and switch combination and if it exists,
      will update that port.
    type: string
  switch_ids:
    name: switch_ids
    in: formData
    description: Comma separated values for switch_ids<br>Only vlans with these switch_ids will be merged
    type: string
  switch2_id:
    name: switch2_id
    in: query
    description: ID of the 2nd network device port is on
    type: string
  switchport_id:
    name: switchport_id
    in: formData
    description: >-
      ID for the switch port. Available via GET at /api/api/1.0/switchports/ or
      Tools > Export > Switch Port
    type: string
  speed:
    name: speed
    in: formData
    description: update port speed
    type: string
  slave_ports:
    name: slave_ports
    in: formData
    description: comma separated port names
    type: string
  switch_template_id:
    name: switch_template_id
    in: formData
    required: true
    description: GET all Switch Templates
    type: string
  source_port_start:
    name: source_port_start
    in: formData
    description: Starting port for source IP range
    type: string
  source_port_end:
    name: source_port_end
    in: formData
    description: used for mapping a range of ports rather than a single port
    type: string
  software_id:
    name: software_id
    type: string
    in: query
    description: filter by id of the software
  software_detail_id:
    name: software_detail_id
    type: string
    in: query
    description: filter by id of the software
  software:
    name: software
    type: string
    in: formData
    description: the name of the software
    required: true
  software_name:
    name: software_name
    type: string
    in: query
    description: filter by name of the software component
  software_type:
    name: software_type
    type: string
    in: query
    description: 'Filter by software type (managed, unmanaged, prohibited or ignored)'
  deployment_type:
    name: deployment_type
    type: string
    in: query
    description: 'Filter by deployment type (saas, mobile, desktop or server)'
  size:
    name: size
    in: formData
    type: string
    description: Size of the PDU in U
  storage_room_id:
    name: storage_room_id
    in: formData
    type: string
    description: ID of storage room to assign power unit to
  storage_room:
    name: storage_room
    in: formData
    type: string
    description: Name of storage room to apply power unit to
  store_config_files:
    name: store_config_files
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  start_ip_address:
    name: start_ip_address
    in: formData
    type: string
    description: Legacy Field. Please use Server property
  start_row:
    name: start_row
    in: formData
    type: string
    description: 'Starting row for rack, for grid positioning'
  start_col:
    name: start_col
    in: formData
    type: string
    description: 'Starting column for the rack, for grid positioning'
  start_at:
    name: start_at
    in: formData
    type: string
    description: Required if adding to rack. U Start location.
  slot_no:
    name: slot_no
    in: formData
    type: integer
    description: Number of slot on rack
  spec_url:
    name: spec_url
    in: formData
    type: string
    description: Specification url for the hardware model.
  tags:
    name: tags
    type: string
    in: query
    description: >-
      filter by tags. comma separated for multiple tags (This is an OR filter,
      gets all the devices for all comma separated tags)
  tags_and:
    name: tags_and
    type: string
    in: query
    description: >-
      filter by all the tags, separated by comma. (This is an AND filter and all
      tags have to match for filter, this was added in v6.3.1)
  tags_remove:
    name: tags_remove
    type: string
    in: formData
    description: remove tags from a switchport
  tags_post:
    name: tags
    type: string
    description: add tags (comma separated)
    in: formData
  tags_remove_generic:
    name: tags_remove
    type: string
    in: formData
    description: remove tags (comma separated)
  target:
    name: target
    type: string
    in: formData
    description: list of ip(s), ip range(s), cidr(s) and fqdn(s) to run discovery on
    required: true
  exclude_targets:
    name: exclude_targets
    type: string
    in: formData
    description: list of ip(s), ip range(s), cidr(s) and fqdn(s) to exclude from discovery
  tenant:
    name: tenant
    type: string
    in: formData
    description: OpenStack Project name; Google Project ID; Oracle Tenant ID; Arista CloudVision Tenant; Workspace ONE Tentant;
  type:
    name: type
    type: string
    in: query
    description: >-
      filter by device type (physical, virtual, blade, other, cluster or
      unknown)
    required: true
  ttl:
    name: ttl
    in: query
    description: TTL value.
    type: string
  target_port_start:
    name: target_port_start
    in: formData
    description: Starting port for target IP range
    type: string
  target_port_end:
    name: target_port_end
    in: formData
    description: used for mapping a range of ports rather than a single port
    type: string
  two_way_relation:
    name: two_way_relation
    in: formData
    enum:
      - true
      - false
    description: >-
      true if the internal IP addressed is masked with the external IP address
      for outbound traffic in addition to inbound traffic. Default is false.
    type: string
  token_key:
    name: token_key
    in: formData
    description: DigitalOcean Token Key - required for DigitalOcean.
    type: string
  token_id:
    name: token_id
    in: path
    description: The id of the token
    type: integer
    required: true
  total_count:
    name: total_count
    in: query
    description: Count of IPs returned (use with offset as max results are limited to 1000)
    type: string
  toggle_in_service_on_module_power_state:
    name: toggle_in_service_on_module_power_state
    in: formData
    description: yes or no
    type: string
  toggle_service_level_on_vm_power_state:
    name: toggle_service_level_on_vm_power_state
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  threads:
    name: threads
    in: formData
    description: number of threads
    type: string
  track_licensed_by_count:
    name: track_licensed_count_by_keys
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: whether or not to track software by discovered count
  track_vm_name_change:
    name: track_vm_name_change
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  turn_on_date:
    name: turn_on_date
    type: string
    in: query
  use_only_users_remove:
    name: use_only_users_remove
    type: string
    in: formData
    description: A comma separated list of users to remove use only permissions.
  use_only_groups:
    name: use_only_groups
    type: string
    in: formData
    description: A comma separated list of user groups that have use permissions.  
  use_only_groups_remove:
    name: use_only_groups_remove
    type: string
    in: formData
    description: A comma separated list of user groups to remove use permissions.
  uuid:
    name: uuid
    type: string
    in: query
    description: filter by uuid (exact match) (Added in v6.3.2)
  user_id:
    name: user_id
    type: string
    in: query
    description: filter by id of the user
  uom:
    name: uom
    in: formData
    type: string
    enum:
      - m
      - in
    description: unit of measurement (meters or inches)
  up:
    name: up
    in: formData
    description: = yes for up. = no for down.
    enum:
      - 'yes'
      - 'no'
    type: string
  up_admin:
    name: up_admin
    in: formData
    description: Whether port is administratively up or down. = yes for up. = no for down.
    type: string
    enum:
      - 'yes'
      - 'no'
  update_model_if_found:
    name: update_model_if_found
    in: formData
    enum:
      - 'yes'
      - 'no'
    type: string
  user:
    name: user
    in: formData
    description: enduser name
    type: string
  use_name_alias_port_descr:
    name: use_name_alias_port_descr
    in: formData
    enum:
      - 'yes'
      - 'no'
    description: yes to use alias for port description during discovery (added in v8.3.2)
    type: string
  use_service_account:
    name: use_service_account
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  use_domain_server:
    name: use_domain_server
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  use_fqdn:
    name: use_fqdn
    in: formData
    type: string
    enum:
      - 'yes'
      - 'no'
  username:
    name: username
    in: query
    description: Retrieve all the secrets with the specified username. ?username=
    type: string
  username_post:
    name: username
    in: formData
    type: string
  username_and_password:
    name: username_and_password
    type: string
    in: query
    description: Create a new password.
  url:
    name: url
    type: string
    in: formData
    description: Cloudstack IP address - required for CloudStack
  url_prefix:
    name: url_prefix
    type: string
    in: formData
    description: http or https
  url_suffix:
    name: url_suffix
    type: string
    in: formData
    description: append suffix to discovery url
  voltage:
    name: voltage
    type: string
    in: formData
    description: The rated voltage on this circuit
  vm_name_to_use:
    name: vm_name_to_use
    type: string
    in: formData
    description: “found from vm tools” or “as named on vserver”
  vm_not_found:
    name: vm_not_found
    type: string
    in: formData
    enum:
      - Remove Host Association
      - Change Service Level
      - Delete VM
      - Do Nothing
    description: Choose how to handle VM not found in discovery
  vm_add_disk:
    name: vm_add_disk
    type: string
    in: formData
    enum:
      - 'yes'
      - 'no'
  virtual_host_name:
    name: virtual_host_name
    type: string
    in: query
    description: filter by virtual host name
  virtual_subtype:
    name: virtual_subtype
    type: string
    in: query
    description: filter by virtual subtype (added in v8.3.2)
  virtualsubtype_id:
    name: virtualsubtype_id
    type: string
    in: formData
    enum:
      - '1'
      - '2'
      - '3'
      - '4'
      - '5'
      - '6'
      - '7'
      - '8'
      - '9'
      - '10'
      - '11'
      - '12'
      - '13'
      - '14'
      - '15'
      - '16'
      - '17'
      - '18'
      - '19'
      - '20'
      - '21'
      - '22'
      - '23'
      - '24'
      - '25'
      - '26'
      - '27'
      - '28'
      - '29'
      - '30'
      - '31'
      - '32'
      - '33'
    description: >-
      Virtual subtype id. Only for virtual devices.
      <br>1. Internal VM 2. Amazon EC2 Instance 3. Azure Cloud Service
      <br>4. Azure SQL Server 5. Azure Storage 6. Other
      <br>7. Outscale Instance 8. Linode Instance 9. DigitalOcean Instance
      <br>10. Azure Virtual Machine 11. VMWare 12. Citrix/Xen
      <br>13. KVM 14. Hyper-V 15. Docker Container
      <br>16. LXC Container 17. Rackspace VM 18. Softlayer VM
      <br>19. QEMU 20. Joyent Instance 21. VirtualBox
      <br>22. Oracle VM 23. OpenStack 24. Xen
      <br>25. LPAR 26. GCE 27. Amazon Service
      <br>28. Context 29. Alibaba Cloud Instance 30. Oracle Cloud Instance
      <br>31. Kubernetes Container 32. AIX VIOS 33. Nutanix AHV
  vertical_grid_numbering:
    name: vertical_grid_numbering
    type: string
    in: formData
    enum:
      - numeric
      - alphabetic
      - alphabetic_doubled
    description: numeric by default
  vertical_grid_start:
    name: vertical_grid_start
    type: string
    in: formData
  vrf_group_id:
    name: vrf_group_id
    in: query
    description: ID of the VRF group
    type: string
  vrf_group_id_post:
    name: vrf_group_id
    in: formData
    description: ID of the VRF group
    type: integer
  vrf_group_from:
    name: vrf_group_from
    in: formData
    description: Originating VRF Group Name
    type: string
  vrf_group_id_from:
    name: vrf_group_id_from
    in: formData
    description: Originating VRF Group ID
    type: string
  vrf_group_to:
    name: vrf_group_to
    in: formData
    description: Destination VRF Group Name
    type: string
  vrf_group_id_to:
    name: vrf_group_id_to
    in: formData
    description: Destination VRF Group ID
    type: string
  vrf_group:
    name: vrf_group
    in: query
    description: VRF group name
    type: string
  vrf_group_post:
    name: vrf_group
    in: formData
    description: VRF group name
    type: string
  vrfgroup:
    name: vrfgroup
    in: formData
    description: name of vrf group for discovered subnets (added in v10.4.0)
    type: string
  vendor:
    name: vendor
    in: query
    type: string
    description: The cloud vendor
  vendor_post:
    name: vendor
    in: formData
    type: string
    description: The cloud vendor
  vendor_name:
    name: name
    in: query
    description: The name of vendor to filter by.
    type: string
  vlan_id:
    name: vlan_id
    in: query
    description: ID of the vlan
    type: string
  vlan_id_post:
    name: vlan_id
    in: formData
    description: ID of the vlan
    type: string
  vlan:
    name: vlan
    type: string
    in: formData
    description: Primary Vlan. Use the value 'D42_NULL' to clear up the content of the primary vlan field.
  vlans:
    name: vlans
    type: string
    in: formData
    description: list of vlans separated by commas.
  vlan_ids:
    name: vlan_ids
    type: string
    in: formData
    description: list of vlan ids separated by commas.
  clear_vlans:
    name: clear_vlans
    type: string
    in: formData
    description: list of vlans to be removed separated by commas.
  clear_vlan_ids:
    name: clear_vlan_ids
    type: string
    in: formData
    description: list of vlan ids to be removed separated by commas.
  clear_switch_ids:
    name: clear_switch_ids
    type: string
    in: formData
    description: list of switch ids to be removed separated by commas.
  clear_switches:
    name: clear_switches
    type: string
    in: formData
    description: list of switches to be removed separated by commas.
  value:
    name: value
    in: formData
    type: string
    description: This will set the value of the custom field for the specific object.
  version:
    name: version
    type: string
    in: formData
    description: The version number of the software
  view_users:
    name: view_users
    type: string
    in: formData
    description: >-
      A comma separated list of users that have permission to view this
      secret.
  view_edit_users:
    name: view_edit_users
    type: string
    in: formData
    description: >-
      A comma separated list of users that have permission to view and edit this
      secret.
  view_groups:
    name: view_groups
    type: string
    in: formData
    description: >-
      A comma separated list of user groups that have permission to view this
      secret.
  view_users_remove:
    name: view_users_remove
    type: string
    in: formData
    description: A comma separated list of users to remove view permissions.
  view_edit_users_remove:
    name: view_edit_users_remove
    type: string
    in: formData
    description: A comma separated list of users to remove view and edit permissions.
  view_groups_remove:
    name: view_groups_remove
    type: string
    in: formData
    description: A comma separated list of user groups to remove use permissions.
  view_edit_groups:
    name: view_edit_groups
    type: string
    in: formData
    description: A comma separated list of user groups that have view and edit permissions.
  view_edit_groups_remove:
    name: view_edit_groups_remove
    type: string
    in: formData
    description: A comma separated list of user groups to remove view and edit permissions.
  vlans_to_ignore:
    name: vlans_to_ignore
    type: string
    in: formData
    description: list of vlan ids to ignore separated by commas (added in v10.4.0). Use the value 'D42_NULL' to clear up the content of the vlans_to_ignore field.
  weeks:
    name: weeks
    type: string
    in: query
    description: only for schedule based services where startmode = ‘Scheduled’
  wall:
    name: wall
    type: string
    in: query
    description: >-
      Can be one of ‘left’, ‘right’, ‘top’, ‘bottom’, ‘middle’. Choose ‘middle’
      if you do not want the object placed along one of the 4 walls.
  where:
    name: where
    type: string
    in: formData
    enum:
      - above
      - below
      - left
      - right
      - rack mounted
      - shelf
    description: >-
      Location in a rack. Note: If mounted a size must be provided or available
      from the hardware model.
  watts:
    name: watts
    type: string
    in: formData
    description: per power supply
  watts_get:
    name: watts
    type: string
    in: query
    description: filter by exact watts
  what:
    name: what
    type: string
    in: formData
    description: Description of business impact due to loss of component.
  width_ratio_get:
    name: width_ratio
    type: string
    in: query
    description: Get hardware by it's width ratio. 'Default=1. Can be 1/2, 1/3, 1/4, 1/5,1/6, 1/7, 1/8, 1/9, 1/10, 1/20'
  width_ratio_post:
    name: width_ratio
    type: string
    in: formData
    enum:
      - '1'
      - '1/2'
      - '1/3'
      - '1/4'
      - '1/5'
      - '1/6'
      - '1/7'
      - '1/8'
      - '1/9'
      - '1/10'
      - '1/20'
    description: >-
      Width ratio. Default: 1.<br> 
      If given value is other than allowed values, default value will be assigned.
  x_pos:
    name: x_pos
    type: integer
    minimum: 0
    maximum: 2520
    in: formData
    description: >-
      A number between 0 and 2520 representing the position within the u slot in
      increments of 252, which is equal to 1/10th of the width of the rack. 0
      will place a device flush left, 1260 will place the left side of a device
      in center.
  zonename:
    name: zonename
    in: formData
    type: string
    description: name of the zone
    required: true
  remove_password_ids:
    name: remove_password_ids
    type: string
    in: formData
    description: Comma separated list of D42 IDs of existing secret records to be removed from the job.
definitions:
  devices:
    type: array
    items:
      $ref: '#/definitions/device'
  device:
    type: object
    properties:
      name:
        example: '320'
      serial_no:
        example: 'null'
      asset_no:
        example: 'null'
      preferred_alias:
        example: 'null'
      device_url:
        example: /api/api/1.0/devices/id/34/
      device_id:
        example: '34'
      type:
        example: 'physical'
      uuid:
        example: 07FCE572-B2B3-B44C-BB1C-6799B509CC31
  AppGroupCalcTemplate:
    type: object
    properties:
      id:
        type: integer
        example: 1
        description: ID of an existing Application Group Calculation Templates. Do not enter an ID if you are creating a new template.
      name:
        type: string
        example: 'Custom Template Name'
        description: Name of the Application Group Calculation Templates.  Either name or id is required.
      calculation_format:
        type: string
        example: 'DOQL'
        enum:
          - 'Form'
          - 'DOQL'
        description: Whether the template is defined using DOQL or using predefined form fields. Required for new templates.
      doql_query:
        type: string
        example: "SELECT servicecommunication_pk FROM view_servicecommunication_v2 where date_part('day', now() :: timestamp - last_updated :: timestamp) <= 30"
        description: DOQL query to use for template. Required for new templates with DOQL calculation format.
      connection_limit:
        type: integer
        example: 10
        description: How many connections are allowed for a single node in application group before it stops traversing
      time_period:
        type: integer
        example: 30
        description: Number of days to look back for connections
      exclude_local_host:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Exclude any connections that are to the local host
      exclude_unmapped_clients:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Exclude any connections that are client only
      exclude_client_os:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Exclude devices with client operating systems
      end_at_vip:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Stop traversing at VIPs
      end_at_db:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Stop traversing at databases
      depth_level:
        type: integer
        example: 20
        description: How many levels deep to traverse
      exclude_udl:
        type: string
        example: 'yes'
        enum:
          - 'yes'
          - 'no'
        description: Exclude any connections that are to Undiscovered Listeners
      inclusions:
        description: JSON array of inclusion criteria
        type: array
        items:
          properties:
            criteria:
              type: string
              example: "type=\"virtual\""
              description: Advanced query filtering as specified in list page for selected ci type.
            ci_type:
              type: string
              enum:
                - 'device'
                - 'resource'
              description: Type of CI to include - currently supporting device and resources
      exclusions:
        description: JSON array of exclusion criteria
        type: array
        items:
          properties:
            criteria:
              type: string
              example: "category = \"Database\""
              description: Advanced query filtering as specified in list page for selected ci type.
            ci_type:
              type: string
              enum:
                - 'application_component'
                - 'device'
                - 'resource'
                - 'serviceportremoteip'
                - 'servicedetail'
              description: Type of CI to include - currently supporting application_component, device, resource, serviceportremoteip, and servicedetail
  AppGroupCalcTemplateGet:
    allOf:
      - $ref: '#/definitions/AppGroupCalcTemplate'
      - type: object
        properties:
          last_processed:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the template was last processed
          processing_status:
            type: string
            example: 'Completed'
            enum:
              - 'Processing'
              - 'Completed'
              - 'Warnings'
              - 'Failed'
            description: Status of the template processing
          processing_logs:
            type: string
            example: 'Error preparing data for Application Group Calculation Template.'
            description: Logs from the last processing of the template
          first_added:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the template was added to the database
          last_updated:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the template record in the database was saved, regardless if any properties were changed or not
  AppGroupCalcRuleBase:
    type: object
    properties:
      id:
        type: integer
        example: 1
        description: ID of an existing Application Group Calculation Rule. Do not enter an ID if you are creating a new rule.
      name:
        type: string
        example: 'Custom Rule Name'
        description: Name of the Application Group Calculation Rule. Either name or id is required.
      enabled:
        type: string
        example: 'yes'
        enum:
            - 'yes'
            - 'no'
        description: Whether the rule is enabled or disabled.
      outcome:
        type: string
        example: 'Auto-Create'
        enum:
          - 'Auto-Create'
          - 'Suggest'
        description: Whather the rule produces Application Groups or Application Group Suggestions when processing.
      starting_point_type:
        type: string
        example: 'Criteria'
        enum:
          - 'Criteria'
          - 'Fixed'
        description: Whether the Application Groups start with a fixed starting point or a criteria based starting point.
      starting_point_criteria:
        description: JSON array of starting point criteria
        type: array
        items:
          properties:
            criteria:
              type: string
              example: "type=\"virtual\""
              description: Advanced query filtering as specified in list page for selected ci type.
            ci_type:
              type: string
              enum:
                - 'application_component'
                - 'device'
                - 'resource'
                - 'servicedetail'
              example: 'device'
              description: Type of CI to include - currently supporting application_component, device, resource, and servicedetail
            required:
              type: string
              enum:
                - 'yes'
                - 'no'
              example: 'yes'
              description: Whether the starting point is required for the rule.
      group_by:
        type: array
        items:
          type: string
          example: 'Name'
        description: How to group starting points for Application Groups when processing the rule. Available options depend on the CIs in the starting point.
      group_by_tags_like:
        type: string
        example: 'App-%'
        description: Tag pattern to group by. Use '%'' as a wildcard. For example, to group on tags like 'App-1', 'App-2', use 'App-%'. Either group_by or group_by_tags_like is required for criteria based starting points.
      application_group_calc_template:
        type: string
        example: 'D42 Default Template'
        description: Name of the Application Group Calculation Template to use for processing the rule. The default template is 'D42 Default Template'.
      application_group_calc_template_id:
        type: integer
        example: 1
        description: ID of the Application Group Calculation Template to use for processing the rule.
      levels_of_depth:
        type: integer
        example: 20
        description: Default levels of depth to display on Application Groups. Leave blank to fully expand.
      store_connection_metadata:
        type: string
        example: 'yes'
        enum:
            - 'yes'
            - 'no'
        description: Whether to store and display connection metadata.
  AppGroupCalcRuleGet:
    allOf:
      - $ref: '#/definitions/AppGroupCalcRuleBase'
      - type: object
        properties:
          is_system:
            type: string
            example: 'no'
            enum:
                - 'yes'
                - 'no'
            description: Whether the rule is a system rule or a custom rule.
          starting_point_devices:
            description: JSON array of devices in the fixed starting point
            type: array
            items:
              properties:
                device_id:
                  type: integer
                  example: 1
                  description: ID of the device to use as a starting point
                name:
                  type: string
                  example: 'Device Name'
                  description: Name of the device to use as a starting point
          starting_point_resources:
            description: JSON array of resources in the fixed starting point
            type: array
            items:
              properties:
                resource_id:
                  type: integer
                  example: 1
                  description: ID of the resource to use as a starting point
                name:
                  type: string
                  example: 'Resource Name'
                  description: Name of the resource to use as a starting point
          starting_point_application_components:
            description: JSON array of application components in the fixed starting point
            type: array
            items:
              properties:
                application_component_id:
                  type: integer
                  example: 1
                  description: ID of the application component to use as a starting point
                name:
                  type: string
                  example: 'Application Component Name'
                  description: Name of the application component to use as a starting point
          starting_point_service_instances:
            description: JSON array of service instances in the fixed starting point
            type: array
            items:
              properties:
                service_detail_id:
                  type: integer
                  example: 1
                  description: ID of the service instance to use as a starting point
                service_display_name:
                  type: string
                  example: 'Service Display Name'
                  description: Display name of the service of service instance to use as a starting point
          last_processed:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the rule was last processed
          processing_status:
            type: string
            example: 'Completed'
            enum:
              - 'Processing'
              - 'Completed'
              - 'Warnings'
              - 'Failed'
            description: Status of the rule processing
          processing_logs:
            type: string
            example: 'Cannot process disabled Calculation Rules'
            description: Logs from the last processing of the rule
          first_added:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the rule was added to the database
          last_updated:
            type: string
            example: '2024-09-09T10:42:47.241286Z'
            description: Date and time the rule record in the database was saved, regardless if any properties were changed or not
  AppGroupCalcRulePost:
    allOf:
      - $ref: '#/definitions/AppGroupCalcRuleBase'
      - type: object
        properties:
          remove_starting_point_device_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of device IDs to remove from the fixed starting point
          remove_starting_point_resource_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of resource IDs to remove from the fixed starting point
          remove_starting_point_application_component_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of application component IDs to remove from the fixed starting point
          remove_starting_point_service_instance_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of service instance IDs to remove from the fixed starting point
          starting_point_device_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of device IDs to set as the fixed starting point
          starting_point_resource_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of resource IDs to set as the fixed starting point
          starting_point_application_component_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of application component IDs to set as the fixed starting point
          starting_point_service_instance_ids:
            type: string
            example: '1,2,3'
            description: Comma separated list of service instance IDs to set as the fixed starting point
  devicesAll:
    type: object
    properties:
      total_count:
        example: '709'
      limit:
        example: '1'
      devices:
        type: array
        items:
          type: object
          properties:
            last_updated:
              example: '2019-01-06T07:00:08.330Z'
            orientation:
              example: '1'
            ip_addresses:
              example: []
            serial_no:
              example: 'FOC1252W6EW'
            hw_depth:
              example: '1'
            device_id:
              example: '64'
            service_level:
              example: 'disposed'
            is_it_blade_host:
              example: 'no'
            hw_size:
              example: '1'
            id:
              example: '64'
            custom_fields:
              example: []
            aliases:
              example: []
            category:
              example: ''
            hdd_details:
              example: 'null'
            uuid:
              example: ''
            cpuspeed:
              example: 'null'
            hw_model:
              example: 'WS-C3750G-48TS-S'
            row:
              example: '10'
            rack_id:
              example: '9'
            hddcount:
              example: 'null'
            building:
              example: 'Building 3'
            xpos:
              example: '0'
            device_external_links:
              example: []
            start_at:
              example: '4'
            tags:
              example: []
            hw_model_id:
              example: '24'
            in_service:
              example: 'false'
            hddsize:
              example: 'null'
            mac_addresses:
              example: []
            hddraid:
              example: 'null'
            nonauthoritativealiases:
              example: []
            cpucount:
              example: 'null'
            os:
              example: 'ios'
            virtual_host_name:
              example: 'null'
            is_it_virtual_host:
              example: 'no'
            is_it_switch:
              example: 'yes'
            customer:
              example: 'yes'
            hddraid_type:
              example: 'null'
            ucs_manager:
              example: 'null'
            name:
              example: 'wh-lab-sw-01 - Switch 1'
            room:
              example: 'Old devices'
            type:
              example: 'physical'
            notes:
              example: ''
            ram:
              example: 'null'
            asset_no:
              example: ''
            manufacturer:
              example: 'cisco'
            osver:
              example: '12.2(40)SE'
            device_purchase_line_items:
              example: []
            cpucore:
              example: 'null'
            where:
              example: '5'
            rack:
              example: 'old_rack'
            agent_version:
              example: '18.00.00.1649418756'
            agent_last_checkin_date:
              example: 'April 22, 2022, 5:51 p.m.'
      offset:
        example: '0'
  groupItemDevice:
    type: object
    properties:
      cdeviceid_6:
        type: object
        properties:
          name:
            example: 'Device_Name'
          type_id:
            example: 2
          serial_no:
            example: 'FOC1252W6EW'
          asset_no:
            example: '123456'
          device_url:
            example: '/api/2.0/devices/64/'
          device_id:
            example: '64'
          type:
            example: 'physical'
          uuid:
            example: ''   
  groupItemResource:
    type: object
    properties:
      cresourceid_9:
        type: object
        properties:
          category:
            example: Device
          zones:
            example: usa-east-2a
          identifier:
            example: i-0d90158f3cf3e7e19
          tags:
            example: ""
          name:
            example: d42-internal
          notes:
            example: oracle cloud
          last_changed:
            example: 2020-06-19T16:13:18.225Z
          subtype:
            example: []
          cloud_infra_id:
            example: 2
          region:
            example: usa-east-2
          root_resource_id:
            example: 2
          root_resource:
            example: wbd42pstgr1
          last_edited:
            example: 2020-06-19T16:13:18.229Z
          first_added:
            example: 2020-06-19T16:13:18.229Z
          id:
            example: 3
          resource_storage:
            example: []
  groupItemappcomponents:
    type: object
    properties:
      cppcomponents_1:
        type: object
        properties:
          traverse_subdirectories:
            example: yes
          config_file_location:
            example: /opt/atlassian/jira/conf/
          id:
            example: 13
          application_category_id:
            example: 2
          what:
            example: Services
          rule_type_id:
            example: 1
          rule_type:
            example: Windows
          application_category_name:
            example: Application Layer
          related_services_ids:
            example: 55,
          service_listening_port:
            example: 8080
          app_name_pattern:
            example: "%(device_name)s - %(app_template_name)s"
          customer:
            example: ABC LLC
          name:
            example: App-Comp-Template-T2
          enabled:
            example: yes
          service_cmd_arg_match:
            example: service
          match_type:
            example: Text
          match_type_id:
            example: 0  
  groupItemServices:
    type: object
    properties:
      cservices_1:
        type: object
        properties:
          name:
            example: 'Device_Name'
          type_id:
            example: 2
          serial_no:
            example: 'FOC1252W6EW'
          asset_no:
            example: '123456'
          device_url:
            example: '/api/2.0/devices/64/'
          device_id:
            example: '64'
          type:
            example: 'physical'
          uuid:
            example: ''
                       
  devicesAllv2:
    type: object
    properties:
      total_count:
        example: '709'
      limit:
        example: '1'
      devices:
        type: array
        items:
          type: object
          properties:
            name:
              example: 'Device_Name'
            type_id:
              example: 2
            serial_no:
              example: 'FOC1252W6EW'
            asset_no:
              example: '123456'
            device_url:
              example: '/api/2.0/devices/64/'
            device_id:
              example: '64'
            type:
              example: 'physical'
            uuid:
              example: ''
      offset:
        example: '0'      
  deviceAllAliase:
    type: array
    items:
      example: [NHCTWS001.fqdn, NHCTWS]
  deviceAllCustomField:
    type: array
    items:
      $ref: '#/definitions/deviceAllCustomFieldData'
  deviceAllCustomFieldData:
    type: object
    properties:
      key:
        example: Skynet
      notes:
        example: ''
      value:
        example: T1000
  deviceAllExternalLink:
    type: array
    items:
      $ref: '#/definitions/deviceAllExternalLinkData'
  deviceAllExternalLinkData:
    type: object
    properties:
      link:
        example: 'http://{{device.name}}'
      notes:
        example: Dev Test web server
  deviceAllpurchaseLine:
    type: array
    items:
      $ref: '#/definitions/deviceAllpurchaseLineData'
  deviceAllpurchaseLineData:
    type: object
    properties:
      line_cancel_policy:
        example: ''
      line_contract_type:
        example: Warranty
      line_cost:
        example: '400.0'
      line_cost_center:
        example: '5001245'
      line_end_date:
        example: '2017-01-09'
      line_frequency:
        example: One Time
      line_item_type:
        example: Device
      line_no:
        example: '1'
      line_notes:
        example: ''
      line_quantity:
        example: '1'
      line_renew_date:
        example: '2017-01-09'
      line_start_date:
        example: '2017-01-09'
      line_type:
        example: Contract
      purchase_id:
        example: '9'
      purchase_order_no:
        example: 010914Warr
  deviceAllHdd:
    type: array
    items:
      $ref: '#/definitions/deviceAllHddData'
  deviceAllHddData:
    type: object
    properties:
      description:
        example: ''
      hdd:
        type: object
        properties:
          bytes:
            example: GB
          description:
            example: SATA 6 Gb/s 64MB Cache
          hd_id:
            example: '6'
          location:
            example: 'IT Lab 2nd Floor New Haven, CT'
          manufacturer_id:
            example: '6'
          notes:
            example: ''
          partno:
            example: ''
          rpm:
            type: object
            properties:
              id:
                example: '2'
              name:
                example: 10k
          size:
            example: '500.0'
          type:
            type: object
            properties:
              id:
                example: '1'
              name:
                example: SATA
      hddcount:
        example: '1'
      raid_group:
        example: ''
      raid_type:
        example: Raid 1
  deviceAllIp_addresses:
    type: object
    properties:
      ip:
        example: 10.1.10.11
      label:
        example: ''
      macaddress:
        example: '00:14:bf:aa:46:18'
      subnet:
        example: Infra-10.1.10.0/24(Infrastructure Services)
      subnet_id:
        example: '4'
      type:
        example: '1'
  deviceAllMac_addresses:
    type: object
    properties:
      mac:
        example: '00:11:22:33:44:55'
      port:
        example: FastEthernet0/4 @ nh-lab-switch-01
      port_name:
        example: ''
      vlan:
        example: 'null'
  devicesCustomerId:
    type: object
    properties:
      Devices:
        $ref: '#/definitions/deviceCustomerIdDevice'
  deviceCustomerIdDevice:
    type: array
    items:
      $ref: '#/definitions/deviceCustomerIdDeviceData'
  deviceCustomerIdDeviceData:
    type: object
    properties:
      aliases:
        type: array
        items:
          example: device.domain
      asset_no:
        example: 'null'
      category:
        example: Development Machine
      cpucore:
        example: '2'
      cpucount:
        example: '1'
      cpuspeed:
        example: '3300.0'
      custom_fields:
        example: []
      customer:
        example: Finance Group
      customer_id:
        example: '3'
      device_external_links:
        example: []
      device_purchase_line_items:
        example: []
      hdd_details:
        example: ''
      hddcount:
        example: ''
      hddraid:
        example: ''
      hddraid_type:
        example: ''
      hddsize:
        example: ''
      hw_depth:
        example: 1
      hw_model:
        example: ProLiant DL360 G7
      hw_size:
        example: '1.0'
      in_service:
        example: false
      ip_addresses:
        type: array
        items:
          $ref: '#/definitions/deviceAllIp_addresses'
      last_updated:
        example: '2014-01-07T02:23:36.350Z'
      mac_addresses:
        type: array
        items:
          $ref: '#/definitions/deviceCustomerIdMac_addresses'
      manufacturer:
        example: ''
      name:
        example: d42-231
      notes:
        example: ''
      os:
        example: ''
      ram:
        example: '512.000'
      serial_no:
        example: ''
      service_level:
        example: QA
      type:
        example: virtual
      ucs_manager:
        example: ''
      uuid:
        example: 6BB7DC86-D744-8943-B991-B6BF82B55F99
      virtual_host_name:
        example: HYPER01
      agent_version:
        example: '18.00.00.1649418756'
      agent_last_checkin_date:
        example: 'April 22, 2022, 5:51 p.m.'
  deviceCustomerIdMac_addresses:
    type: object
    properties:
      mac:
        example: '00:15:5d:0b:72:0b'
  devicesImpactList:
    type: array
    items:
      $ref: '#/definitions/devicesImpactListData'
  devicesImpactListData:
    type: object
    properties:
      children:
        type: array
        items:
          type: object
          properties:
            children:
              type: array
              items:
                type: object
                properties:
                  children:
                    type: array
                    items:
                      type: object
                      properties:
                        children:
                          type: array
                          items:
                            type: object
                            properties:
                              duplicate:
                                example: 'yes'
                              name:
                                example: site2.com - webserver.dev
                        name:
                          example: Dependant Apps
                  duplicate:
                    example: 'yes'
                  name:
                    example: Apache HTTP Server - Production Site
            name:
              example: Dependant Apps
      duplicate:
        example: 'yes'
      name:
        example: Apache Tomcat server
  deviceName:
    example:
      - device added or updated
      - 46
      - db-080-westport
      - true
      - true
  objectArchive:
    example:
      - Object archived
      - 46
      - db-080-westport
      - true
      - true
  IPAMsubnets:
    type: object
    properties:
      allocated:
        example: 'no'
      allow_broadcast_address:
        example: 'no'
      allow_network_address:
        example: 'no'
      assigned:
        example: 'no'
      can_edit:
        example: 'yes'
      category_id:
        example: ''
      category_name:
        example: ''
      custom_fields:
        example: []
      customer_id:
        example: 9
      description:
        example: Infrastructure Devices
      gateway:
        example: ''
      mask_bits:
        example: 24
      name:
        example: Infra
      network:
        example: 10.1.10.0
      notes:
        example: ''
      parent_subnet_id:
        example: ''
      parent_vlan_id:
        example: ''
      parent_vlan_name:
        example: ''
      parent_vlan_number:
        example: ''
      range_begin:
        example: 10.1.10.5
      range_end:
        example: 10.1.10.254
      service_level:
        example: Production
      subnet_id:
        example: 4
      tags:
        example: []
      vrf_group_id:
        example: 1
      vrf_group_name:
        example: Infrastructure Services
  IPAMvlans:
    type: object
    properties:
      description:
        example: ''
      name:
        example: CRMConsultant
      notes:
        example: ''
      number:
        example: 20
      switches:
        type: array
        items:
          type: object
          properties:
            asset_no:
              example: ''
            device_id:
              example: 1
            device_url:
              example: /api/api/1.0/devices/id/1/
            name:
              example: nh-lab-switch-01
            serial_no:
              example: FAB0447Y35M
            uuid:
              example: ''
      tags:
        example: []
      vlan_id:
        example: 13
  IPAMips_1:
    type: object
    properties:
      available:
        example: 'no'
      custom_fields:
        type: array
        items:
          type: object
          properties:
            key:
              example: test
            notes:
              example: ''
            value:
              example: ''
      device:
        example: USNHCTVH001
      device_id:
        example: 116
      id:
        example: 38
      ip:
        example: 10.1.10.5
      label:
        example: ''
      last_updated:
        example: '2015-11-12T17:31:57.985Z'
      mac_address:
        example: ''
      mac_id:
        example: ''
      notes:
        example: ''
      subnet:
        example: Infra-10.1.10.0/24(Infrastructure Services)
      subnet_id:
        example: 4
      type:
        example: Reserved
  IPAMips_2_device:
    type: object
    properties:
      available:
        example: 'no'
      custom_fields:
        type: array
        items:
          type: object
          properties:
            key:
              example: test
            notes:
              example: ''
            value:
              example: ''
      id:
        example: 38
      ip:
        example: 10.1.10.5
      label:
        example: ''
      last_updated:
        example: '2015-11-12T17:31:57.985Z'
      mac_address:
        example: ''
      mac_id:
        example: ''
      notes:
        example: ''
      subnet:
        example: Infra-10.1.10.0/24(Infrastructure Services)
      subnet_id:
        example: 5
      type:
        example: Reserved
      is_shared:
        example: false
      devices:
        type: array
        items:
          type: object
          properties:
            device_id:
              example: 4924
            name:
              example: '17R0TW1'
            locked:
              example: false
  IPAMips_2_resource:
    type: object 
    properties:
      available:
        example: 'no'
      custom_fields:
        type: array
        items:
          type: object
          properties:
            key:
              example: test
            notes:
              example: ''
            value:
              example: ''
      id:
        example: 41
      ip:
        example: 10.1.20.6
      label:
        example: ''
      last_updated:
        example: '2017-06-12T17:31:57.985Z'
      mac_address:
        example: ''
      mac_id:
        example: ''
      notes:
        example: ''
      subnet:
        example: Infra-10.1.20.0/24(Infrastructure Services)
      subnet_id:
        example: 7
      type:
        example: Reserved
      is_shared:
        example: false
      resource:
        type: object
        properties:
          id:
            example: 42
          name:
            example: 'DEFAULT'
          identifier:
            example: 'boot/DEFAULT'
      devices:
        example: []
  IPAMmacs:
    type: object
    properties:
      device:
        type: object
        properties:
          asset_no:
            example: ''
          device_id:
            example: 11
          device_url:
            example: /api/api/1.0/devices/id/11/
          name:
            example: DeviceTOM4
          serial_no:
            example: ''
          type:
            example: physical
          uuid:
            example: ''
      macaddress:
        example: '00:0a:cd:1f:c9:2f'
      macaddress_id:
        example: 24
      port_name:
        example: vmnic0
  IPAMmacs_port:
    type: object
    properties:
      description:
        example: FastEthernet0/21
      devices:
        example: nh-hyperv-02
      is_connected:
        example: 'yes'
      mac_ids:
        example: 61; 60
      macs:
        example: '00:15:5d:0b:9e:02; 00:1c:c4:44:d1:32'
      normalized_port:
        example: FastEthernet0000/0021
      obj_label:
        example: Hyper-V Virtual Ethernet Adapte
      port:
        example: FastEthernet0/21
      switch:
        type: object
        properties:
          asset_no:
            example: ''
          device_id:
            example: 1
          device_url:
            example: /api/api/1.0/devices/id/1/
          name:
            example: nh-lab-switch-01
          serial_no:
            example: FAB0447Y35M
          type:
            example: physical
          uuid:
            example: ''
      switchport_id:
        example: 10
      tags:
        example: []
      type:
        example: ''
      vlan_ids:
        example: '14'
      vlans:
        example: default
  IPAMtap_ports:
    type: object
    properties:
      port_to_from_id:
        example: 9
      id:
        example: 7
      mac:
        example: 'mac'
      port_type:
        example: Fiber FC
      tap:
        example: tap device
      port_type_id:
        example: 5
      monitor_direction:
        example: to
      label:
        example: tap1
      tap_id:
        example: 9129
      module_id:
        example: 667
      monitor_port_1_id:
        example: 9
      port_capability:
        example: Device
      monitor_port_2_id:
        example: 11
      module:
        example: tap
      mirror_port_id:
        example: 4
      netport_id:
        example: 8
  IPMdns_records:
    type: object
    properties:
      name:
        example: '@'
      prio:
        example: ''
      dns_zone:
        example: device42.pvt
      content:
        example: nh-win2k8r2-vm-03 hostmaster 107489 900 600 86400 3600
      ttl:
        example: 3600
      change_date:
        example: ''
      nameserver:
        example: 192.168.11.161
      type:
        example: SOA
      id:
        example: 1
  buildings:
    type: array
    items:
      type: object
      properties:
        address:
          example: 879 main st
        building_id:
          example: 3
        contact_name:
          example: roger
        custom_fields:
          example: []
        groups:
          example: 'Prod_East:no, Corp:yes'
        name:
          example: Las Vegas Office
        notes:
          example: super critical
        tags:
          example: []
        longitude:
          example: '60'
        latitude:
          example: '30'
        contact_phone:
          example: ''
  building:
    type: object
    properties:
      address:
        example: 879 main st
      building_id:
        example: 3
      contact_name:
        example: roger
      custom_fields:
        example: []
      groups:
        example: 'Prod_East:no, Corp:yes'
      name:
        example: Las Vegas Office
      notes:
        example: super critical
      tags:
        example: []
      longitude:
        example: '60'
      latitude:
        example: '30'
      contact_phone:
        example: ''
  savedDOQLQueries:
    type: array
    items:
      type: object
      properties:
        name:
          example: Power_outlet
        tags:
          type: array
          items:
            example: power
        include_headers:
          example: true
        notes:
          example: query
        saved_query:
          example: select * from view_rudata_v2
        output_type:
          example: csv
        id:
          example: 182
  rooms:
    type: array
    items:
      type: object
      properties:
        building:
          example: New Haven DC
        building_id:
          example: 1
        custom_fields:
          example: []
        groups:
          example: 'Prod_East:no, Corp:yes'
        name:
          example: 1st floor
        notes:
          example: super critical
        room_id:
          example: 1
        tags:
          example: ["data_centre", "storage"]
        horizontal_grid_numbering:
          example: 0
        horizontal_grid_start:
          example: '1'
        vertical_grid_numbering:
            example: 1
        vertical_grid_start:
          example: 'A'
  RoomsRacks:
    type: object
    properties:
      rack:
        type: object
        properties:
          orientation:
            example: left
          numbering_start_from_bottom:
            example: 'yes'
          custom_fields:
            example: []
          size:
            example: 42
          available_u:
            example: 35
          row:
            example: 1
          rack_id:
            example: 20
          rack_middle_option:
            example: Start at
          number_between_us:
            example: true
          tags:
            example: []
          col_size:
            example: 1
          start_col:
            example: 3
          row_size:
            example: 1
          first_number:
            example: 0
          manufacturer:
            example: APC Inc.
          building:
            example: New Haven
          start_row:
            example: 6
          name:
            example: NH-DC1-01
          room:
            example: NHDC1
          notes:
            example: ''
          asset_no:
            example: ''
          rack_url:
            example: /api/api/1.0/racks/20/
  racks:
    type: object
    properties:
      asset_no:
        example: ''
      available_u:
        example: 45
      building:
        example: Building
      col_size:
        example: 1
      custom_fields:
        example: []
      first_number:
        example: 1
      groups:
        example: ''
      manufacturer:
        example: APC Inc.
      name:
        example: RA1
      notes:
        example: ''
      number_between_us:
        example: true
      numbering_start_from_bottom:
        example: 'yes'
      rack_id:
        example: 255
      rack_middle_option:
        example: End at
      rack_url:
        example: /api/api/1.0/racks/255/
      room:
        example: Main room
      row:
        example: ''
      row_size:
        example: 1
      size:
        example: '45'
      start_col:
        example: 4
      start_row:
        example: 2
      tags:
        example: []
  RackDevices:
    type: object
    properties:
      depth:
        example: Full Depth
      device:
        type: object
        properties:
          asset_no:
            example: ''
          device_id:
            example: 215
          device_url:
            example: /api/api/1.0/devices/id/215/
          is_it_blade_host:
            example: 'no'
          is_it_switch:
            example: 'no'
          is_it_virtual_host:
            example: 'no'
          name:
            example: USNHCS-DCM06
          serial_no:
            example: ''
          type:
            example: physical
          uuid:
            example: ''
      file_names:
        example:
          - /var/www/graphics/images/HP--ProLiant-DL380p-Gen8.png
          - /var/www/graphics/images/HP--ProLiant-DL380p-Gen8-B.png
      orientation:
        example: Front
      reversed:
        example: 'no'
      size:
        example: 2
      start_at:
        example: 1
      where:
        example: Rack Mounted
      width:
        example: 2520
      xpos:
        example: 0
  Assets:
    type: object
    properties:
      asset_contracts:
        example: []
      asset_id:
        example: 16
      asset_no:
        example: '0075'
      asset_purchases:
        example: []
      building:
        example: New Haven
      custom_fields:
        example: ''
      depth:
        example: Half Depth
      imagefile_id:
        example: 2
      name:
        example: DC1R5PP1
      notes:
        example: ''
      orientation:
        example: Front
      patch_panel_model_id:
        example: 5
      rack:
        example: NH-DC1-05
      rack_id:
        example: 24
      room:
        example: NHDC1
      row:
        example: 2
      serial_no:
        example: ''
      service_level:
        example: In Service
      size:
        example: 2
      start_at:
        example: 40
      type:
        example: Patch Panel
      vendor:
        example: Black Box Corp.
      vendor_id:
        example: 36
      where:
        example: Rack Mounted
  object_categories:
    type: object
    properties:
      id:
        example: 1
      description:
        example: >-
          Devices that the Network Administration team should have full access
          to
      name:
        example: Network Admin Team
  HardwareModels:
    type: object
    properties:
      hardware_id:
        example: 1
      watts:
        example: 1000
      physicalsubtype_id:
        example: 9
      vendor_id:
        example: 269
      last_changed:
        example: "2020-11-18T19:26:56.333326Z"
      network_device:
        example: false
      name:
        example: "PowerLogic"
      part_number:
        example: 12
      physicalsubtype:
        example: "Branch Circuit Power Meter"
      add_ports_when_creating_device:
        example: false
      specification_url:
        example: ""
      end_of_life_date:
        example: "2019-11-04"
      end_of_support_date:
        example: "2019-03-13"
      notes:
        example: "hardware notes"
      blade_host:
        example: false
  OperatingSystems:
    type: object
    properties:
      aliases:
        example: []
      category:
        example: ''
      id:
        example: 1
      licensed_count:
        example: 5
      manufacturer:
        example: ''
      name:
        example: Microsoft Windows 7 Professional
      not_licensed_count:
        example: 0
      notes:
        example: ''
      total_count:
        example: 5
      discovered_license_count:
        example: 5
      enriched_data:
        type: object
        properties:
          service_pack:
            example: ''
          vendor:
            example: 'Juniper'
          os_version:
            example: '12.3'
          golden_record_id:
            example: 'gros_00000571'
          os_version_no:
            example: ''
          eol:
            example: '2023-11-23 00:00:00'
          eos:
            example: '2027-03-01 00:00:00'
          edition:
            example: ''
          os_architecture:
            example: ''
          os_family:
            example: '*nix'
          enriched_os:
            example: 'Juniper Junos OS'
          id:
            example: 3,
          os_name:
            example: 'Junos OS'
  Device_os:
    type: object
    properties:
      discovered_license_key:
        example: ''
      os_id:
        example: 2
      osver:
        example: '12.3R12-S1'
      dont_change_via_api:
        example: 'no'
      device:
        example: 'sb-n15-10'
      device_os_id:
        example: 2
      license_key:
        example: ''
      osverno:
        example: ''
      os:
        example: junos
      id:
        example: 2
      count_in_licensing:
        example: 'yes'
      device_id:
        example: 120
      enriched_data:
        type: object
        properties:
          service_pack:
            example: ''
          vendor:
            example: 'Juniper'
          os_version:
            example: '12.3'
          golden_record_id:
            example: 'gros_00000571'
          os_version_no:
            example: ''
          eol:
            exmaple: '2023-11-23 00:00:00'
          eos:
            example: '2027-03-01 00:00:00'
          edition:
            example: ''
          os_architecture:
            example: ''
          os_family:
            example: '*nix'
          enriched_os:
            example: 'Juniper Junos OS'
          id:
            example: 3,
          os_name:
            example: 'Junos OS'
  get_power_unit_return:
    type: object
    properties:
      total_count:
        example: 24
      offset:
        example: 0
      pdus:
        type: array
        items:
          type: object
          properties:
            building:
              example: West Haven Office
            pdu_id:
              example: 1
            name:
              example: "Sentry / ADTK0000001 / 10.42.10.9"
            pdu_model:
              type: object
              properties:
                pdu_model_id:
                  example: 1
                sequential_numbering_for_ports:
                  example: true
                name:
                  example: "CWG-8H1A114"
                width:
                  example: "null"
                notes:
                  example: ""
                height:
                  example: "null"
                size:
                  example: 2.0
                description:
                  example: ""
                width_ratio:
                  example: 2520
                ports in pdu model:
                  example: []
                back_image:
                  example: "null"
                type:
                  example: pdu
                front_image:
                  example: "null"
                depth:
                  example: Half Depth
                port_court:
                  example: 0
                manufacturer:
                  example: serverTech
            notes:
              example: ""
            room:
              example: room3
            rack:
              example: Rack 1 Manual
            rack_id:
              example: 4
            pdu_serial_no:
              example: 9C96300196
            category:
              example: West Haven
            device_mapping:
              type: object
              properties:
                hddcount:
                  example: "null"
                hdd_details:
                  example: "null"
                name:
                  example: "prod-vert-pdu-01 / ZA0737007687 / 10.42.10.8"
                customer_id:
                  example: 1
                hw_model_id:
                  example: 18
                ucs_manager:
                  example: "null"
                cpucount:
                  example: "null"
                serial_no:
                  example: ADTK0000003
                hw_depth:
                  example: "null"
                mac_addresses:
                  type: array
                  items:
                    port:
                      example: "GigabitEthernet1/0/32 - 00:24:98:48:9a:a4 @ wh-lab-sw-02"
                    vlan:
                      example: "null"
                    mac:
                      example: "00:0a:4c:51:97:88"
                    port_name:
                      example: eth0
                nonauthoritativealiases:
                  example: []
                cpucore:
                  example: "null"
                device_id:
                  example: 3863
                custom_fields:
                  type: array
                  items:
                    type: object
                    properties:
                      value:
                        example: "null"
                      notes:
                        example: "null"
                      key:
                        example: "alpha.eksctl.io/nodegroup-name"
                is_it_virtual_host:
                  example: no
                cpuspeed:
                  example: "null"
                virtual_host_name:
                  example: "null"
                aliases:
                  example: []
                ip_addresses:
                  type: array
                  items:
                    type: object
                    properties:
                      ip:
                        example: "172.25.160.187"
                      macaddress:
                        example: "00:0w:5d:29:di:45"
                      subnet:
                        example: "10.41.0.0/19"
                      type:
                        example: "null"
                      subnet_id:
                        example: 2
                      label:
                        example: br0
                hw_model:
                  example: "PX3-5497JV-N2A2"
                preferred_alias:
                  example: "null"
                device_purchase_line_items:
                  example: []
                is_it_blade_host:
                  example: no
                hddraid:
                  example: "null"
                pdu_mapping_url:
                  example: "/api/1.0/power_units/14/"
                device_sub_type:
                  example: PDU
                tags:
                  example:
                    - 'live-lab-snmp'
                    - 'live-lab-power'
                id:
                  example: 346
                asset_no:
                  example: ""
                notes:
                  example: ""
                in_service:
                  example: true
                customer:
                  example: Device42
                last_updated: 
                  example: "2022-05-23T16:24:56.220410Z"
                hddsize:
                  example: "null"
                category:
                  example: west Haven
                type:
                  example: other
                osver:
                  example: "00.00.0010"
                ram:
                  example: "null"
                os:
                  example: Eaton Firmware
                is_it_switch:
                  example: no
                service_level:
                  example: Production
                uuid:
                  example: "null"
                manufacturer:
                  example: serverTech
                device_external_links:
                  example: []
                hddraid_type:
                  example: "null"
            type:
              example: pdu
            custom_fields:
              example: []
            gateway_pdu_id:
              example: 3
            building_id:
              example: 1
            room_id:
              example: 1
  get_power_unit_return_single:
    type: object
    properties:
      building:
        example: West Haven Office
      pdu_id:
        example: 1
      name:
        example: "Sentry / ADTK0000001 / 10.42.10.9"
      pdu_model:
        type: object
        properties:
          pdu_model_id:
            example: 1
          sequential_numbering_for_ports:
            example: true
          name:
            example: "CWG-8H1A114"
          width:
            example: "null"
          notes:
            example: ""
          height:
            example: "null"
          size:
            example: 2.0
          description:
            example: ""
          width_ratio:
            example: 2520
          ports in pdu model:
            example: []
          back_image:
            example: "null"
          type:
            example: pdu
          front_image:
            example: "null"
          depth:
            example: Half Depth
          port_court:
            example: 0
          manufacturer:
            example: serverTech
      notes:
        example: ""
      room:
        example: room3
      rack:
        example: Rack 1 Manual
      rack_id:
        example: 4
      pdu_serial_no:
        example: 9C96300196
      category:
        example: West Haven
      device_mapping:
        type: object
        properties:
          hddcount:
            example: "null"
          hdd_details:
            example: "null"
          name:
            example: "prod-vert-pdu-01 / ZA0737007687 / 10.42.10.8"
          customer_id:
            example: 1
          hw_model_id:
            example: 18
          ucs_manager:
            example: "null"
          cpucount:
            example: "null"
          serial_no:
            example: ADTK0000003
          hw_depth:
            example: "null"
          mac_addresses:
            type: array
            items:
              port:
                example: "GigabitEthernet1/0/32 - 00:24:98:48:9a:a4 @ wh-lab-sw-02"
              vlan:
                example: "null"
              mac:
                example: "00:0a:4c:51:97:88"
              port_name:
                example: eth0
          nonauthoritativealiases:
            example: []
          cpucore:
            example: "null"
          device_id:
            example: 3863
          custom_fields:
            type: array
            items:
              type: object
              properties:
                value:
                  example: "null"
                notes:
                  example: "null"
                key:
                  example: "alpha.eksctl.io/nodegroup-name"
          is_it_virtual_host:
            example: no
          cpuspeed:
            example: "null"
          virtual_host_name:
            example: "null"
          aliases:
            example: []
          ip_addresses:
            type: array
            items:
              type: object
              properties:
                ip:
                  example: "172.25.160.187"
                macaddress:
                  example: "00:0w:5d:29:di:45"
                subnet:
                  example: "10.41.0.0/19"
                type:
                  example: "null"
                subnet_id:
                  example: 2
                label:
                  example: br0
          hw_model:
            example: "PX3-5497JV-N2A2"
          preferred_alias:
            example: "null"
          device_purchase_line_items:
            example: []
          is_it_blade_host:
            example: no
          hddraid:
            example: "null"
          pdu_mapping_url:
            example: "/api/1.0/power_units/14/"
          device_sub_type:
            example: PDU
          tags:
            example:
              - 'live-lab-snmp'
              - 'live-lab-power'
          id:
            example: 346
          asset_no:
            example: ""
          notes:
            example: ""
          in_service:
            example: true
          customer:
            example: Device42
          last_updated: 
            example: "2022-05-23T16:24:56.220410Z"
          hddsize:
            example: "null"
          category:
            example: west Haven
          type:
            example: other
          osver:
            example: "00.00.0010"
          ram:
            example: "null"
          os:
            example: Eaton Firmware
          is_it_switch:
            example: no
          service_level:
            example: Production
          uuid:
            example: "null"
          manufacturer:
            example: serverTech
          device_external_links:
            example: []
          hddraid_type:
            example: "null"
      type:
        example: pdu
      custom_fields:
        example: []
      gateway_pdu_id:
        example: 3
      building_id:
        example: 1
      room_id:
        example: 1
  post_power_unit_return:
    type: object
    properties:
      msg:
        example:
          - Power unit successfully added
          - 22
          - Primary Power Unit
          - true
          - true
      code:
        example: 0
  put_power_unit_return:
    type: object
    properties:
      msg:
        example:
          - Power unit successfully added
          - 22
          - Primary Power Unit
          - true
          - false
      code:
        example: 0
  general_delete_return:
    type: object
    properties:
      deleted:
        example: 'true'
      id:
        example: 9
  Pdu_models:
    type: object
    properties:
      back_image:
        type: object
        properties:
          id:
            example: 22
          imgfile:
            example: /var/www/graphics/images/apc-rack-pdu-front.png
      depth:
        example: Half Depth
      description:
        example: ''
      front_image:
        type: object
        properties:
          id:
            example: 66
          imgfile:
            example: /var/www/graphics/images/d42-apc-rack-pdu-front.png
      manufacturer:
        example: Server Technology
      name:
        example: CXG-8H1A113
      notes:
        example: ''
      pdu_model_id:
        example: 7
      port_count:
        example: 8
      ports in pdu model:
        type: array
        items:
          properties:
            pdu_port_count:
              example: 12
            pdu_port_type:
              example: custom
      sequential_numbering_for_ports:
        example: false
      size:
        example: 1
      type:
        example: pdu
      width_ratio:
        example: 2520
  Pdus:
    type: object
    properties:
      building:
        example: New Haven
      building_id:
        example: 1
      category:
        example: Prod_East
      device mapping:
        example: ''
      name:
        example: NHCTPDU01
      notes:
        example: ''
      pdu_id:
        example: 4
      pdu_model:
        properties:
          back_image:
            example: ''
          depth:
            example: Half Depth
          description:
            example: ''
          front_image:
            properties:
              id:
                example: 22
              imgfile:
                example: /var/www/graphics/images/apc-rack-pdu-front.png
          manufacturer:
            example: APC Inc.
          name:
            example: APC 8841
          notes:
            example: ''
          pdu_model_id:
            example: 4
          port_count:
            example: 12
          ports in pdu model:
            type: array
            items:
              properties:
                pdu_port_count:
                  example: 12
                pdu_port_type:
                  example: IEC 320 C19
          sequential_numbering_for_ports:
            example: true
          size:
            example: 1
          type:
            example: pdu
          width_ratio:
            example: 2520
      rack:
        example: NH-DC1-01
      rack_id:
        example: 20
      room:
        example: NHDC1
      room_id:
        example: 1
      type:
        example: pdu
  Pdu_by_Id:
    type: object
    properties:
      building:
        example: ''
      building_id:
        example: ''
      device mapping:
        type: object
        properties:
          aliases:
            example: []
          asset_no:
            example: ''
          building:
            example: New Haven
          cpucore:
            example: ''
          cpucount:
            example: ''
          cpuspeed:
            example: ''
          custom_fields:
            type: array
            items:
              properties:
                key:
                  example: Agent email address
                notes:
                  example: ''
                value:
                  example: ''
          customer:
            example: ''
          device_external_links:
            example: []
          device_id:
            example: 122
          device_purchase_line_items:
            example: []
          device_sub_type:
            example: UPS
          hdd_details:
            example: ''
          hddcount:
            example: ''
          hddraid:
            example: ''
          hddraid_type:
            example: ''
          hddsize:
            example: ''
          hw_depth:
            example: ''
          hw_model:
            example: ''
          hw_size:
            example: ''
          id:
            example: 122
          in_service:
            example: true
          ip_addresses:
            example: []
          last_updated:
            example: '2016-07-05T22:08:34.849Z'
          mac_addresses:
            example: []
          manufacturer:
            example: ''
          name:
            example: UPS1
          notes:
            example: ''
          os:
            example: ''
          pdu_mapping_url:
            example: /api/api/1.0/power_units/232/
          ram:
            example: ''
          room:
            example: NHDC1
          serial_no:
            example: ''
          service_level:
            example: Production
          tags:
            example: []
          type:
            example: other
          ucs_manager:
            example: ''
          uuid:
            example: ''
          virtual_host_name:
            example: ''
      name:
        example: UPS1
      notes:
        example: ''
      pdu_id:
        example: 232
      pdu_model:
        example: ''
      rack:
        example: ''
      rack_id:
        example: ''
      room:
        example: ''
      room_id:
        example: ''
      type:
        example: ups
  Patch_panel:
    type: object
    properties:
      asset_contracts:
        example: []
      asset_id:
        example: 29
      asset_no:
        example: '0010'
      asset_purchases:
        example: []
      building:
        example: New Haven
      custom_fields:
        example: ''
      customer_id:
        example: 1
      depth:
        example: Half Depth
      imagefile_id:
        example: 2
      name:
        example: DC1R1PP1
      no_ports:
        example: 12
      no_ports_in_row:
        example: 12
      notes:
        example: 'Notes, Notes, Notes...'
      numbering_direction:
        example: left-right
      numbering_start_location:
        example: top-left
      orientation:
        example: Back
      patch_panel_model_id:
        example: 6
      ports:
        type: array
        items:
          properties:
            back_connection_id:
              example: 109
            back_pp_id:
              example: 16
            cable_color:
              example: black
            color:
              example: '#659a39'
            content_type:
              example: device
            device_id:
              example: 153
            device_name:
              example: USNHCTVH002
            full_path:
              example: >-
                USNHCTVH002 <-> [DC1R1PP1-29:1] <-> DC1R5PP1-109:1 <->
                NHCTCORE01(gbE/1)
            number:
              example: 1
            obj_label:
              example: LI
            object_id:
              example: 153
            panel_id:
              example: 29
            panel_name:
              example: DC1R1PP1
      rack:
        example: NH-DC1-04
      rack_id:
        example: 23
      room:
        example: NHDC1
      row:
        example: 1
      serial_no:
        example: '4242424242'
      service_level:
        example: In Service
      size:
        example: 2
      start_at:
        example: 40
      type:
        example: 1
      vendor:
        example: Black Box Corp
      vendor_id:
        example: 36
      where:
        example: Rack Mounted
  Patch_panel_port:
    type: object
    properties:
      id:
        type: integer
        example: 123
      color:
        type: string
        example: "#666B61"
      object_id:
        type: integer
        example: 1235
      content_type:
        type: string
        example: "patch_panel_port"
      Pp_port_end:
        type: string
        example: "good"
      obj_label:
        type: string
        example: "label"
      number:
        type: integer
        example: 24
      panel_name:
        type: string
        example: "Patch3"
      pp_port:
        type: integer
        example: 1
      connection_id:
        type: array
        items:
          type: object
          properties:
            type:
              type: boolean
              example: false
            id:
              type: integer
              example: 1234
            patch_panel_name:
              type: string
              example: "Patch4"
            type_name:
              type: string
              example: "patch_panel_port"
            name:
              type: string
              example: "Patch4 1 (To Patch3)"
            patch_panel_id:
              type: integer
              example: 891
      module_id:
        type: integer
        example: 12
      full_path:
        type: string
        example: "None <->  <a href=\"/admin/rackraj/patch_panel_port/123\" target=\"_blank\">AC Unit-AC101-None : 12</a> <-> None"
      cable_color:
        type: string
        example: "black"
  Parts:
    properties:
      asset_no:
        example: ''
      assignment:
        example: device
      change_perm:
        example: 'yes'
      count:
        example: 1
      custom_fields:
        example: []
      date_changed:
        example: ''
      description:
        example: ''
      device:
        example: AAA switch 2
      device_id:
        example: 388
      firmware:
        example: ''
      first_added:
        example: '2014-02-20T18:13:54.099Z'
      last_updated:
        example: '2014-11-14T22:03:08.717Z'
      part_id:
        example: 1
      partmodel:
        properties:
          available:
            example: 0
          description:
            example: ''
          in_devices:
            example: 1
          in_rma:
            example: 0
          in_storage_racks:
            example: 0
          in_storage_rooms:
            example: 0
          in_transit:
            example: 0
          length:
            example: ''
          location:
            example: 'IT Lab 2nd Floor New Haven, CT'
          manufacturer:
            example: Kingston Technology Corp.
          modelno:
            example: ''
          name:
            example: Kingston 8GB DDR31600
          notes:
            example: ''
          partmodel_id:
            example: 3
          partno:
            example: KVR16E11/8
          ramsize:
            example: 8192
          ramspeed:
            example: '1600'
          ramtype:
            example: 'DDR3 '
          total_count:
            example: 1
          type:
            example: RAM
          used:
            example: 1
      serial_no:
        example: ''
      tags:
        example: []
  Partmodels:
    type: object
    properties:
      limit:
        example: 2
      offset:
        example: 0
      partmodels:
        type: array
        items:
          properties:
            available:
              example: 2
            cores:
              example: 4
            cpuspeed:
              example: 3400
            description:
              example: 3.4GHz (3.9GHz Turbo)
            in_devices:
              example: 0
            in_rma:
              example: 0
            in_storage_racks:
              example: 0
            in_storage_rooms:
              example: 2
            in_transit:
              example: 0
            length:
              example: ''
            location:
              example: 'IT Lab 2nd Floor New Haven, CT'
            manufacturer:
              example: Intel Corp.
            modelno:
              example: ''
            name:
              example: Core i7-3770
            notes:
              example: "Socket:LGA 1155\r\nSpeedDual-channel DDR3 Memory Controller supports DDR3-1333 and DDR3-1600 memory\r\nIntel HD Graphics 4000\r\nLimited Warranty period (parts): 3 years\r\nLimited Warranty period (labor): 3 years\r\n"
            partmodel_id:
              example: 1
            partno:
              example: BX80637I73770
            threads:
              example: ''
            total_count:
              example: 2
            type:
              example: CPU
            used:
              example: 0
      total_count:
        example: 71
  Purchases:
    type: object
    properties:
      purchases:
        type: array
        items:
          properties:
            purchase_id:
              example: '1'
            po_date:
              example: 'null'
            vendor:
              example: 'Amazon'
            building:
              example: 'West Haven Office'
            order_no:
              example: '9000000001'
            line_items:
              example: []
            notes:
              example: 'null'
            line_items_one_time_cost:
              example: '0'
            customer:
              example: 'Device42'
            cost:
              example: '100.00'
            groups:
              example: ''
            completed:
              example: 'no'
            custom_fields:
              example: []
  Appcomps_Custom_fields:
    type: object
    properties:
      key:
        example: Project
      notes:
        example: ''
      value:
        example: Migration
  Services:
    type: array
    items:
      type: object
      properties:
        category:
          type: string
        description:
          type: string
        displayname:
          type: string
        id:
          type: integer
        name:
          type: string
        notes:
          type: string
        service_type:
          type: string
        tags:
          example: []
        vendor:
          type: string
    example:
      - category: ''
        vendor: ''
        description: ''
        tags: []
        notes: ''
        service-type: 'null'
        displayname: apport-autoreport
        id: 2
      - category: ''
        vendor: ''
        description: ''
        tags: []
        notes: ''
        service-type: 'null'
        displayname: apport-forward@
        id: 3
  Service_details:
    type: object
    properties:
      appcomp:
        example: Device42 Production
      appcomp_id:
        example: Device42 Production
      device:
        example: Device42 Appliance
      device_id:
        example: 445
      first_detected:
        example: '2015-02-27T19:20:29.493Z'
      last_updated:
        example: '2015-02-27T19:20:44.029Z'
      service_detail_id:
        example: '3'
      service_display_name:
        example: DB service
      service_id:
        example: '1'
      service_name:
        example: DB service
      startmode:
        example: automatic
      state:
        example: running
      user:
        example: 'null'
      user_id:
        example: 'null'
      vendor:
        example: 'null'
      vendor_id:
        example: 'null'
  Service_ports:
    type: object
    properties:
      description:
        example: ''
      device_name:
        example: app21.device42.pvt
      discovered_process:
        example: ''
      discovered_service:
        example: mysqld
      id:
        example: 1
      listening_ip:
        example: 127.0.0.1
      mapped_service:
        example: ''
      port:
        example: 3306
      remote_ips:
        example: 192.241.191.123
  Client_stats:
    type: object
    properties:
      avg_time_span:
        example: 5
      first_found:
        example: '2016-09-16T14:45:14'
      ip:
        example: 76.127.207.96
      last_found:
        example: '2016-09-16T14:57:56'
      last_time_span:
        example: 7
      latest_contiguous_stats:
        type: object
        properties:
          avg_time_span:
            example: 5
          detected_connections:
            example: 3
          ephemeral_ports:
            example: '(17741:25283:23991)'
          first_found:
            example: '2016-09-16T14:45:14'
          last_found:
            example: '2016-09-16T14:57:56'
          last_time_span:
            example: 7
          max_time_span:
            example: 7
          min_time_span:
            example: 0
          std_dev_time_span:
            example: 29
          total_detected:
            example: 2
      max_time_span:
        example: 7
      min_time_span:
        example: 0
      std_dev_time_span:
        example: 29
      total_detected:
        example: 2
  Networkshare_details:
    type: object
    properties:
      caption:
        example: Remote Admin
      description:
        example: Remote Admin
      device_name:
        example: ovh01-w2012-04
      first_detected:
        example: '2016-04-08T16:14:04.612Z'
      id:
        example: '5'
      install_date:
        example: ''
      last_updated:
        example: '2016-04-08T16:14:04.612Z'
      name:
        example: ADMIN$
      path:
        example: 'C:\Windows'
      status:
        example: OK
      type:
        example: Disk Drive
  Get_Software_details:
    type: object
    properties:
      count_in_licensing:
        example: true
      device:
        example: d42laptop01
      device_id:
        example: ovh01-w2012-04
      first_detected:
        example: '2015-05-20T12:33:13.343Z'
      id:
        example: '108'
      install_date:
        example: ''
      last_updated:
        example: '2016-04-08T16:14:04.612Z'
      license_use_count:
        example: 1.0$
      software:
        example: Hyper-V Tools
      software_alias:
        example: ''
      software_id:
        example: '108'
      user:
        example: ''
      user_id:
        example: ''
      vendor:
        example: Probus-IT
      vendor_id:
        example: '62'
      version:
        example: 2.03.00.04
  Get_Software_Component_details:
    type: object
    properties:
      discovered_count:
        example: ''
      custom_fields:
        example: []
      rating:
        example: 5.0
      description:
        example: 'Sample description'
      licensed_count:
        example: ''
      licensing_model:
        example: Individual - Device/Perpetual
      track_licensed_count_by_keys:
        example: 'yes'
      notes:
        example: test
      tags:
        example:
          - def
      vendor:
        example: cisco
      category:
        example: past_time2
      aliases:
        example: '3pay, 4pay'
      name:
        example: 2pay
      software_type:
        example: prohibited
      deployment_type:
        example: mobile
      id:
        example: '583'
  Get_Software_License_Keys:
    type: object
    properties:
      count:
        example: 1
      id:
        example: 1
      key:
        example: '124124'
      notes:
        example: ''
      software_id:
        example: 114
      software_name:
        example: accountsservice
  Get_certificates:
    type: object
    properties:
      content_commitment_usage:
        example: false
      crl_sign_usage:
        example: false
      custom_fields:
        example: []
      data_encipherment_usage:
        example: false
      days_to_expiry:
        example: 1077
      decipher_only_usage:
        example: false
      digital_signature_usage:
        example: true
      encipher_only_usage:
        example: false
      extended_key_usage:
        example: |
          SERVERAUTH(1.3.6.1.5.5.7.3.1)
          CLIENTAUTH(1.3.6.1.5.5.7.3.2)
      id:
        example: '3'
      san:
        example: ''
      issued_by:
        example: ''
      issued_to:
        example: registration.device42.com
      key_agreement_usage:
        example: false
      key_cert_sign_usage:
        example: false
      key_encipherment_usage:
        example: true
      parent_cert:
        example: ''
      serial_number:
        example: 77eb9b55e9228635f2157fd374b8da8
      signature_algorithm:
        example: sha256WithRSAEncryption
      signature_hash:
        example: '708489795'
      subject:
        example: >-
          /OU=Domain Control
          Validated/OU=PositiveSSL/CN=registration.device42.com
      valid_from:
        example: '2014-08-10'
      valid_to:
        example: '2019-08-09'
      vendor:
        example: ''
      version:
        example: 2
  Get_certificate_instances:
    type: object
    properties:
      id:
        type: integer
        example: 1
        description: The unique ID of the certificate instance.    
      ip:
        type: string
        example: '192.168.1.1'
        description: The IP address associated with the certificate instance.
      valid_from:
        type: string
        format: date
        example: '2024-01-01'
        description: The date when the certificate becomes valid.        
      valid_to:
        type: string
        format: date
        example: '2025-12-31'
        description: The certificate's expiration date.
      device_id:
        type: integer
        example: 1
        description: The device ID associated with the certificate.
      device:
        type: string
        example: 'example-device'
        description: The device name associated with the certificate instance.          
      certificate_id:
        type: integer
        example: 1
        description: The unique ID of the certificate.
      certificate:
        type: string
        example: 'example.com'
        description: The domain associated with the certificate.        
      cipher_suites:
        type: object
        additionalProperties:
          type: string
        example:
          TLSv1.2: "TLS_RSA_WITH_AES_256_CBC_SHA"
        description: Supported cipher suites for the certificate.
      fqdn:
        type: string
        example: 'example.com'
        description: Fully Qualified Domain Name.
      serial_number:
        type: string
        example: 'ABC1234567890'
        description: The certificate's serial number.
      ssl_version:
        type: string
        example: 'TLSv1.2'
        description: SSL version used.
      last_added:
        type: string
        format: date-time
        example: 'null'
        description: The date and time when the certificate instance was last added.
      first_added:
        type: string
        format: date-time
        example: '2024-01-01T00:00:00Z'
        description: The date and time when the certificate instance was first added.  
  Get_All_Password_Accounts:
    type: object
    properties:
      category:
        example: Service
      custom_fields:
        example: []
      first_added:
        example: '2013-09-20T19:36:21.585Z'
      id:
        example: 4
      label:
        example: Patch Management Service Account
      last_pw_change:
        example: '2014-03-18T13:03:04Z'
      notes:
        example: ''
      password:
        example: ''
      username:
        example: usnhctpatchmanager
      view_edit_groups:
        example: ''
      view_edit_users:
        example: admin
      view_groups:
        example: sys_eng
      view_users:
        example: Ford Prefect
  Get_all_Vendors:
    type: object
    properties:
      account_no:
        example: '1234'
      contact_info:
        example: '8004553432'
      escalation_1:
        example: 'no'
      escalation_2:
        example: 'no'
      groups:
        example: 'Prod_East:no, Corp:yes'
      home_page:
        example: www.acer.com
      name:
        example: Acer Incorporated
      notes:
        example: acer
      vendor_id:
        example: '10'
      enrichai_data:
        type: object
        properties:
          id:
            example: 33
          enriched_vendor:
            example: 'Acer'
  Customers:
    properties:
      Contacts:
        type: array
        items:
          properties:
            address:
              example: 123 main st
            email:
              example: rick@d42.com
            name:
              example: Random Guy
            phone:
              example: 555-555-5555
            type:
              example: Technical
      Custom Fields:
        type: array
        items:
          properties:
            key:
              example: custID
            notes:
              example: ''
            value:
              example: '42'
            value2:
              example: ''
      contact_info:
        example: '555 Technical Lane, Cool City.'
      devices_url:
        example: /api/api/1.0/devices/customer_id/1/
      groups:
        example: 'Prod_East:no, Corp:yes'
      id:
        example: 1
      name:
        example: 'ABC, Inc.'
      notes:
        example: some notes here
      subnets_url:
        example: /api/api/1.0/subnets/customer_id/1/
  Get_all_Circuits:
    type: object
    properties:
      ID:
        example: 1
      bandwidth:
        example: ''
      circuit_id:
        example: L3-01
      custom_fields:
        type: array
        items:
          properties:
            key:
              example: Region
            notes:
              example: ''
            value:
              example: APAC
      customer:
        example: ABC Inc.
      end_point_id:
        example: 124
      end_point_type:
        example: patch_panel_port
      notes:
        example: ''
      origin_id:
        example: 193
      origin_type:
        example: 'vendor'
      origin_vendor:
        example: 'TF1'
      provision_date:
        example: ''
      turn_on_date:
        example: ''
      type:
        example: Dedicated Ethernet
      vendor:
        example: ''
      full_path_list:
        type: array
        items:
          properties:
            type:
              type: string
            id:
              type: integer
            name:
              type: string
        example:
          - type: 'organisation'
            id: 193
            name: 'TF1'
          - type: 'circuit'
            id: 1
            name: 'L3-01'
          - type: 'patch_panel_port'
            id: 124
            name: 'MDF-CORE-A : 24' 
  Get_all_Power_Circuits:
    type: object
    properties:
      amps:
        example: ''
      asset_connections:
        example: []
      bcpm:
        example: ''
      bcpm_id:
        example: ''
      breakerpanel:
        example: Primary Breaker Panel
      breakerpanel_id:
        example: '10'
      connection:
        example: ''
      device_connections:
        example: []
      label:
        example: Testing Circuits
      number:
        example: Main Power Circuit
      power_circuit_id:
        example: '85'
      powerunit_connections:
        example: []
      voltage:
        example: ''
  Cable:
    type: object
    properties:
      cable_id:
        example: 'Fiber 1:Multi'
      cable_length:
        example: ''
      cable_length_units:
        example: m
      custom_fields:
        example: []
      end_back_patch_panel:
        example: false
      end_cable_color:
        example: ''
      end_cable_type:
        example: ''
      end_connector_type:
        example: ''
      end_content_type:
        example: cable
      end_optic_type:
        example: ''
      end_point_multiple:
        example: true
      id:
        example: 3
      notes:
        example: ''
      origin_back_patch_panel:
        example: false
      origin_cable_color:
        example: ''
      origin_cable_type:
        example: ''
      origin_connector_type:
        example: ''
      origin_content_type:
        example: netport
      origin_netport_id:
        example: 899
      origin_netport_name:
        example: ''
      origin_optic_type:
        example: ''
      room:
        example: ''
      tags:
        example: []
      vendor:
        example: ''
  getHistory:
    type: object
    properties:
      action:
        example: Add/Change(API)
      action_time:
        example: '2014-03-19T13:09:35.474Z'
      change_message:
        example: >-
          added/edited via api with values: {u'domain': u'd42.net', u'type':
          u'A', u'nameserver': u'ns1', u'name': u'oxrouter', u'ttl': u'3'}.
      content_type:
        example: DNS A or AAAA Record
      obj_repr:
        example: oxrouter
      user:
        example: admin
  getAuditLogs:
    type: object
    properties:
      total_count:
        example: 6
      limit:
        example: 1000
      offset:
        example: 0
      auditlogs:
        type: array
        items:
          type: object
          properties:
            object_id:
              example: 1
            from:
              example: Internal
            object_type:
              example: user
            object_fields:
              example: '{\"id\": \"1\", \"status\": \"Affinity Group processing completed in 0:00:00.088542\", \"enabled\": \"t\", \"upgraded\": \"t\", \"saved_doql_id\": \"1\", \"last_processed\": \"2022-11-08 15:33:00.733269+00\", \"target_reports\": \"3\"}'
            user:
              example: admin
            x_d42_source:
              example: 'null'
            changed_fields:
              type: object
              properties:
                message:
                  example: User logged in from ['10.42.08']
                status:
                  example: Affinity Group processing completed in 0:00:00.254720.
            action_time:
              example: '2022-11-09T15:37:04.632566Z'
            api_data:
              example: 'null'
            action: 
              example: Login
            url:
              example: 'null'
  healthstat_status:
    type: object
    properties:
      version:
        example: '18.10.00.1690226275'
      backup_status:
        type: array
        items:
          type: object
          properties:
            id:
              example: 1
            job_name:
              example: Demo Backup
            status:
              example: Good @  2019-01-10 18:51:31
      cpu_used_percent:
        example: '2.51904'
      dbsize:
        example: 84 MB
      disk_used_percent:
        example: '8'
      memory_in_MB:
        type: object
        properties:
          buffers:
            example: 92
          cached:
            example: 254
          memfree:
            example: 1728
          memtotal:
            example: 3948
          swapfree:
            example: 8187
          swaptotal:
            example: 8187
      rc_stats:
        type: array
        items:
          type: object
          properties:
            rc_name:
              example: 'DC1-RC'
            state:
              example: 'disconnected'
            version:
              example: '18.10.00-1690226275'
      nvenv:
        type: object
        properties:
          core-app:
            example: 'OK'
          app_mgr:
            example: 'NOK'
          superset:
            example: 'OK'
          rc_python:
            example: 'OK'
      system_pkg:
        type: object
        properties:
          status:
            example: 'OK'
      last_upgrade:
        type: object
        properties:
          status:
            example: 'NOK'
          from_version:
            example: '18.08.00.1686665414'
  Service_schedules:
    type: array
    items:
      type: object
      properties:
        service_name:
          type: string
        idle_time:
          type: boolean
        install_Date:
          type: string
        day_of_month:
          type: string
        at_startup:
          type: boolean
        user_id:
          type: integer
        other_trigger:
          type: boolean
        arguments:
          type: string
        event_based:
          type: boolean
        weeks:
          type: string
        status:
          type: string
        description:
          type: string
        service_schedule_id:
          type: integer
        month_of_year:
          type: string
        hours:
          type: string
        user:
          type: string
        device:
          type: string
        other_type:
          type: string
        device_id:
          type: integer
        days:
          type: string
        day_of_week:
          type: string
        caption:
          type: string
        at_logon:
          type: boolean
        minutes:
          type: string
    example:
      - service_name: api_test
        idle_time: false
        install_Date: '2019-01-01T00:00:00Z'
        day_of_month: ''
        at_startup: true
        user_id: 'null'
        other_trigger: false
        arguments: ''
        event_based: false
        weeks: '0'
        status: Complete
        description: ''
        service_schedule_id: 1
        month_of_year: January
        hours: '5'
        user: 'null'
        device: dqr1400pd
        other_type: ''
        device_id: 1
        days: '2'
        day_of_week: ''
        caption: scheduled_task_1
        at_logon: false
        minutes: ''
      - service_name: api_test2
        idle_time: false
        install_Date: 'null'
        day_of_month: ''
        at_startup: false
        user_id: 'null'
        other_trigger: false
        arguments: ''
        event_based: false
        weeks: ''
        status: ''
        description: ''
        service_schedule_id: 1
        month_of_year: ''
        hours: ''
        user: 'null'
        device: dqr1400pd2
        other_type: ''
        device_id: 1
        days: ''
        day_of_week: ''
        caption: scheduled_task_2
        at_logon: false
        minutes: ''
  Service_schedule:
    properties:
      service_name:
        type: string
      idle_time:
        type: boolean
      install_Date:
        type: string
      day_of_month:
        type: string
      at_startup:
        type: boolean
      user_id:
        type: integer
      other_trigger:
        type: boolean
      arguments:
        type: string
      event_based:
        type: boolean
      weeks:
        type: string
      status:
        type: string
      description:
        type: string
      service_schedule_id:
        type: integer
      month_of_year:
        type: string
      hours:
        type: string
      user:
        type: string
      device:
        type: string
      other_type:
        type: string
      device_id:
        type: integer
      days:
        type: string
      day_of_week:
        type: string
      caption:
        type: string
      at_logon:
        type: boolean
      minutes:
        type: string
    example:
      service_name: api_test
      idle_time: false
      install_Date: '2019-01-01T00:00:00Z'
      day_of_month: ''
      at_startup: true
      user_id: 'null'
      other_trigger: false
      arguments: ''
      event_based: false
      weeks: '0'
      status: Complete
      description: ''
      service_schedule_id: 1
      month_of_year: January
      hours: '5'
      user: 'null'
      device: dqr1400pd
      other_type: ''
      device_id: 1
      days: '2'
      day_of_week: ''
      caption: scheduled_task_1
      at_logon: false
      minutes: ''
  Service_instances:
    type: array
    items:
      type: object
      properties:
        appcomps:
          type: string
        appcomp_ids:
          type: string
        device:
          type: string
        device_id:
          type: integer
        first_detected:
          type: string
        last_updated:
          type: string
        service_detail_id:
          type: integer
        service_display_name:
          type: string
        service_id:
          type: integer
        state:
          type: string
        startmode:
          type: string
        user:
          type: string
        user_id:
          type: integer
        vendor:
          type: string
        vendor_id:
          type: integer
        cmd_paths:
          example:
            - ''
        ignore_client_connections:
          type: boolean
        topology_status:
          type: string
        pinned:
          type: boolean
    example:
      - service_detail_id: 1
        service_display_name: apport-autoreport
        ignore_client_connections: false
        last_updated: '2019-08-01T17:09:08.063Z'
        first_detected: '2019-07-31T19:49:07.532Z'
        vendor_id: 'null'
        cmd_paths:
          - ''
        vendor: 'null'
        topology_status: Normal
        pinned: false
        device: D42Test1
        state: unknown
        appcomps: ''
        user: 'null'
        service_id: 2
        appcomp_ids: ''
        user_id: 'null'
        startmode: unknown
        device_id: 4
      - service_detail_id: 2
        service_display_name: apport-forward@
        ignore_client_connections: false
        last_updated: '2019-08-01T17:09:08.063Z'
        first_detected: '2019-07-31T19:49:07.532Z'
        vendor_id: 'null'
        cmd_paths:
          - ''
        vendor: 'null'
        topology_status: Normal
        pinned: false
        device: D42Test1
        state: unknown
        appcomps: ''
        user: 'null'
        service_id: 2
        appcomp_ids: ''
        user_id: 'null'
        startmode: unknown
        device_id: 4
  Service_instance:
    properties:
      appcomps:
        type: string
      appcomp_ids:
        type: string
      device:
        type: string
      device_id:
        type: integer
      first_detected:
        type: string
      last_updated:
        type: string
      service_detail_id:
        type: integer
      service_display_name:
        type: string
      service_id:
        type: integer
      state:
        type: string
      startmode:
        type: string
      user:
        type: string
      user_id:
        type: integer
      vendor:
        type: string
      vendor_id:
        type: integer
      cmd_paths:
        example:
          - ''
      ignore_client_connections:
        type: boolean
      topology_status:
        type: string
      pinned:
        type: boolean
    example:
      service_detail_id: 2
      service_display_name: apport-forward@
      ignore_client_connections: false
      last_updated: '2019-08-01T17:09:08.063Z'
      first_detected: '2019-07-31T19:49:07.532Z'
      vendor_id: 'null'
      cmd_paths:
        - ''
      vendor: 'null'
      topology_status: Normal
      pinned: false
      device: D42Test1
      state: unknown
      appcomps: ''
      user: 'null'
      service_id: 2
      appcomp_ids: ''
      user_id: 'null'
      startmode: unknown
      device_id: 4
  Service_client_connections:
    properties:
      total_count:
        example: 1
      offset:
        example: 0
      limit:
        example: 1000
      client_connections:
        type: array
        items:
          type: object
          properties:
            listener_device_id:
              type: integer
            client_service_id:
              type: integer
            stats:
              example: []
            client_device_id:
              type: integer
            listener_mapped_service:
              type: string
            listener_discovered_serivce:
              type: string
            listener_mapped_service_id:
              type: integer
            client_ip:
              type: string
            listener_device:
              type: string
            client_service:
              type: string
            port:
              type: integer
            client_device:
              type: string
            client_process_name:
              type: string
            client_process_display_name:
              type: string
            id:
              type: integer
            listener_ip:
              type: string
            type:
              type: integer
            listener_discovered_service_id:
              type: integer
            service_port_ip_id:
              type: integer
        example:
          - listener_device_id: 'null'
            client_service_id: 151
            stats: []
            client_device_id: 3
            listener_mapped_service: 'null'
            listener_discovered_service: 'null'
            listener_mapped_service_id: 'null'
            client_ip: 10.90.6.15
            listener_device: 'null'
            client_service: systemd-resolved
            port: 80
            client_device: peter-ubu1604-90615.device42.pvt
            client_process_name: >-
              /usr/bin/wget -q -O -
              http://169.254.169.254/latest/dynamic/instance-identity/document
            client_process_display_name: wget
            id: 2
            listener_ip: 169.254.169.254
            type: 0
            listener_discovered_service_id: 'null'
            service_port_ip_id: 'null'
  Service_listener_ports:
    properties:
      total_count:
        example: 2
      offset:
        example: 0
      limit:
        example: 1000
      service_ports:
        type: array
        items:
          type: object
          properties:
            discovered_service:
              type: string
            mapped_service:
              type: string
            protocol:
              type: string
            id:
              type: integer
            device_name:
              type: string
            listening_ip:
              type: string
            remote_ips_ids:
              type: string
            appcomp_ids:
              type: string
            remote_ips:
              type: string
            port:
              type: integer
        example:
          - discovered_service: exim4
            mapped_service: exim4
            protocol: tcp
            id: 3
            device_name: D42_Test_Device
            listening_ip: '::1'
            remote_ips_ids: ''
            appcomp_ids: ''
            remote_ips: ''
            port: 25
          - discovered_service: exim4
            mapped_service: exim4
            protocol: tcp
            id: 4
            device_name: D42_Test_Device
            listening_ip: 127.0.0.1
            remote_ips_ids: ''
            appcomp_ids: ''
            remote_ips: ''
            port: 25
  Service_listener_port:
    properties:
      service_ports:
        type: object
        properties:
          discovered_service:
            type: string
          mapped_service:
            type: string
          protocol:
            type: string
          id:
            type: integer
          device_name:
            type: string
          listening_ip:
            type: string
          remote_ips_ids:
            type: string
          appcomp_ids:
            type: string
          remote_ips:
            type: string
          port:
            type: integer
        example:
          discovered_service: exim4
          mapped_service: exim4
          protocol: tcp
          id: 3
          device_name: D42_Test_Device
          listening_ip: 127.0.0.1
          remote_ips_ids: ''
          appcomp_ids: ''
          remote_ips: ''
          port: 25
  Listener_connection_stats:
    properties:
      total_count:
        example: 2
      offset:
        example: 0
      limit:
        example: 1000
      service_ports:
        type: array
        items:
          type: object
          properties:
            listener_device_id:
              type: integer
            protocol:
              type: string
            listener_device_name:
              type: string
            client_ips_ids:
              type: string
            client_ips:
              type: string
            client_stats:
              type: array
              items:
                type: string
            id:
              type: integer
            listening_ip:
              type: string
            appcomp_ids:
              type: string
            listener_service:
              type: string
            port:
              type: integer
            listener_service_id:
              type: integer
        example:
          - listener_device_id: 10
            protocol: tcp
            listener_device_name: D42_Test_Device
            client_ips_ids: ''
            client_ips: ''
            client_stats: []
            id: 3
            listening_ip: '::1'
            appcomp_ids: ''
            listener_service: exim4
            port: 25
            listener_service_id: 162
          - listener_device_id: 10
            protocol: tcp
            listener_device_name: D42_Test_Device
            client_ips_ids: ''
            client_ips: ''
            client_stats: []
            id: 4
            listening_ip: 127.0.0.1
            appcomp_ids: ''
            listener_service: exim4
            port: 25
            listener_service_id: 162
  Listener_connection_stats_id:
    properties:
      service_ports:
        type: object
        properties:
          listener_device_id:
            type: integer
          protocol:
            type: string
          listener_device_name:
            type: string
          client_ips_ids:
            type: string
          client_ips:
            type: string
          client_stats:
            type: array
            items:
              type: string
          id:
            type: integer
          listening_ip:
            type: string
          appcomp_ids:
            type: string
          listener_service:
            type: string
          port:
            type: integer
          listener_service_id:
            type: integer
        example:
          listener_device_id: 10
          protocol: tcp
          listener_device_name: D42_Test_Device
          client_ips_ids: ''
          client_ips: ''
          client_stats: []
          id: 4
          listening_ip: 127.0.0.1
          appcomp_ids: ''
          listener_service: exim4
          port: 25
          listener_service_id: 162
  auto_discoveryPortscan:
    type: object
    properties:
      job_id:
        example: '1'
      name:
        example: Portscan1
      servers:
        example: 192.168.1.1
      start_ip:
        example: 192.168.1.1
      end_ip:
        example: 192.168.1.1
      schedule_time:
        example: 11:40
      schedule_days:
        example: 0,1,2,3
      last_status:
        example: success
      run_report:
        example: finished successfully
      exclude_servers:
        example: 192.168.1.10
      task_name_template:
        example: '%name% - %platform% (autocreated)'
      debug_level_id:
        example: '1'
      debug_level:
        example: Debug On
      vserver_debug_level:
        example: yes
      hostname_precedence:
        example: yes
      ignore_host_serial:
        example: no
      ignore_host_uuid:
        example: yes
      discover_vms:
        example: yes
      discover_vm_creation_date:
        example: no
      set_device_dnp:
        example: no
      device_name_format:
        example: hostname
      add_nonauthoritativealiases:
        example: yes
      ignore_ipv6:
        example: no
      ignore_subnets:
        example: yes
      ignore_virt_subtype:
        example: yes
      discover_parts:
        example: no
      capture_hosts_file:
        example: no
      discover_software:
        example: no
      initial_software_type:
        example: managed
      discover_services:
        example: no
      discover_applications:
        example: yes
      discover_cloudid:
        example: no
      discover_cluster:
        example: yes
      store_config_files:
        example: no
      store_software_config_files:
        example: no
      store_registry_info:
        example: no
      store_filesystem_info:
        example: yes
      strip_domain_suffix:
        example: yes
      service_level_id:
        example: '1'
      service_level:
        example: Development
      object_category_id:
        example: '1'
      object_category:
        example: Test
      overwrite_device_categories:
        example: yes
      customer_id:
        example: '1'
      customer:
        example: customer1
      vrfgroup_id:
        example: '1'
      vrfgroup:
        example: vrfgroup1
      remote_collector_id:
        example: '1'
      remote_collector:
        example: RC1
      polling_interval:
        example: '300'
      enable_resources_monitoring:
        example: yes
      collect_db_info:
        example: no
      tags:
        example:
          - abc
          - sql
      ignore_host_os_info:
        example: yes
      allow_sudo:
        example: yes
      allow_su:
        example: yes
      enc_unpwd_ids:
        example: ''
      db_enc_unpwd_ids:
        example: ''
  api_client:
    type: object
    properties:
      id:
        example: 2
      client_key:
        example: "e230e6edfc5b4781a3f2600272506278"
      last_used:
        example: "2022-03-21T14:26:03.704Z"
      created:
        example: "2022-03-21T14:16:08.481Z"
      resource_owner:
        example: "apiclient"
      failed_attempts:
        example: 0
      is_locked:
        example: false
      token_ttl:
        example: 60
      active:
        example: true
  aws_role_account:
    type: object
    properties:
      id:
        example: 3
      aws_account_id: 
        example: "123456789012"
      aws_role_id:
        example: 1
  aws_role:
    type: object
    properties:
      id:
        example: 2
      role_name:
        example: "example role"
      role_description:
        example: "An Example AWS Role"
      name:
        example: "Example Role"
      accounts:
        type: array
        items:
          $ref: '#/definitions/aws_role_account'
  businessapps_element:
    type: object
    properties:
      businessapp_element_uuid:
        example: "344316e2-409d-4bbf-b994-f4e3f152947a"
      businessapp_id:
        example: 2
      device_id:
        example: 4
      name:
        example: "test device"
      orphaned:
        example: "no"
  businessapps_element_delete:
    type: object
    properties:
      businessapp_element_uuid:
        example: "344316e2-409d-4bbf-b994-f4e3f152947a"
      deleted:
        example: "true"
  businessapps_connection:
    type: object
    properties:
      businessapp_connection_uuid:
        example: "344316e2-409d-4bbf-b994-f4e3f152947a"
      from_businessapp_element_uuid:
        example: "344316e2-409d-4bbf-b994-f4e3f152947b"
      to_businessapp_element_uuid:
        example: "344316e2-409d-4bbf-b994-f4e3f152947c"
      type:
        example: "test"
      labels:
        example: "test"
  custom_fields:
    type: array
    items:
      type: object
      properties:
        id:
          example: 2
        key:
          example: "room"
        type_id:
          example: 1
        type:
          example: "Text"
        filterable:
          example: "false"
        mandatory:
          example: "true"
        fk_model_id:
          example: "null"
        fk_model_input:
          example: "null"
        log_for_api:
          example: "true"
        is_multi:
          example: "false"
        picklist:
          example: "null"
  BadRequest:
    description: Bad Request (A validation exception has occurred.)
    examples:
      errors:
        - code: 400
          reason: BAD_REQUEST
          title: The error response code title.
          detail: Details of the error response.
  Unauthorized:
    description: Unauthorized (Your credentials suck)
    examples:
      errors:
        - code: 401
          reason: Unauthorized
          title: Unauthorized
          detail: Your credentials suck
  Forbidden:
    description: Forbidden (The resource requested is hidden)
    examples:
      errors:
        - code: 403
          reason: Forbidden
          title: Forbidden
          detail: The resource requested is hidden
  NotFound:
    description: Not Found (The specified resource could not be found)
    examples:
      errors:
        - code: 404
          reason: Not Found
          title: Not Found
          detail: The specified resource could not be found.
  InternalServerError:
    description: >-
      Internal Server Error (Some parameter missing or issue with the
      server. Check with returned “msg” from the call.)
    examples:
      errors:
        - code: 500
          reason: Internal Server Error
          title: Internal Server Error
          detail: >-
            Some parameter missing or issue with the server. Check with
            returned “msg” from the call.
  ServiceUnavailable:
    description: >-
      Service Unavailable (Please check if your Device42 instance is
      working normally.)
    examples:
      errors:
        - code: 503
          reason: Service Unavailable
          title: Service Unavailable
          detail: Please check if your Device42 instance is working normally.
  PowerUnitModelPort:
    type: object
    properties:
      id:
        example: '1'
        type: string
      normalized_port_name:
        example: foo
        type: string
      orientation:
        example: 1
        type: integer
      port_name:
        example: foo
        type: string
      port_type:
        example: IEC 320 C13
        type: string
      port_type_id:
        example: 2
        type: integer
      power_unit_model_id:
        example: 2
        type: integer
      x_pos:
        example: 0
        type: integer
      y_pos:
        example: 0
        type: integer
