openapi: 3.0.0
info:
  title: jobstore/pkg/gen/model.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:
  /jobstore/job/{ID}:
    put:
      tags:
      - JobstoreService
      summary: JobstoreService_UpdateJob
      description: ''
      operationId: JobstoreService_UpdateJob
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreUpdateJobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreUpdateJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_GetJob
      description: ''
      operationId: JobstoreService_GetJob
      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/jobstoreGetJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - JobstoreService
      summary: JobstoreService_DeleteJob
      description: ''
      operationId: JobstoreService_DeleteJob
      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/jobstoreDeleteJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-list-job:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkListJob
      description: This API can be used to list job based on specification given in request body.
      operationId: JobstoreService_BulkListJob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreListJobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreListJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-ext-ref-update:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkExtRefUpdate
      description: This API can be used to create/delete multiple references for ExtRef table.
      operationId: JobstoreService_BulkExtRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreBulkExtRefUpdateRequest'
        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
  /jobstore/bulk-ref-update:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkRefUpdate
      description: This API can be used to ADD/DELETE multiple references between two resources.
      operationId: JobstoreService_BulkRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreBulkRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreBulkRefUpdateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-list-job-purge-policy:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkListJobPurgePolicy
      description: This API can be used to list job-purge-policy based on specification given in request body.
      operationId: JobstoreService_BulkListJobPurgePolicy
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreListJobPurgePolicyRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreListJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/last-published-notification/{ID}:
    put:
      tags:
      - JobstoreService
      summary: JobstoreService_UpdateLastPublishedNotification
      description: ''
      operationId: JobstoreService_UpdateLastPublishedNotification
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreUpdateLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreUpdateLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_GetLastPublishedNotification
      description: ''
      operationId: JobstoreService_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/jobstoreGetLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - JobstoreService
      summary: JobstoreService_DeleteLastPublishedNotification
      description: ''
      operationId: JobstoreService_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/jobstoreDeleteLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-list-task:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkListTask
      description: This API can be used to list task based on specification given in request body.
      operationId: JobstoreService_BulkListTask
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreListTaskRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreListTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/last-published-notification:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_CreateLastPublishedNotification
      description: ''
      operationId: JobstoreService_CreateLastPublishedNotification
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreCreateLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreCreateLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_ListLastPublishedNotification
      description: This API can be used to list last-published-notification based on specification given in query parameters.
      operationId: JobstoreService_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/jobstoreListLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/job-purge-policy:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_CreateJobPurgePolicy
      description: ''
      operationId: JobstoreService_CreateJobPurgePolicy
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreCreateJobPurgePolicyRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreCreateJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_ListJobPurgePolicy
      description: This API can be used to list job-purge-policy based on specification given in query parameters.
      operationId: JobstoreService_ListJobPurgePolicy
      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/jobstoreListJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/task:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_CreateTask
      description: ''
      operationId: JobstoreService_CreateTask
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreCreateTaskRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreCreateTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_ListTask
      description: This API can be used to list task based on specification given in query parameters.
      operationId: JobstoreService_ListTask
      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/jobstoreListTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/ref-update:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_RefUpdate
      description: This API can be used to ADD/DELETE reference between two resources.
      operationId: JobstoreService_RefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreRefUpdateRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreRefUpdateResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/ext-ref-update:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_ExtRefUpdate
      description: This API can be used to create/delete reference for ExtRef table.
      operationId: JobstoreService_ExtRefUpdate
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreExtRefUpdateRequest'
        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
  /jobstore/job:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_CreateJob
      description: ''
      operationId: JobstoreService_CreateJob
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreCreateJobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreCreateJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_ListJob
      description: This API can be used to list job based on specification given in query parameters.
      operationId: JobstoreService_ListJob
      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/jobstoreListJobResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/job-purge-policy/{ID}:
    put:
      tags:
      - JobstoreService
      summary: JobstoreService_UpdateJobPurgePolicy
      description: ''
      operationId: JobstoreService_UpdateJobPurgePolicy
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreUpdateJobPurgePolicyRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreUpdateJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_GetJobPurgePolicy
      description: ''
      operationId: JobstoreService_GetJobPurgePolicy
      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/jobstoreGetJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - JobstoreService
      summary: JobstoreService_DeleteJobPurgePolicy
      description: ''
      operationId: JobstoreService_DeleteJobPurgePolicy
      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/jobstoreDeleteJobPurgePolicyResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/deleted-resource:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_CreateDeletedResource
      description: ''
      operationId: JobstoreService_CreateDeletedResource
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreCreateDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreCreateDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_ListDeletedResource
      description: This API can be used to list deleted-resource based on specification given in query parameters.
      operationId: JobstoreService_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/jobstoreListDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-list-deleted-resource:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkListDeletedResource
      description: This API can be used to list deleted-resource based on specification given in request body.
      operationId: JobstoreService_BulkListDeletedResource
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreListDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreListDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/deleted-resource/{ID}:
    put:
      tags:
      - JobstoreService
      summary: JobstoreService_UpdateDeletedResource
      description: ''
      operationId: JobstoreService_UpdateDeletedResource
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreUpdateDeletedResourceRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreUpdateDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_GetDeletedResource
      description: ''
      operationId: JobstoreService_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/jobstoreGetDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - JobstoreService
      summary: JobstoreService_DeleteDeletedResource
      description: ''
      operationId: JobstoreService_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/jobstoreDeleteDeletedResourceResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/bulk-list-last-published-notification:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_BulkListLastPublishedNotification
      description: This API can be used to list last-published-notification based on specification given in request body.
      operationId: JobstoreService_BulkListLastPublishedNotification
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreListLastPublishedNotificationRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreListLastPublishedNotificationResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/task/{ID}:
    put:
      tags:
      - JobstoreService
      summary: JobstoreService_UpdateTask
      description: ''
      operationId: JobstoreService_UpdateTask
      parameters:
      - name: ID
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreUpdateTaskRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreUpdateTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    get:
      tags:
      - JobstoreService
      summary: JobstoreService_GetTask
      description: ''
      operationId: JobstoreService_GetTask
      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/jobstoreGetTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
    delete:
      tags:
      - JobstoreService
      summary: JobstoreService_DeleteTask
      description: ''
      operationId: JobstoreService_DeleteTask
      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/jobstoreDeleteTaskResponse'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/sync:
    post:
      tags:
      - JobstoreService
      summary: JobstoreService_Sync
      description: This API can be used to CREATE/UPDATE/DELETE multiple resources from database
      operationId: JobstoreService_Sync
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstoreBulkSave'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstoreBulkSave'
        default:
          description: An unexpected error response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      deprecated: false
  /jobstore/purge:
    post:
      tags:
      - JobstoreManager
      summary: JobstoreManager_Purge
      description: RPC to Purge Jobs and Tasks based on purge policy
      operationId: JobstoreManager_Purge
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobstorePurgeJobRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobstorePurgeJobResponse'
        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.
    jobstoreCreateJobResponse:
      title: jobstoreCreateJobResponse
      type: object
      properties:
        job:
          $ref: '#/components/schemas/jobstoreJob'
    jobstorePurgeJobRequest:
      title: jobstorePurgeJobRequest
      type: object
      properties:
        tenant_id:
          type: string
    jobstoreRefUpdateRequest:
      title: jobstoreRefUpdateRequest
      type: object
      properties:
        ref-type:
          type: string
        ref-uuid:
          type: string
        operation:
          type: string
        type:
          type: string
        uuid:
          type: string
    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.
    jobstoreBulkSave:
      title: jobstoreBulkSave
      type: object
      properties:
        task:
          $ref: '#/components/schemas/jobstoreTaskList'
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotificationList'
        ignore_optimistic_lock:
          type: boolean
          description: if IgnoreOptimisticLock is set then optimistic lock wont be enforced in update case.
        job:
          $ref: '#/components/schemas/jobstoreJobList'
        operation:
          type: string
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResourceList'
        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.
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicyList'
    jobstoreCreateTaskResponse:
      title: jobstoreCreateTaskResponse
      type: object
      properties:
        task:
          $ref: '#/components/schemas/jobstoreTask'
    jobstoreStatus:
      title: jobstoreStatus
      enum:
      - NA
      - SUCCESS
      - FAILURE
      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: ''
    jobstoreCreateDeletedResourceRequest:
      title: jobstoreCreateDeletedResourceRequest
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
    jobstoreUpdateJobPurgePolicyRequest:
      title: jobstoreUpdateJobPurgePolicyRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        ID:
          type: string
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
        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.
    jobstoreSubscriptionResponse:
      title: jobstoreSubscriptionResponse
      type: object
      properties:
        updated_timestamp:
          type: string
        task:
          $ref: '#/components/schemas/jobstoreTask'
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
        parent_uuid:
          type: string
        parent_type:
          type: string
        uuid:
          type: string
        action:
          $ref: '#/components/schemas/-UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase'
        job:
          $ref: '#/components/schemas/jobstoreJob'
        resource_type:
          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"
                  }
        owner:
          type: string
        data_struct:
          type: object
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
        name:
          type: string
    jobstoreUpdateDeletedResourceResponse:
      title: jobstoreUpdateDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
    jobstoreUpdateDeletedResourceRequest:
      title: jobstoreUpdateDeletedResourceRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
        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.
    jobstoreCreateDeletedResourceResponse:
      title: jobstoreCreateDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
    jobstoreBulkRefUpdateResponse:
      title: jobstoreBulkRefUpdateResponse
      type: object
      properties:
        uuid:
          type: string
    jobstoreListLastPublishedNotificationResponse:
      title: jobstoreListLastPublishedNotificationResponse
      type: object
      properties:
        count:
          type: string
        last-published-notification:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreLastPublishedNotification'
          description: ''
    jobstoreKeyValuePair:
      title: jobstoreKeyValuePair
      type: object
      properties:
        value:
          type: string
        key:
          type: string
    jobstoreListLastPublishedNotificationRequest:
      title: jobstoreListLastPublishedNotificationRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    jobstoreListJobPurgePolicyResponse:
      title: jobstoreListJobPurgePolicyResponse
      type: object
      properties:
        count:
          type: string
        job-purge-policy:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreJobPurgePolicy'
          description: ''
    jobstoreCreateJobRequest:
      title: jobstoreCreateJobRequest
      type: object
      properties:
        job:
          $ref: '#/components/schemas/jobstoreJob'
    jobstoreUpdateTaskRequest:
      title: jobstoreUpdateTaskRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        task:
          $ref: '#/components/schemas/jobstoreTask'
        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.
    jobstoreUpdateJobRequest:
      title: jobstoreUpdateJobRequest
      type: object
      properties:
        job:
          $ref: '#/components/schemas/jobstoreJob'
        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.
    jobstoreRefUpdateResponse:
      title: jobstoreRefUpdateResponse
      type: object
      properties:
        uuid:
          type: string
    jobstoreDeleteJobResponse:
      title: jobstoreDeleteJobResponse
      type: object
      properties:
        ID:
          type: string
    jobstoreUpdateJobPurgePolicyResponse:
      title: jobstoreUpdateJobPurgePolicyResponse
      type: object
      properties:
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
    jobstorePurgeJobResponse:
      title: jobstorePurgeJobResponse
      type: object
      properties:
        status:
          $ref: '#/components/schemas/jobstoreStatus'
        error_message:
          type: string
          description: Message from server.
    baseservicesFilter:
      title: baseservicesFilter
      type: object
      properties:
        values:
          type: array
          items:
            type: string
          description: ''
        key:
          type: string
    jobstoreGetTaskResponse:
      title: jobstoreGetTaskResponse
      type: object
      properties:
        task:
          $ref: '#/components/schemas/jobstoreTask'
    jobstoreJobPurgePolicyList:
      title: jobstoreJobPurgePolicyList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreJobPurgePolicy'
          description: ''
    -UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase:
      title: -UNKNOWNTheimplicitdefaultenumvalue.-CREATEForobjectcreatecase-UPDATEForobjectupdatecase-DELETEForobjectdeletecase
      enum:
      - UNKNOWN
      - CREATE
      - UPDATE
      - DELETE
      type: string
    jobstoreCreateJobPurgePolicyResponse:
      title: jobstoreCreateJobPurgePolicyResponse
      type: object
      properties:
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
    jobstoreGetLastPublishedNotificationResponse:
      title: jobstoreGetLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
    jobstoreTask:
      title: jobstoreTask
      type: object
      properties:
        parent_uuid:
          type: string
        parent_type:
          type: string
        href:
          type: string
        parent_task:
          type: string
        created_timestamp:
          type: string
        updated_by:
          type: string
        updated_timestamp:
          type: string
        task_type:
          type: string
        display_name:
          type: string
        uuid:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        created_by:
          type: string
        progress:
          type: string
          description: Progress in percentage.
        status_message:
          type: string
        annotations:
          $ref: '#/components/schemas/jobstoreKeyValuePairs'
        resources:
          type: array
          items:
            type: string
          description: Resources which are affected as part of this job. e.g list of devices.
        status:
          type: string
        description:
          type: string
        start_time:
          type: string
        perms2:
          $ref: '#/components/schemas/jobstorePermType2'
        name:
          type: string
        finish_time:
          type: string
        meta:
          $ref: '#/components/schemas/jobstoreMetaType'
    jobstoreCreateLastPublishedNotificationRequest:
      title: jobstoreCreateLastPublishedNotificationRequest
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
    jobstoreJob:
      title: jobstoreJob
      type: object
      properties:
        parent_uuid:
          type: string
        parent_type:
          type: string
        callback_params:
          type: string
        task_child_refs:
          type: array
          items:
            $ref: '#/components/schemas/jobstorechildRef'
          description: ''
        href:
          type: string
        created_timestamp:
          type: string
        updated_by:
          type: string
        updated_timestamp:
          type: string
        display_name:
          type: string
        uuid:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        created_by:
          type: string
        trigger:
          type: string
        progress:
          type: string
          description: Progress in percentage.
        type:
          type: string
        annotations:
          $ref: '#/components/schemas/jobstoreKeyValuePairs'
        resources:
          type: array
          items:
            type: string
          description: Resources which are affected as part of this job. e.g list of devices.
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreKeyValuePair'
          description: ''
        status:
          type: string
        description:
          type: string
        start_time:
          type: string
        perms2:
          $ref: '#/components/schemas/jobstorePermType2'
        name:
          type: string
        finish_time:
          type: string
        status_message:
          type: string
        schedule_time:
          type: string
        meta:
          $ref: '#/components/schemas/jobstoreMetaType'
        callback_url:
          type: string
    jobstoreCreateJobPurgePolicyRequest:
      title: jobstoreCreateJobPurgePolicyRequest
      type: object
      properties:
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
    jobstoreListDeletedResourceRequest:
      title: jobstoreListDeletedResourceRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    jobstoreBulkRefUpdateRequest:
      title: jobstoreBulkRefUpdateRequest
      type: object
      properties:
        refs:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreRefUpdateRequest'
          description: ''
        type:
          type: string
        uuid:
          type: string
    baseservicesOperation:
      title: baseservicesOperation
      enum:
      - AND
      - OR
      type: string
    jobstoreListJobResponse:
      title: jobstoreListJobResponse
      type: object
      properties:
        count:
          type: string
        job:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreJob'
          description: ''
    jobstoreListJobRequest:
      title: jobstoreListJobRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    jobstoreGetJobResponse:
      title: jobstoreGetJobResponse
      type: object
      properties:
        job:
          $ref: '#/components/schemas/jobstoreJob'
    jobstoreExtRefUpdateRequest:
      title: jobstoreExtRefUpdateRequest
      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
    jobstoreShareType:
      title: jobstoreShareType
      type: object
      properties:
        access:
          type: string
        scope:
          type: string
        levels:
          type: string
        scope_types:
          type: array
          items:
            type: string
          description: ''
    jobstoreGetDeletedResourceResponse:
      title: jobstoreGetDeletedResourceResponse
      type: object
      properties:
        deleted-resource:
          $ref: '#/components/schemas/jobstoreDeletedResource'
    jobstoreListTaskResponse:
      title: jobstoreListTaskResponse
      type: object
      properties:
        count:
          type: string
        task:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreTask'
          description: ''
    jobstoreTaskList:
      title: jobstoreTaskList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreTask'
          description: ''
    jobstoreUpdateLastPublishedNotificationRequest:
      title: jobstoreUpdateLastPublishedNotificationRequest
      type: object
      properties:
        ignore_optimistic_lock:
          type: boolean
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
        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.
    jobstoreBulkExtRefUpdateRequest:
      title: jobstoreBulkExtRefUpdateRequest
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreExtRefUpdateRequest'
          description: ''
    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
    jobstoreLastPublishedNotificationList:
      title: jobstoreLastPublishedNotificationList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreLastPublishedNotification'
          description: ''
    baseservicesUUIDs:
      title: baseservicesUUIDs
      type: object
      properties:
        uuids:
          type: array
          items:
            type: string
          description: ''
    jobstorechildRef:
      title: jobstorechildRef
      type: object
      properties:
        uuid:
          type: string
    jobstoreJobPurgePolicy:
      title: jobstoreJobPurgePolicy
      type: object
      properties:
        updated_timestamp:
          type: string
        parent_uuid:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        tenant_id:
          type: string
        parent_type:
          type: string
        perms2:
          $ref: '#/components/schemas/jobstorePermType2'
        name:
          type: string
        retention_period:
          type: string
        href:
          type: string
        meta:
          $ref: '#/components/schemas/jobstoreMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        annotations:
          $ref: '#/components/schemas/jobstoreKeyValuePairs'
        uuid:
          type: string
    jobstoreUpdateTaskResponse:
      title: jobstoreUpdateTaskResponse
      type: object
      properties:
        task:
          $ref: '#/components/schemas/jobstoreTask'
    jobstoreDeletedResource:
      title: jobstoreDeletedResource
      type: object
      properties:
        updated_timestamp:
          type: string
        parent_uuid:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        parent_type:
          type: string
        perms2:
          $ref: '#/components/schemas/jobstorePermType2'
        name:
          type: string
        href:
          type: string
        meta:
          $ref: '#/components/schemas/jobstoreMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        data:
          type: string
          description: data of the resource.
        annotations:
          $ref: '#/components/schemas/jobstoreKeyValuePairs'
        resource_type:
          type: string
          description: Type of the resource.
        uuid:
          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"
            }
    jobstorePermType2:
      title: jobstorePermType2
      type: object
      properties:
        owner:
          type: string
        global_access:
          type: string
        share:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreShareType'
          description: ''
    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
    jobstoreMetaType:
      title: jobstoreMetaType
      type: object
      properties:
        enable:
          type: boolean
        user_visible:
          type: boolean
    jobstoreGetJobPurgePolicyResponse:
      title: jobstoreGetJobPurgePolicyResponse
      type: object
      properties:
        job-purge-policy:
          $ref: '#/components/schemas/jobstoreJobPurgePolicy'
    jobstoreListDeletedResourceResponse:
      title: jobstoreListDeletedResourceResponse
      type: object
      properties:
        count:
          type: string
        deleted-resource:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreDeletedResource'
          description: ''
    jobstoreUpdateLastPublishedNotificationResponse:
      title: jobstoreUpdateLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
    jobstoreLastPublishedNotification:
      title: jobstoreLastPublishedNotification
      type: object
      properties:
        updated_timestamp:
          type: string
        parent_uuid:
          type: string
        description:
          type: string
        configuration_version:
          type: string
          description: Configuration Version for the object.
        parent_type:
          type: string
        last_published_timestamp:
          type: string
        name:
          type: string
        perms2:
          $ref: '#/components/schemas/jobstorePermType2'
        href:
          type: string
        meta:
          $ref: '#/components/schemas/jobstoreMetaType'
        created_by:
          type: string
        updated_by:
          type: string
        created_timestamp:
          type: string
        annotations:
          $ref: '#/components/schemas/jobstoreKeyValuePairs'
        resource_type:
          type: string
          description: Type of the resource.
        uuid:
          type: string
    jobstoreDeleteTaskResponse:
      title: jobstoreDeleteTaskResponse
      type: object
      properties:
        ID:
          type: string
    jobstoreJobList:
      title: jobstoreJobList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreJob'
          description: ''
    jobstoreDeleteDeletedResourceResponse:
      title: jobstoreDeleteDeletedResourceResponse
      type: object
      properties:
        ID:
          type: string
    jobstoreDeleteJobPurgePolicyResponse:
      title: jobstoreDeleteJobPurgePolicyResponse
      type: object
      properties:
        ID:
          type: string
    jobstoreCreateTaskRequest:
      title: jobstoreCreateTaskRequest
      type: object
      properties:
        task:
          $ref: '#/components/schemas/jobstoreTask'
    jobstoreUpdateJobResponse:
      title: jobstoreUpdateJobResponse
      type: object
      properties:
        job:
          $ref: '#/components/schemas/jobstoreJob'
    jobstoreKeyValuePairs:
      title: jobstoreKeyValuePairs
      type: object
      properties:
        key_value_pair:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreKeyValuePair'
          description: ''
    jobstoreCreateLastPublishedNotificationResponse:
      title: jobstoreCreateLastPublishedNotificationResponse
      type: object
      properties:
        last-published-notification:
          $ref: '#/components/schemas/jobstoreLastPublishedNotification'
    jobstoreDeletedResourceList:
      title: jobstoreDeletedResourceList
      type: object
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/jobstoreDeletedResource'
          description: ''
    jobstoreDeleteLastPublishedNotificationResponse:
      title: jobstoreDeleteLastPublishedNotificationResponse
      type: object
      properties:
        ID:
          type: string
    jobstoreListJobPurgePolicyRequest:
      title: jobstoreListJobPurgePolicyRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
    jobstoreListTaskRequest:
      title: jobstoreListTaskRequest
      type: object
      properties:
        spec:
          $ref: '#/components/schemas/baseservicesListSpec'
tags:
- name: JobstoreService
  description: ''
- name: JobstoreManager
  description: ''
