> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Update job request to update Deployment tag on edge nodes in bulk.

> PUT /api/v1/jobs/devices/deployment/tags. Jobs API reference.

Sign in to try this endpointExplore the parameters, examples, and responses below. Connect your ZedCloud session when you’re ready to send a request.

> [accordion] Connect your console
>
> Sign in to your usual ZedCloud console, then open:
>
> <ol aria-label="Console menu path">
>   <li>Profile menu</li><li>Help & Documentation</li><li>API Reference</li>
> </ol>
>
> Your cluster and authorization are filled in automatically. No token to copy.
> [More about signing in ](https://zededa.mintlify.site/api-reference/authentication.md#sign-in-to-the-api-reference)

&#x20;Modifying requests stay off until you enable them.

[Authentication](https://zededa.mintlify.site/api-reference/authentication.md) · [API availability](https://zededa.mintlify.site/api-reference/clusters.md) · [Download OpenAPI](https://zededa.mintlify.site/openapi/services/jobs.json)

> [!WARNING]
>
> This operation can change resources or access. After signing in, open **API request settings** and select **Enable modifying requests**, then **Apply settings**, to use its playground. Check the request body and destination before selecting **Send**. Your existing API permissions still apply.

A successful response.
Bad Request. The API gateway did not process the request because of missing parameter or invalid value of parameters.
Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
Forbidden. The API gateway did not process the request because the requestor does not have edge-app level access permission for the operation or does not have access scope to the project.
Not Found. The API gateway did not process the request because the requested resource could not be found.
Conflict. The API gateway did not process the request because this operation will conflict with an already existing asynchronous job request record.
Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
An unexpected error response.


## OpenAPI

````yaml openapi/services/jobs.json PUT /v1/jobs/devices/deployment/tags
openapi: 3.0.0
info:
  title: ZEDEDA Job Service
  description: >-
    The ZEDEDA Job Service is helper service to ZEDEDA Edge Application Service
    and ZEDEDA Edge Node Service. This service allows device administrators and
    operators to update Edge nodes and manage Edge Applications in bulk. Jobs
    execute edge node management and edge application management against a set
    of edge nodes or edge applications matching a selection criteria. For
    example, an operator would use a job to initiate and track installation of a
    lightning detection edge application on all edge nodes inistalled in all
    windmills in a particular Texas ZIP code (defined as a project).
  termsOfService: https://www.zededa.com/terms
  version: '1.0'
  contact:
    name: ZEDEDA API Support
    url: https://www.zededa.com/support
    email: support@zededa.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://{apiHost}/api
    variables:
      apiHost:
        default: invalid.invalid
        description: Connect from ZedUI to supply your verified API destination.
security:
  - BearerToken: []
tags:
  - name: BulkJobOps
externalDocs:
  description: ZEDEDA Product Documentation
  url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/jobs
paths:
  /v1/jobs/devices/deployment/tags:
    put:
      tags:
        - BulkJobOps
      summary: Update job request to update Deployment tag on edge nodes in bulk.
      description: Update job request to update Deployment tag on edge nodes in bulk.
      operationId: BulkJobOps_BulkUpdateEdgeNodeBaseOSDeploymentTag
      parameters:
        - name: X-Request-Id
          in: header
          required: false
          description: User-Agent specified id to track a request
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/BulkConfig'
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: >-
            Bad Request. The API gateway did not process the request because of
            missing parameter or invalid value of parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: >-
            Unauthorized. The API gateway did not process the request because it
            lacks valid authentication credentials for the target resource. The
            request header has either no authorization details or an
            authorization that has been refused.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: >-
            Forbidden. The API gateway did not process the request because the
            requestor does not have edge-app level access permission for the
            operation or does not have access scope to the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: >-
            Not Found. The API gateway did not process the request because the
            requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: >-
            Conflict. The API gateway did not process the request because this
            operation will conflict with an already existing asynchronous job
            request record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: >-
            Internal Server Error. The API gateway experienced an unexpected
            condition. Specific error condition is indicated in error codes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '504':
          description: >-
            Gateway Timeout. The API gateway did not receive a timely response
            from an upstream microservice it needed to communicate with in order
            to complete the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      externalDocs:
        description: ZEDEDA Product Documentation
        url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/jobs
components:
  requestBodies:
    BulkConfig:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BulkConfig'
      required: true
  schemas:
    ZsrvResponse:
      type: object
      properties:
        operationType:
          title: |-
            Describes one of the operations type : possible values
                                    Read/Delete/Create/Update/List
          allOf:
            - $ref: '#/components/schemas/ZcOpsType'
        operationStatus:
          title: if this is log running job
          allOf:
            - $ref: '#/components/schemas/ZcOpsStatus'
        objectKind:
          type: string
          title: zedcloud object kind on which the operation was performed
        objectId:
          type: string
          title: Unique value identifies the object that was operated on
        objectName:
          type: string
          title: name of the object
        objectRevision:
          type: string
          title: |-
            object revision post the operation, note Read operation
            doesn't change the revision
        objectType:
          $ref: '#/components/schemas/ObjectType'
        operationTime:
          type: string
          title: time of operation
        startTime:
          type: string
          title: total time taken by operations
        endTime:
          type: string
        user:
          type: string
          title: the operation is performed on behalf of this user
        httpStatusCode:
          type: integer
          format: int32
          title: http response
        httpStatusMsg:
          type: string
          title: summary of the error in text format
        jobId:
          type: string
          title: for tracking asynchronous tasks
        error:
          type: array
          items:
            $ref: '#/components/schemas/ZsrvError'
          title: |-
            one or more errors will be set if the operation failed
            i.e. httpStatusCode != 2xx
    googlerpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    BulkConfig:
      type: object
      properties:
        selectionCriteria:
          $ref: '#/components/schemas/SelectionCriteria'
        jobId:
          type: string
        jobName:
          type: string
        baseosUpdate:
          $ref: '#/components/schemas/BaseosUpdate'
        instanceDeploy:
          $ref: '#/components/schemas/AppInstanceDeploy'
        instanceRefreshAndPurge:
          $ref: '#/components/schemas/AppInstanceRefreshAndPurge'
        modelImport:
          $ref: '#/components/schemas/ModelImport'
        bundleImport:
          $ref: '#/components/schemas/BundleImport'
        tagUpdate:
          $ref: '#/components/schemas/TagUpdate'
        deploymentTagUpdate:
          $ref: '#/components/schemas/DeploymentTagUpdate'
        deviceProjectAndTargetUpdate:
          $ref: '#/components/schemas/DeviceProjectAndTargetUpdate'
      description: config required for bulk ops.
    ZcOpsType:
      type: string
      enum:
        - OPS_TYPE_UNSPECIFIED
        - OPS_TYPE_READ
        - OPS_TYPE_DELETE
        - OPS_TYPE_CREATE
        - OPS_TYPE_UPDATE
        - OPS_TYPE_LIST
      default: OPS_TYPE_UNSPECIFIED
      title: ZedCloud internal operation type
    ZcOpsStatus:
      type: string
      enum:
        - OPS_STATUS_UNSPECIFIED
        - OPS_STATUS_PENDING
        - OPS_STATUS_ONGOING
        - OPS_STATUS_COMPLETE
      default: OPS_STATUS_UNSPECIFIED
      description: >-
        - OPS_STATUS_PENDING: In rare cases, system may not start operation when
        it was requested. Client will be notified that operation is PENDING
         - OPS_STATUS_ONGOING: system will start the operation, but at the time response was generated, operation is still ONGOING.
         - OPS_STATUS_COMPLETE: Even if the result of the operations may result in failure, but the OpsStatus will marked COMPLETE for almost all cases.
      title: ZedCloud internal operation status
    ObjectType:
      type: string
      enum:
        - OBJECT_TYPE_UNSPECIFIED
        - OBJECT_TYPE_USER
        - OBJECT_TYPE_EDGE_NODE
        - OBJECT_TYPE_EDGE_APP
        - OBJECT_TYPE_IMAGE
        - OBJECT_TYPE_EDGE_APP_INSTANCE
        - OBJECT_TYPE_PROJECT
        - OBJECT_TYPE_NETWORK
        - OBJECT_TYPE_DATASTORE
        - OBJECT_TYPE_SERVICE
        - OBJECT_TYPE_SERVICE_INSTANCE
        - OBJECT_TYPE_ENTERPRISE
        - OBJECT_TYPE_ROLE
        - OBJECT_TYPE_CREDENTIAL
        - OBJECT_TYPE_NETWORK_INSTANCE
        - OBJECT_TYPE_VOLUME_INSTANCE
        - OBJECT_TYPE_REALM
        - OBJECT_TYPE_AUTHPROFILE
        - OBJECT_TYPE_POLICY
        - OBJECT_TYPE_APP_POLICY
        - OBJECT_TYPE_CLUSTER_INSTANCE
        - OBJECT_TYPE_PLUGIN
        - OBJECT_TYPE_DOC_POLICY
        - OBJECT_TYPE_ORCHESTRATOR_CLUSTER
        - OBJECT_TYPE_TAGS
        - OBJECT_TYPE_EDGE_NODE_INTERFACE
        - OBJECT_TYPE_DEPLOYMENT
        - OBJECT_TYPE_ENTITLEMENTS
        - OBJECT_TYPE_DATA_STREAM
        - OBJECT_TYPE_API_USAGE
        - OBJECT_TYPE_APP_INSTANCE_SNAPSHOT
        - OBJECT_TYPE_PATCH_ENVELOPE
        - OBJECT_TYPE_RESOURCE_USAGE_TRACK
        - OBJECT_TYPE_PATCH_ENVELOPE_REFERENCE
        - OBJECT_TYPE_DEV_PASSTHROUGH
        - OBJECT_TYPE_EDGE_NODE_CLUSTER
        - OBJECT_TYPE_ASSET_GROUP
        - OBJECT_TYPE_APP_PROFILE
        - OBJECT_TYPE_PROFILE_DEPLOYMENT
        - OBJECT_TYPE_ZKS_INSTANCE
        - OBJECT_TYPE_CLUSTER_GROUP
      default: OBJECT_TYPE_UNSPECIFIED
    ZsrvError:
      type: object
      properties:
        ec:
          title: |-
            Enumrated error code, describes more granular numerical
            value than just httpStatus
          allOf:
            - $ref: '#/components/schemas/ZsrvErrorCode'
        location:
          type: string
          title: 'Ignore: Internal field only'
        details:
          type: string
          title: Field captures string description of details
    protobufAny:
      type: object
      properties:
        typeUrl:
          type: string
        value:
          type: string
          format: byte
    SelectionCriteria:
      type: object
      properties:
        projectId:
          type: string
        bundleId:
          type: string
        deviceIdList:
          type: array
          items:
            type: string
    BaseosUpdate:
      type: object
      properties:
        baseimage:
          $ref: '#/components/schemas/BaseOSImage'
    AppInstanceDeploy:
      type: object
      properties:
        instanceConfig:
          type: array
          items:
            $ref: '#/components/schemas/BulkInstanceConfig'
          description: >-
            XXX for now user will send only one common config. In future with
            complex

            filtering and payload, user can send instance config per device.
    AppInstanceRefreshAndPurge:
      type: object
      properties:
        purge:
          type: boolean
    ModelImport:
      type: object
      properties:
        modelConfig:
          type: array
          items:
            $ref: '#/components/schemas/SysModelDetail'
    BundleImport:
      type: object
      properties:
        bundleConfig:
          type: array
          items:
            $ref: '#/components/schemas/BundleDetail'
    TagUpdate:
      type: object
      properties:
        tags:
          type: object
          additionalProperties:
            type: string
          description: tag to be updated on the device
          readOnly: true
        override:
          type: boolean
          description: >-
            Set this flag to override given tags over existing tags. Otherwise
            the tags will be merged/appended
      description: device tag will be required to auto deploy objects on the device
      title: tags required for the devices
      required:
        - tags
    DeploymentTagUpdate:
      type: object
      properties:
        deploymentTag:
          type: string
          description: deployment tag to be updated on the device
          readOnly: true
      description: >-
        deployment tag will be required to target deployment version on the
        device
      title: deployment tag required for the devices
      required:
        - deploymentTag
    DeviceProjectAndTargetUpdate:
      type: object
      properties:
        projectId:
          type: string
          description: project id.
        tags:
          type: object
          additionalProperties:
            type: string
          description: tag to be updated on the device
          readOnly: true
        deploymentTag:
          type: string
          description: deployment tag to be updated on the device
          readOnly: true
        override:
          type: boolean
          description: >-
            Set this flag to override given tags over existing tags. Otherwise
            the tags will be merged/appended
      description: project id  will be required to move the device to a new project
      title: project id required for the devices
      required:
        - projectId
    ZsrvErrorCode:
      type: string
      enum:
        - zMsgErrorNone
        - zMsgSucess
        - NotFound
        - AlreadyExists
        - VersionMismatch
        - RangeError
        - LargeResult
        - IncompleteData
        - InvalidData
        - FunctionUnsupported
        - NoMemory
        - SendFailure
        - Timeout
        - BadReqBody
        - BadReqParam
        - InvalidFieldFormat
        - UrlNotFound
        - ApiVersionNotSupported
        - Unauthorized
        - Forbidden
        - Conflict
        - NotModified
        - DependencyConflict
        - JsonFmtError
        - ProtoFmtError
        - CertError
        - DataBaseConnection
        - DBError
        - zMsgAccepted
        - zMsgCreated
        - PreConditionFailed
        - InternalServerError
      default: zMsgErrorNone
      description: |-
        - zMsgErrorNone: common validation errors
         - IncompleteData: message had fields that weren't filled in
         - InvalidData: message contained the field that wasn't expected
         - FunctionUnsupported: this feature unavailable on this version of device
         - InvalidFieldFormat: message contained the field that wasn't correctly formatted
         - JsonFmtError: Marshal / Unmarshal errors
         - DataBaseConnection: generic DB error
      title: ZedCould internal error code
    BaseOSImage:
      type: object
      properties:
        uuid:
          type: string
          description: system generated unique id for an image
        version:
          type: string
          description: image version
        imageName:
          type: string
          description: image name
        activate:
          type: boolean
          description: activation flag
        imvolId:
          type: string
          description: immutable Volume for this base image
      description: Base OS image request details
      title: Base OS image payload detail
      required:
        - uuid
        - version
        - imageName
        - activate
    BulkInstanceConfig:
      type: object
      properties:
        deviceId:
          type: string
        appInstanceConfig:
          $ref: '#/components/schemas/AppInstance'
        netInstanceDetail:
          $ref: '#/components/schemas/NetworkConfigOrDefault'
        netInstanceConfig:
          type: array
          items:
            $ref: '#/components/schemas/NetInstConfig'
    SysModelDetail:
      type: object
      properties:
        name:
          type: string
        parentModelId:
          type: string
        customModelFields:
          $ref: '#/components/schemas/CustomUpdateModelFields'
    BundleDetail:
      type: object
      properties:
        name:
          type: string
        parentBundleId:
          type: string
    AppInstance:
      type: object
      properties:
        id:
          type: string
          description: System defined universally unique Id of the app instance
          readOnly: true
          pattern: '[0-9A-Za-z-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstance/properties/id'
              keyword: uniqueItems
              sourceValue: true
        name:
          type: string
          description: >-
            User defined name of the app instance, unique across the enterprise.
            Once app instance is created, name can’t be changed
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstance/properties/name'
              keyword: uniqueItems
              sourceValue: true
        title:
          type: string
          description: >-
            User defined title of the app instance. Title can be changed at any
            time
          maxLength: 256
          minLength: 3
          pattern: ^[a-zA-Z0-9]+[a-zA-Z0-9!-~ ]+$
        description:
          type: string
          description: Detailed description of the app instance
          maxLength: 256
        revision:
          description: app instance object revision details
          allOf:
            - $ref: '#/components/schemas/ObjectRevision'
        projectId:
          type: string
          description: project name which the given app instance belong to
        tags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Tags are name/value pairs that enable you to categorize resources.
            Tag names are case insensitive with max_length 512 and min_length 3.
            Tag values are case sensitive with max_length 256 and min_length 3.
          maxLength: 32
          pattern: ^[^<%&?/\>]+$
        clusterID:
          type: string
          description: >-
            System defined universally unique clusterInstance ID, unique across
            the enterprise.
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstance/properties/clusterID'
              keyword: uniqueItems
              sourceValue: true
        appId:
          type: string
          description: >-
            User defined name of the edge app, unique across the enterprise.
            Once app name is created, name can’t be changed
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstance/properties/appId'
              keyword: uniqueItems
              sourceValue: true
        deviceId:
          type: string
          description: >-
            User defined name of the device name, unique across the enterprise.
            Once device name is defined, name can’t be changed
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstance/properties/deviceId'
              keyword: uniqueItems
              sourceValue: true
        activate:
          type: boolean
          description: app instance activation flag
        vminfo:
          description: virtual machine info
          allOf:
            - $ref: '#/components/schemas/vm'
        drives:
          type: array
          items:
            $ref: '#/components/schemas/drive'
          description: drive details
        interfaces:
          type: array
          items:
            $ref: '#/components/schemas/appInterface'
          description: application interfaces
        userData:
          type: string
          description: >-
            Deprecated: Application initiazation script in cloud-config format
            to be used by cloud-init
        customConfig:
          description: >-
            Application initialization script template in cloud-config format
            and user specified values
          allOf:
            - $ref: '#/components/schemas/CustomConfig'
        collectStatsIPAddr:
          type: string
          description: holds the static Ip of the app instance
        bundleversion:
          type: string
          description: version of bundle app is referring to
        logs:
          description: App Instance logs
          allOf:
            - $ref: '#/components/schemas/AppInstanceLogs'
        restart:
          description: 'Restart counter: ZedCloudOpsCmd'
          allOf:
            - $ref: '#/components/schemas/ZedCloudOpsCmd'
        refresh:
          description: 'Refresh counter: ZedCloudOpsCmd'
          allOf:
            - $ref: '#/components/schemas/ZedCloudOpsCmd'
        purge:
          description: 'Purge counter: ZedCloudOpsCmd'
          allOf:
            - $ref: '#/components/schemas/ZedCloudOpsCmd'
        remoteConsole:
          type: boolean
          description: Remote console flag
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
          description: user encrypted secrets map
        cryptoKey:
          type: string
          description: Crypto Key for decrypting user secret information
        manifestInfo:
          description: app manifest Info
          allOf:
            - $ref: '#/components/schemas/ManifestInfo'
        appType:
          description: type of bundle
          allOf:
            - $ref: '#/components/schemas/AppType'
        isSecretUpdated:
          type: boolean
          description: >-
            This field tells whether user secrets has updated or not, especially
            the cusotom config
        appPolicyId:
          type: string
          description: app policy id
        deploymentType:
          description: 'type of deployment for the app, eg: azure, k3s, standalone'
          allOf:
            - $ref: '#/components/schemas/DeploymentType'
        userDefinedVersion:
          type: string
          description: Instance version tells which edge app does this instance is running
        startDelayInSeconds:
          type: integer
          format: int64
          description: >-
            start delay is the time in seconds EVE should wait after boot before
            starting the application instance
        cloudInitVersion:
          type: integer
          format: int64
          description: >-
            Cloud-init version that indicates whether it necessary or not for
            cloud-init tool to restart in a guest
        allowSnapshots:
          type: boolean
          description: Flag to determine if a snapshot creation is allowed
        maxSnapshots:
          type: integer
          format: int64
          description: Maximum number of snapshots allowed to be created
        availableSnapshots:
          type: array
          items:
            $ref: '#/components/schemas/AppInstanceSnapshot'
          description: The list of available snapshots of the application instance
        patchEnvelopeId:
          type: string
          description: patch envelope id
        patchEnvelopeName:
          type: string
          description: patch envelope name
        edgeNodeCluster:
          description: edge node cluster
          allOf:
            - $ref: '#/components/schemas/AppInstEdgeNodeCluster'
        dockerComposeYamlText:
          type: string
          description: Docker compose base64 encoded plain text
          title: internal field
          readOnly: true
        dockerComposeTarImageName:
          type: string
          description: Docker compose tar image name
          title: internal field
          readOnly: true
        datastoreIdList:
          type: array
          items:
            type: string
          description: List of datastore ids containing private registry credentials
          title: internal field
          readOnly: true
        PersistentRuntimeSizeBytes:
          type: string
          format: uint64
          description: Persistent runtime size in bytes
      description: App Instance detail
      title: App Instance detail
      required:
        - name
        - title
        - projectId
        - appId
        - deviceId
        - activate
    NetworkConfigOrDefault:
      type: object
      properties:
        netInstanceDefault:
          type: boolean
        netInstanceConfig:
          $ref: '#/components/schemas/NetInstConfig'
    NetInstConfig:
      type: object
      properties:
        id:
          type: string
          description: System defined universally unique Id of the network instance
          readOnly: true
          pattern: '[0-9A-Za-z-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/NetInstConfig/properties/id'
              keyword: uniqueItems
              sourceValue: true
        name:
          type: string
          description: >-
            User defined name of the network instance, unique across the
            enterprise. Once object is created, name can’t be changed
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/NetInstConfig/properties/name'
              keyword: uniqueItems
              sourceValue: true
        title:
          type: string
          description: >-
            User defined title of the network instance. Title can be changed at
            any time
          maxLength: 256
          minLength: 3
          pattern: ^[a-zA-Z0-9]+[a-zA-Z0-9!-~ ]+$
        description:
          type: string
          description: Detailed description of the network instance
          maxLength: 256
        revision:
          description: system defined info for the object
          allOf:
            - $ref: '#/components/schemas/ObjectRevision'
        projectId:
          type: string
          description: id of the project in which network instance is created
        tags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Tags are name/value pairs that enable you to categorize resources.
            Tag names are case insensitive with max_length 512 and min_length 3.
            Tag values are case sensitive with max_length 256 and min_length 3.
          maxLength: 32
          pattern: ^[^<%&?/\>]+$
        clusterID:
          type: string
          description: id of the Cluster in which the network instance is configured
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/NetInstConfig/properties/clusterID'
              keyword: uniqueItems
              sourceValue: true
        deviceId:
          type: string
          description: id of the device on which network instance is created
          title: device on which this network is running
        port:
          type: string
          description: name of port mapping in the model
          title: name of port mapping in the model
        portTags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Tags are name/value pairs that enable you to categorize resources.
            Tag names are case insensitive with max_length 512 and min_length 3.
            Tag values are case sensitive with max_length 256 and min_length 3.
          maxLength: 32
          pattern: ^[^<%&?/\>]+$
        kind:
          description: Kind of Network Instance ( Local, Switch etc )
          allOf:
            - $ref: '#/components/schemas/NetworkInstanceKind'
        dhcp:
          type: boolean
          description: Deprecated
          title: dhcp - DEPRECATED
        type:
          description: Type of DHCP for this Network Instance
          allOf:
            - $ref: '#/components/schemas/NetworkInstanceDhcpType'
        ip:
          description: Dhcp Server Configuration
          allOf:
            - $ref: '#/components/schemas/DhcpServerConfig'
        dnsList:
          type: array
          items:
            $ref: '#/components/schemas/StaticDNSList'
          description: List of Static DNS entries
        oconfig:
          type: string
          title: Deprecated
        lisp:
          description: 'Lisp Config : read only for now. Deprecated.'
          allOf:
            - $ref: '#/components/schemas/LispConfig'
        opaque:
          description: Service specific Config
          allOf:
            - $ref: '#/components/schemas/NetInstOpaqueConfig'
        deviceDefault:
          type: boolean
          description: >-
            flag to indicate if this is the default network instance for the
            device
          title: flag to indicate if this is default network
        networkPolicyId:
          type: string
          description: id of the network policy to be attached to this network instance
        propagateConnectedRoutes:
          type: boolean
          description: Automatically propagate connected routes
        staticRoutes:
          type: array
          items:
            $ref: '#/components/schemas/StaticIPRoute'
          description: List of Static IP routes
        mtu:
          type: integer
          format: int64
          description: >-
            Maximum transmission unit (MTU) to set for the network instance and
            all application interfaces connected to it
        edgeNodeCluster:
          description: Edge Node Cluster
          allOf:
            - $ref: '#/components/schemas/NetInstEdgeNodeCluster'
        forwardLldp:
          type: boolean
          description: >-
            Enables forwarding of LLDP (Link Layer Discovery Protocol) frames
            across this

            network instance.

            LLDP is used by devices to advertise identity and capabilities to
            directly

            connected neighbors, and is often required for topology discovery
            and network

            management tools.

            When enabled, LLDP frames (EtherType 0x88cc) are not dropped or
            suppressed

            by the forwarding plane.
      description: >-
        Network instance provides Edge applications a variety of connectivity
        choices for all types of networks. This enables logical secure
        connectivity between Edge applications within a single Edge node and
        within a logical group of Edge nodes. This provides detailed
        configuration of a Network instance.
      title: Network instance detailed configuration
      required:
        - name
        - title
        - deviceId
        - port
        - kind
    CustomUpdateModelFields:
      type: object
      properties:
        customModelAttributes:
          $ref: '#/components/schemas/ModelAttributes'
    ObjectRevision:
      type: object
      properties:
        prev:
          type: string
          description: Previous
        curr:
          type: string
          description: Current Database version of the record
        createdAt:
          type: object
          format: date-time
          description: >-
            The time, in milliseconds since the epoch, when the record was
            created.
        createdBy:
          type: string
          description: 'User data: Created By'
        updatedAt:
          type: object
          format: date-time
          description: >-
            The time, in milliseconds since the epoch, when the record was last
            updated.
        updatedBy:
          type: string
          description: 'User data: Updated By'
      description: >-
        ObjectRevision store the user details, who has doent the necessary
        operation like Create Operation or update operation
      title: ObjectRevision is used to store the user information.
      required:
        - curr
        - createdAt
        - createdBy
        - updatedAt
        - updatedBy
    vm:
      type: object
      properties:
        cpus:
          type: number
          format: int64
          description: CPUs
        memory:
          type: number
          format: int64
          description: Memory
        mode:
          description: Hardware Virtualization
          allOf:
            - $ref: '#/components/schemas/hvMode'
        vnc:
          type: boolean
          description: VNC
        vncDisplay:
          type: number
          format: int64
          description: VNC display
          readOnly: true
        cpuPinningEnabled:
          type: boolean
          description: Enable CpuPinning
        vmmMaxmem:
          type: integer
          format: int64
          description: Maximum amount of memory in kbytes allowed for VM monitor to occupy
        bootloaderMode:
          description: >-
            The bootloader mode that will be used for the VM. Default is
            VM_BOOTLOADER_MODE_LEGACY
          allOf:
            - $ref: '#/components/schemas/VmBootloaderMode'
        enableOemWinLicenseKey:
          type: boolean
          description: >-
            Enable device which has VM to receive the Windows license embedded
            in the ACPI tables
        disableVTPM:
          type: boolean
          description: Disable vTPM for virtual machines (VM)
      description: Virtual machine memory configuration
      title: vm detail
      required:
        - cpus
        - memory
        - mode
        - vnc
    drive:
      type: object
      properties:
        imagename:
          type: string
          description: Name of Image Object used for the drive.
        maxsize:
          type: number
          format: uint64
          description: Drive maximum size
        readonly:
          type: boolean
          description: >-
            Read only flag. If set, drive is mounted as readonly by app
            instance.
        preserve:
          type: boolean
          description: Preserve the drive even when all app instances using it are deleted
        drvtype:
          type: string
          description: >-
            Type of Drive. Valid Values: UNSPECIFIED, CDROM, HDD, NET,
            HDD_EMPTY. HDD_EMPTY - is to allocate the empty disk of maxsizebytes
            specified
        target:
          type: string
          description: 'type of target. Valid values: Disk, Kernel, Initrd, RamDisk'
        volumelabel:
          type: string
          description: 'User defined volume to use for this drive '
        mvolname:
          type: string
          description: >-
            mutable Volume for this drive. Only one of imvolname and mvolname
            must be specified.
        imvolname:
          type: string
          description: >-
            immutable Volume for this drive. Only one of imvolname and mvolname
            must be specified.
        ignorepurge:
          type: boolean
          description: don't purge this drive as part of purge command for mutable volumes
        cleartext:
          type: boolean
          description: If set, don't encrypt the drive. Store in cleartext
        mountpath:
          type: string
          description: Mount Path for the drive in the App Instance
        runtimeInternal:
          type: boolean
          description: >-
            If set, the drive is internal to the runtime and not externally
            exposed with API
          readOnly: true
      description: Drive configuration
      title: Drive details
      required:
        - imagename
        - maxsize
        - readonly
        - preserve
        - drvtype
        - target
    appInterface:
      type: object
      properties:
        netname:
          type: string
          description: 'network name: will be deprecated in future, use netinstname'
        io:
          description: >-
            Physical Adapter to be matched for interface assignment. Applicable
            only when "direct attach" flag is true
          allOf:
            - $ref: '#/components/schemas/phyAdapter'
        intforder:
          type: number
          format: int64
          description: intforder
        intfname:
          type: string
          description: intf Name
        directattach:
          type: boolean
          description: direct attach flag
          title: comes from manifest during app create
        privateip:
          type: boolean
          description: Private IP flag
        acls:
          type: array
          items:
            $ref: '#/components/schemas/appACE'
          description: app Acls
        ipaddr:
          type: string
          description: IP address
          title: |-
            if netname points static DHCP then we need to take
            static /32 address here
        macaddr:
          type: string
          description: MAC address
          title: |-
            in case of p2v we might want to provide a mac-address.
            applicable only in case of DHCP=passthrough
        accessVlanId:
          type: number
          format: int64
          description: >-
            access port VLAN ID, vlan id of zero will be treated as trunk port
            and vlan id 1 is implicitly used by linux bridges
          maximum: 4093
          minimum: 2
        eidregister:
          description: EID register details
          title: 'FIXME: Check why is this required'
          allOf:
            - $ref: '#/components/schemas/EIDRegister'
        netinstname:
          type: string
          description: >-
            Network Instance name to be matched for interface assignment.
            Applicable only when "direct attach" flag is false
        netinsttag:
          type: object
          additionalProperties:
            type: string
          description: >-
            Network Instance tag to be matched for interface assignment.
            Applicable only when "direct attach" flag is false
        netinstid:
          type: string
          description: Network Instance id to be matched for interface assignment.
        defaultNetInstance:
          type: boolean
          description: default instance flag
        allowToDiscover:
          type: boolean
          description: >-
            flag tells if appInstance have permission to access the network
            mappings from the connected netInstance
      description: App Interface detail
      title: App Interface detail
      required:
        - intfname
    CustomConfig:
      type: object
      properties:
        name:
          type: string
          description: Name of CustomConfig (Required)
        add:
          type: boolean
          description: 'Add the Custom Config to App Instance (Optional. Default: False)'
        override:
          type: boolean
          description: >-
            Override existing custom config from App Bundle Manifest (Optional.
            Default: False)
        allowStorageResize:
          type: boolean
          description: >-
            Allow Appinstance storage to be resized after app instance is
            created. (Optional. Default: False)
        fieldDelimiter:
          type: string
          description: Field delimiter used in specifying variables in template. (Required)
        template:
          type: string
          description: base64 encrypted template string. (Optional)
        variableGroups:
          type: array
          items:
            $ref: '#/components/schemas/CustomConfigVariableGroup'
          description: List of Variable groups. (Required)
    AppInstanceLogs:
      type: object
      properties:
        access:
          type: boolean
          description: >-
            Flags to enable / disable sending of logs generated by app instance
            to zedcloud
      description: App Instance Logs configuration
      title: App Instance Logs configuration
      required:
        - access
    ZedCloudOpsCmd:
      type: object
      properties:
        counter:
          type: number
          format: int64
          description: counter
        opsTime:
          type: object
          format: date-time
          description: 'Timestamp: Operational time'
      description: Zed cloud Operation command
      title: Zed cloud Operation command
    ManifestInfo:
      type: object
      properties:
        bundleVersion:
          type: string
          description: Current version of edge application being used
        nextBundleVersion:
          type: string
          description: Next version of edge application available
        transitionAction:
          type: string
          description: Recommended transition action
          allOf:
            - $ref: '#/components/schemas/InstanceTransitionAction'
        params:
          type: object
          additionalProperties:
            type: string
          description: Common and Custom parameters for deciding on transition actions
        details:
          description: Details for recommended transition action
          allOf:
            - $ref: '#/components/schemas/TransDetails'
        enablevnc:
          type: boolean
          description: Enable vnc for the app
      description: >-
        Details about transition parameters and indication for cause of the
        transition and recommendation for the transition action
      title: Transition action information
    AppType:
      type: string
      enum:
        - APP_TYPE_UNSPECIFIED
        - APP_TYPE_VM
        - APP_TYPE_VM_RUNTIME
        - APP_TYPE_CONTAINER
        - APP_TYPE_MODULE
        - APP_TYPE_DOCKER_COMPOSE
      default: APP_TYPE_UNSPECIFIED
      description: type of app bundle.
    DeploymentType:
      type: string
      enum:
        - DEPLOYMENT_TYPE_UNSPECIFIED
        - DEPLOYMENT_TYPE_STAND_ALONE
        - DEPLOYMENT_TYPE_AZURE
        - DEPLOYMENT_TYPE_K3S
        - DEPLOYMENT_TYPE_AWS
        - DEPLOYMENT_TYPE_K3S_AZURE
        - DEPLOYMENT_TYPE_K3S_AWS
        - DEPLOYMENT_TYPE_VMWARE_VCE
        - DEPLOYMENT_TYPE_VMWARE_TKG_ATTACH
        - DEPLOYMENT_TYPE_DOCKER_RUNTIME
      default: DEPLOYMENT_TYPE_UNSPECIFIED
    AppInstanceSnapshot:
      type: object
      properties:
        id:
          type: string
          description: System defined universally unique Id of the app instance snapshot
          pattern: '[0-9A-Za-z-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/AppInstanceSnapshot/properties/id'
              keyword: uniqueItems
              sourceValue: true
        name:
          type: string
          description: Snapshot name. Unique across the application instance
        state:
          description: Status of the snapshot
          allOf:
            - $ref: '#/components/schemas/SnapshotState'
        config:
          type: object
          description: The complete configuration of the application instance
          allOf:
            - $ref: '#/components/schemas/AppInstance'
        activate:
          type: boolean
          description: Indicates whether the snapshot should be activated
        immediate:
          type: boolean
          description: Indicates that the snapshot should be taken immediately
      description: App instance snapshot
      title: App instance snapshot
      required:
        - name
    AppInstEdgeNodeCluster:
      type: object
      properties:
        id:
          type: string
          description: Id of the edge node cluster
          pattern: '[0-9A-Za-z-]+'
        designatedNodeID:
          type: string
          description: Id of the designated node
          pattern: '[0-9A-Za-z-]+'
        name:
          type: string
          description: edge node cluster name
        enableAppPinning:
          type: boolean
          description: enable application pinning to edge node cluster's designated node
    NetworkInstanceKind:
      type: string
      enum:
        - NETWORK_INSTANCE_KIND_UNSPECIFIED
        - NETWORK_INSTANCE_KIND_TRANSPARENT
        - NETWORK_INSTANCE_KIND_SWITCH
        - NETWORK_INSTANCE_KIND_LOCAL
        - NETWORK_INSTANCE_KIND_CLOUD
        - NETWORK_INSTANCE_KIND_MESH
        - NETWORK_INSTANCE_KIND_HONEYPOT
      default: NETWORK_INSTANCE_KIND_UNSPECIFIED
    NetworkInstanceDhcpType:
      type: string
      enum:
        - NETWORK_INSTANCE_DHCP_TYPE_UNSPECIFIED
        - NETWORK_INSTANCE_DHCP_TYPE_V4
        - NETWORK_INSTANCE_DHCP_TYPE_V6
        - NETWORK_INSTANCE_DHCP_TYPE_CRYPTOEID
        - NETWORK_INSTANCE_DHCP_TYPE_CRYPTOV4
        - NETWORK_INSTANCE_DHCP_TYPE_CRYPTOV6
      default: NETWORK_INSTANCE_DHCP_TYPE_UNSPECIFIED
      title: |-
        NetworkInstanceDhcpType: Used in the network instance provide
           dhcp server configuration
    DhcpServerConfig:
      type: object
      properties:
        subnet:
          type: string
          description: Subnet address
        mask:
          type: string
          description: Subnet Mask
        gateway:
          type: string
          description: IP Address of Network Gateway
        domain:
          type: string
          description: Network domain
        ntp:
          type: string
          description: IP Address of NTP Server
          title: ntp will be deprecated
        dns:
          type: array
          items:
            type: string
          description: IP Addresses of DNS servers
          title: possible DNS ip address
        dhcpRange:
          description: Range of IP addresses to be used for DHCP
          allOf:
            - $ref: '#/components/schemas/dhcpIpRange'
        ntpServers:
          type: array
          items:
            $ref: '#/components/schemas/NtpServer'
          description: NTP Servers
    StaticDNSList:
      type: object
      properties:
        hostname:
          type: string
          description: Host name
        addrs:
          type: array
          items:
            type: string
          description: Addresses
      description: Static DNS list
      title: Static DNS list
    LispConfig:
      type: object
      properties:
        lispiid:
          type: number
          format: int64
          description: lisp id
        allocate:
          type: boolean
          description: Allocate flag
        exportprivate:
          type: boolean
          description: Export Private flag
        allocationprefix:
          type: string
          format: byte
          description: Allocation Prefix
        allocationprefixlen:
          type: number
          format: int64
          description: Allocation Prefix Length
        sp:
          type: array
          items:
            $ref: '#/components/schemas/ServicePoint'
          description: Service Point List
      description: List Configurations.
      title: Lisp Configurations
    NetInstOpaqueConfig:
      type: object
      properties:
        type:
          type: string
          description: type of Opaque config
          allOf:
            - $ref: '#/components/schemas/OpaqueConfigType'
        oconfig:
          type: string
          description: base64 encoded string of opaque config
        lisp:
          description: >-
            Deprecated - Lisp config


            **Source definition conflict:** this property declares type
            `"string"`, while the referenced definition declares `"object"`. The
            referenced schema is shown; the conflicting declaration needs
            correction in ZEDEDA's Swagger definition.
          title: lisp - Deprecated
          allOf:
            - $ref: '#/components/schemas/LispConfig'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/NetInstOpaqueConfig/properties/lisp'
              keyword: type
              sourceValue: string
              reference: '#/definitions/LispConfig'
              referencedValue: object
      description: Network Instance Opaque config. This is service specific configuration.
    StaticIPRoute:
      type: object
      properties:
        prefix:
          type: string
          description: IP Prefix
        gateway:
          type: string
          description: Gateway IP
        outputPort:
          type: string
          description: Output Port
        probeConfig:
          type: object
          description: Probe Configuration
          allOf:
            - $ref: '#/components/schemas/ProbeConfig'
      description: Static IP Routes
      title: Static IP Routes
    NetInstEdgeNodeCluster:
      type: object
      properties:
        id:
          type: string
          description: Id of the Edge Node Cluster
          pattern: '[0-9A-Za-z-]+'
        designatedNodeID:
          type: string
          description: Id of the designated Edge Node
          pattern: '[0-9A-Za-z-]+'
    ModelAttributes:
      type: object
      properties:
        memory:
          type: string
        storage:
          type: string
        cpus:
          type: string
    hvMode:
      type: string
      enum:
        - HV_PV
        - HV_HVM
        - HV_FML
        - HV_NOHYPER
        - HV_LEGACY
      default: HV_PV
      description: |-
        For now we need to tell the device which virtualization mode
        to use. Later we might use a single one for all VMs (on any particular
        ISA). If we end up keeping this we should make the names be less
        tied to a particular hypervisor.
    VmBootloaderMode:
      type: string
      enum:
        - VM_BOOTLOADER_MODE_UNSPECIFIED
        - VM_BOOTLOADER_MODE_LEGACY
        - VM_BOOTLOADER_MODE_UEFI
      default: VM_BOOTLOADER_MODE_UNSPECIFIED
      title: >-
        VmBootloaderMode is used to specify the bootloader mode that will be
        used for the VM.

        It represents the boot mechanism to be used to boot the VM
    phyAdapter:
      type: object
      properties:
        type:
          description: >-
            IoType specifies the type of the Input output of the device


            **Source definition conflict:** this property declares type
            `"object"`, while the referenced definition declares `"string"`. The
            referenced schema is shown; the conflicting declaration needs
            correction in ZEDEDA's Swagger definition.
          allOf:
            - $ref: '#/components/schemas/IoType'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/phyAdapter/properties/type'
              keyword: type
              sourceValue: object
              reference: '#/definitions/IoType'
              referencedValue: string
        name:
          type: string
          description: Physical Adapter name
        tags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Tags are name/value pairs that enable you to categorize resources.
            Tag names are case insensitive with max_length 512 and min_length 3.
            Tag values are case sensitive with max_length 256 and min_length 3.
          maxLength: 32
          pattern: ^[^<%&?/\>]+$
      description: Physical Adapter
      title: Physical Adapter
    appACE:
      type: object
      properties:
        matches:
          type: array
          items:
            $ref: '#/components/schemas/appACEMatch'
          description: app ACE match
        actions:
          type: array
          items:
            $ref: '#/components/schemas/appACEAction'
          description: app ACE actions
        id:
          type: number
          format: int32
          description: app ACE id
        name:
          type: string
          description: >-
            User defined name of the app ACE, unique across the enterprise. Once
            object is created, name can’t be changed
          maxLength: 256
          minLength: 3
          pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/appACE/properties/name'
              keyword: uniqueItems
              sourceValue: true
      description: App ACE Configuration
      title: App ACE detaisn
      required:
        - matches
        - actions
        - id
        - name
    EIDRegister:
      type: object
      properties:
        AppCert:
          type: string
          format: byte
          description: app certificate
        AppPublicKey:
          type: string
          format: byte
          description: App public key
        AppPrivateKey:
          type: string
          format: byte
          description: App private key
        UUID:
          type: string
          description: UUID
        DisplayName:
          type: string
          description: Display name
        LispInstance:
          type: number
          format: int64
          description: Lisp Instance
        EID:
          type: string
          description: EID
        EIDHashLen:
          type: number
          format: int64
          description: EID hash length
        LispSignature:
          type: string
          description: Lisp Signature
        LispMapServers:
          type: array
          items:
            $ref: '#/components/schemas/LispServer'
          description: Lisp Map Server
          title: time CreateTime     time.Time
      description: EID Register
      title: EID Register detail
      required:
        - AppCert
        - AppPublicKey
        - AppPrivateKey
        - UUID
        - DisplayName
        - LispInstance
        - EID
        - EIDHashLen
        - LispSignature
        - LispMapServers
    CustomConfigVariableGroup:
      type: object
      properties:
        name:
          type: string
          description: Name of the Variable Group(Required)
        variables:
          type: array
          items:
            $ref: '#/components/schemas/VariableGroupVariable'
          description: List of variables(Required)
        required:
          type: boolean
          description: >-
            Indicates if the variable group is required to be specified for the
            App Instance. (Optional. Default:False)
        condition:
          description: 'Condition to apply the variable group. (Optional. Default: None)'
          allOf:
            - $ref: '#/components/schemas/VariableGroupCondition'
    InstanceTransitionAction:
      type: string
      enum:
        - INSTANCE_TA_UNSPECIFIED
        - INSTANCE_TA_NONE
        - INSTANCE_TA_UPDATEREQUIRED
        - INSTANCE_TA_UPDATEWITHRESTART
        - INSTANCE_TA_UPDATEWITHPURGE
      default: INSTANCE_TA_UNSPECIFIED
      description: |-
        - INSTANCE_TA_UNSPECIFIED: Default. Invalid option
         - INSTANCE_TA_NONE: Either Edge app bundle has not changed or Edge app bundle has
        changed but the changes do not impact Edge app instances
         - INSTANCE_TA_UPDATEREQUIRED: Edge app bundle has changed. Changes impact Edge app Instances
        Edge App instances need to be restarted with temporary loss of access
         - INSTANCE_TA_UPDATEWITHRESTART: Transition Action: Update with Restart
         - INSTANCE_TA_UPDATEWITHPURGE: Edge app bundle has changed. Changes impact Edge app Instances
        Edge App instances need to be deleted and created again with
        temporary loss of access and permanent loss of data
      title: Instance Transition action
    TransDetails:
      type: object
      properties:
        cause:
          description: Cause of the transition action
          allOf:
            - $ref: '#/components/schemas/TransCause'
        severity:
          type: string
          description: >-
            Urgency of the recommended action (ERROR - must take action
            immediately, WARN - must take action but not immediately, NOTICE -
            may take action
        scope:
          description: Scope of the action (e.g. project, cluster, instance)
          allOf:
            - $ref: '#/components/schemas/ActionScope'
    SnapshotState:
      type: string
      enum:
        - INVALID
        - IDLE
        - CREATING
        - CREATED
        - CREATE_FAILED
        - ROLLING_BACK
        - ACTIVE
        - ROLLBACK_FAILED
        - DELETING
        - DELETE_FAILED
        - DELETED
      default: INVALID
    dhcpIpRange:
      type: object
      properties:
        start:
          type: string
          description: starting IP
        end:
          type: string
          description: ending IP
      description: DHCP IP range
      title: DHCP IP range
    NtpServer:
      type: object
      properties:
        server:
          type: string
          description: NTP Server IP or FQDN
      description: NTP Server
      title: NTP Server
    ServicePoint:
      type: object
      properties:
        type:
          description: >-
            Service Point Type


            **Source definition conflict:** this property declares type
            `"object"`, while the referenced definition declares `"string"`. The
            referenced schema is shown; the conflicting declaration needs
            correction in ZEDEDA's Swagger definition.
          allOf:
            - $ref: '#/components/schemas/spType'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/ServicePoint/properties/type'
              keyword: type
              sourceValue: object
              reference: '#/definitions/spType'
              referencedValue: string
        NameOrIp:
          type: string
          description: Service name/ service name
        Credential:
          type: string
          description: Service credentials
      description: Service Point
      title: Service Point
    OpaqueConfigType:
      type: string
      enum:
        - OPAQUE_CONFIG_TYPE_UNSPECIFIED
        - OPAQUE_CONFIG_TYPE_VPN
        - OPAQUE_CONFIG_TYPE_LISP
      default: OPAQUE_CONFIG_TYPE_UNSPECIFIED
    ProbeConfig:
      type: object
      properties:
        enableGatewayPing:
          type: boolean
          description: Enable gateway ping
        pingMaxCost:
          type: number
          format: int64
          description: Ping max cost
        preferLowerCost:
          type: boolean
          description: Prefer lower cost
        preferStrongerWwanSignal:
          type: boolean
          description: Prefer stronger WWAN signal
        customProbeConfig:
          type: object
          description: Custom probe configuration
          allOf:
            - $ref: '#/components/schemas/commonConnectivityProbe'
      description: Probing configuration
      title: Probing configuration
    IoType:
      type: string
      enum:
        - IO_TYPE_UNSPECIFIED
        - IO_TYPE_ETH
        - IO_TYPE_USB
        - IO_TYPE_COM
        - IO_TYPE_AUDIO
        - IO_TYPE_WLAN
        - IO_TYPE_WWAN
        - IO_TYPE_HDMI
        - IO_TYPE_LTE
        - IO_TYPE_STORAGE_NVME_DEVICE
        - IO_TYPE_STORAGE_SATA_DEVICE
        - IO_TYPE_ETH_PF
        - IO_TYPE_ETH_VF
        - IO_TYPE_USB_CONTROLLER
        - IO_TYPE_USB_DEVICE
        - IO_TYPE_CAN
        - IO_TYPE_VCAN
        - IO_TYPE_LCAN
        - IO_TYPE_VLAN
        - IO_TYPE_OTHER
      default: IO_TYPE_UNSPECIFIED
      description: |-
        - IO_TYPE_UNSPECIFIED: No operation/ Invalid peration
         - IO_TYPE_ETH: Ethernet
         - IO_TYPE_USB: USB Type - General
         - IO_TYPE_COM: Communication Port
         - IO_TYPE_AUDIO: Audio Port
         - IO_TYPE_WLAN: wireless LAN
         - IO_TYPE_WWAN: Wireless wide area network
         - IO_TYPE_HDMI: High-Definition Multimedia Interface
         - IO_TYPE_LTE: LTE Interfaces
         - IO_TYPE_STORAGE_NVME_DEVICE: Storage NVME device
         - IO_TYPE_STORAGE_SATA_DEVICE: Storage SATA device
         - IO_TYPE_ETH_PF: Physical Interface (PF) of the Virtual Functions
         - IO_TYPE_ETH_VF: Virtual Function (VF)
         - IO_TYPE_USB_CONTROLLER: USB Type - Controller
         - IO_TYPE_USB_DEVICE: USB Type - Device
         - IO_TYPE_CAN: CAN - Device
         - IO_TYPE_VCAN: VCAN - Virtual CAN device
         - IO_TYPE_LCAN: LCAN - Logical CAN device
         - IO_TYPE_VLAN: VLAN - Virtual LAN device
         - IO_TYPE_OTHER: Other Io Types
      title: Input/Output Type
    appACEMatch:
      type: object
      properties:
        type:
          type: string
          description: Type
        value:
          type: string
          description: Value
      description: App ACE Match
      title: appACEMatch detail
      required:
        - type
        - value
    appACEAction:
      type: object
      properties:
        drop:
          type: boolean
          description: ACE drop flag
        limit:
          type: boolean
          description: ACE limit flag
        limitrate:
          type: number
          format: int64
          description: ACE limit rate
        limitunit:
          type: string
          description: ACE limit unit
        limitburst:
          type: number
          format: int64
          description: ACE limit burst
        portmap:
          type: boolean
          description: application port map flag
        mapparams:
          description: Application map params
          allOf:
            - $ref: '#/components/schemas/appMapParams'
      description: App ACE actions
      title: App ACE Action
      required:
        - drop
        - limit
        - limitrate
        - limitunit
        - limitburst
        - portmap
        - mapparams
    LispServer:
      type: object
      properties:
        nameOrIp:
          type: string
          description: name/IP
        credential:
          type: string
          description: lisp credential
      description: LispServer request payload
      title: LispServer payload detail
      required:
        - nameOrIp
        - credential
    VariableGroupVariable:
      type: object
      example:
        format: VARIABLE_FORMAT_TEXT
        name: username
        label: Enter User Name
        required: 'True'
      properties:
        type:
          type: string
        name:
          type: string
          description: Name of the Variable (Required)
        label:
          type: string
          description: Label for the variable (Required)
        maxLength:
          type: string
          description: 'Max length of the value of the variable(Optional. Default: 1024)'
        required:
          type: boolean
          description: >-
            This variable MUST be specified when creating an App Instance.
            (Optional. Default: False)
        default:
          type: string
          description: >-
            Default value of the variable. (Optional. Default: <Default value
            based on type>)
        processInput:
          type: string
        value:
          type: string
          description: >-
            User-specified value of the variable.(Required if required is true.
            Optional otherwise)
        format:
          description: Format of the user variable. (Required)
          allOf:
            - $ref: '#/components/schemas/VariableVariableFormat'
        encode:
          description: >-
            Encoding of file content. Applicable if format is
            VARIABLE_FORMAT_FILE
          allOf:
            - $ref: '#/components/schemas/VariableFileEncoding'
        options:
          type: array
          items:
            $ref: '#/components/schemas/VariableOptionVal'
          description: >-
            Key-Value pair of options. Applicable if format is
            VARIABLE_FORMAT_DROPDOWN
      description: Edge Application Artifact Details
      title: Edge Application detail
      required:
        - format
        - name
        - label
        - required
    VariableGroupCondition:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
        operator:
          $ref: '#/components/schemas/VariableGroupConditionOperator'
    TransCause:
      type: string
      enum:
        - TRANS_CAUSE_UNSPECIFIED
        - TRANS_CAUSE_APP_DRIVE_CHANGED
        - TRANS_CAUSE_APP_NETWORK_CHANGED
        - TRANS_CAUSE_APP_CUSTOM_CONFIG_CHANGED
        - TRANS_CAUSE_APP_MODULE_BUNDLE_UPDATE
        - TRANS_CAUSE_APP_DESC_CHANGED
        - TRANS_CAUSE_APP_FIXED_RESOURCES_CHANGED
        - TRANS_CAUSE_APP_VNC_MODE_CHANGED
        - TRANS_CAUSE_APP_VM_MODE_CHANGED
        - TRANS_CAUSE_INTER_CA_EXPIRING
        - TRANS_CAUSE_INTER_CA_EXPIRED
        - TRANS_CAUSE_DEVICE_CA_EXPIRING
        - TRANS_CAUSE_DEVICE_CA_EXPIRED
        - TRANS_CAUSE_IDENTITY_CA_EXPIRING
        - TRANS_CAUSE_IDENTITY_CA_EXPIRED
        - TRANS_CAUSE_APP_COMPOSE_TAR_IMAGE_CHANGED
        - TRANS_CAUSE_APP_COMPOSE_YAML_CHANGED
        - TRANS_CAUSE_APP_COMPOSE_DATASTORE_CHANGED
        - TRANS_CAUSE_APP_ENABLE_VM_CONFIG_CHANGED
      default: TRANS_CAUSE_UNSPECIFIED
    ActionScope:
      type: object
      properties:
        type:
          description: >-
            Scope of the action (e.g. project in case certificate expired at
            project level)
          allOf:
            - $ref: '#/components/schemas/ObjectType'
        id:
          type: string
          description: Unique id of the type (e.g. projectId in case of project type)
    spType:
      type: string
      enum:
        - SPTYPE_INVALIDSRV
        - SPTYPE_MAPSERVER
        - SPTYPE_SUPPORTSERVER
      default: SPTYPE_INVALIDSRV
      description: |-
        clone of types defined in API repo.

         - SPTYPE_MAPSERVER: mapping service for zededa overlay service
         - SPTYPE_SUPPORTSERVER: if device has support feature enabled, this ia cloud service
        which device can be reached.
    commonConnectivityProbe:
      type: object
      properties:
        probeMethod:
          description: Method to use to determine the connectivity status.
          allOf:
            - $ref: '#/components/schemas/commonConnectivityProbeMethod'
        probeEndpoint:
          description: |-
            Endpoint to probe using the selected probing mechanism to determine
            the connectivity status.
          allOf:
            - $ref: '#/components/schemas/commonProbeEndpoint'
      description: Configuration for user-defined connectivity-testing probe.
    appMapParams:
      type: object
      properties:
        port:
          type: number
          format: int64
          description: Application port
      description: Application map parameters
      title: App map Params detail
      required:
        - port
    VariableVariableFormat:
      type: string
      enum:
        - VARIABLE_FORMAT_UNSPECIFIED
        - VARIABLE_FORMAT_TEXT
        - VARIABLE_FORMAT_NUMBER
        - VARIABLE_FORMAT_FILE
        - VARIABLE_FORMAT_DROPDOWN
        - VARIABLE_FORMAT_BOOLEAN
        - VARIABLE_FORMAT_PASSWORD
      default: VARIABLE_FORMAT_UNSPECIFIED
      description: |-
        - VARIABLE_FORMAT_UNSPECIFIED: Invalid format
         - VARIABLE_FORMAT_TEXT: Value in string format
         - VARIABLE_FORMAT_NUMBER: Value in integer format
         - VARIABLE_FORMAT_FILE: Value to be read from a file
         - VARIABLE_FORMAT_DROPDOWN: Value to be selected from dropdown of options
         - VARIABLE_FORMAT_BOOLEAN: Value in boolean format
         - VARIABLE_FORMAT_PASSWORD: Value in string to be masked in User-Agent
      title: Custom variable format
    VariableFileEncoding:
      type: string
      enum:
        - FILE_ENCODING_UNSPECIFIED
        - FILE_ENCODING_BASE64
      default: FILE_ENCODING_UNSPECIFIED
      description: |-
        - FILE_ENCODING_UNSPECIFIED: File content not encoded
         - FILE_ENCODING_BASE64: File content encoded in Base64
      title: File content encoding type
    VariableOptionVal:
      type: object
      properties:
        label:
          type: string
          description: Display label of the key in User-Agent
        value:
          type: string
          description: Value of the key to be used
    VariableGroupConditionOperator:
      type: string
      enum:
        - CONDITION_OPERATOR_UNSPECIFIED
        - CONDITION_OPERATOR_EQUALTO
        - CONDITION_OPERATOR_NOTEQUALTO
      default: CONDITION_OPERATOR_UNSPECIFIED
    commonConnectivityProbeMethod:
      type: string
      enum:
        - CONNECTIVITY_PROBE_METHOD_UNSPECIFIED
        - CONNECTIVITY_PROBE_METHOD_ICMP
        - CONNECTIVITY_PROBE_METHOD_TCP
      default: CONNECTIVITY_PROBE_METHOD_UNSPECIFIED
      description: |-
        User-defined method to use to determine the connectivity status.

         - CONNECTIVITY_PROBE_METHOD_UNSPECIFIED: Connectivity probing method is not specified and therefore will not be used.
         - CONNECTIVITY_PROBE_METHOD_ICMP: Use ICMP ping against the probed endpoint to determine the connectivity status.
         - CONNECTIVITY_PROBE_METHOD_TCP: Try to establish TCP connection with the probed endpoint to determine the connectivity
        status.
    commonProbeEndpoint:
      type: object
      properties:
        host:
          type: string
          description: IP address or FQDN.
        port:
          type: integer
          format: int64
          description: |-
            TCP port required for CONNECTIVITY_PROBE_METHOD_TCP.
            Leave empty for CONNECTIVITY_PROBE_METHOD_ICMP.
      description: >-
        Address of a remote endpoint to probe in order to determine connectivity
        status.
  securitySchemes:
    BearerToken:
      type: http
      description: Bearer token for user session
      scheme: bearer

````