> ## 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.

# Query device status and config

> GET /api/v1/devices/status-config. Edge nodes 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/edge-node.json)

A successful response.
Bad Request. The API gateway did not process the request because of invalid value of filter 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-node level access permission for the operation or does not have access scope to the project.
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/edge-node.json GET /v1/devices/status-config
openapi: 3.0.0
info:
  title: ZEDEDA Edge Node Service
  description: >-
    The ZEDEDA Edge Node Service is part of ZEDEDA Edge Orchestration Platform.
    This service enables customers to onboard their edge nodes on ZEDEDA
    platform and upgrade/restart/monitor them remotely. You can use the ZEDEDA
    Edge Node Service to provision and manage lifecycle of millions of edge
    nodes distributed in different geographical locations in a secure and
    scalable manner.
  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: EdgeNodeConfiguration
  - name: EdgeNodeStatus
  - name: ResourceGroupStatus
  - name: ResourceGroup
  - name: HardwareModel
  - name: CertificateEnrollmentProfileConfiguration
externalDocs:
  description: ZEDEDA Product Documentation
  url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/edge-nodes
paths:
  /v1/devices/status-config:
    get:
      tags:
        - HardwareModel
      summary: Query device status and config
      description: >-
        Device status config API is a composite API for device config and device
        status
      operationId: HardwareModel_GetDeviceStatusConfig
      parameters:
        - name: summary
          in: query
          required: false
          schema:
            type: boolean
        - name: runState
          in: query
          required: false
          schema:
            type: string
            enum:
              - UNSPECIFIED
              - ONLINE
              - HALTED
              - INIT
              - REBOOTING
              - OFFLINE
              - UNKNOWN
              - UNPROVISIONED
              - PROVISIONED
              - SUSPECT
              - DOWNLOADING
              - RESTARTING
              - PURGING
              - HALTING
              - ERROR
              - VERIFYING
              - LOADING
              - CREATING_VOLUME
              - BOOTING
              - MAINTENANCE_MODE
              - START_DELAYED
              - BASEOS_UPDATING
              - PREPARING_POWEROFF
              - POWERING_OFF
              - PREPARED_POWEROFF
            default: UNSPECIFIED
        - name: projectName
          in: query
          required: false
          schema:
            type: string
        - name: load
          in: query
          required: false
          schema:
            type: string
            enum:
              - UNSPECIFIED
              - FREE
              - MODERATE
              - HEAVY
            default: UNSPECIFIED
        - name: namePattern
          in: query
          required: false
          schema:
            type: string
        - name: tags
          in: query
          required: false
          schema:
            type: string
        - name: projectNamePattern
          in: query
          required: false
          schema:
            type: string
        - name: deviceName
          in: query
          required: false
          schema:
            type: string
        - name: next.pageToken
          description: Page Token
          in: query
          required: false
          schema:
            type: string
        - name: next.orderBy
          description: OrderBy helps in sorting the list response
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: next.pageNum
          description: Page Number
          in: query
          required: false
          schema:
            type: number
            format: int64
        - name: next.pageSize
          description: Defines the page size
          in: query
          required: false
          schema:
            type: number
            format: int64
        - name: next.totalPages
          description: Total number of pages to be fetched.
          in: query
          required: false
          schema:
            type: number
            format: int64
        - name: fields
          description: >-
            Fields to select for composite api: id, name, title, serialNo,
            projectId, projectName, isEveLatest, appInstCount, runState,
            adminState.
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: adminState
          description: |2-
             - CREATED: Entity Created in the controller
             - DELETED: Entity Deleted in the controller
             - ACTIVE: Entity Activated in the controller
             - INACTIVE: Entity Deactivated in the controller
             - REGISTERED: Specific to Edge-node - Edge-node Registered with the controller
             - ARCHIVED: Entity Archived in the controller
          in: query
          required: false
          schema:
            type: string
            enum:
              - UNSPECIFIED
              - CREATED
              - DELETED
              - ACTIVE
              - INACTIVE
              - REGISTERED
              - ARCHIVED
            default: UNSPECIFIED
        - name: eveLtsSupportType
          description: filter devices by eve version support type i.e LTS OR NON_LTS
          in: query
          required: false
          schema:
            type: string
            enum:
              - SUPPORT_TYPE_UNSPECIFIED
              - SUPPORT_TYPE_LTS
              - SUPPORT_TYPE_NON_LTS
            default: SUPPORT_TYPE_UNSPECIFIED
        - name: includeInterfaces
          description: >-
            flag to indicate whether to include network interface details in the
            response
          in: query
          required: false
          schema:
            type: boolean
        - name: titlePattern
          description: title pattern
          in: query
          required: false
          schema:
            type: string
        - name: X-Request-Id
          in: header
          required: false
          description: User-Agent specified id to track a request
          schema:
            type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceStatusConfigList'
        '400':
          description: >-
            Bad Request. The API gateway did not process the request because of
            invalid value of filter 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-node level access permission for the
            operation or does not have access scope to the project.
          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/edge-nodes
components:
  schemas:
    DeviceStatusConfigList:
      type: object
      properties:
        summaryByState:
          description: Device status config summary by state
          allOf:
            - $ref: '#/components/schemas/Summary'
        summaryByAppInstanceCount:
          description: Device status config summary by app instance count
          allOf:
            - $ref: '#/components/schemas/Summary'
        summaryByEVEDistribution:
          description: Device status config summary by eve distribution
          allOf:
            - $ref: '#/components/schemas/Summary'
        totalCount:
          type: integer
          format: int64
          description: total count of devices
        list:
          type: array
          items:
            $ref: '#/components/schemas/deviceStatusConfig'
          description: List of device status config
        totalEvActiveCount:
          type: integer
          format: int64
          description: total count of edgeview active of devices
        next:
          description: Page details of the filtered records
          allOf:
            - $ref: '#/components/schemas/Cursor'
      description: Device statu sna config composite api response details
      title: Device status config composite api response detail
      required:
        - summaryByState
        - summaryByAppInstanceCount
        - summaryByEVEDistribution
        - totalCount
        - list
    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'
    Summary:
      type: object
      properties:
        description:
          type: string
          description: Summary description
        total:
          type: number
          format: int64
          description: Total
        values:
          type: object
          additionalProperties:
            type: integer
            format: int64
          description: 'Values: Map for storing <string, uint32>'
      description: Summary is used to store the Summary details
      title: Summary is used to store the Summary details
    deviceStatusConfig:
      type: object
      properties:
        id:
          type: string
          description: system generated unique id for a device
          readOnly: true
          pattern: '[0-9A-Za-z-]+'
        name:
          type: string
          description: user specified device name
        title:
          type: string
          description: user specified title
        serialNo:
          type: string
          description: Device serial number
        projectId:
          type: string
          description: project Id of the device
        projectName:
          type: string
          description: project name of the device
        location:
          type: string
          description: Device location
        eveImageName:
          type: string
          description: Eve image name that was running on the device
        isEveLatest:
          type: string
          description: Boolean that tells whether the active eve image is latest or not
        appInstCount:
          type: string
          format: int64
          description: Number of app instance that is running on the device
        runState:
          description: Run state of the device
          allOf:
            - $ref: '#/components/schemas/RunState'
        adminState:
          description: Admin state of the device
          allOf:
            - $ref: '#/components/schemas/AdminState'
        dinfo:
          description: Device info like storage, arch, memory etc
          allOf:
            - $ref: '#/components/schemas/DeviceInfo'
        swInfo:
          type: array
          items:
            $ref: '#/components/schemas/DeviceSWInfo'
          description: software info reported by the device
        projectType:
          type: string
          description: project type of the device
          allOf:
            - $ref: '#/components/schemas/TagType'
        clusterNodeStatus:
          description: Cluster node status
          allOf:
            - $ref: '#/components/schemas/ClusterNodeStatus'
        interfaces:
          type: array
          items:
            $ref: '#/components/schemas/SysInterface'
          description: System Interface list
        modelId:
          type: string
          description: device model
        enrolledCertsStatus:
          description: Enrolled certificate status from the device
          allOf:
            - $ref: '#/components/schemas/EnrolledCertStatus'
      description: Device status and config response details
      title: Device status config response detail
      required:
        - id
        - name
        - serialNo
    Cursor:
      type: object
      properties:
        pageToken:
          type: string
          description: Page Token
        orderBy:
          type: array
          items:
            type: string
          description: OrderBy helps in sorting the list response
        pageNum:
          type: number
          format: int64
          description: Page Number
        pageSize:
          type: number
          format: int64
          description: Defines the page size
        totalPages:
          type: number
          format: int64
          description: Total number of pages to be fetched.
      description: >-
        Cursor helps in filtering the various list response like edge-app bundle
        list, model list, bundle list etc. 
      title: Cursor is used as filter in list operation.
    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
    RunState:
      type: string
      enum:
        - RUN_STATE_UNSPECIFIED
        - RUN_STATE_ONLINE
        - RUN_STATE_HALTED
        - RUN_STATE_INIT
        - RUN_STATE_REBOOTING
        - RUN_STATE_OFFLINE
        - RUN_STATE_UNKNOWN
        - RUN_STATE_UNPROVISIONED
        - RUN_STATE_PROVISIONED
        - RUN_STATE_SUSPECT
        - RUN_STATE_DOWNLOADING
        - RUN_STATE_RESTARTING
        - RUN_STATE_PURGING
        - RUN_STATE_HALTING
        - RUN_STATE_ERROR
        - RUN_STATE_VERIFYING
        - RUN_STATE_LOADING
        - RUN_STATE_CREATING_VOLUME
        - RUN_STATE_BOOTING
        - RUN_STATE_MAINTENANCE_MODE
        - RUN_STATE_START_DELAYED
        - RUN_STATE_BASEOS_UPDATING
        - RUN_STATE_PREPARING_POWEROFF
        - RUN_STATE_POWERING_OFF
        - RUN_STATE_PREPARED_POWEROFF
      default: RUN_STATE_UNSPECIFIED
      description: |-
        - RUN_STATE_ONLINE: Entity Online
         - RUN_STATE_HALTED: Entity Halted
         - RUN_STATE_INIT: Entity Initializing
         - RUN_STATE_REBOOTING: Entity Rebooting
         - RUN_STATE_OFFLINE: Entity Offline
         - RUN_STATE_UNKNOWN: Entity state Unknown
         - RUN_STATE_UNPROVISIONED: Entity Unprovisioned
         - RUN_STATE_PROVISIONED: Entity Provisioned
         - RUN_STATE_SUSPECT: Entity Suspect
         - RUN_STATE_DOWNLOADING: Edge-node downloading entity artifacts
         - RUN_STATE_RESTARTING: Entity Restarting
         - RUN_STATE_PURGING: Entity Purging
         - RUN_STATE_HALTING: Entity Halting
         - RUN_STATE_ERROR: Entity encountered an error
         - RUN_STATE_VERIFYING: Verification of downloaded Artifacts in Progress.
         - RUN_STATE_LOADING: Loading of Artifacts into local datastore in Progress.
         - RUN_STATE_CREATING_VOLUME: Volume creation from artifacts in Progress
         - RUN_STATE_BOOTING: Entity booting up
         - RUN_STATE_MAINTENANCE_MODE: Entity maintenance mode
         - RUN_STATE_START_DELAYED: Application start delayed as per configuration
         - RUN_STATE_BASEOS_UPDATING: Device BaseOs Update in Progress
         - RUN_STATE_PREPARING_POWEROFF: device preparing power off - shutting down all app instances
         - RUN_STATE_POWERING_OFF: device powering off from local profile server
         - RUN_STATE_PREPARED_POWEROFF: device prepared power off - all app instances are shut down
      title: RunState - On update, please update RunState_HttpRequest as well
    AdminState:
      type: string
      enum:
        - ADMIN_STATE_UNSPECIFIED
        - ADMIN_STATE_CREATED
        - ADMIN_STATE_DELETED
        - ADMIN_STATE_ACTIVE
        - ADMIN_STATE_INACTIVE
        - ADMIN_STATE_REGISTERED
        - ADMIN_STATE_ARCHIVED
        - ADMIN_STATE_DELETION_PENDING
      default: ADMIN_STATE_UNSPECIFIED
      description: |-
        - ADMIN_STATE_CREATED: Entity Created in the controller
         - ADMIN_STATE_DELETED: Entity Deleted in the controller
         - ADMIN_STATE_ACTIVE: Entity Activated in the controller
         - ADMIN_STATE_INACTIVE: Entity Deactivated in the controller
         - ADMIN_STATE_REGISTERED: Specific to Edge-node - Edge-node Registered with the controller
         - ADMIN_STATE_ARCHIVED: Entity Archived in the controller
         - ADMIN_STATE_DELETION_PENDING: Entity was marked as Deleted but not yet deleted in the controller
      title: AdminState - On update, please update AdminState_HttpRequest as well
    DeviceInfo:
      type: object
      properties:
        machineArch:
          type: string
        cpuArch:
          type: string
        platform:
          type: string
        nCpu:
          type: integer
          format: int64
        memMB:
          type: string
          format: uint64
        storageMB:
          type: string
          format: uint64
    DeviceSWInfo:
      type: object
      properties:
        activated:
          type: boolean
        partitionLabel:
          type: string
        partitionDevice:
          type: string
        partitionState:
          type: string
        status:
          $ref: '#/components/schemas/SWState'
        shortVersion:
          type: string
        longVersion:
          type: string
        swError:
          $ref: '#/components/schemas/DeviceError'
        downloadProgress:
          type: integer
          format: int64
        swStatus:
          $ref: '#/components/schemas/DeviceSWStatus'
        swSubStatus:
          $ref: '#/components/schemas/DeviceSWSubStatus'
        swSubStatusStr:
          type: string
        subStatusProgress:
          type: integer
          format: int64
        isLTS:
          type: boolean
          description: flag to indicate device running  LTS eve version or not
    TagType:
      type: string
      enum:
        - TAG_TYPE_UNSPECIFIED
        - TAG_TYPE_GENERIC
        - TAG_TYPE_PROJECT
        - TAG_TYPE_AZURE
        - TAG_TYPE_DEPLOYMENT
      default: TAG_TYPE_UNSPECIFIED
      description: |-
        - TAG_TYPE_UNSPECIFIED: Unspecified
         - TAG_TYPE_GENERIC: Generic resource group
         - TAG_TYPE_PROJECT: Project resource group
         - TAG_TYPE_AZURE: Project resource group
         - TAG_TYPE_DEPLOYMENT: Project with deployment
      title: Resource group types
    ClusterNodeStatus:
      type: object
      properties:
        age:
          type: integer
          format: int64
        internalIP:
          type: string
        conditions:
          type: string
        nodeType:
          $ref: '#/components/schemas/ClusterNodeType'
    SysInterface:
      type: object
      properties:
        netname:
          type: string
          description: 'network name: if attaching a network use netname'
        adapterSpecificNet:
          description: >-
            device adapter specific network configuration


            **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: >-
            adapterSpecificNet is relevant only when the network selected for
            the adapter is of type NETWORK_DHCP_TYPE_STATIC_ADAPTER_SPECIFIC
          allOf:
            - $ref: '#/components/schemas/NetConfig'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/SysInterface/properties/adapterSpecificNet'
              keyword: type
              sourceValue: string
              reference: '#/definitions/NetConfig'
              referencedValue: object
        ipaddr:
          type: string
          description: 'IP address: we will be needing this in cae of static network'
        intfname:
          type: string
          description: >-
            name of interface in the manifest to which this network or adapter
            maps to
        intfUsage:
          description: >-
            Adapter Udage


            **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/AdapterUsage'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/SysInterface/properties/intfUsage'
              keyword: type
              sourceValue: object
              reference: '#/definitions/AdapterUsage'
              referencedValue: string
        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: ^[^<%&?/\>]+$
        macaddr:
          type: string
          description: mac address needs to be over-written in some cases
        cost:
          type: integer
          format: int64
          description: cost of using this interface. Default is 0.
          maximum: 255
        netid:
          type: string
          description: network identifier has to have value if the netname is not empty
        sharedLabels:
          type: array
          items:
            type: string
          description: A set of user-defined shared labels attached to the adapter
        netDhcp:
          description: Network DHCP type
          allOf:
            - $ref: '#/components/schemas/NetworkDHCPType'
        ztype:
          type: string
          description: Z Type
        allowLocalModifications:
          type: boolean
          description: >-
            Allow the local operator to make (limited) configuration changes to
            this network adapter.
        enablePortBasedNetworkAccessControl:
          type: boolean
          description: >-
            Enable port-based network access control (802.1X) on this interface.
            Only applicable for Ethernet interfaces that are not app-direct.
        phylabel:
          type: string
          description: Physical label of the adapter (model-less devices)
        logicallabel:
          type: string
          description: Logical label of the adapter (model-less devices)
        phyaddrs:
          type: object
          additionalProperties:
            type: string
          description: >-
            Physical addresses map, e.g. pcilong, ifname, serial, usbaddr
            (model-less devices)
        assigngrp:
          type: string
          description: IOMMU assignment group (model-less devices)
        parentassigngrp:
          type: string
          description: Parent IOMMU assignment group (model-less devices)
        cbattr:
          type: object
          additionalProperties:
            type: string
          description: >-
            Controller-to-bus attributes, e.g. bitrate for CAN (model-less
            devices)
      description: system interfaces that needs to be used by dom0
      title: sysInterface payload detail
    EnrolledCertStatus:
      type: string
      enum:
        - ENROLLED_CERT_STATUS_UNSPECIFIED
        - ENROLLED_CERT_STATUS_AVAILABLE
        - ENROLLED_CERT_STATUS_PENDING
        - ENROLLED_CERT_STATUS_RENEWAL_PENDING
        - ENROLLED_CERT_STATUS_EXPIRED
        - ENROLLED_CERT_STATUS_REVOKED
        - ENROLLED_CERT_STATUS_ENROLLMENT_FAILED
        - ENROLLED_CERT_STATUS_RENEWAL_FAILED
        - ENROLLED_CERT_STATUS_INVALID_CONFIG
      default: ENROLLED_CERT_STATUS_UNSPECIFIED
      description: |-
        Certificate lifecycle and availability status as reported by the device.

         - ENROLLED_CERT_STATUS_AVAILABLE: Certificate is present, valid, and usable for authentication.
         - ENROLLED_CERT_STATUS_PENDING: Certificate enrollment is in progress and not yet complete.
         - ENROLLED_CERT_STATUS_RENEWAL_PENDING: Certificate is present and still valid, but a renewal request
        is in progress and not yet completed.
         - ENROLLED_CERT_STATUS_EXPIRED: Certificate has expired (the current time is past notAfter).
        Renewal may have failed; see err for related errors.
         - ENROLLED_CERT_STATUS_REVOKED: Certificate has been revoked or is otherwise considered invalid.
         - ENROLLED_CERT_STATUS_ENROLLMENT_FAILED: Certificate enrollment failed and no valid certificate is available.
         - ENROLLED_CERT_STATUS_RENEWAL_FAILED: A certificate is currently present but the most recent renewal attempt failed.
         - ENROLLED_CERT_STATUS_INVALID_CONFIG: Certificate configuration is invalid or malformed, preventing enrollment or renewal.
    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
    SWState:
      type: string
      enum:
        - SW_STATE_UNSPECIFIED
        - SW_STATE_INITIAL
        - SW_STATE_DOWNLOAD_IN_PROGRESS
        - SW_STATE_DOWNLOADED
        - SW_STATE_VERIFIED
        - SW_STATE_INSTALLED
        - SW_STATE_BOOTING
        - SW_STATE_RUNNING
        - SW_STATE_HALTING
        - SW_STATE_HALTED
        - SW_STATE_REFRESHING
        - SW_STATE_PURGING
        - SW_STATE_RESOLVING_TAG
        - SW_STATE_RESOLVED_TAG
        - SW_STATE_CREATING_VOLUME
        - SW_STATE_CREATED_VOLUME
        - SW_STATE_VERIFYING
        - SW_STATE_LOADING
        - SW_STATE_LOADED
        - SW_STATE_AWAITNETWORKINSTANCE
      default: SW_STATE_UNSPECIFIED
      description: |-
        - SW_STATE_RESOLVING_TAG: Prior to DOWNLOAD_STARTED we go through these:
        Resolving an image tag
         - SW_STATE_RESOLVED_TAG: Tag has been resolved/failed
         - SW_STATE_CREATING_VOLUME: Prior to INSTALLED we go through these:
        Volume create in progress
         - SW_STATE_CREATED_VOLUME: Volume create done/failed
         - SW_STATE_VERIFYING: Verification in-progress
         - SW_STATE_LOADING: Loading blob in CAS
         - SW_STATE_LOADED: Loaded blob in CAS
         - SW_STATE_AWAITNETWORKINSTANCE: Wait for network instance
      title: State of EVE/Edge Application software
    DeviceError:
      type: object
      properties:
        description:
          type: string
          description: Description of the error
        severity:
          type: string
          description: Severity of the error
          allOf:
            - $ref: '#/components/schemas/Severity'
        timestamp:
          type: object
          format: date-time
          description: Timestamp at which error had occurred
        entities:
          type: array
          items:
            $ref: '#/components/schemas/DeviceEntity'
          description: objects referenced by the description or retry_condition
        retryCondition:
          type: string
          description: condition for retry
      description: DeviceError store the error occurred at the device side
      title: DeviceError is used to store the error details of the hardware.
      required:
        - description
        - severity
        - timestamp
        - entities
    DeviceSWStatus:
      type: string
      enum:
        - DEVICE_SW_STATUS_UNSPECIFIED
        - DEVICE_SW_STATUS_DOWNLOADING
        - DEVICE_SW_STATUS_DOWNLOADDONE
        - DEVICE_SW_STATUS_UPDATING
        - DEVICE_SW_STATUS_UPDATED
        - DEVICE_SW_STATUS_FALLBACK
        - DEVICE_SW_STATUS_FAILED
      default: DEVICE_SW_STATUS_UNSPECIFIED
    DeviceSWSubStatus:
      type: string
      enum:
        - DEVICE_SW_SUB_STATUS_UNSPECIFIED
        - DEVICE_SW_SUB_STATUS_DOWNLOAD_IN_PROGRESS
        - DEVICE_SW_SUB_STATUS_VERIFY_IN_PROGRESS
        - DEVICE_SW_SUB_STATUS_UPDATE_INITIALIZING
        - DEVICE_SW_SUB_STATUS_UPDATE_REBOOTING
        - DEVICE_SW_SUB_STATUS_UPDATE_TESTING
        - DEVICE_SW_SUB_STATUS_UPDATE_NEED_TEST_CONFIRM
        - DEVICE_SW_SUB_STATUS_UPDATE_DEFERRED
      default: DEVICE_SW_SUB_STATUS_UNSPECIFIED
    ClusterNodeType:
      type: string
      enum:
        - CLUSTER_NODE_TYPE_UNSPECIFIED
        - CLUSTER_NODE_TYPE_MASTER
        - CLUSTER_NODE_TYPE_WORKER
        - CLUSTER_NODE_TYPE_TIE_BREAKER
      default: CLUSTER_NODE_TYPE_UNSPECIFIED
    NetConfig:
      type: object
      properties:
        id:
          type: string
          description: System defined universally unique Id of the network
          readOnly: true
          pattern: '[0-9A-Za-z-]+'
          x-zededa-source-issues:
            - code: inapplicable-constraint
              pointer: '#/definitions/NetConfig/properties/id'
              keyword: uniqueItems
              sourceValue: true
        name:
          type: string
          description: >-
            User defined name of the network, 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/NetConfig/properties/name'
              keyword: uniqueItems
              sourceValue: true
        title:
          type: string
          description: User defined title of the network. 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
          maxLength: 256
        revision:
          description: system defined info
          allOf:
            - $ref: '#/components/schemas/ObjectRevision'
        projectId:
          type: string
        kind:
          $ref: '#/components/schemas/NetworkKind'
        ip:
          $ref: '#/components/schemas/IpSpec'
        dnsList:
          type: array
          items:
            $ref: '#/components/schemas/StaticDNSList'
        proxy:
          title: enterprise proxy
          allOf:
            - $ref: '#/components/schemas/NetProxyConfig'
        enterpriseDefault:
          type: boolean
          title: make this network default for device
        mtu:
          type: integer
          format: int64
          title: >-
            Maximum transmission unit (MTU) to set on the associated network
            adapter(s)
        wireless:
          title: Wifi configuration
          allOf:
            - $ref: '#/components/schemas/NetWirelessConfig'
        project:
          title: project configuration
          allOf:
            - $ref: '#/components/schemas/NetProjectInfo'
      description: >-
        Network provides Edge nodes a variety of connectivity choices for all
        types of networks. This enables physical connectivity with Ethernet,
        WiFi, LTE to communicate with ZEDEDA Cloud controller and Data Centres.
      title: Network detailed configuration
      required:
        - name
        - title
        - projectId
        - kind
        - ip
    AdapterUsage:
      type: string
      enum:
        - ADAPTER_USAGE_UNSPECIFIED
        - ADAPTER_USAGE_MANAGEMENT
        - ADAPTER_USAGE_APP_DIRECT
        - ADAPTER_USAGE_APP_SHARED
        - ADAPTER_USAGE_DISABLED
        - ADAPTER_USAGE_VLANS_ONLY
        - ADAPTER_USAGE_BOND_MEMBER
      default: ADAPTER_USAGE_UNSPECIFIED
      description: |-
        - ADAPTER_USAGE_UNSPECIFIED: Adapter unspecified
         - ADAPTER_USAGE_MANAGEMENT: Adapter can be used by EVE as well as other Edge applications
         - ADAPTER_USAGE_APP_DIRECT: Adapter is directly used by one edge application
         - ADAPTER_USAGE_APP_SHARED: Adapter can be shared by different network instances
         - ADAPTER_USAGE_DISABLED: Adapter disabled, for future use
         - ADAPTER_USAGE_VLANS_ONLY: Adapter is used exclusively for VLANs
         - ADAPTER_USAGE_BOND_MEMBER: Adapter is used exclusively for BOND interfaces
      title: Adapter Usage
    NetworkDHCPType:
      type: string
      enum:
        - NETWORK_DHCP_TYPE_UNSPECIFIED
        - NETWORK_DHCP_TYPE_STATIC
        - NETWORK_DHCP_TYPE_PASSTHROUGH
        - NETWORK_DHCP_TYPE_DEPRECATED
        - NETWORK_DHCP_TYPE_CLIENT
        - NETWORK_DHCP_TYPE_STATIC_ADAPTER_SPECIFIC
      default: NETWORK_DHCP_TYPE_UNSPECIFIED
      title: |-
        - NETWORK_DHCP_TYPE_STATIC: used for adapter configured DHCP static
         - NETWORK_DHCP_TYPE_PASSTHROUGH: used for adapter configured DHCP none, application will do DHCP
         - NETWORK_DHCP_TYPE_DEPRECATED: used for application simulation
         - NETWORK_DHCP_TYPE_CLIENT: used for adapter configured DHCP client
         - NETWORK_DHCP_TYPE_STATIC_ADAPTER_SPECIFIC: used to configure device adapter specific static networks
    Severity:
      type: string
      enum:
        - SEVERITY_UNSPECIFIED
        - SEVERITY_NOTICE
        - SEVERITY_WARNING
        - SEVERITY_ERROR
      default: SEVERITY_UNSPECIFIED
      title: Severity tells the severity type
    DeviceEntity:
      type: object
      properties:
        entity:
          $ref: '#/components/schemas/Entity'
        entityId:
          type: string
        entityName:
          type: string
    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
    NetworkKind:
      type: string
      enum:
        - NETWORK_KIND_UNSPECIFIED
        - NETWORK_KIND_V4
        - NETWORK_KIND_V6
        - NETWORK_KIND_V4_ONLY
        - NETWORK_KIND_V6_ONLY
        - NETWORK_KIND_DUAL_V4_V6
      default: NETWORK_KIND_UNSPECIFIED
      title: |-
        NetworkKind: Used for the network configuration, this is
         only client mode
    IpSpec:
      type: object
      properties:
        deprecatedDhcp:
          type: boolean
          title: deprecated
        dhcp:
          $ref: '#/components/schemas/NetworkDHCPType'
        subnet:
          type: string
        mask:
          type: string
        gateway:
          type: string
        domain:
          type: string
        ntp:
          type: string
          title: ntp will be deprecated
        dns:
          type: array
          items:
            type: string
        dhcpRange:
          description: |-
            for IPAM management when dhcp is turned on.
            If none provided, system will default pool.
          allOf:
            - $ref: '#/components/schemas/dhcpIpRange'
        ntpServers:
          type: array
          items:
            $ref: '#/components/schemas/NtpServer'
        ntpServerExclusively:
          type: boolean
    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
    NetProxyConfig:
      type: object
      properties:
        networkProxy:
          type: boolean
          description: Network proxy
        proxies:
          type: array
          items:
            $ref: '#/components/schemas/NetProxyServer'
          description: 'Net Proxy: protocol level proxies'
          title: protocol level proxies
        exceptions:
          type: string
          description: Proxy exceptions
        pacfile:
          type: string
          description: proxy configuration in a pacfile
          title: proxy configuration in a pacfile
        networkProxyURL:
          type: string
          description: Network Proxy URL
          title: Direct URL for wpad.dat download
        networkProxyCerts:
          type: array
          items:
            type: string
            format: byte
          description: Network Proxy Certificates
          title: Proxy Certificates
      description: Net Proxy Configurations
      title: Net Proxy Configurations
    NetWirelessConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/NetworkWirelessType'
        cellularCfg:
          $ref: '#/components/schemas/NetCellularConfig'
        wifiCfg:
          $ref: '#/components/schemas/NetWifiConfig'
    NetProjectInfo:
      type: object
      properties:
        projectId:
          type: string
          description: system generated unique id for a project
          readOnly: true
          pattern: '[0-9A-Za-z-]+'
        projectName:
          type: string
          description: project name
    Entity:
      type: string
      enum:
        - ENTITY_UNSPECIFIED
        - ENTITY_BASE_OS
        - ENTITY_SYSTEM_ADAPTER
        - ENTITY_VAULT
        - ENTITY_ATTESTATION
        - ENTITY_APP_INSTANCE
        - ENTITY_PORT
        - ENTITY_NETWORK
        - ENTITY_NETWORK_INSTANCE
        - ENTITY_CONTENT_TREE
        - ENTITY_CONTENT_BLOB
        - ENTITY_VOLUME
      default: ENTITY_UNSPECIFIED
      description: |-
        - ENTITY_UNSPECIFIED: Invalid Device Entity
         - ENTITY_BASE_OS: Base OS entity
         - ENTITY_SYSTEM_ADAPTER: System Adapter Entity
         - ENTITY_VAULT: Vault Entity
         - ENTITY_ATTESTATION: Attestation Entity
         - ENTITY_APP_INSTANCE: App Instance Entity
         - ENTITY_PORT: Port Entity
         - ENTITY_NETWORK: Network Entity
         - ENTITY_NETWORK_INSTANCE: Network Instance Entity
         - ENTITY_CONTENT_TREE: ContentTree Entity
         - ENTITY_CONTENT_BLOB: Blob Entity
         - ENTITY_VOLUME: VOLUME Entity
      title: Edge node components
    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
    NetProxyServer:
      type: object
      properties:
        proto:
          description: >-
            Net Proxy proto


            **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/NetworkProxyProto'
          x-zededa-source-issues:
            - code: conflicting-reference
              pointer: '#/definitions/NetProxyServer/properties/proto'
              keyword: type
              sourceValue: object
              reference: '#/definitions/NetworkProxyProto'
              referencedValue: string
        server:
          type: string
          description: Net Proxy Server
        port:
          type: number
          format: int64
          description: Net Proxy Port
      description: Net Proxy Server
      title: Net Proxy Server
    NetworkWirelessType:
      type: string
      enum:
        - NETWORK_WIRELESS_TYPE_UNSPECIFIED
        - NETWORK_WIRELESS_TYPE_WIFI
        - NETWORK_WIRELESS_TYPE_CELLULAR
      default: NETWORK_WIRELESS_TYPE_UNSPECIFIED
    NetCellularConfig:
      type: object
      properties:
        APN:
          type: string
          description: >-
            APN string - by default it is "internet".

            TO BE DEPRECATED: Fill connection arguments inside access_points
            instead.

            If access_points is non-empty, then APN field is ignored.
        probe:
          description: |-
            Optional cellular connectivity probing.
            By default it is enabled.
          allOf:
            - $ref: '#/components/schemas/configCellularConnectivityProbe'
        locationTracking:
          type: boolean
          description: >-
            Some LTE modems have GNSS receiver integrated and can be used for
            device

            location tracking.

            Enable this option to have location info periodically obtained from
            this

            modem and published to controller and to applications.
        accessPoints:
          type: array
          items:
            $ref: '#/components/schemas/NetCellularAccessPoint'
          description: |-
            Parameters to apply for connecting to cellular networks.
            Configured separately for every SIM card inserted into the modem.
        activatedSimSlot:
          type: integer
          format: int64
          description: |-
            Select SIM card slot to activate.
            Currently, EVE support only single-standby SIM card mode.
            0 - unspecified (leave the currently activated)
            1 - activate the first SIM slot
            2 - activate the second SIM slot
            etc.
    NetWifiConfig:
      type: object
      properties:
        wifiSSID:
          type: string
        keyScheme:
          $ref: '#/components/schemas/NetworkWiFiKeyScheme'
        identity:
          type: string
        secret:
          $ref: '#/components/schemas/NetWifiConfigSecrets'
        crypto:
          $ref: '#/components/schemas/NetWifiConfigNetcryptoblock'
        priority:
          type: integer
          format: int32
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
        cryptoKey:
          type: string
    NetworkProxyProto:
      type: string
      enum:
        - NETWORK_PROXY_PROTO_HTTP
        - NETWORK_PROXY_PROTO_HTTPS
        - NETWORK_PROXY_PROTO_SOCKS
        - NETWORK_PROXY_PROTO_FTP
        - NETWORK_PROXY_PROTO_OTHER
      default: NETWORK_PROXY_PROTO_HTTP
    configCellularConnectivityProbe:
      type: object
      properties:
        disable:
          type: boolean
          description: If true, then probing is disabled.
        probeAddress:
          type: string
          description: >-
            IP/FQDN to periodically probe using 3 pings per iteration to
            determine connectivity status.

            This field is now deprecated and replaced with custom_probe (see
            below).

            To maintain backward-compatibility, EVE will check both
            probe_address and custom_probe

            and will use whichever has non-zero value (if any), but preferring
            custom_probe.
        customProbe:
          description: >-
            User-defined probe for cellular connectivity testing.

            Only IP address is allowed as ConnectivityProbe.probe_address (and
            port if needed),

            not hostname.

            The probing algorithm is more complex that just testing reachability
            of a remote

            endpoint and the goal is to minimize generated traffic, probing time
            and false negatives

            (that would trigger undesired re-connect).

            EVE will periodically check the modem status, accessibility of DNS
            server(s) and potentially

            also proxies in the local network, and only as the last resort (if
            connectivity state

            is still unclear) it will probe the remote endpoint. If custom_probe
            is not defined,

            EVE will try to ping "8.8.8.8" (Google public DNS).

            It is recommended to use custom probe for private LTE networks where
            public DNS servers

            might not be allowed by the firewall (and hence ping would fail even
            with a working

            connectivity).
          allOf:
            - $ref: '#/components/schemas/commonConnectivityProbe'
      description: >-
        CellularConnectivityProbe is used to periodically check the connectivity
        status of a cellular network

        by probing a remote endpoint.

        Whenever the probe fails, the cellular connection is automatically
        restarted. If the probe keeps failing

        even after the restart, the failure is reported in
        ZCellularStatus.probeError.

        The connectivity probing interval is 5 minutes and currently it is not
        configurable.
    NetCellularAccessPoint:
      type: object
      properties:
        simSlot:
          type: integer
          format: int64
          description: |-
            SIM card slot to which this configuration applies.
            0 - unspecified (apply to currently activated or the only available)
            1 - config for SIM card in the first slot
            2 - config for SIM card in the second slot
            etc.
        apn:
          type: string
          description: |-
            Access Point Network to connect into.
            By default it is "internet".
        authProtocol:
          description: Authentication protocol used by the network.
          allOf:
            - $ref: '#/components/schemas/evecommonCellularAuthProtocol'
        cipherData:
          description: |-
            Cipher data may contain encrypted user credentials
            (inside cellNetUsername and cellNetPassword fields).
          allOf:
            - $ref: '#/components/schemas/commonCipherBlock'
        preferredPlmns:
          type: array
          items:
            type: string
          description: >-
            The set of cellular network operators that modem should preferably
            try to register

            and connect into.

            Network operator should be referenced by PLMN (Public Land Mobile
            Network) code,

            consisting of 3-digits MCC (Mobile Country Code) and 2 or 3-digits
            MNC (Mobile Network Code),

            separated by a dash, e.g. "310-260".

            If empty, then modem will select the network automatically based on
            the SIM card config.
        forbidRoaming:
          type: boolean
          description: If true, then modem will avoid connecting to networks with roaming.
        preferredRats:
          type: array
          items:
            $ref: '#/components/schemas/evecommonRadioAccessTechnology'
          description: >-
            The list of preferred Radio Access Technologies (RATs) to use for
            connecting

            to the network.

            Order matters, first is the most preferred, second is tried next,
            etc.

            Not listed technologies will not be tried.

            If empty, then modem will select RAT automatically.
        ipType:
          description: The IP addressing type to use for the default bearer.
          allOf:
            - $ref: '#/components/schemas/commonCellularIPType'
        attachApn:
          type: string
          description: >-
            Access Point Name (APN) for the attach (initial) bearer.

            This field is optional. If not specified, EVE will not send any
            attach bearer

            configuration to the modem. Instead, the modem will use one of its
            pre-installed

            profiles (see CellularProfile) to determine the configuration.
        attachIpType:
          description: |-
            The IP addressing type to use for the attach bearer.
            Leave undefined if attach_apn is not specified.
          allOf:
            - $ref: '#/components/schemas/commonCellularIPType'
        attachAuthProtocol:
          description: |-
            Authentication protocol used for the attach bearer.
            Leave undefined if attach_apn is not specified.
          allOf:
            - $ref: '#/components/schemas/CellularAuthProtocol'
        secrets:
          $ref: '#/components/schemas/NetCellularAccessPointSecrets'
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
        cryptoKey:
          type: string
        attachSecrets:
          $ref: '#/components/schemas/NetCellularAccessPointSecrets'
        attachEncryptedSecrets:
          type: object
          additionalProperties:
            type: string
    NetworkWiFiKeyScheme:
      type: string
      enum:
        - NETWORK_WIFIKEY_SCHEME_UNSPECIFIED
        - NETWORK_WIFIKEY_SCHEME_WPAPSK
        - NETWORK_WIFIKEY_SCHEME_WPAEAP
      default: NETWORK_WIFIKEY_SCHEME_UNSPECIFIED
    NetWifiConfigSecrets:
      type: object
      properties:
        WiFiPasswd:
          type: string
          description: Wifi Password
    NetWifiConfigNetcryptoblock:
      type: object
      properties:
        identity:
          type: string
        password:
          type: string
    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.
    evecommonCellularAuthProtocol:
      type: string
      enum:
        - CELLULAR_AUTH_PROTOCOL_NONE
        - CELLULAR_AUTH_PROTOCOL_PAP
        - CELLULAR_AUTH_PROTOCOL_CHAP
        - CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP
      default: CELLULAR_AUTH_PROTOCOL_NONE
      description: >-
        CellularAuthProtocol defines the authentication protocol used for
        cellular connection.

         - CELLULAR_AUTH_PROTOCOL_NONE: No authentication.
         - CELLULAR_AUTH_PROTOCOL_PAP: Password Authentication Protocol.
         - CELLULAR_AUTH_PROTOCOL_CHAP: Challenge-Handshake Authentication Protocol.
         - CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP: Both PAP and CHAP.
    commonCipherBlock:
      type: object
      properties:
        cipherContextId:
          type: string
          title: cipher context id
        initialValue:
          type: string
          format: byte
          title: Initial Value for Symmetric Key derivation
        cipherData:
          type: string
          format: byte
          title: encrypted sensitive data
        clearTextSha256:
          type: string
          format: byte
          title: sha256 of the plaintext sensitive data
      title: Encrypted sensitive data information
    evecommonRadioAccessTechnology:
      type: string
      enum:
        - RADIO_ACCESS_TECHNOLOGY_UNSPECIFIED
        - RADIO_ACCESS_TECHNOLOGY_GSM
        - RADIO_ACCESS_TECHNOLOGY_UMTS
        - RADIO_ACCESS_TECHNOLOGY_LTE
        - RADIO_ACCESS_TECHNOLOGY_5GNR
      default: RADIO_ACCESS_TECHNOLOGY_UNSPECIFIED
      description: |2-
         - RADIO_ACCESS_TECHNOLOGY_GSM: Global System for Mobile Communications (2G).
         - RADIO_ACCESS_TECHNOLOGY_UMTS: Universal Mobile Telecommunications System (3G).
         - RADIO_ACCESS_TECHNOLOGY_LTE: Long Term Evolution (4G).
         - RADIO_ACCESS_TECHNOLOGY_5GNR: 5G New Radio.
    commonCellularIPType:
      type: string
      enum:
        - CELLULAR_IP_TYPE_UNSPECIFIED
        - CELLULAR_IP_TYPE_IPV4
        - CELLULAR_IP_TYPE_IPV4_AND_IPV6
        - CELLULAR_IP_TYPE_IPV6
      default: CELLULAR_IP_TYPE_UNSPECIFIED
      description: >-
        The IP addressing type to use for a given attach or default bearer.

         - CELLULAR_IP_TYPE_UNSPECIFIED: IP type is not specified.
        When unspecified, EVE will not enforce an IP type in the bearer
        configuration.

        The modem will instead use its built-in profiles (see CellularProfile)
        to determine

        the appropriate IP type for the network.
         - CELLULAR_IP_TYPE_IPV4: IPv4 only.
         - CELLULAR_IP_TYPE_IPV4_AND_IPV6: IPv4 and IPv6.
         - CELLULAR_IP_TYPE_IPV6: IPv6 only.
    CellularAuthProtocol:
      type: string
      enum:
        - CELLULAR_AUTH_PROTOCOL_NONE
        - CELLULAR_AUTH_PROTOCOL_PAP
        - CELLULAR_AUTH_PROTOCOL_CHAP
        - CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP
      default: CELLULAR_AUTH_PROTOCOL_NONE
      description: |2-
         - CELLULAR_AUTH_PROTOCOL_NONE: No authentication.
         - CELLULAR_AUTH_PROTOCOL_PAP: Password Authentication Protocol.
         - CELLULAR_AUTH_PROTOCOL_CHAP: Challenge-Handshake Authentication Protocol.
         - CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP: Both PAP and CHAP.
    NetCellularAccessPointSecrets:
      type: object
      properties:
        username:
          type: string
          description: Cellular Username
        password:
          type: string
          description: Cellular Password
    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

````