> ## 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 a third party plugin.

> PUT /api/v1/plugins/id/{id}. Orchestrator 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/orchestrator.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.
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 application 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 plugin.
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/orchestrator.json PUT /v1/plugins/id/{id}
openapi: 3.0.0
info:
  title: ZEDEDA Orchestrator Service
  description: >-
    The ZEDEDA Orchestrator Service is part of ZEDEDA Edge Orchestration
    Platform. Orchestrator service defines the user facing APIs to interact with
    a third-party client (e.x. Azure, Rancher).
  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: ClusterInstanceConfiguration
  - name: ClusterInstanceStatus
  - name: ThirdPartyPluginManagement
  - name: DataStreamConfigs
  - name: AzureDeployments
  - name: APIUsageTracking
externalDocs:
  description: ZEDEDA Product Documentation
  url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/cluster-instance-management
paths:
  /v1/plugins/id/{id}:
    put:
      tags:
        - ThirdPartyPluginManagement
      summary: Update a third party plugin.
      description: >-
        Update a plugin. The usual pattern to update a plugin is to retrieve the
        record and update with the modified values in a new body to update the
        plugin.
      operationId: ThirdPartyPluginManagement_UpdatePlugin
      parameters:
        - name: id
          description: >-
            System defined universally unique Id of the third party plugin
            request
          in: path
          required: true
          schema:
            type: string
        - name: X-Request-Id
          in: header
          required: false
          description: User-Agent specified id to track a request
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: >-
                    User defined name of the third party plugin request, 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: >-
                        #/paths/~1v1~1plugins~1id~1{id}/put/parameters/1/schema/properties/name
                      keyword: uniqueItems
                      sourceValue: true
                title:
                  type: string
                  description: >-
                    User defined title of the third party entity. 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 third party entity.
                  maxLength: 256
                integrationType:
                  description: Type of desired integration type
                  allOf:
                    - $ref: '#/components/schemas/PluginIntegrationType'
                pluginType:
                  description: type of actual integration
                  allOf:
                    - $ref: '#/components/schemas/PluginType'
                objectType:
                  description: >-
                    object type to which this third party integration is
                    associated, can project, cluster etc.
                  allOf:
                    - $ref: '#/components/schemas/ObjectType'
                objectId:
                  type: string
                  description: objectId to which this third party integration is associated
                status:
                  description: status of the third party entity.
                  readOnly: true
                  allOf:
                    - $ref: '#/components/schemas/PluginStatus'
                revision:
                  description: system defined info
                  readOnly: true
                  allOf:
                    - $ref: '#/components/schemas/ObjectRevision'
                statusMessage:
                  type: string
                  description: Detailed status message of the third party.
                  maxLength: 256
                splunkConfig:
                  title: config required for configuring splunk
                  allOf:
                    - $ref: '#/components/schemas/SplunkConfig'
                httpConfig:
                  $ref: '#/components/schemas/HttpConfig'
                rancherConfig:
                  $ref: '#/components/schemas/OrchestratorConfig'
                vmwareVCOConfig:
                  $ref: '#/components/schemas/VmwareVCOConfig'
                vmwareTMCConfig:
                  $ref: '#/components/schemas/VmwareTMCConfig'
                openTelemetryConfig:
                  $ref: '#/components/schemas/OpenTelemetryConfig'
              description: >-
                The payload to configure the third party associated with a
                particular integration.
              title: Third Party Plugin integration detail
              required:
                - name
                - title
                - integrationType
                - pluginType
        required: true
      responses:
        '200':
          description: A successful response.
          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 application 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 plugin.
          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/IAM/
components:
  schemas:
    PluginIntegrationType:
      type: string
      enum:
        - PLUGIN_INTEGRATION_TYPE_UNSPECIFIED
        - PLUGIN_INTEGRATION_TYPE_DATA
        - PLUGIN_INTEGRATION_TYPE_CLOUD
        - PLUGIN_INTEGRATION_TYPE_STORAGE
        - PLUGIN_INTEGRATION_TYPE_MONITORING
        - PLUGIN_INTEGRATION_TYPE_ORCHESTRATOR
      default: PLUGIN_INTEGRATION_TYPE_UNSPECIFIED
    PluginType:
      type: string
      enum:
        - PLUGIN_TYPE_UNSPECIFIED
        - PLUGIN_TYPE_SPLUNK
        - PLUGIN_TYPE_HTTP
        - PLUGIN_TYPE_RANCHER
        - PLUGIN_TYPE_VMWARE_VCO
        - PLUGIN_TYPE_VMWARE_TMC
        - PLUGIN_TYPE_OTEL
      default: PLUGIN_TYPE_UNSPECIFIED
    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
    PluginStatus:
      type: string
      enum:
        - PLUGIN_STATUS_UNSPECIFIED
        - PLUGIN_STATUS_INITIALIZED
        - PLUGIN_STATUS_INPROGRESS
        - PLUGIN_STATUS_RUNNING
        - PLUGIN_STATUS_FAILED
      default: PLUGIN_STATUS_UNSPECIFIED
    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
    SplunkConfig:
      type: object
      properties:
        index:
          type: string
          description: The splunk index.
        hecToken:
          type: string
          description: The http event collector token.
        host:
          type: string
          description: The Host where splunk server is running.
        port:
          type: string
          description: Port to which Splunk server is listening to.
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
          description: encrypted secrets
        cryptoKey:
          type: string
          description: key to decrypt serets
        enableTLS:
          type: boolean
          description: TLS enable flag
        skipVerify:
          type: boolean
          description: specify skip verify flag
        urlExtension:
          type: string
          description: splunk url extension
      description: The payload to configure the splunk third party plugin.
      title: Splunk Configuration required for the splunk plugin integration
      required:
        - port
        - host
        - hecToken
    HttpConfig:
      type: object
      properties:
        host:
          type: string
          description: The Host where Http server is running.
        port:
          type: string
          description: Port to which Http server is listening to.
        extension:
          type: string
          description: Url extension
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
          description: encrypted secrets
        cryptoKey:
          type: string
          description: key to decrypt serets
        enableTLS:
          type: boolean
          description: TLS enable flag
        skipVerify:
          type: boolean
          description: specify skip verify flag
        httpSessionToken:
          type: string
          description: The http session token
        certFile:
          type: string
          description: The http client cert file path
        keyFile:
          type: string
          description: The http client private key file path
        rootCasFile:
          type: string
          description: The http client server cert file path
      description: The payload to configure the http third party plugin.
      title: Http configuration required for the http plugin integration
      required:
        - port
        - host
        - extension
    OrchestratorConfig:
      type: object
      properties:
        orchestratorAuthenticationType:
          description: Orchestrator authentication type
          allOf:
            - $ref: '#/components/schemas/OrchestratorAuthenticationType'
        orchestratorServerAddress:
          type: string
          description: Orchestrator server's IP address
        orchestratorPort:
          type: string
          description: Port on which the orchestrator server is listening
        orchestratorUsername:
          type: string
          description: Username to login to the orchestrator server
        orchestratorPassword:
          type: string
          description: Password to login to the orchestrator server
        orchestratorAPIToken:
          type: string
          description: API token to authenticate requests to the orchestrator server
        encryptedSecrets:
          type: object
          additionalProperties:
            type: string
          description: encrypted secrets
        cryptoKey:
          type: string
          description: key to decrypt serets
        orchestratorMaxClusterCount:
          type: number
          format: int64
          description: maximum cluster rancher can hold
        orchestratorOrder:
          type: number
          format: int64
          description: rancher configuration priority order
      description: The payload to configure the third party cluster orchestrator.
      title: Configuration required for the cluster orchestrator integration
      required:
        - orchestratorAuthenticationType
        - orchestratorServerAddress
        - orchestratorPort
    VmwareVCOConfig:
      type: object
      properties:
        accessCredentials:
          description: Access Credentials to interact with VMware Velocloud
          allOf:
            - $ref: '#/components/schemas/OrchestratorConfig'
        VmwareVCOProfileID:
          type: number
          format: int64
          description: VCE profile ID to use while interacting with VMware Velocloud
        VmwareVCOLicenseID:
          type: number
          format: int64
          description: VCO License ID use to use while interacting with VMware Velocloud
    VmwareTMCConfig:
      type: object
      properties:
        accessCredentials:
          description: Access Credentials to interact with VMware Tanzu Mission Control
          allOf:
            - $ref: '#/components/schemas/OrchestratorConfig'
        useDefaultClusterGroup:
          type: boolean
          description: >-
            Indicates that default Cluster Group name is used to interact with
            VMWare Tanzu Mission Control.
        useDefaultWorkspace:
          type: boolean
          description: >-
            Indicates that default Workspace name is used to interact with
            VMWare Tanzu Mission Control
        clusterGroupName:
          type: string
          description: >-
            Cluster Group name to interact with VMWare Tanzu Mission Control
            when UseDefaultClusterGroup flag is disabled
        workspaceName:
          type: string
          description: >-
            Workspace name to interact with VMWare Tanzu Mission Control when
            UseDefaultWorkspaceName flag is disabled
        mgmtClusterName:
          type: string
          description: >-
            Management Cluster name to interact with VMWare Tanzu Mission
            Control
    OpenTelemetryConfig:
      type: object
      properties:
        host:
          type: string
          description: The hostname or IP address of the OpenTelemetry collector endpoint.
        port:
          type: integer
          format: int64
          description: The port on which the OpenTelemetry collector is listening.
        urlExtension:
          type: string
          description: URL path extension for the OpenTelemetry collector endpoint.
        bearerToken:
          type: string
          description: Bearer token for authenticating with the OpenTelemetry collector.
        enableTLS:
          type: boolean
          description: Enable TLS for the connection to the OpenTelemetry collector.
        skipVerify:
          type: boolean
          description: Skip TLS certificate verification.
      description: The payload to configure the OpenTelemetry collector endpoint.
      title: OpenTelemetry Configuration
      required:
        - host
        - port
        - bearerToken
    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'
    OrchestratorAuthenticationType:
      type: string
      enum:
        - ORCHESTRATOR_AUTHENTICATION_TYPE_UNSPECIFIED
        - ORCHESTRATOR_AUTHENTICATION_TYPE_CREDENTIALS
        - ORCHESTRATOR_AUTHENTICATION_TYPE_API_TOKEN
      default: ORCHESTRATOR_AUTHENTICATION_TYPE_UNSPECIFIED
      description: |2-
         - ORCHESTRATOR_AUTHENTICATION_TYPE_UNSPECIFIED: Unspecified authentication type
         - ORCHESTRATOR_AUTHENTICATION_TYPE_CREDENTIALS: Authenticate using credentials
         - ORCHESTRATOR_AUTHENTICATION_TYPE_API_TOKEN: Authenticate using api token.
    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
    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
    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
  securitySchemes:
    BearerToken:
      type: http
      description: Bearer token for user session
      scheme: bearer

````