swagger: '2.0'
info:
  description: Configuration for Configuration Job Details resource.
  version: 'v2'
  title: config_job_details
host: 'adm.cloud.com'
schemes:
 - https
# tags are used for organizing operations
tags:
  - name: config_job_details
    description: Configuration Job Details
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  UserSecurity:
    type: basic
security:
  - UserSecurity: []
parameters:
  idParam:
   name: id
   in: path
   type: string
   description: Id is system generated key for all the configuration jobs
   required: true
  authParam:
      in: header
      name: Authorization
      type: string
      required: true
      description: Session Id for authentication.Should be mentioned in the format CwsAuth bearer=sessionIdValue
  cloudParam:
      in: header
      name: isCloud
      type: string
      required: true
      description: set the value to true in case of Cloud services, false for on-prem deployment
paths:
  /massvc/{customerid}/nitro/v2/config/config_job_details:
    get:
      tags:
        - config_job_details
      summary: GET all config_job_details
      operationId: getall_config_job_details
      description: Use this operation to get details of configuration job
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: path
          name: customerid
          type: string
          required: true
          description: Customer Id of the user
        - in: header
          name: Authorization
          type: string
          required: true
          description: Session Id for authentication.Should be mentioned in the format CwsAuth bearer=sessionIdValue
        - in: header
          name: isCloud
          type: string
          required: true
          description: set the value to true in case of Cloud services, false for on-prem deployment
        - in: query
          name: filter
          type: string
          required: false
          description: "Use this query-parameter to get the filtered set of vm_device resources configured on the system. You can set a filter on any property of the resource.Example:  property-name1:property-value1 "
        - in: query
          name: pagesize
          type: integer
          required: false
          description: Use this query-parameter to get the config_job_details resources in chunks.To be used along with pageno query parameter.
        - in: query
          name: pageno
          type: integer
          required: false
          description: Use this query-parameter to get the config_job_details resources in chunks.To be used along with pagesize query parameter.
        - in: query
          name: count
          type: string
          required: false
          description: Use this query-parameter to get the count of config_job_details resources.
          enum:
            - yes
      responses:
        200:
          description:  for config_job_details
          schema: 
              $ref: '#/definitions/getconfig_job_detailssResponse'
        400:
          description: Bad input parameter
          schema: 
              $ref: '#/definitions/Error'
        401:
          description: Failed Authentication
          schema: 
              $ref: '#/definitions/Error'
        403:
          description: Unauthorized
          schema: 
              $ref: '#/definitions/Error'
        404:
          description: Item not found
          schema: 
              $ref: '#/definitions/Error'
        409:
          description: Resource Conflict
          schema: 
              $ref: '#/definitions/Error'
        500:
          description: Server Error
          schema: 
              $ref: '#/definitions/Error'
        504:
          description: Gateway Timeout
          schema: 
              $ref: '#/definitions/Error'

  /massvc/{customerid}/nitro/v2/config/config_job_details/{id}:
    get:
      tags:
        - config_job_details
      summary: GET by key for config_job_details
      operationId: getbykey_config_job_details
      description: Use this operation to get details of configuration job
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/idParam'
        - in: path
          name: customerid
          type: string
          required: true
          description: Customer Id of the user
        - in: header
          name: Authorization
          type: string
          required: true
          description: Session Id for authentication.Should be mentioned in the format CwsAuth bearer=sessionIdValue
        - in: header
          name: isCloud
          type: string
          required: true
          description: set the value to true in case of Cloud services, false for on-prem deployment
      responses:
        200:
          description:  for config_job_details
          schema: 
              $ref: '#/definitions/getconfig_job_detailsResponse'
        400:
          description: Bad input parameter
          schema: 
              $ref: '#/definitions/Error'
        401:
          description: Failed Authentication
          schema: 
              $ref: '#/definitions/Error'
        403:
          description: Unauthorized
          schema: 
              $ref: '#/definitions/Error'
        404:
          description: Item not found
          schema: 
              $ref: '#/definitions/Error'
        409:
          description: Resource Conflict
          schema: 
              $ref: '#/definitions/Error'
        500:
          description: Server Error
          schema: 
              $ref: '#/definitions/Error'
        504:
          description: Gateway Timeout
          schema: 
              $ref: '#/definitions/Error'

definitions:
  getconfig_job_detailsResponse:
    type: object
    required:
      - config_job_details
    properties:
      config_job_details:
        $ref: '#/definitions/config_job_details'
    title: getconfig_job_detailsResponse
    example:
      config_job_details:
        scheduleTimes: "string_value"
        sms_profiles: "test_sms_profile"
        execute_sequentially: "false"
        credentials_required: "false"
        name: "variable1"
        template_info: {        device_family: "string_value"
,        parent_name: "string_value"
,        commands: [{        protocol: "string_value"
,        rollback_command: "string_value"
,        parent_name: "string_value"
,        nitro_payload: "string_value"
,        nitro_method: "string_value"
,        parent_id: "string_value"
,        index: "integer_value"
,        timeout: "integer_value"
,        id: "string_value"
,        nitro_resource: "string_value"
,        command: "string_value"
}]
,        name: "string_value"
,        variables: [{        device_values_mapping: "string_value"
,        parent_name: "string_value"
,        value: "string_value"
,        name: "string_value"
,        valuex: "string_value"
,        display_name: "string_value"
,        description: "string_value"
,        device_values: [{        parent_name: "string_value"
,        value: "string_value"
,        id: "string_value"
,        valuex: "string_value"
,        device_group: "string_value"
,        device: "string_value"
,        parent_id: "string_value"
}]
,        parent_id: "string_value"
,        default_value: "string_value"
,        id: "string_value"
,        type: "string_value"
,        values_enum_db: "string_value"
}]
,        description: "string_value"
,        parent_id: "string_value"
,        is_visible: "boolean_value"
,        tenant_id: "string_value"
,        id: "string_value"
,        is_inbuilt: "boolean_value"
,        category: "string_value"
}
        devices_info: [{        isResiliency: "boolean_value"
,        parent_name: "string_value"
,        status: "string_value"
,        task_id: "string_value"
,        parent_id: "string_value"
,        starttime: "integer_value"
,        device_user: "string_value"
,        id: "string_value"
,        ip_address: "string_value"
,        endtime: "integer_value"
,        cmds_completed_fraction: "string_value"
}]
        resilience_devices_db: "string_value"
        lastExecutedTimeEpoch: "1581059664"
        execute_password: "password"
        devices_db: "string_value"
        execute_on_secondary: "false"
        auto_rollback: "true"
        autoscale_groups_db: "string_value"
        is_internal: "false"
        id: "c970e730-6bc5-44c2-a2bf-8dd1382ffb5f"
        scheduleTimesEpoch: "1581031800"
        lastExecutionStatus: "In Progress"
        executed_by: "test_user"
        device_family: "ns"
        on_error: "CONTINUE"
        scheduleOptions: "mon,wed,fri"
        devices: "[1.1.1.1-1.1.1.2, 1.1.1.3]"
        mail_profiles: "test_mail_profile"
        execute_username: "test_username"
        is_download_operation: "false"
        status: "Completed"
        isADMResilienceJob: "false"
        device_groups: "[instance-grp1, instance-grp2]"
        autoscale_groups: ["string_value1","string_value2"]
        execute_on_primary: "true"
        scheduleType: "daily"
        commands_count: "0"
        username: "nsroot"
        tz_offset: "0"
        variables: [{        device_values_mapping: "string_value"
,        parent_name: "string_value"
,        value: "string_value"
,        name: "string_value"
,        valuex: "string_value"
,        display_name: "string_value"
,        description: "string_value"
,        device_values: [{        parent_name: "string_value"
,        value: "string_value"
,        id: "string_value"
,        valuex: "string_value"
,        device_group: "string_value"
,        device: "string_value"
,        parent_id: "string_value"
}]
,        parent_id: "string_value"
,        default_value: "string_value"
,        id: "string_value"
,        type: "string_value"
,        values_enum_db: "string_value"
}]
        execute_batch: "boolean_value"
        tenant_id: "7ed7946f-4af7-11e9-99d2-b6fe81a85d18"
        timestamp: "1581059664"
        nextScheduleTimeEpoch: "string_value"
        slack_profile: "test_slack_profile"
        tasklog_id: "b93b29ff-a4f1-4cdb-56e7-ccabf28b4eb9"
        device_groups_db: "string_value"
        commands: [{        protocol: "string_value"
,        rollback_command: "string_value"
,        parent_name: "string_value"
,        nitro_payload: "string_value"
,        nitro_method: "string_value"
,        parent_id: "string_value"
,        index: "integer_value"
,        timeout: "integer_value"
,        id: "string_value"
,        nitro_resource: "string_value"
,        command: "string_value"
}]
        node_id: "2490-4185-911d-b18143df7e55"
        isRetryForResilienceJob: "false"
        variables_count: "0"
        devices_count: "0"
        preview_rollback_commands: "[\"rm vlan 1\", \"rm vlan 2\"]"
        devices_completed_count: "0"
        execute_again: "false"
        preview_commands: "[\"add vlan 1\", \"add vlan 2\"]"
        filename: "sample"

  getconfig_job_detailssResponse:
    type: object
    required:
      - config_job_details
    properties:
      config_job_details:
        type: array
        items:
          $ref: '#/definitions/config_job_details'
    title: getconfig_job_detailssResponse
    example:
      config_job_details:
        scheduleTimes: "string_value"
        sms_profiles: "test_sms_profile"
        execute_sequentially: "false"
        credentials_required: "false"
        name: "variable1"
        template_info: {        device_family: "string_value"
,        parent_name: "string_value"
,        commands: [{        protocol: "string_value"
,        rollback_command: "string_value"
,        parent_name: "string_value"
,        nitro_payload: "string_value"
,        nitro_method: "string_value"
,        parent_id: "string_value"
,        index: "integer_value"
,        timeout: "integer_value"
,        id: "string_value"
,        nitro_resource: "string_value"
,        command: "string_value"
}]
,        name: "string_value"
,        variables: [{        device_values_mapping: "string_value"
,        parent_name: "string_value"
,        value: "string_value"
,        name: "string_value"
,        valuex: "string_value"
,        display_name: "string_value"
,        description: "string_value"
,        device_values: [{        parent_name: "string_value"
,        value: "string_value"
,        id: "string_value"
,        valuex: "string_value"
,        device_group: "string_value"
,        device: "string_value"
,        parent_id: "string_value"
}]
,        parent_id: "string_value"
,        default_value: "string_value"
,        id: "string_value"
,        type: "string_value"
,        values_enum_db: "string_value"
}]
,        description: "string_value"
,        parent_id: "string_value"
,        is_visible: "boolean_value"
,        tenant_id: "string_value"
,        id: "string_value"
,        is_inbuilt: "boolean_value"
,        category: "string_value"
}
        devices_info: [{        isResiliency: "boolean_value"
,        parent_name: "string_value"
,        status: "string_value"
,        task_id: "string_value"
,        parent_id: "string_value"
,        starttime: "integer_value"
,        device_user: "string_value"
,        id: "string_value"
,        ip_address: "string_value"
,        endtime: "integer_value"
,        cmds_completed_fraction: "string_value"
}]
        resilience_devices_db: "string_value"
        lastExecutedTimeEpoch: "1581059664"
        execute_password: "password"
        devices_db: "string_value"
        execute_on_secondary: "false"
        auto_rollback: "true"
        autoscale_groups_db: "string_value"
        is_internal: "false"
        id: "c970e730-6bc5-44c2-a2bf-8dd1382ffb5f"
        scheduleTimesEpoch: "1581031800"
        lastExecutionStatus: "In Progress"
        executed_by: "test_user"
        device_family: "ns"
        on_error: "CONTINUE"
        scheduleOptions: "mon,wed,fri"
        devices: "[1.1.1.1-1.1.1.2, 1.1.1.3]"
        mail_profiles: "test_mail_profile"
        execute_username: "test_username"
        is_download_operation: "false"
        status: "Completed"
        isADMResilienceJob: "false"
        device_groups: "[instance-grp1, instance-grp2]"
        autoscale_groups: ["string_value1","string_value2"]
        execute_on_primary: "true"
        scheduleType: "daily"
        commands_count: "0"
        username: "nsroot"
        tz_offset: "0"
        variables: [{        device_values_mapping: "string_value"
,        parent_name: "string_value"
,        value: "string_value"
,        name: "string_value"
,        valuex: "string_value"
,        display_name: "string_value"
,        description: "string_value"
,        device_values: [{        parent_name: "string_value"
,        value: "string_value"
,        id: "string_value"
,        valuex: "string_value"
,        device_group: "string_value"
,        device: "string_value"
,        parent_id: "string_value"
}]
,        parent_id: "string_value"
,        default_value: "string_value"
,        id: "string_value"
,        type: "string_value"
,        values_enum_db: "string_value"
}]
        execute_batch: "boolean_value"
        tenant_id: "7ed7946f-4af7-11e9-99d2-b6fe81a85d18"
        timestamp: "1581059664"
        nextScheduleTimeEpoch: "string_value"
        slack_profile: "test_slack_profile"
        tasklog_id: "b93b29ff-a4f1-4cdb-56e7-ccabf28b4eb9"
        device_groups_db: "string_value"
        commands: [{        protocol: "string_value"
,        rollback_command: "string_value"
,        parent_name: "string_value"
,        nitro_payload: "string_value"
,        nitro_method: "string_value"
,        parent_id: "string_value"
,        index: "integer_value"
,        timeout: "integer_value"
,        id: "string_value"
,        nitro_resource: "string_value"
,        command: "string_value"
}]
        node_id: "2490-4185-911d-b18143df7e55"
        isRetryForResilienceJob: "false"
        variables_count: "0"
        devices_count: "0"
        preview_rollback_commands: "[\"rm vlan 1\", \"rm vlan 2\"]"
        devices_completed_count: "0"
        execute_again: "false"
        preview_commands: "[\"add vlan 1\", \"add vlan 2\"]"
        filename: "sample"

  config_job_details_readwrite:
    type: object
    properties:
      sms_profiles:
        description: "Comma separated list of SMS profiles"
        type: string
        format: string
        maxLength: 128
      execute_sequentially:
        description: "True if configuration template is to be applied to devices sequentially"
        type: boolean
        format: boolean
      credentials_required:
        description: "True if username/password need to be asked before configuration template is to applied on devices"
        type: boolean
        format: boolean
      name:
        description: "Name of configuration job"
        type: string
        format: string
        minLength: 1
        maxLength: 128
      template_info:
        $ref: '#/definitions/configuration_template_readwrite'
      execute_password:
        description: "Execute Password for job"
        type: string
        format: password
        maxLength: 127
      execute_on_secondary:
        description: "True if configuration run on HA secondary instance"
        type: boolean
        format: boolean
      auto_rollback:
        description: "True if auto_rollback enable for config job"
        type: boolean
        format: boolean
      is_internal:
        description: "True if internal action config job"
        type: boolean
        format: boolean
      scheduleTimesEpoch:
        description: "Schedule time UTC epoch (string representation of 11 digit numbers)."
        type: string
        format: string
      device_family:
        description: "Family of Devices ns,sdx for which config job was executed"
        type: string
        format: string
        minLength: 1
        maxLength: 64
      on_error:
        description: "Behaviour on encountering error while applying configuration template on a device: CONTINUE|EXIT|ROLLBACK"
        type: string
        format: string
        minLength: 1
        maxLength: 16
      scheduleOptions:
        description: "Comma separated schedule options specific day(s) of week, specific date(s) of month"
        type: string
        format: string
      devices:
        description: "Device IP Address Array on which job is run"
        type: array
        items:
          type: string
          format: IP Address
      mail_profiles:
        description: "Comma separated list of Mail profiles"
        type: string
        format: string
        maxLength: 128
      execute_username:
        description: "Execute User Name for job"
        type: string
        format: string
        maxLength: 127
      is_download_operation:
        description: "True if job download file from device"
        type: boolean
        format: boolean
      status:
        description: "Status of Config Job Started, In Progress, Completed, Failed, Aborted, Scheduled "
        type: string
        format: string
        maxLength: 128
      device_groups:
        description: "Device Group Array on which for which job is run"
        type: array
        items:
          type: string
          format: string
      autoscale_groups:
        description: "Autoscale Group Array on which for which job is run"
        type: array
        items:
          type: string
          format: string
      execute_on_primary:
        description: "True if configuration run on HA primary instance"
        type: boolean
        format: boolean
      scheduleType:
        description: "Schedule Type fixed, daily, weekly, monthly of Configuration Template that is scheduled"
        type: string
        format: string
      tz_offset:
        description: "Time zone offset."
        type: integer
        format: int32
      variables:
        type: array
        items:
          $ref: '#/definitions/variable_values_readwrite'
      execute_batch:
        description: "True if config job commands execute as batch"
        type: boolean
        format: boolean
      slack_profile:
        description: "name of the slack_profile"
        type: string
        format: string
      commands:
        type: array
        items:
          $ref: '#/definitions/config_command_readwrite'
      execute_again:
        description: "True if Execute again the config job"
        type: boolean
        format: boolean
      filename:
        description: "Config job details export output Filename"
        type: string
        format: string

  config_job_details:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all the configuration jobs
            type: string
            format: uuid
          devices_info:
            type: array
            items:
              $ref: '#/definitions/task_device_log'
          lastExecutedTimeEpoch:
             description: "Schedule time epoch at which job was last executed."
             type: string
             format: string
          lastExecutionStatus:
             description: "Status of last Execution of Config Job - Started, In Progress, Completed, Failed, Aborted, Scheduled"
             type: string
             format: string
             maxLength: 128
          executed_by:
             description: "Name of user who executed configuration job"
             type: string
             format: string
          commands_count:
             description: "Number of Commands to be executed on each device"
             type: integer
             format: int32
          username:
             description: "Name of user who created configuration job"
             type: string
             format: string
          tenant_id:
             description: "Tenant Id of the Config Jobs"
             type: string
             format: uuid
          timestamp:
             description: "Time of Creation of Configuration Job"
             type: integer
             format: int32
          tasklog_id:
             description: "Task Log Id of the Config Job"
             type: string
             format: uuid
             minLength: 1
             maxLength: 128
          variables_count:
             description: "Number of Variables used in config commands"
             type: integer
             format: int32
          devices_count:
             description: "Number of Devices on which commands executed"
             type: integer
             format: int32
          preview_rollback_commands:
             description: "Preview of list of rollback commands"
             type: array
             items:
               type: string
               format: string
          devices_completed_count:
             description: "Number of Devices on which commands execution completed"
             type: integer
             format: int32
          preview_commands:
             description: "Preview of list of commands"
             type: array
             items:
               type: string
               format: string
      - $ref: '#/definitions/config_job_details_readwrite'


  task_device_log:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all the task device logs
            type: string
            format: uuid
          status:
             description: "Status"
             type: string
             format: string
             maxLength: 128
          starttime:
             description: "Start Time"
             type: integer
             format: int32
          device_user:
             description: "Device user whose credentials used for executing configuration job on the device."
             type: string
             format: string
          ip_address:
             description: "IP Address"
             type: string
             format: ipaddress
             minLength: 1
             maxLength: 64
          endtime:
             description: "End Time"
             type: integer
             format: int32

  configuration_template_readwrite:
    type: object
    properties:
      device_family:
        description: "Family of Devices i.e. ns, sdx for which config template is defined."
        type: string
        format: string
        minLength: 1
        maxLength: 64
      parent_name:
        description: "Parent name of configuration template"
        type: string
        format: string
      commands:
        type: array
        items:
          $ref: '#/definitions/config_command_readwrite'
      name:
        description: "Name of configuration template"
        type: string
        format: string
        minLength: 1
        maxLength: 128
      variables:
        type: array
        items:
          $ref: '#/definitions/config_variable_readwrite'
      description:
        description: "Description of configuration template"
        type: string
        format: string
        minLength: 1
        maxLength: 1024
      parent_id:
        description: "Parent Id of configuration template"
        type: string
        format: uuid
      tenant_id:
        description: "Tenant Id"
        type: string
        format: uuid
        minLength: 1
        maxLength: 128
      category:
        description: "Category of configuration template"
        type: string
        format: string
        minLength: 1
        maxLength: 128

  configuration_template:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all the configuration templates
            type: string
            format: uuid
          is_inbuilt:
             description: "true, if this template is in built"
             type: boolean
             format: boolean
      - $ref: '#/definitions/configuration_template_readwrite'

  config_command_readwrite:
    type: object
    properties:
      protocol:
        description: "Protocol used by Configuration Command: SSH|SCP|SFTP"
        type: string
        format: string
        minLength: 1
        maxLength: 32
      rollback_command:
        description: " Rollback Command String"
        type: string
        format: string
      parent_name:
        description: "Parent name of config command"
        type: string
        format: string
      nitro_payload:
        description: "NITRO Request Payload"
        type: string
        format: string
      nitro_method:
        description: "NITRO Request Method: POST|PUT|DELETE"
        type: string
        format: string
        minLength: 1
        maxLength: 32
      parent_id:
        description: "Parent Id of config command"
        type: string
        format: uuid
      index:
        description: "Index that stores the position of the command in a command array"
        type: integer
        format: int32
      timeout:
        description: "Command Timeout in secs"
        type: integer
        format: int32
      nitro_resource:
        description: "NITRO Resource Name"
        type: string
        format: string
        minLength: 1
        maxLength: 128
      command:
        description: "Command String for Protocols SSH|SCP|SFTP"
        type: string
        format: string

  config_command:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all config command
            type: string
            format: uuid
      - $ref: '#/definitions/config_command_readwrite'

  config_variable_readwrite:
    type: object
    properties:
      parent_name:
        description: "Parent name of config variable"
        type: string
        format: string
      name:
        description: "Variable name"
        type: string
        format: string
        minLength: 1
        maxLength: 128
      valuex:
        description: "Secure Value of the Variable to be used for all device ips/groups"
        type: string
        format: password
      display_name:
        description: "Display name of configuration variable"
        type: string
        format: string
        minLength: 1
        maxLength: 1024
      description:
        description: "Description of configuration variable"
        type: string
        format: string
        minLength: 1
        maxLength: 1024
      parent_id:
        description: "Parent Id of config variable"
        type: string
        format: uuid
      required:
        description: "If it is required argument for command then true else false."
        type: boolean
        format: boolean
      default_value:
        description: "Default Value of configuration variable"
        type: string
        format: string
      type:
        description: "Type of Variable Text Field, Numeric Text Field, Choice, File, IP Addrss Field, Password Field"
        type: string
        format: string
        minLength: 1
        maxLength: 64
      values_enum_db:
        description: "Comma separated list of possible values of variable"
        type: string
        format: string
      values_enum:
        description: "Possible Values values for choice type variable"
        type: array
        items:
          type: string
          format: string

  config_variable:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all config variable
            type: string
            format: uuid
      - $ref: '#/definitions/config_variable_readwrite'

  variable_values_readwrite:
    type: object
    properties:
      parent_name:
        type: string
        format: string
      value:
        description: "Value of the Variable to be used for all device ips/groups"
        type: string
        format: string
      name:
        description: "Variable name"
        type: string
        format: string
        minLength: 1
        maxLength: 128
      valuex:
        description: "Secure Value of the Variable to be used for all device ips/groups"
        type: string
        format: password
      display_name:
        description: "Display name of configuration variable"
        type: string
        format: string
        minLength: 1
        maxLength: 1024
      description:
        description: "Description of configuration variable"
        type: string
        format: string
        minLength: 1
        maxLength: 1024
      device_values:
        type: array
        items:
          $ref: '#/definitions/device_values_map_readwrite'
      parent_id:
        type: string
        format: string
      default_value:
        description: "Default Value of configuration variable"
        type: string
        format: string
      type:
        description: "Type of Variable"
        type: string
        format: string
        minLength: 1
        maxLength: 64
      values_enum_db:
        description: "Comma separated list of possible values of variable"
        type: string
        format: string

  variable_values:
    allOf:
      -
        properties:
          id:
            type: string
            format: string
      - $ref: '#/definitions/variable_values_readwrite'

  device_values_map_readwrite:
    type: object
    properties:
      value:
        description: "Value of the Variable to be used for device ip/group"
        type: string
        format: string
      valuex:
        description: "Secure Value of the Variable to be used for device ip/group"
        type: string
        format: password
      device_group:
        description: "Device Group for which value is to be defined"
        type: string
        format: string
      device:
        description: "IP Address for this device"
        type: string
        format: ipaddress

  device_values_map:
    allOf:
      -
        properties:
          id:
            description: Id is system generated key for all the device value mapping
            type: string
            format: uuid
          parent_name:
             description: "Parent Name"
             type: string
             format: string
          parent_id:
             description: "Parent ID"
             type: string
             format: uuid
      - $ref: '#/definitions/device_values_map_readwrite'

  Error:
    properties:
      errorcode:
        type: number
        format: int32
        example: 1001
      errormessage:
        type: string
        format: string
        example: "id cannot be found"
