Zededa PrivateHelmRepositories API

APIs for managing private Helm repositories and their authentication configurations

OpenAPI Specification

zededa-privatehelmrepositories-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: ZEDEDA App Profiles Service AppProfileService PrivateHelmRepositories API
  description: The ZEDEDA App Profiles Service is part of ZEDEDA Edge Orchestration Platform. This service enables customers to define their app profiles on ZEDEDA platform and to manage them remotely.
  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
basePath: /api
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- BearerToken: []
tags:
- name: PrivateHelmRepositories
  description: APIs for managing private Helm repositories and their authentication configurations
paths:
  /v1/cluster/instances/kubernetes/helm/repository:
    get:
      summary: List all private Helm repositories
      description: "Retrieve a list of all configured private Helm repositories with their status and configuration information.\n\n**Example Request:**\n```\nGET /v1/cluster/instances/kubernetes/helm/repository\n```\n\n**Example Response:**\n```json\n{\n  \"list\": [\n    {\n      \"id\": \"private-repo-abc123\",\n      \"metadata\": {\n        \"name\": \"company-charts\",\n        \"title\": \"Company Private Helm Repository\",\n        \"description\": \"Private Helm repository containing company-specific charts\",\n        \"tags\": {\n          \"environment\": \"production\"\n        }\n      },\n      \"spec\": {\n        \"repoDetails\": {\n          \"type\": \"PRIVATE_REPO_TYPE_HELM_INDEX\",\n          \"url\": \"https://charts.company.com/helm\"\n        }\n      },\n      \"status\": {\n        \"error\": false,\n        \"message\": \"Repository is accessible\",\n        \"name\": \"company-charts\"\n      },\n      \"repoIdentifier\": \"company-charts-repo\"\n    },\n    {\n      \"id\": \"private-repo-def456\",\n      \"metadata\": {\n        \"name\": \"team-charts\",\n        \"title\": \"Team Specific Charts\",\n        \"description\": \"Charts for team-specific applications\"\n      },\n      \"spec\": {\n        \"repoDetails\": {\n          \"type\": \"PRIVATE_REPO_TYPE_GIT\",\n          \"url\": \"https://git.company.com/helm-charts\",\n          \"branch\": \"main\"\n        }\n      },\n      \"status\": {\n        \"error\": false,\n        \"message\": \"Repository is accessible\",\n        \"name\": \"team-charts\"\n      },\n      \"repoIdentifier\": \"team-charts-repo\"\n    }\n  ],\n  \"total\": 2\n}\n```"
      operationId: PrivateHelmRepositories_ListPrivateRepos
      responses:
        '200':
          description: Successfully retrieved private repository list
          schema:
            $ref: '#/definitions/PrivateRepoListResponse'
        '400':
          description: Bad Request. The API gateway did not process the request because of invalid value of filter parameters.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to list private repositories.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve private repository list due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
      - PrivateHelmRepositories
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
    post:
      summary: Create a new private Helm repository
      description: "Create a new private Helm repository configuration to access Helm charts from private repositories with authentication. This enables deployment of Helm charts from secured repositories.\n\n**Example Request:**\n```json\n{\n  \"metadata\": {\n    \"name\": \"company-charts\",\n    \"title\": \"Company Private Helm Repository\",\n    \"description\": \"Private Helm repository containing company-specific charts\",\n    \"tags\": {\n      \"environment\": \"production\",\n      \"team\": \"platform\"\n    }\n  },\n  \"spec\": {\n    \"repoDetails\": {\n      \"type\": \"PRIVATE_REPO_TYPE_HELM_INDEX\",\n      \"url\": \"https://charts.company.com/helm\",\n      \"branch\": \"main\"\n    },\n    \"auth\": {\n      \"secret\": {\n        \"type\": \"SECRET_TYPE_BASIC_AUTH\",\n        \"name\": \"helm-repo-credentials\"\n      }\n    }\n  }\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"private-repo-abc123\",\n  \"objectName\": \"company-charts\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 201,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```"
      operationId: PrivateHelmRepositories_CreatePrivateRepo
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '201':
          description: Successfully created private Helm repository configuration
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '400':
          description: Bad Request. Invalid repository configuration or missing required fields.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to create private repository configurations.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '409':
          description: Conflict. Private repository configuration with the same name already exists.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to create private repository configuration due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/PrivateRepoCreateRequest'
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
      tags:
      - PrivateHelmRepositories
  /v1/cluster/instances/kubernetes/helm/repository/id/{id}:
    put:
      summary: Update private Helm repository
      description: "Update an existing private Helm repository configuration. This allows modification of repository details, authentication settings, and metadata. The repository name cannot be changed after creation.\n\n**Example Request:**\n```json\n{\n  \"id\": \"private-repo-abc123\",\n  \"metadata\": {\n    \"name\": \"company-charts\",\n    \"title\": \"Updated Company Private Helm Repository\",\n    \"description\": \"Updated private Helm repository containing company-specific charts\",\n    \"tags\": {\n      \"environment\": \"production\",\n      \"team\": \"platform\",\n      \"updated\": \"2024-01-15\"\n    }\n  },\n  \"spec\": {\n    \"repoDetails\": {\n      \"type\": \"PRIVATE_REPO_TYPE_HELM_INDEX\",\n      \"url\": \"https://charts.company.com/helm/v2\",\n      \"branch\": \"main\"\n    },\n    \"auth\": {\n      \"secret\": {\n        \"type\": \"SECRET_TYPE_TOKEN\",\n        \"name\": \"updated-helm-repo-token\"\n      }\n    }\n  }\n}\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"private-repo-abc123\",\n  \"objectName\": \"company-charts\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```"
      operationId: PrivateHelmRepositories_UpdatePrivateRepo
      responses:
        '200':
          description: Successfully updated private repository configuration
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '400':
          description: Bad Request. Invalid repository configuration or missing required fields.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to update this private repository.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '404':
          description: Not Found. Private repository with the specified ID does not exist.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '409':
          description: Conflict. Cannot update private repository due to conflicting state.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update private repository due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: id
        description: Unique identifier of the private repository to update (required)
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          type: object
          properties:
            metadata:
              $ref: '#/definitions/PrivateRepoMetadata'
              description: Metadata for the private repository (name cannot be updated, required)
            spec:
              $ref: '#/definitions/PrivateRepoSpec'
              description: Specification for the private repository (required)
          description: Request message for updating an existing private repository configuration
          title: Private Repository update request
          required:
          - metadata
          - spec
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
      tags:
      - PrivateHelmRepositories
  /v1/cluster/instances/kubernetes/helm/repository/id/{privateRepoId}:
    get:
      summary: Get private Helm repository by ID
      description: "Retrieve detailed information about a specific private Helm repository including its configuration, authentication details, and status.\n\n**Example Request:**\n```\nGET /v1/cluster/instances/kubernetes/helm/repository/id/private-repo-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"id\": \"private-repo-abc123\",\n  \"metadata\": {\n    \"name\": \"company-charts\",\n    \"title\": \"Company Private Helm Repository\",\n    \"description\": \"Private Helm repository containing company-specific charts\",\n    \"tags\": {\n      \"environment\": \"production\",\n      \"team\": \"platform\"\n    }\n  },\n  \"spec\": {\n    \"repoDetails\": {\n      \"type\": \"PRIVATE_REPO_TYPE_HELM_INDEX\",\n      \"url\": \"https://charts.company.com/helm\",\n      \"branch\": \"main\"\n    },\n    \"auth\": {\n      \"secret\": {\n        \"id\": \"secret-123\",\n        \"type\": \"SECRET_TYPE_BASIC_AUTH\",\n        \"name\": \"helm-repo-credentials\",\n        \"data\": {\n          \"username\": \"helm-user\",\n          \"password\": \"***\"\n        }\n      }\n    }\n  },\n  \"status\": {\n    \"error\": false,\n    \"message\": \"Repository is accessible and ready\",\n    \"name\": \"company-charts\",\n    \"transitioning\": false\n  },\n  \"repoIdentifier\": \"company-charts-repo\"\n}\n```"
      operationId: PrivateHelmRepositories_GetPrivateRepo
      responses:
        '200':
          description: Successfully retrieved private repository configuration
          schema:
            $ref: '#/definitions/PrivateRepoGetByIdResponse'
        '400':
          description: Bad Request. Invalid repository ID format.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to view this private repository.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '404':
          description: Not Found. Private repository with the specified ID does not exist.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve private repository due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: privateRepoId
        description: 'Unique identifier of the Private Repository (required). Example: ''private-repo-abc123'''
        in: path
        required: true
        type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
      tags:
      - PrivateHelmRepositories
    delete:
      summary: Delete private Helm repository
      description: "Delete a private Helm repository configuration. This will remove access to the private repository and all its associated configurations. This action is irreversible.\n\n**Example Request:**\n```\nDELETE /v1/cluster/instances/kubernetes/helm/repository/id/private-repo-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"private-repo-abc123\",\n  \"objectName\": \"company-charts\",\n  \"objectRevision\": \"\",\n  \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n  \"operationTime\": \"\",\n  \"startTime\": \"\",\n  \"endTime\": \"\",\n  \"user\": \"\",\n  \"httpStatusCode\": 200,\n  \"httpStatusMsg\": \"\",\n  \"jobId\": \"\",\n  \"error\": [\n    {\n      \"ec\": \"zMsgSucess\",\n      \"location\": \"\",\n      \"details\": \"\"\n    }\n  ]\n}\n```\n\n**Warning:** This operation will remove the private repository configuration and stop access to its charts. Any deployments using charts from this repository may be affected.\n\n**Note:** The private_repo_id parameter is **required** and must be a valid repository identifier."
      operationId: PrivateHelmRepositories_DeletePrivateRepo
      responses:
        '200':
          description: Successfully deleted private repository configuration
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '400':
          description: Bad Request. Invalid repository ID format.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to delete this private repository.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '404':
          description: Not Found. Private repository with the specified ID does not exist.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '409':
          description: Conflict. Cannot delete private repository because it is currently in use by deployments.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to delete private repository due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: privateRepoId
        description: 'Unique identifier of the Private Repository (required). Example: ''private-repo-abc123'''
        in: path
        required: true
        type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
      tags:
      - PrivateHelmRepositories
  /v1/cluster/instances/kubernetes/helm/repository/id/{privateRepoId}/charts:
    get:
      summary: Get Helm charts from private repository
      description: "Retrieve a list of available Helm charts from a specific private repository with their versions and metadata.\n\n**Example Request:**\n```\nGET /v1/cluster/instances/kubernetes/helm/repository/id/private-repo-abc123/charts\n```\n\n**Example Response:**\n```json\n{\n  \"api_version\": \"v2\",\n  \"generated\": \"2024-01-15T12:00:00Z\",\n  \"repo_identifier\": \"company-charts-repo\",\n  \"repo_name\": \"Company Private Repository\",\n  \"entries\": {\n    \"company-app\": [\n      {\n        \"name\": \"company-app\",\n        \"version\": \"2.1.0\",\n        \"app_version\": \"1.5.0\",\n        \"description\": \"Company proprietary application\",\n        \"created\": \"2024-01-10T09:00:00Z\",\n        \"digest\": \"sha256:abc123def456...\",\n        \"urls\": [\"/charts/company-app-2.1.0.tgz\"]\n      },\n      {\n        \"name\": \"company-app\",\n        \"version\": \"2.0.0\",\n        \"app_version\": \"1.4.0\",\n        \"description\": \"Company proprietary application\",\n        \"created\": \"2024-01-05T14:30:00Z\",\n        \"digest\": \"sha256:def456ghi789...\",\n        \"urls\": [\"/charts/company-app-2.0.0.tgz\"]\n      }\n    ],\n    \"internal-service\": [\n      {\n        \"name\": \"internal-service\",\n        \"version\": \"1.0.0\",\n        \"app_version\": \"0.9.0\",\n        \"description\": \"Internal microservice\",\n        \"created\": \"2024-01-12T16:45:00Z\",\n        \"digest\": \"sha256:ghi789jkl012...\",\n        \"urls\": [\"/charts/internal-service-1.0.0.tgz\"]\n      }\n    ]\n  }\n}\n```"
      operationId: PrivateHelmRepositories_GetPrivateRepoCharts
      responses:
        '200':
          description: Successfully retrieved chart list from private repository
          schema:
            $ref: '#/definitions/HelmChartListResponse'
        '400':
          description: Bad Request. Invalid repository ID format.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to access this private repository.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '404':
          description: Not Found. Private repository with the specified ID does not exist.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve charts from private repository due to server error.
          schema:
            $ref: '#/definitions/ZsrvResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: privateRepoId
        description: 'Unique identifier of the Private Repository (required). Example: ''private-repo-abc123'''
        in: path
        required: true
        type: string
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        type: string
      tags:
      - PrivateHelmRepositories
definitions:
  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
  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
  PrivateRepoAuthConfig:
    type: object
    properties:
      secret:
        $ref: '#/definitions/PrivateRepoSecretConfig'
        description: Secret configuration for authentication
    description: Authentication configuration for private repository access
    title: Private Repository authentication configuration
  protobufAny:
    type: object
    properties:
      typeUrl:
        type: string
      value:
        type: string
        format: byte
  PrivateRepoRepositoryDetails:
    type: object
    properties:
      type:
        $ref: '#/definitions/PrivateRepoType'
        description: Type of the private repository (PRIVATE_REPO_TYPE_HELM_INDEX, PRIVATE_REPO_TYPE_GIT, PRIVATE_REPO_TYPE_UNSPECIFIED). This is a required parameter
      url:
        type: string
        description: Private repository URL (required)
      branch:
        type: string
        description: Git branch to track
    description: Repository configuration details for private repository
    title: Private Repository details
    required:
    - type
    - url
  PrivateRepoStatus:
    type: object
    properties:
      error:
        type: boolean
        description: Indicates if the repository is in an error state
      message:
        type: string
        description: Status message providing additional details about the repository state
      name:
        type: string
        description: Name of the repository in its current state
      transitioning:
        type: boolean
        description: Indicates if the repository is currently undergoing state transition
    description: Current operational status of a private repository
    title: Private Repository status
  PrivateRepoListResponse:
    type: object
    properties:
      list:
        type: array
        items:
          $ref: '#/definitions/PrivateRepoGetByIdResponse'
        description: List of private repositories
      total:
        type: integer
        format: int32
        description: Total number of private repositories
    description: Response message for listing private repositories
    title: Private Repository list response
  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\n - OPS_STATUS_ONGOING: system will start the operation, but at the time response was generated, operation is still ONGOING.\n - 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
  PrivateRepoSecretConfig:
    type: object
    properties:
      type:
        $ref: '#/definitions/SecretType'
        description: Type of the secret (SECRET_TYPE_SSH, SECRET_TYPE_BASIC_AUTH, SECRET_TYPE_UNSPECIFIED, SECRET_TYPE_NONE). This field is required and must be a valid Kubernetes secret type.
      name:
        type: string
        description: Name of the secret resource
    description: Secret configuration for private repository authentication
    title: Private Repository secret configuration
  HelmChartListResponse:
    type: object
    properties:
      apiVersion:
        type: string
        description: API version of the chart index
      generated:
        type: string
        description: Timestamp when the chart index was generated
      repoIdentifier:
        type: string
        description: Identifier for the Helm chart repository
      repoName:
        type: string
        description: Name of the Helm chart repository
    description: Response containing a list of Helm charts with their metadata and versions
    title: Helm chart list response
  PrivateRepoAuthInfo:
    type: object
    properties:
      secret:
        $ref: '#/definitions/PrivateRepoSecretInfo'
        description: Enhanced secret information for authentication
    description: Enhanced authentication information including secret details for private repository access
    title: Private Repository authentication information
  ZsrvError:
    type: object
    properties:
      ec:
        $ref: '#/definitions/ZsrvErrorCode'
        title: 'Enumrated error code, describes more granular numerical

          value than just httpStatus'
      location:
        type: string
        title: 'Ignore: Internal field only'
      details:
        type: string
        title: Field captures string description of details
  googlerpcStatus:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      details:
        type: array
        items:
          $ref: '#/definitions/protobufAny'
  PrivateRepoMetadata:
    type: object
    properties:
      name:
        type: string
        description: Name of the private repository configuration (required)
      title:
        type: string
        description: Display title of the private repository configuration
      description:
        type: string
        description: Description of the private repository configuration
      tags:
        type: object
        additionalProperties:
          type: string
        description: Tags associated with the private repository
    description: Metadata information for a private repository configuration
    title: Private Repository metadata
    required:
    - name
  PrivateRepoSecretInfo:
    type: object
    properties:
      id:
        type: string
        description: Unique identifier of the secret
      type:
        $ref: '#/definitions/SecretType'
        description: Type of secret for authentication
      name:
        type: string
        description: Name of the secret resource
      data:
        $ref: '#/definitions/SecretData'
        description: Secret credentials data
    description: Enhanced secret information including credentials data for private repository authentication
    title: Private Repository secret information
  SecretType:
    type: string
    enum:
    - SECRET_TYPE_UNSPECIFIED
    - SECRET_TYPE_SSH
    - SECRET_TYPE_BASIC_AUTH
    - SECRET_TYPE_NONE
    default: SECRET_TYPE_UNSPECIFIED
    title: Kubernetes Secret Types
  ZsrvResponse:
    type: object
    properties:
      operationType:
        $ref: '#/definitions/ZcOpsType'
        title: "Describes one of the operations type : possible values\n                        Read/Delete/Create/Update/List"
      operationStatus:
        $ref: '#/definitions/ZcOpsStatus'
        title: if this is log running job
      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: '#/definitions/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: '#/definitions/ZsrvError'
        title: 'one or more errors will be set if the operation failed

          i.e. httpStatusCode != 2xx'
  PrivateRepoType:
    type: string
    enum:
    - PRIVATE_REPO_TYPE_UNSPECIFIED
    - PRIVATE_REPO_TYPE_GIT
    - PRIVATE_REPO_TYPE_HELM_INDEX
    default: PRIVATE_REPO_TYPE_UNSPECIFIED
    title: Private Repository Type
  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\n - IncompleteData: message had fields that weren't filled in\n - InvalidData: message contained the field that wasn't expected\n - FunctionUnsupported: this feature unavailable on this version of device\n - InvalidFieldFormat: message contained the field that wasn't correctly formatted\n - JsonFmtError: Marshal / Unmarshal errors\n - DataBaseConnection: generic DB error"
    title: ZedCould internal error code
  PrivateRepoCreateRequest:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/PrivateRepoMetadata'
        description: Metadata for the private repository (required)
      spec:
        $ref: '#/definitions/PrivateRepoSpec'
        description: Specification for the private repository (required)
    description: Request message for creating a new private repository configuration
    title: Private Repository create request
    required:
    - metadata
    - spec
  PrivateRepoGetByIdResponse:
    type: object
    properties:
      id:
        type: string
        description: Unique identifier of the private repository
      metadata:
        $ref: '#/definitions/PrivateRepoMetadata'
        description: Metadata information for the private repository
      spec:
        $ref: '#/de

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zededa/refs/heads/main/openapi/zededa-privatehelmrepositories-api-openapi.yml