openapi: 3.0.0
info:
  title: naas/ems/dpm/proto/rpc.proto
  description: "\n\n# Copyright\n\nJuniper Networks, Inc.  \n1133 Innovation Way Sunnyvale, California 94089 USA  \n408-745-2000  \nwww.juniper.net\n\nCopyright © 2021, Juniper Networks, Inc. All rights reserved.\n\nJuniper Networks, the Juniper Networks logo, Juniper, and Junos are registered trademarks of Juniper Networks, Inc. and/or its affiliates in the United States and other countries. All other trademarks may be property of their respective owners.\nJuniper Networks assumes no responsibility for any inaccuracies in this document. Juniper Networks reserves the right to change, modify, transfer, or otherwise revise this publication without notice.\n\n\nThe information in this document is current as of the date on the title page.\n\nYEAR 2000 NOTICE\n\nJuniper Networks hardware and software products are Year 2000 compliant. Junos OS has no known time-related limitations through the year 2038. However, the NTP application is known to have some difficulty in the year 2036.\n\nEND USER LICENSE AGREEMENT\n\nThe Juniper Networks product that is the subject of this technical documentation consists of (or is intended for use with) Juniper Networks software. Use of such software is subject to the terms and conditions of the End User License Agreement (“EULA”) posted at http://www.juniper.net/support/eula.html. By downloading, installing or using such software, you agree to the terms and conditions of that EULA.\n\n\n"
  contact: {}
  version: '1.0'
servers:
- url: https://{defaultHost}
  variables:
    defaultHost:
      default: www.example.com
paths:
  /dpm/ext-ref-update:
    post:
      tags:
      - DpmService
      summary: DpmService_ExtRefUpdate
      description: This API can be used to create/delete reference for ExtRef table.
      operationId: DpmService_ExtRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmExtRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-list-deleted-resource:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkListDeletedResource
      description: This API can be used to list deleted-resource based on specification given in request body.
      operationId: DpmService_BulkListDeletedResource
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmListDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/ca-certificate-blob:
    post:
      tags:
      - DpmService
      summary: DpmService_CreateCaCertificateBlob
      description: ''
      operationId: DpmService_CreateCaCertificateBlob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmCreateCaCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmCreateCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_ListCaCertificateBlob
      description: This API can be used to list ca-certificate-blob based on specification given in query parameters.
      operationId: DpmService_ListCaCertificateBlob
      parameters:
      - name: spec.size
        in: query
        description: Number of items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.page_marker
        in: query
        description: Include only objects with UUID lexically greater than this.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.detail
        in: query
        description: Include detail informatoin or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.count
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_shared
        in: query
        description: Include shared resources or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_hrefs
        in: query
        description: Exclude href parameters.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.parent_fq_name_str
        in: query
        description: Filter by parent FQ Name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.parent_type
        in: query
        description: Filter by parent type.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.parent_id
        in: query
        description: Filter by parent UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.back_ref_id
        in: query
        description: Filter by backref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.obj_uuids
        in: query
        description: Filter by UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.filters
        in: query
        description: >-
          QueryFilter in string format.

          Grpc-gateway doesn't have support for nested structs and maps so

          introducing new fields which will take string as input.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ref_uuids
        in: query
        description: Filter by ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.from
        in: query
        description: Start from items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.sortby
        in: query
        description: Sort by column with ascending or descending by default ascending.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.operation
        in: query
        description: Operation determines whether union or interjection.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/baseservicesOperation'
          - description: Operation determines whether union or interjection.
      - name: spec.tag_filters
        in: query
        description: Filter by Tag Fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.tag_detail
        in: query
        description: Include Tag Details or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ext_ref_uuids
        in: query
        description: Filter by External Ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/last-published-notification:
    post:
      tags:
      - DpmService
      summary: DpmService_CreateLastPublishedNotification
      description: ''
      operationId: DpmService_CreateLastPublishedNotification
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmCreateLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmCreateLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_ListLastPublishedNotification
      description: This API can be used to list last-published-notification based on specification given in query parameters.
      operationId: DpmService_ListLastPublishedNotification
      parameters:
      - name: spec.size
        in: query
        description: Number of items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.page_marker
        in: query
        description: Include only objects with UUID lexically greater than this.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.detail
        in: query
        description: Include detail informatoin or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.count
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_shared
        in: query
        description: Include shared resources or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_hrefs
        in: query
        description: Exclude href parameters.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.parent_fq_name_str
        in: query
        description: Filter by parent FQ Name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.parent_type
        in: query
        description: Filter by parent type.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.parent_id
        in: query
        description: Filter by parent UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.back_ref_id
        in: query
        description: Filter by backref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.obj_uuids
        in: query
        description: Filter by UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.filters
        in: query
        description: >-
          QueryFilter in string format.

          Grpc-gateway doesn't have support for nested structs and maps so

          introducing new fields which will take string as input.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ref_uuids
        in: query
        description: Filter by ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.from
        in: query
        description: Start from items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.sortby
        in: query
        description: Sort by column with ascending or descending by default ascending.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.operation
        in: query
        description: Operation determines whether union or interjection.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/baseservicesOperation'
          - description: Operation determines whether union or interjection.
      - name: spec.tag_filters
        in: query
        description: Filter by Tag Fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.tag_detail
        in: query
        description: Include Tag Details or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ext_ref_uuids
        in: query
        description: Filter by External Ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/certificate-blob/{ID}:
    put:
      tags:
      - DpmService
      summary: DpmService_UpdateCertificateBlob
      description: ''
      operationId: DpmService_UpdateCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpdateCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpdateCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - DpmService
      summary: DpmService_DeleteCertificateBlob
      description: ''
      operationId: DpmService_DeleteCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_GetCertificateBlob
      description: ''
      operationId: DpmService_GetCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: detail
        in: query
        description: if detail is set then reference uuids & child uuids will be returned in the response.
        style: form
        explode: true
        schema:
          type: boolean
      - name: fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmGetCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-ext-ref-update:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkExtRefUpdate
      description: This API can be used to create/delete multiple references for ExtRef table.
      operationId: DpmService_BulkExtRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmBulkExtRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deleted-resource:
    post:
      tags:
      - DpmService
      summary: DpmService_CreateDeletedResource
      description: ''
      operationId: DpmService_CreateDeletedResource
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmCreateDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmCreateDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_ListDeletedResource
      description: This API can be used to list deleted-resource based on specification given in query parameters.
      operationId: DpmService_ListDeletedResource
      parameters:
      - name: spec.size
        in: query
        description: Number of items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.page_marker
        in: query
        description: Include only objects with UUID lexically greater than this.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.detail
        in: query
        description: Include detail informatoin or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.count
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_shared
        in: query
        description: Include shared resources or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_hrefs
        in: query
        description: Exclude href parameters.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.parent_fq_name_str
        in: query
        description: Filter by parent FQ Name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.parent_type
        in: query
        description: Filter by parent type.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.parent_id
        in: query
        description: Filter by parent UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.back_ref_id
        in: query
        description: Filter by backref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.obj_uuids
        in: query
        description: Filter by UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.filters
        in: query
        description: >-
          QueryFilter in string format.

          Grpc-gateway doesn't have support for nested structs and maps so

          introducing new fields which will take string as input.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ref_uuids
        in: query
        description: Filter by ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.from
        in: query
        description: Start from items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.sortby
        in: query
        description: Sort by column with ascending or descending by default ascending.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.operation
        in: query
        description: Operation determines whether union or interjection.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/baseservicesOperation'
          - description: Operation determines whether union or interjection.
      - name: spec.tag_filters
        in: query
        description: Filter by Tag Fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.tag_detail
        in: query
        description: Include Tag Details or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ext_ref_uuids
        in: query
        description: Filter by External Ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/certificate-blob:
    post:
      tags:
      - DpmService
      summary: DpmService_CreateCertificateBlob
      description: ''
      operationId: DpmService_CreateCertificateBlob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmCreateCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmCreateCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_ListCertificateBlob
      description: This API can be used to list certificate-blob based on specification given in query parameters.
      operationId: DpmService_ListCertificateBlob
      parameters:
      - name: spec.size
        in: query
        description: Number of items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.page_marker
        in: query
        description: Include only objects with UUID lexically greater than this.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.detail
        in: query
        description: Include detail informatoin or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.count
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_shared
        in: query
        description: Include shared resources or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_hrefs
        in: query
        description: Exclude href parameters.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.parent_fq_name_str
        in: query
        description: Filter by parent FQ Name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.parent_type
        in: query
        description: Filter by parent type.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.parent_id
        in: query
        description: Filter by parent UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.back_ref_id
        in: query
        description: Filter by backref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.obj_uuids
        in: query
        description: Filter by UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.filters
        in: query
        description: >-
          QueryFilter in string format.

          Grpc-gateway doesn't have support for nested structs and maps so

          introducing new fields which will take string as input.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ref_uuids
        in: query
        description: Filter by ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.from
        in: query
        description: Start from items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.sortby
        in: query
        description: Sort by column with ascending or descending by default ascending.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.operation
        in: query
        description: Operation determines whether union or interjection.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/baseservicesOperation'
          - description: Operation determines whether union or interjection.
      - name: spec.tag_filters
        in: query
        description: Filter by Tag Fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.tag_detail
        in: query
        description: Include Tag Details or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ext_ref_uuids
        in: query
        description: Filter by External Ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/sync:
    post:
      tags:
      - DpmService
      summary: DpmService_Sync
      description: This API can be used to CREATE/UPDATE/DELETE multiple resources from database
      operationId: DpmService_Sync
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmBulkSave'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmBulkSave'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-list-certificate-blob:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkListCertificateBlob
      description: This API can be used to list certificate-blob based on specification given in request body.
      operationId: DpmService_BulkListCertificateBlob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmListCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-list-ca-certificate-blob:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkListCaCertificateBlob
      description: This API can be used to list ca-certificate-blob based on specification given in request body.
      operationId: DpmService_BulkListCaCertificateBlob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmListCaCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deleted-resource/{ID}:
    put:
      tags:
      - DpmService
      summary: DpmService_UpdateDeletedResource
      description: ''
      operationId: DpmService_UpdateDeletedResource
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpdateDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpdateDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - DpmService
      summary: DpmService_DeleteDeletedResource
      description: ''
      operationId: DpmService_DeleteDeletedResource
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_GetDeletedResource
      description: ''
      operationId: DpmService_GetDeletedResource
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: detail
        in: query
        description: if detail is set then reference uuids & child uuids will be returned in the response.
        style: form
        explode: true
        schema:
          type: boolean
      - name: fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmGetDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/ca-certificate-blob/{ID}:
    put:
      tags:
      - DpmService
      summary: DpmService_UpdateCaCertificateBlob
      description: ''
      operationId: DpmService_UpdateCaCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpdateCaCertificateBlobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpdateCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - DpmService
      summary: DpmService_DeleteCaCertificateBlob
      description: ''
      operationId: DpmService_DeleteCaCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_GetCaCertificateBlob
      description: ''
      operationId: DpmService_GetCaCertificateBlob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: detail
        in: query
        description: if detail is set then reference uuids & child uuids will be returned in the response.
        style: form
        explode: true
        schema:
          type: boolean
      - name: fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmGetCaCertificateBlobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-list-last-published-notification:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkListLastPublishedNotification
      description: This API can be used to list last-published-notification based on specification given in request body.
      operationId: DpmService_BulkListLastPublishedNotification
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmListLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-ref-update:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkRefUpdate
      description: This API can be used to ADD/DELETE multiple references between two resources.
      operationId: DpmService_BulkRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmBulkRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmBulkRefUpdateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/bulk-list-image:
    post:
      tags:
      - DpmService
      summary: DpmService_BulkListImage
      description: This API can be used to list image based on specification given in request body.
      operationId: DpmService_BulkListImage
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmListImageRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/image:
    post:
      tags:
      - DpmService
      summary: DpmService_CreateImage
      description: ''
      operationId: DpmService_CreateImage
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmCreateImageRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmCreateImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_ListImage
      description: This API can be used to list image based on specification given in query parameters.
      operationId: DpmService_ListImage
      parameters:
      - name: spec.size
        in: query
        description: Number of items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.page_marker
        in: query
        description: Include only objects with UUID lexically greater than this.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.detail
        in: query
        description: Include detail informatoin or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.count
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_shared
        in: query
        description: Include shared resources or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.exclude_hrefs
        in: query
        description: Exclude href parameters.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.parent_fq_name_str
        in: query
        description: Filter by parent FQ Name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.parent_type
        in: query
        description: Filter by parent type.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.parent_id
        in: query
        description: Filter by parent UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.back_ref_id
        in: query
        description: Filter by backref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.obj_uuids
        in: query
        description: Filter by UUIDs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.filters
        in: query
        description: >-
          QueryFilter in string format.

          Grpc-gateway doesn't have support for nested structs and maps so

          introducing new fields which will take string as input.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ref_uuids
        in: query
        description: Filter by ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.from
        in: query
        description: Start from items expected to be returned.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.sortby
        in: query
        description: Sort by column with ascending or descending by default ascending.
        style: form
        explode: true
        schema:
          type: string
      - name: spec.operation
        in: query
        description: Operation determines whether union or interjection.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/baseservicesOperation'
          - description: Operation determines whether union or interjection.
      - name: spec.tag_filters
        in: query
        description: Filter by Tag Fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.tag_detail
        in: query
        description: Include Tag Details or not.
        style: form
        explode: true
        schema:
          type: boolean
      - name: spec.ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: spec.ext_ref_uuids
        in: query
        description: Filter by External Ref UUIDss.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmListImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/image/{ID}:
    put:
      tags:
      - DpmService
      summary: DpmService_UpdateImage
      description: ''
      operationId: DpmService_UpdateImage
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpdateImageRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpdateImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - DpmService
      summary: DpmService_DeleteImage
      description: ''
      operationId: DpmService_DeleteImage
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_GetImage
      description: ''
      operationId: DpmService_GetImage
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: detail
        in: query
        description: if detail is set then reference uuids & child uuids will be returned in the response.
        style: form
        explode: true
        schema:
          type: boolean
      - name: fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmGetImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/last-published-notification/{ID}:
    put:
      tags:
      - DpmService
      summary: DpmService_UpdateLastPublishedNotification
      description: ''
      operationId: DpmService_UpdateLastPublishedNotification
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpdateLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpdateLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - DpmService
      summary: DpmService_DeleteLastPublishedNotification
      description: ''
      operationId: DpmService_DeleteLastPublishedNotification
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - DpmService
      summary: DpmService_GetLastPublishedNotification
      description: ''
      operationId: DpmService_GetLastPublishedNotification
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: detail
        in: query
        description: if detail is set then reference uuids & child uuids will be returned in the response.
        style: form
        explode: true
        schema:
          type: boolean
      - name: fields
        in: query
        description: limit displayed fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ref_fields
        in: query
        description: limit displayed reference fields.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmGetLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/ref-update:
    post:
      tags:
      - DpmService
      summary: DpmService_RefUpdate
      description: This API can be used to ADD/DELETE reference between two resources.
      operationId: DpmService_RefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmRefUpdateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/delete-certificate:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeleteCertificate
      description: RPC to delete certificate
      operationId: ImageManager_DeleteCertificate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmDeleteCertificateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteCertificateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/delete-images:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeleteImages
      description: RPC to delete one or more images.
      operationId: ImageManager_DeleteImages
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmDeleteImagesRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeleteImagesResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/enable-default-ca-profile:
    post:
      tags:
      - ImageManager
      summary: ImageManager_EnableDefaultCAProfile
      description: ''
      operationId: ImageManager_EnableDefaultCAProfile
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmEnableDefaultCAProfileRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmEnableDefaultCAProfileResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deploy-ca-certificate:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeployCACertificate
      description: RPC to deploy CA certificate
      operationId: ImageManager_DeployCACertificate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmDeployCACertificateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeployCACertificateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deploy-license:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeployLicense
      description: RPC to deploy license
      operationId: ImageManager_DeployLicense
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmDeployLicenseRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeployLicenseResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/add-image:
    post:
      tags:
      - ImageManager
      summary: ImageManager_AddImage
      description: RPC to Add image.
      operationId: ImageManager_AddImage
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmAddImageRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmAddImageResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deploy-image:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeployImage
      description: RPC to deploy image onto one or more devices.
      operationId: ImageManager_DeployImage
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpgradeDeviceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpgradeDeviceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/upload-image-url:
    post:
      tags:
      - ImageManager
      summary: ImageManager_UploadImageURL
      description: RPC to upload an image using URL.
      operationId: ImageManager_UploadImageURL
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUploadImageURLRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUploadImageURLResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/deploy-local-certificate:
    post:
      tags:
      - ImageManager
      summary: ImageManager_DeployLocalCertificate
      description: RPC to deploy local certificate
      operationId: ImageManager_DeployLocalCertificate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmDeployLocalCertificateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmDeployLocalCertificateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /dpm/stage-image:
    post:
      tags:
      - ImageManager
      summary: ImageManager_StageImage
      description: RPC to stage image onto one or more devices.
      operationId: ImageManager_StageImage
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dpmUpgradeDeviceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dpmUpgradeDeviceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
components:
  schemas:
    protobufNullValue:
      title: protobufNullValue
      enum:
      - NULL_VALUE
      type: string
      description: >-
        `NullValue` is a singleton enumeration to represent the null value for the

        `Value` type union.

         The JSON representation for `NullValue` is JSON `null`.

         - NULL_VALUE: Null value.
    dpmUpdateImageResponse:
      title: dpmUpdateImageResponse
      type: object
      properties:
        image:
          $ref: '#/components/schemas/dpmImage'
    dpmCreateImageResponse:
      title: dpmCreateImageResponse
      type: object
      properties:
        image:
          $ref: '#/components/schemas/dpmImage'
    dpmDeleteLastPublishedNotificationResponse:
      title: dpmDeleteLastPublishedNotificationResponse
      type: object
      properties:
        ID:
          type: string
    dpmUpdateLastPublishedNotificationRequest:
      title: dpmUpdateLastPublishedNotificationRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
        ID:
          type: string
        fieldMask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
    dpmKeyValuePair:
      title: dpmKeyValuePair
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    dpmDeployLicenseResponse:
      title: dpmDeployLicenseResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
        job_uuid:
          type: string
    dpmMetaType:
      title: dpmMetaType
      type: object
      properties:
        enable:
          type: boolean
        user_visible:
          type: boolean
    dpmDeletedResource:
      title: dpmDeletedResource
      type: object
      properties:
        updated_timestamp:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        href:
          type: string
        parent_type:
          type: string
        uuid:
          type: string
        perms2:
          $ref: '#/components/schemas/dpmPermType2'
        name:
          type: string
        meta:
          $ref: '#/components/schemas/dpmMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        data:
          type: string
          description: data of the resource.
        annotations:
          $ref: '#/components/schemas/dpmKeyValuePairs'
        resource_type:
          type: string
          description: Type of the resource.
        parent_uuid:
          type: string
    dpmCreateLastPublishedNotificationResponse:
      title: dpmCreateLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
    dpmGetCertificateBlobResponse:
      title: dpmGetCertificateBlobResponse
      type: object
      properties:
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
    dpmUploadImageURLResponse:
      title: dpmUploadImageURLResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
        job_uuid:
          type: string
    dpmImageList:
      title: dpmImageList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/dpmImage'
          description: ''
    FieldMaskrepresentsasetofsymbolicfieldpathsforexample:
      title: FieldMaskrepresentsasetofsymbolicfieldpathsforexample
      type: object
      properties:
        paths:
          type: array
          items:
            type: string
          description: The set of field mask paths.
      description: >-
        paths: "f.a"
            paths: "f.b.d"

        Here `f` represents a field in some root message, `a` and `b`

        fields in the message found in `f`, and `d` a field found in the

        message in `f.b`.


        Field masks are used to specify a subset of fields that should be

        returned by a get operation or modified by an update operation.

        Field masks also have a custom JSON encoding (see below).


        # Field Masks in Projections


        When used in the context of a projection, a response message or

        sub-message is filtered by the API to only contain those fields as

        specified in the mask. For example, if the mask in the previous

        example is applied to a response message as follows:

            f {
              a : 22
              b {
                d : 1
                x : 2
              }
              y : 13
            }
            z: 8

        The result will not contain specific values for fields x,y and z

        (their value will be set to the default, and omitted in proto text

        output):


            f {
              a : 22
              b {
                d : 1
              }
            }

        A repeated field is not allowed except at the last position of a

        paths string.


        If a FieldMask object is not present in a get operation, the

        operation applies to all fields (as if a FieldMask of all fields

        had been specified).


        Note that a field mask does not necessarily apply to the

        top-level response message. In case of a REST get operation, the

        field mask applies directly to the response, but in case of a REST

        list operation, the mask instead applies to each individual message

        in the returned resource list. In case of a REST custom method,

        other definitions may be used. Where the mask applies will be

        clearly documented together with its declaration in the API.  In

        any case, the effect on the returned resource/resources is required

        behavior for APIs.


        # Field Masks in Update Operations


        A field mask in update operations specifies which fields of the

        targeted resource are going to be updated. The API is required

        to only change the values of the fields as specified in the mask

        and leave the others untouched. If a resource is passed in to

        describe the updated values, the API ignores the values of all

        fields not covered by the mask.


        If a repeated field is specified for an update operation, new values will

        be appended to the existing repeated field in the target resource. Note that

        a repeated field is only allowed in the last position of a `paths` string.


        If a sub-message is specified in the last position of the field mask for an

        update operation, then new value will be merged into the existing sub-message

        in the target resource.


        For example, given the target message:

            f {
              b {
                d: 1
                x: 2
              }
              c: [1]
            }

        And an update message:

            f {
              b {
                d: 10
              }
              c: [2]
            }

        then if the field mask is:

         paths: ["f.b", "f.c"]

        then the result will be:

            f {
              b {
                d: 10
                x: 2
              }
              c: [1, 2]
            }

        An implementation may provide options to override this default behavior for

        repeated and message fields.


        In order to reset a field's value to the default, the field must

        be in the mask and set to the default value in the provided resource.

        Hence, in order to reset all fields of a resource, provide a default

        instance of the resource and set all fields in the mask, or do

        not provide a mask as described below.


        If a field mask is not present on update, the operation applies to

        all fields (as if a field mask of all fields has been specified).

        Note that in the presence of schema evolution, this may mean that

        fields the client does not know and has therefore not filled into

        the request will be reset to their default. If this is unwanted

        behavior, a specific service may require a client to always specify

        a field mask, producing an error if not.


        As with get operations, the location of the resource which

        describes the updated values in the request message depends on the

        operation kind. In any case, the effect of the field mask is

        required to be honored by the API.


        ## Considerations for HTTP REST


        The HTTP kind of an update operation which uses a field mask must

        be set to PATCH instead of PUT in order to satisfy HTTP semantics

        (PUT must only be used for full updates).


        # JSON Encoding of Field Masks


        In JSON, a field mask is encoded as a single string where paths are

        separated by a comma. Fields name in each path are converted

        to/from lower-camel naming conventions.


        As an example, consider the following message declarations:

            message Profile {
              User user = 1;
              Photo photo = 2;
            }
            message User {
              string display_name = 1;
              string address = 2;
            }

        In proto a field mask for `Profile` may look as such:

            mask {
              paths: "user.display_name"
              paths: "photo"
            }

        In JSON, the same mask is represented as below:

            {
              mask: "user.displayName,photo"
            }

        # Field Masks and Oneof Fields


        Field masks treat fields in oneofs just as regular fields. Consider the

        following message:

            message SampleMessage {
              oneof test_oneof {
                string name = 4;
                SubMessage sub_message = 9;
              }
            }

        The field mask can be:

            mask {
              paths: "name"
            }

        Or:

            mask {
              paths: "sub_message"
            }

        Note that oneof type names ("test_oneof" in this case) cannot be used in

        paths.


        ## Field Mask Verification


        The implementation of any API method which has a FieldMask type field in the

        request should verify the included field paths, and return an

        `INVALID_ARGUMENT` error if any path is unmappable.
    dpmListCertificateBlobResponse:
      title: dpmListCertificateBlobResponse
      type: object
      properties:
        count:
          type: string
        certificate-blob:
          type: array
          items:
            $ref: '#/components/schemas/dpmCertificateBlob'
          description: ''
    dpmCreateCaCertificateBlobResponse:
      title: dpmCreateCaCertificateBlobResponse
      type: object
      properties:
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
    dpmUpgradeDeviceInput:
      title: dpmUpgradeDeviceInput
      type: object
      properties:
        image_uuid:
          type: string
        device_uuid:
          type: string
        device_component_name:
          type: string
    dpmRefUpdateResponse:
      title: dpmRefUpdateResponse
      type: object
      properties:
        uuid:
          type: string
    dpmCaCertificateBlob:
      title: dpmCaCertificateBlob
      type: object
      properties:
        updated_timestamp:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        device_uuid:
          type: string
        href:
          type: string
        certificate_contents:
          type: string
        parent_type:
          type: string
        uuid:
          type: string
        perms2:
          $ref: '#/components/schemas/dpmPermType2'
        name:
          type: string
        meta:
          $ref: '#/components/schemas/dpmMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        annotations:
          $ref: '#/components/schemas/dpmKeyValuePairs'
        parent_uuid:
          type: string
    dpmListLastPublishedNotificationRequest:
      title: dpmListLastPublishedNotificationRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    dpmUploadImageRequest:
      title: dpmUploadImageRequest
      type: object
      properties:
        vendor:
          type: string
        name:
          type: string
        image_type:
          type: string
        supported_platform:
          type: array
          items:
            type: string
          description: ''
        sha1_hash:
          type: string
        device_family:
          type: array
          items:
            type: string
          description: ''
        version:
          type: string
        image_size:
          type: string
        description:
          type: string
    dpmListCaCertificateBlobResponse:
      title: dpmListCaCertificateBlobResponse
      type: object
      properties:
        count:
          type: string
        ca-certificate-blob:
          type: array
          items:
            $ref: '#/components/schemas/dpmCaCertificateBlob'
          description: ''
    dpmUpdateCertificateBlobResponse:
      title: dpmUpdateCertificateBlobResponse
      type: object
      properties:
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
    dpmListImageRequest:
      title: dpmListImageRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    dpmGetLastPublishedNotificationResponse:
      title: dpmGetLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
    dpmDeletedResourceList:
      title: dpmDeletedResourceList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/dpmDeletedResource'
          description: ''
    dpmKeyValuePairs:
      title: dpmKeyValuePairs
      type: object
      properties:
        key_value_pair:
          type: array
          items:
            $ref: '#/components/schemas/dpmKeyValuePair'
          description: ''
    dpmCertificateBlob:
      title: dpmCertificateBlob
      type: object
      properties:
        updated_timestamp:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        device_uuid:
          type: string
        href:
          type: string
        certificate_contents:
          type: string
        parent_type:
          type: string
        uuid:
          type: string
        perms2:
          $ref: '#/components/schemas/dpmPermType2'
        name:
          type: string
        meta:
          $ref: '#/components/schemas/dpmMetaType'
        created_by:
          type: string
        certificate_key_contents:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        annotations:
          $ref: '#/components/schemas/dpmKeyValuePairs'
        parent_uuid:
          type: string
    dpmSubscriptionResponse:
      title: dpmSubscriptionResponse
      type: object
      properties:
        updated_timestamp:
          type: string
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
        parent_uuid:
          type: string
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
        image:
          $ref: '#/components/schemas/dpmImage'
        parent_type:
          type: string
        name:
          type: string
        owner:
          type: string
        data_any:
          allOf:
          - $ref: '#/components/schemas/protobufAny'
          - description: >-
              `Any` contains an arbitrary serialized protocol buffer message along with a

              URL that describes the type of the serialized message.


              Protobuf library provides support to pack/unpack Any values in the form

              of utility functions or additional generated methods of the Any type.


              Example 1: Pack and unpack a message in C++.

                  Foo foo = ...;
                  Any any;
                  any.PackFrom(foo);
                  ...
                  if (any.UnpackTo(&foo)) {
                    ...
                  }

              Example 2: Pack and unpack a message in Java.

                  Foo foo = ...;
                  Any any = Any.pack(foo);
                  ...
                  if (any.is(Foo.class)) {
                    foo = any.unpack(Foo.class);
                  }

               Example 3: Pack and unpack a message in Python.

                  foo = Foo(...)
                  any = Any()
                  any.Pack(foo)
                  ...
                  if any.Is(Foo.DESCRIPTOR):
                    any.Unpack(foo)
                    ...

               Example 4: Pack and unpack a message in Go

                   foo := &pb.Foo{...}
                   any, err := ptypes.MarshalAny(foo)
                   ...
                   foo := &pb.Foo{}
                   if err := ptypes.UnmarshalAny(any, foo); err != nil {
                     ...
                   }

              The pack methods provided by protobuf library will by default use

              'type.googleapis.com/full.type.name' as the type URL and the unpack

              methods only use the fully qualified type name after the last '/'

              in the type URL, for example "foo.bar.com/x/y.z" will yield type

              name "y.z".



              JSON

              ====

              The JSON representation of an `Any` value uses the regular

              representation of the deserialized, embedded message, with an

              additional field `@type` which contains the type URL. Example:

                  package google.profile;
                  message Person {
                    string first_name = 1;
                    string last_name = 2;
                  }

                  {
                    "@type": "type.googleapis.com/google.profile.Person",
                    "firstName": <string>,
                    "lastName": <string>
                  }

              If the embedded message type is well-known and has a custom JSON

              representation, that representation will be embedded adding a field

              `value` which holds the custom JSON in addition to the `@type`

              field. Example (for message [google.protobuf.Duration][]):

                  {
                    "@type": "type.googleapis.com/google.protobuf.Duration",
                    "value": "1.212s"
                  }
        action:
          $ref: '#/components/schemas/-UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase'
        data_struct:
          type: object
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
        resource_type:
          type: string
        uuid:
          type: string
    dpmCreateImageRequest:
      title: dpmCreateImageRequest
      type: object
      properties:
        image:
          $ref: '#/components/schemas/dpmImage'
    dpmPermType2:
      title: dpmPermType2
      type: object
      properties:
        owner:
          type: string
        global_access:
          type: string
        share:
          type: array
          items:
            $ref: '#/components/schemas/dpmShareType'
          description: ''
    dpmListImageResponse:
      title: dpmListImageResponse
      type: object
      properties:
        count:
          type: string
        image:
          type: array
          items:
            $ref: '#/components/schemas/dpmImage'
          description: ''
    dpmListLastPublishedNotificationResponse:
      title: dpmListLastPublishedNotificationResponse
      type: object
      properties:
        count:
          type: string
        last-published-notification:
          type: array
          items:
            $ref: '#/components/schemas/dpmLastPublishedNotification'
          description: ''
    dpmUpgradeDeviceResponse:
      title: dpmUpgradeDeviceResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        job_uuid:
          type: string
        schedule_uuid:
          type: string
    dpmListCaCertificateBlobRequest:
      title: dpmListCaCertificateBlobRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    dpmImage:
      title: dpmImage
      type: object
      properties:
        parent_uuid:
          type: string
        parent_type:
          type: string
        href:
          type: string
        created_timestamp:
          type: string
        updated_by:
          type: string
        updated_timestamp:
          type: string
        uuid:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        image_type:
          type: string
        created_by:
          type: string
        version:
          type: string
        supported_platforms:
          type: array
          items:
            type: string
          description: ''
        annotations:
          $ref: '#/components/schemas/dpmKeyValuePairs'
        vendor:
          type: string
        description:
          type: string
        perms2:
          $ref: '#/components/schemas/dpmPermType2'
        file_id:
          type: string
        image_size:
          type: string
        device:
          type: array
          items:
            $ref: '#/components/schemas/dpmStagedDeviceType'
          description: List of devices the image is staged to.
        name:
          type: string
        upload_timestamp:
          type: string
        file_uri:
          type: string
        sha1_hash:
          type: string
        device_family:
          type: array
          items:
            type: string
          description: ''
        meta:
          $ref: '#/components/schemas/dpmMetaType'
    dpmGetDeletedResourceResponse:
      title: dpmGetDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
    dpmDeleteImageResponse:
      title: dpmDeleteImageResponse
      type: object
      properties:
        ID:
          type: string
    dpmDeployCACertificateRequest:
      title: dpmDeployCACertificateRequest
      type: object
      properties:
        certificate_contents:
          type: string
        device_uuid:
          type: string
        next_run_time:
          type: string
        ca_profile_id:
          type: string
    dpmEnableDefaultCAProfileResponse:
      title: dpmEnableDefaultCAProfileResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
          description: Message from server.
        job_uuid:
          type: string
    dpmStatus:
      title: dpmStatus
      enum:
      - NA
      - SUCCESS
      - FAILURE
      type: string
    protobufAny:
      title: protobufAny
      type: object
      properties:
        typeUrl:
          type: string
          description: >-
            A URL/resource name that uniquely identifies the type of the serialized

            protocol buffer message. This string must contain at least

            one "/" character. The last segment of the URL's path must represent

            the fully qualified name of the type (as in

            `path/google.protobuf.Duration`). The name should be in a canonical form

            (e.g., leading "." is not accepted).


            In practice, teams usually precompile into the binary all types that they

            expect it to use in the context of Any. However, for URLs which use the

            scheme `http`, `https`, or no scheme, one can optionally set up a type

            server that maps type URLs to message definitions as follows:


            * If no scheme is provided, `https` is assumed.

            * An HTTP GET on the URL must yield a [google.protobuf.Type][]
              value in binary format, or produce an error.
            * Applications are allowed to cache lookup results based on the
              URL, or have them precompiled into a binary to avoid any
              lookup. Therefore, binary compatibility needs to be preserved
              on changes to types. (Use versioned type names to manage
              breaking changes.)

            Note: this functionality is not currently available in the official

            protobuf release, and it is not used for type URLs beginning with

            type.googleapis.com.


            Schemes other than `http`, `https` (or the empty scheme) might be

            used with implementation specific semantics.
        value:
          type: string
          description: Must be a valid serialized protocol buffer of the above specified type.
      description: >-
        `Any` contains an arbitrary serialized protocol buffer message along with a

        URL that describes the type of the serialized message.


        Protobuf library provides support to pack/unpack Any values in the form

        of utility functions or additional generated methods of the Any type.


        Example 1: Pack and unpack a message in C++.

            Foo foo = ...;
            Any any;
            any.PackFrom(foo);
            ...
            if (any.UnpackTo(&foo)) {
              ...
            }

        Example 2: Pack and unpack a message in Java.

            Foo foo = ...;
            Any any = Any.pack(foo);
            ...
            if (any.is(Foo.class)) {
              foo = any.unpack(Foo.class);
            }

         Example 3: Pack and unpack a message in Python.

            foo = Foo(...)
            any = Any()
            any.Pack(foo)
            ...
            if any.Is(Foo.DESCRIPTOR):
              any.Unpack(foo)
              ...

         Example 4: Pack and unpack a message in Go

             foo := &pb.Foo{...}
             any, err := ptypes.MarshalAny(foo)
             ...
             foo := &pb.Foo{}
             if err := ptypes.UnmarshalAny(any, foo); err != nil {
               ...
             }

        The pack methods provided by protobuf library will by default use

        'type.googleapis.com/full.type.name' as the type URL and the unpack

        methods only use the fully qualified type name after the last '/'

        in the type URL, for example "foo.bar.com/x/y.z" will yield type

        name "y.z".



        JSON

        ====

        The JSON representation of an `Any` value uses the regular

        representation of the deserialized, embedded message, with an

        additional field `@type` which contains the type URL. Example:

            package google.profile;
            message Person {
              string first_name = 1;
              string last_name = 2;
            }

            {
              "@type": "type.googleapis.com/google.profile.Person",
              "firstName": <string>,
              "lastName": <string>
            }

        If the embedded message type is well-known and has a custom JSON

        representation, that representation will be embedded adding a field

        `value` which holds the custom JSON in addition to the `@type`

        field. Example (for message [google.protobuf.Duration][]):

            {
              "@type": "type.googleapis.com/google.protobuf.Duration",
              "value": "1.212s"
            }
    dpmCreateDeletedResourceRequest:
      title: dpmCreateDeletedResourceRequest
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
    dpmDeleteCertificateRequest:
      title: dpmDeleteCertificateRequest
      type: object
      properties:
        certificate_type:
          type: string
        certificate_id:
          type: string
        next_run_time:
          type: string
        device_uuid:
          type: string
    dpmDeleteImagesResponse:
      title: dpmDeleteImagesResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
    dpmBulkExtRefUpdateRequest:
      title: dpmBulkExtRefUpdateRequest
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/dpmExtRefUpdateRequest'
          description: ''
    dpmUpdateCaCertificateBlobResponse:
      title: dpmUpdateCaCertificateBlobResponse
      type: object
      properties:
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
    dpmUploadImageFileResponse:
      title: dpmUploadImageFileResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmUploadStatus'
        image_uuid:
          type: string
        error_message:
          type: string
    dpmCreateDeletedResourceResponse:
      title: dpmCreateDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
    baseservicesFilter:
      title: baseservicesFilter
      type: object
      properties:
        values:
          type: array
          items:
            type: string
          description: ''
        key:
          type: string
    baseservicesListSpec:
      title: baseservicesListSpec
      type: object
      properties:
        ref_fields:
          type: array
          items:
            type: string
          description: ''
        parent_type:
          type: string
        filters:
          type: array
          items:
            type: string
          description: ''
        operation:
          $ref: '#/components/schemas/baseservicesOperation'
        json_filters:
          type: array
          items:
            $ref: '#/components/schemas/baseservicesFilter'
          description: ''
        size:
          type: string
        from:
          type: string
        page_marker:
          type: string
          description: Include only objects with UUID lexically greater than this.
        obj_uuids:
          type: array
          items:
            type: string
          description: ''
        ref_uuids_map:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/baseservicesUUIDs'
        detail:
          type: boolean
        parent_id:
          type: array
          items:
            type: string
          description: ''
        ext_ref_uuids:
          type: array
          items:
            type: string
          description: ''
        back_ref_id:
          type: array
          items:
            type: string
          description: ''
        exclude_shared:
          type: boolean
        exclude_hrefs:
          type: boolean
        tag_detail:
          type: boolean
        count:
          type: boolean
        fields:
          type: array
          items:
            type: string
          description: ''
        parent_fq_name_str:
          type: array
          items:
            type: string
          description: ''
        ref_uuids:
          type: array
          items:
            type: string
          description: ''
        sortby:
          type: string
        tag_filters:
          type: array
          items:
            type: string
          description: ''
    dpmGetCaCertificateBlobResponse:
      title: dpmGetCaCertificateBlobResponse
      type: object
      properties:
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
    dpmUpdateDeletedResourceResponse:
      title: dpmUpdateDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
    dpmUploadImageURLRequest:
      title: dpmUploadImageURLRequest
      type: object
      properties:
        url:
          type: string
    dpmDeleteCertificateBlobResponse:
      title: dpmDeleteCertificateBlobResponse
      type: object
      properties:
        ID:
          type: string
    dpmDeleteImagesRequest:
      title: dpmDeleteImagesRequest
      type: object
      properties:
        image_uuids:
          type: array
          items:
            type: string
          description: ''
    dpmUpdateImageRequest:
      title: dpmUpdateImageRequest
      type: object
      properties:
        image:
          $ref: '#/components/schemas/dpmImage'
        ID:
          type: string
        ignore_optimistic_lock:
          type: boolean
        fieldMask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
    dpmAddImageRequest:
      title: dpmAddImageRequest
      type: object
      properties:
        vendor:
          type: string
        name:
          type: string
        image_type:
          type: string
        image_file_uri:
          type: string
        supported_platform:
          type: array
          items:
            type: string
          description: ''
        sha1_hash:
          type: string
        device_family:
          type: array
          items:
            type: string
          description: ''
        version:
          type: string
        description:
          type: string
    dpmDeployLocalCertificateRequest:
      title: dpmDeployLocalCertificateRequest
      type: object
      properties:
        next_run_time:
          type: string
        certificate_key_contents:
          type: string
        device_uuid:
          type: string
        certificate_id:
          type: string
        cert_file:
          type: string
        pass_phrase:
          type: string
        key-file:
          type: string
        certificate_contents:
          type: string
    dpmLastPublishedNotification:
      title: dpmLastPublishedNotification
      type: object
      properties:
        updated_timestamp:
          type: string
        last_published_timestamp:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        href:
          type: string
        parent_type:
          type: string
        uuid:
          type: string
        perms2:
          $ref: '#/components/schemas/dpmPermType2'
        name:
          type: string
        meta:
          $ref: '#/components/schemas/dpmMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        annotations:
          $ref: '#/components/schemas/dpmKeyValuePairs'
        resource_type:
          type: string
          description: Type of the resource.
        parent_uuid:
          type: string
    dpmUpdateLastPublishedNotificationResponse:
      title: dpmUpdateLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
    dpmAddImageResponse:
      title: dpmAddImageResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        image_uuid:
          type: string
        error_message:
          type: string
    -UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase:
      title: -UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase
      enum:
      - UNKNOWN
      - CREATE
      - UPDATE
      - DELETE
      type: string
    dpmDeleteCaCertificateBlobResponse:
      title: dpmDeleteCaCertificateBlobResponse
      type: object
      properties:
        ID:
          type: string
    dpmCertificateBlobList:
      title: dpmCertificateBlobList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/dpmCertificateBlob'
          description: ''
    dpmShareType:
      title: dpmShareType
      type: object
      properties:
        access:
          type: string
        scope:
          type: string
        levels:
          type: string
        scope_types:
          type: array
          items:
            type: string
          description: ''
    baseservicesOperation:
      title: baseservicesOperation
      enum:
      - AND
      - OR
      type: string
    dpmDeployLocalCertificateResponse:
      title: dpmDeployLocalCertificateResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
        job_uuid:
          type: string
    dpmDeployLicenseRequest:
      title: dpmDeployLicenseRequest
      type: object
      properties:
        next_run_time:
          type: string
        primary_license_contents:
          type: string
        device_uuid:
          type: string
        license_contents:
          type: string
        secondary_license_contents:
          type: string
    dpmListCertificateBlobRequest:
      title: dpmListCertificateBlobRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    dpmListDeletedResourceResponse:
      title: dpmListDeletedResourceResponse
      type: object
      properties:
        count:
          type: string
        deleted-resource:
          type: array
          items:
            $ref: '#/components/schemas/dpmDeletedResource'
          description: ''
    dpmGetImageResponse:
      title: dpmGetImageResponse
      type: object
      properties:
        image:
          $ref: '#/components/schemas/dpmImage'
    dpmCreateCertificateBlobResponse:
      title: dpmCreateCertificateBlobResponse
      type: object
      properties:
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
    dpmExtRefUpdateRequest:
      title: dpmExtRefUpdateRequest
      type: object
      properties:
        ref-from-type:
          type: string
        ref-from-uuid:
          type: string
        operation:
          type: string
        ref-to-uuid:
          type: string
        ref-to-type:
          type: string
    dpmLastPublishedNotificationList:
      title: dpmLastPublishedNotificationList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/dpmLastPublishedNotification'
          description: ''
    dpmCaCertificateBlobList:
      title: dpmCaCertificateBlobList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/dpmCaCertificateBlob'
          description: ''
    dpmDeployCACertificateResponse:
      title: dpmDeployCACertificateResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
        job_uuid:
          type: string
    dpmCreateCertificateBlobRequest:
      title: dpmCreateCertificateBlobRequest
      type: object
      properties:
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
    dpmUpgradeDeviceRequest:
      title: dpmUpgradeDeviceRequest
      type: object
      properties:
        device:
          type: array
          items:
            $ref: '#/components/schemas/dpmUpgradeDeviceInput'
          description: ''
        next_run_time:
          type: string
          description: Next run time in milliseconds at which deploy image will be started.
    dpmUpdateDeletedResourceRequest:
      title: dpmUpdateDeletedResourceRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResource'
        ID:
          type: string
        fieldMask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
    dpmUpdateCaCertificateBlobRequest:
      title: dpmUpdateCaCertificateBlobRequest
      type: object
      properties:
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
        ignore_optimistic_lock:
          type: boolean
        ID:
          type: string
        fieldMask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
    dpmBulkRefUpdateResponse:
      title: dpmBulkRefUpdateResponse
      type: object
      properties:
        uuid:
          type: string
    dpmCreateCaCertificateBlobRequest:
      title: dpmCreateCaCertificateBlobRequest
      type: object
      properties:
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlob'
    dpmCreateLastPublishedNotificationRequest:
      title: dpmCreateLastPublishedNotificationRequest
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotification'
    dpmDeleteCertificateResponse:
      title: dpmDeleteCertificateResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/dpmStatus'
        error_message:
          type: string
          description: Message from server.
        job_uuid:
          type: string
    dpmEnableDefaultCAProfileRequest:
      title: dpmEnableDefaultCAProfileRequest
      type: object
      properties:
        ca_group_name:
          type: string
        device_uuids:
          type: array
          items:
            type: string
          description: ''
    dpmUploadStatus:
      title: dpmUploadStatus
      enum:
      - NOT_APPLICABLE
      - UPLOAD_SUCCESS
      - UPLOAD_FAILED
      - UPLOAD_INITIATED
      type: string
    runtimeStreamError:
      title: runtimeStreamError
      type: object
      properties:
        message:
          type: string
        grpcCode:
          type: integer
          format: int32
        httpStatus:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
          description: ''
        httpCode:
          type: integer
          format: int32
    dpmRefUpdateRequest:
      title: dpmRefUpdateRequest
      type: object
      properties:
        ref-type:
          type: string
        ref-uuid:
          type: string
        operation:
          type: string
        type:
          type: string
        uuid:
          type: string
    baseservicesUUIDs:
      title: baseservicesUUIDs
      type: object
      properties:
        uuids:
          type: array
          items:
            type: string
          description: ''
    dpmBulkRefUpdateRequest:
      title: dpmBulkRefUpdateRequest
      type: object
      properties:
        refs:
          type: array
          items:
            $ref: '#/components/schemas/dpmRefUpdateRequest'
          description: ''
        type:
          type: string
        uuid:
          type: string
    dpmUpdateCertificateBlobRequest:
      title: dpmUpdateCertificateBlobRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        ID:
          type: string
        fieldMask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlob'
    dpmListDeletedResourceRequest:
      title: dpmListDeletedResourceRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    dpmBulkSave:
      title: dpmBulkSave
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/dpmLastPublishedNotificationList'
        certificate-blob:
          $ref: '#/components/schemas/dpmCertificateBlobList'
        ca-certificate-blob:
          $ref: '#/components/schemas/dpmCaCertificateBlobList'
        image:
          $ref: '#/components/schemas/dpmImageList'
        ignore_optimistic_lock:
          type: boolean
          description: if IgnoreOptimisticLock is set then optimistic lock wont be enforced in update case.
        operation:
          type: string
        deleted-resource:
          $ref: '#/components/schemas/dpmDeletedResourceList'
        field_mask:
          allOf:
          - $ref: '#/components/schemas/FieldMaskrepresentsasetofsymbolicfieldpathsforexample'
          - description: >-
              paths: "f.a"
                  paths: "f.b.d"

              Here `f` represents a field in some root message, `a` and `b`

              fields in the message found in `f`, and `d` a field found in the

              message in `f.b`.


              Field masks are used to specify a subset of fields that should be

              returned by a get operation or modified by an update operation.

              Field masks also have a custom JSON encoding (see below).


              # Field Masks in Projections


              When used in the context of a projection, a response message or

              sub-message is filtered by the API to only contain those fields as

              specified in the mask. For example, if the mask in the previous

              example is applied to a response message as follows:

                  f {
                    a : 22
                    b {
                      d : 1
                      x : 2
                    }
                    y : 13
                  }
                  z: 8

              The result will not contain specific values for fields x,y and z

              (their value will be set to the default, and omitted in proto text

              output):


                  f {
                    a : 22
                    b {
                      d : 1
                    }
                  }

              A repeated field is not allowed except at the last position of a

              paths string.


              If a FieldMask object is not present in a get operation, the

              operation applies to all fields (as if a FieldMask of all fields

              had been specified).


              Note that a field mask does not necessarily apply to the

              top-level response message. In case of a REST get operation, the

              field mask applies directly to the response, but in case of a REST

              list operation, the mask instead applies to each individual message

              in the returned resource list. In case of a REST custom method,

              other definitions may be used. Where the mask applies will be

              clearly documented together with its declaration in the API.  In

              any case, the effect on the returned resource/resources is required

              behavior for APIs.


              # Field Masks in Update Operations


              A field mask in update operations specifies which fields of the

              targeted resource are going to be updated. The API is required

              to only change the values of the fields as specified in the mask

              and leave the others untouched. If a resource is passed in to

              describe the updated values, the API ignores the values of all

              fields not covered by the mask.


              If a repeated field is specified for an update operation, new values will

              be appended to the existing repeated field in the target resource. Note that

              a repeated field is only allowed in the last position of a `paths` string.


              If a sub-message is specified in the last position of the field mask for an

              update operation, then new value will be merged into the existing sub-message

              in the target resource.


              For example, given the target message:

                  f {
                    b {
                      d: 1
                      x: 2
                    }
                    c: [1]
                  }

              And an update message:

                  f {
                    b {
                      d: 10
                    }
                    c: [2]
                  }

              then if the field mask is:

               paths: ["f.b", "f.c"]

              then the result will be:

                  f {
                    b {
                      d: 10
                      x: 2
                    }
                    c: [1, 2]
                  }

              An implementation may provide options to override this default behavior for

              repeated and message fields.


              In order to reset a field's value to the default, the field must

              be in the mask and set to the default value in the provided resource.

              Hence, in order to reset all fields of a resource, provide a default

              instance of the resource and set all fields in the mask, or do

              not provide a mask as described below.


              If a field mask is not present on update, the operation applies to

              all fields (as if a field mask of all fields has been specified).

              Note that in the presence of schema evolution, this may mean that

              fields the client does not know and has therefore not filled into

              the request will be reset to their default. If this is unwanted

              behavior, a specific service may require a client to always specify

              a field mask, producing an error if not.


              As with get operations, the location of the resource which

              describes the updated values in the request message depends on the

              operation kind. In any case, the effect of the field mask is

              required to be honored by the API.


              ## Considerations for HTTP REST


              The HTTP kind of an update operation which uses a field mask must

              be set to PATCH instead of PUT in order to satisfy HTTP semantics

              (PUT must only be used for full updates).


              # JSON Encoding of Field Masks


              In JSON, a field mask is encoded as a single string where paths are

              separated by a comma. Fields name in each path are converted

              to/from lower-camel naming conventions.


              As an example, consider the following message declarations:

                  message Profile {
                    User user = 1;
                    Photo photo = 2;
                  }
                  message User {
                    string display_name = 1;
                    string address = 2;
                  }

              In proto a field mask for `Profile` may look as such:

                  mask {
                    paths: "user.display_name"
                    paths: "photo"
                  }

              In JSON, the same mask is represented as below:

                  {
                    mask: "user.displayName,photo"
                  }

              # Field Masks and Oneof Fields


              Field masks treat fields in oneofs just as regular fields. Consider the

              following message:

                  message SampleMessage {
                    oneof test_oneof {
                      string name = 4;
                      SubMessage sub_message = 9;
                    }
                  }

              The field mask can be:

                  mask {
                    paths: "name"
                  }

              Or:

                  mask {
                    paths: "sub_message"
                  }

              Note that oneof type names ("test_oneof" in this case) cannot be used in

              paths.


              ## Field Mask Verification


              The implementation of any API method which has a FieldMask type field in the

              request should verify the included field paths, and return an

              `INVALID_ARGUMENT` error if any path is unmappable.
    runtimeError:
      title: runtimeError
      type: object
      properties:
        message:
          type: string
        code:
          type: integer
          format: int32
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
          description: ''
        error:
          type: string
    dpmStagedDeviceType:
      title: dpmStagedDeviceType
      type: object
      properties:
        component:
          type: string
          description: Name of the component that this image is intended.
        device_uuid:
          type: string
    dpmDeleteDeletedResourceResponse:
      title: dpmDeleteDeletedResourceResponse
      type: object
      properties:
        ID:
          type: string
tags:
- name: DpmService
  description: ''
- name: ImageManager
  description: ''
