Zededa KubernetesGitOps API

APIs for managing GitOps configurations and continuous deployment from Git repositories to Kubernetes clusters

Operations 5

GET /v1/cluster/instances/kubernetes/gitrepos List all GitRepo configurations #
POST /v1/cluster/instances/kubernetes/gitrepos Create a new GitRepo configuration #
GET /v1/cluster/instances/kubernetes/gitrepos/id/{gitrepoId} Get GitRepo configuration by ID #
DELETE /v1/cluster/instances/kubernetes/gitrepos/id/{gitrepoId} Delete GitRepo configuration #
PUT /v1/cluster/instances/kubernetes/gitrepos/id/{gitrepoId} Update GitRepo configuration #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zededa-kubernetesgitops-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zededa-kubernetesgitops-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ZEDEDA App Profiles Service AppProfileService Kubernetes Git Ops 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
servers:
- url: /api
security:
- BearerToken: []
tags:
- name: KubernetesGitOps
  description: APIs for managing GitOps configurations and continuous deployment from Git repositories to Kubernetes clusters
paths:
  /v1/cluster/instances/kubernetes/gitrepos:
    get:
      summary: List all GitRepo configurations
      description: "Retrieve a list of all GitRepo configurations with their status and summary information. Includes statistics about sync status and resource counts.\n\n**Example Request:**\n```\nGET /v1/cluster/instances/kubernetes/gitrepos\n```\n\n**Example Response:**\n```json\n{\n  \"totalCount\": 2,\n  \"stateSummary\": {\n    \"description\": \"GitRepo Status Summary\",\n    \"total\": 2,\n    \"values\": {\n      \"Active\": 1,\n      \"Pending\": 1\n    }\n  },\n  \"gitrepos\": [\n    {\n      \"id\": \"gitrepo-abc123\",\n      \"name\": \"app-manifests\",\n      \"title\": \"Application Manifests Repository\",\n      \"description\": \"Git repository containing production application manifests\",\n      \"workspace\": \"default\",\n      \"status\": {\n        \"display\": {\n          \"ready_bundle_deployments\": \"3/3\",\n          \"state\": \"Active\"\n        }\n      },\n      \"created_at\": \"2024-01-15T10:30:00Z\",\n      \"updated_at\": \"2024-01-15T11:00:00Z\"\n    },\n    {\n      \"id\": \"gitrepo-def456\",\n      \"name\": \"helm-charts\",\n      \"title\": \"Helm Charts Repository\",\n      \"description\": \"Repository containing Helm chart definitions\",\n      \"workspace\": \"default\",\n      \"status\": {\n        \"display\": {\n          \"ready_bundle_deployments\": \"0/2\",\n          \"state\": \"Pending\"\n        }\n      },\n      \"created_at\": \"2024-01-14T15:20:00Z\",\n      \"updated_at\": \"2024-01-14T15:25:00Z\"\n    }\n  ]\n}\n```"
      operationId: KubernetesGitOps_ListGitRepos
      responses:
        '200':
          description: Successfully retrieved GitRepo configuration list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GitRepoListResponse'
        '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. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to list GitRepo configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve GitRepo list due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - KubernetesGitOps
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
    post:
      summary: Create a new GitRepo configuration
      description: "Create a new GitRepo configuration to enable continuous deployment from a Git repository. This allows automatic synchronization of Kubernetes manifests or Helm charts from a Git repository to target clusters.\n\n**Example Request:**\n```json\n{\n  \"metadata\": {\n    \"name\": \"app-manifests\",\n    \"title\": \"Application Manifests Repository\",\n    \"description\": \"Git repository containing production application manifests\"\n  },\n  \"data\": {\n    \"project_id\": \"proj-12345\",\n    \"repo_details\": {\n      \"url\": \"https://github.com/myorg/k8s-manifests.git\",\n      \"branch\": \"main\",\n      \"path_list\": [\"applications/\", \"ingress/\"]\n    },\n    \"auth\": {\n      \"git\": {\n        \"secret\": {\n          \"type\": \"SECRET_TYPE_OPAQUE\",\n          \"name\": \"git-credentials\"\n        }\n      }\n    },\n    \"target\": {\n      \"type\": \"GIT_REPO_TARGET_TYPE_CLUSTER\",\n      \"value\": \"cluster-abc123\"\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\": \"gitrepo-abc123\",\n  \"objectName\": \"app-manifests\",\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: KubernetesGitOps_CreateGitRepo
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '201':
          description: Successfully created GitRepo configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid GitRepo configuration or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to create GitRepo configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. GitRepo configuration with the same name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to create GitRepo configuration due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: X-Request-Id
        in: header
        required: false
        description: User-Agent specified id to track a request
        schema:
          type: string
      tags:
      - KubernetesGitOps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GitRepoCreateRequest'
        required: true
  /v1/cluster/instances/kubernetes/gitrepos/id/{gitrepoId}:
    get:
      summary: Get GitRepo configuration by ID
      description: "Retrieve detailed information about a specific GitRepo configuration including its current status, sync information, and metadata.\n\n**Example Request:**\n```\nGET /v1/cluster/instances/kubernetes/gitrepos/id/gitrepo-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"id\": \"gitrepo-abc123\",\n  \"name\": \"app-manifests\",\n  \"title\": \"Application Manifests Repository\",\n  \"description\": \"Git repository containing production application manifests\",\n  \"workspace\": \"default\",\n  \"data\": {\n    \"project_id\": \"proj-12345\",\n    \"repo_details\": {\n      \"url\": \"https://github.com/myorg/k8s-manifests.git\",\n      \"branch\": \"main\",\n      \"commit\": \"a1b2c3d4e5f6\",\n      \"path_list\": [\"applications/\", \"ingress/\"]\n    },\n    \"target\": {\n      \"type\": \"GIT_REPO_TARGET_TYPE_CLUSTER\",\n      \"value\": \"cluster-abc123\"\n    }\n  },\n  \"status\": {\n    \"display\": {\n      \"ready_bundle_deployments\": \"3/3\",\n      \"state\": \"Active\"\n    },\n    \"conditions\": [\n      {\n        \"type\": \"Ready\",\n        \"status\": \"True\",\n        \"message\": \"GitRepo is ready and syncing\"\n      }\n    ],\n    \"resource_counts\": {\n      \"ready\": 3,\n      \"desired_ready\": 3\n    }\n  },\n  \"created_at\": \"2024-01-15T10:30:00Z\",\n  \"updated_at\": \"2024-01-15T11:00:00Z\",\n  \"created_by\": \"user@example.com\",\n  \"updated_by\": \"user@example.com\"\n}\n```"
      operationId: KubernetesGitOps_GetGitRepo
      responses:
        '200':
          description: Successfully retrieved GitRepo configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GitRepoGetResponse'
        '400':
          description: Bad Request. Invalid GitRepo ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to view this GitRepo configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. GitRepo configuration with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to retrieve GitRepo configuration due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: gitrepoId
        description: 'Unique identifier of the GitRepo (required). Example: ''gitrepo-abc123'''
        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
      tags:
      - KubernetesGitOps
    delete:
      summary: Delete GitRepo configuration
      description: "Delete a GitRepo configuration. This will stop the synchronization from the Git repository and remove all associated resources from the target clusters. This action is irreversible.\n\n**Example Request:**\n```\nDELETE /v1/cluster/instances/kubernetes/gitrepos/id/gitrepo-abc123\n```\n\n**Example Response:**\n```json\n{\n  \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n  \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n  \"objectKind\": \"\",\n  \"objectId\": \"gitrepo-abc123\",\n  \"objectName\": \"app-manifests\",\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 GitRepo configuration and stop synchronization. All resources deployed through this GitRepo will be removed from target clusters.\n\n**Note:** The gitrepo_id parameter is **required** and must be a valid GitRepo identifier."
      operationId: KubernetesGitOps_DeleteGitRepo
      responses:
        '200':
          description: Successfully deleted GitRepo configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid GitRepo ID format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to delete this GitRepo configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. GitRepo configuration with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cannot delete GitRepo configuration because it is currently in use or in a transitioning state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to delete GitRepo configuration due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: gitrepoId
        description: 'Unique identifier of the GitRepo (required). Example: ''gitrepo-abc123'''
        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
      tags:
      - KubernetesGitOps
    put:
      summary: Update GitRepo configuration
      description: "Update an existing GitRepo configuration. This allows modification of repository details, authentication settings, and target configuration. The GitRepo name cannot be changed after creation.\n\n**Example Request:**\n```json\n{\n  \"gitrepo_id\": \"gitrepo-abc123\",\n  \"metadata\": {\n    \"name\": \"app-manifests\",\n    \"title\": \"Updated Application Manifests Repository\",\n    \"description\": \"Updated Git repository containing production application manifests\"\n  },\n  \"data\": {\n    \"project_id\": \"proj-12345\",\n    \"repo_details\": {\n      \"url\": \"https://github.com/myorg/k8s-manifests.git\",\n      \"branch\": \"production\",\n      \"path_list\": [\"applications/\", \"ingress/\", \"monitoring/\"]\n    },\n    \"auth\": {\n      \"git\": {\n        \"secret\": {\n          \"type\": \"SECRET_TYPE_OPAQUE\",\n          \"name\": \"updated-git-credentials\"\n        }\n      }\n    },\n    \"target\": {\n      \"type\": \"GIT_REPO_TARGET_TYPE_CLUSTER_GROUP\",\n      \"value\": \"production-clusters\"\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\": \"gitrepo-abc123\",\n  \"objectName\": \"app-manifests\",\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: KubernetesGitOps_UpdateGitRepo
      responses:
        '200':
          description: Successfully updated GitRepo configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '400':
          description: Bad Request. Invalid GitRepo configuration or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '401':
          description: Unauthorized. Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '403':
          description: Forbidden. User does not have permission to update this GitRepo configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '404':
          description: Not Found. GitRepo configuration with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '409':
          description: Conflict. Cannot update GitRepo configuration due to conflicting state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        '500':
          description: Internal Server Error. Failed to update GitRepo configuration due to server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZsrvResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: gitrepoId
        description: 'Unique identifier of the GitRepo to update (required). Example: ''gitrepo-abc123'''
        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
      tags:
      - KubernetesGitOps
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                metadata:
                  $ref: '#/components/schemas/GitRepoMetadata'
                  description: Metadata for the GitRepo (name cannot be updated, required)
                data:
                  $ref: '#/components/schemas/GitRepoData'
                  description: Data specification for the GitRepo (required)
              description: Request message for updating an existing GitRepo configuration
              title: GitRepo update request
              required:
              - gitrepo_id
              - metadata
              - data
        required: true
components:
  schemas:
    GitRepoGetResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the GitRepo
        name:
          type: string
          description: Name of the GitRepo configuration
        title:
          type: string
          description: Display title of the GitRepo configuration
        description:
          type: string
          description: Description of the GitRepo configuration
        workspace:
          type: string
          description: Workspace where the GitRepo is deployed
        data:
          $ref: '#/components/schemas/GitRepoData'
          description: Specification details
        status:
          $ref: '#/components/schemas/GitRepoGetStatus'
          description: Current status information
        events:
          type: array
          items:
            $ref: '#/components/schemas/GitRepoEvents'
          description: List of events related to the GitRepo
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the GitRepo was created
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the GitRepo was last updated
        createdBy:
          type: string
          description: User who created the GitRepo
        updatedBy:
          type: string
          description: User who last updated the GitRepo
      description: Complete response for GitRepo GET operations including metadata, specification, and status
      title: GitRepo get response
    GitRepoResourceCounts:
      type: object
      properties:
        desiredReady:
          type: integer
          format: int32
          description: Desired ready count
        missing:
          type: integer
          format: int32
          description: Missing resources count
        modified:
          type: integer
          format: int32
          description: Modified resources count
        notReady:
          type: integer
          format: int32
          description: Not ready resources count
        orphaned:
          type: integer
          format: int32
          description: Orphaned resources count
        ready:
          type: integer
          format: int32
          description: Ready resources count
        unknown:
          type: integer
          format: int32
          description: Unknown resources count
        waitApplied:
          type: integer
          format: int32
          description: Wait applied resources count
      description: Count of resources in different states
      title: GitRepo resource counts
    ZsrvError:
      type: object
      properties:
        ec:
          $ref: '#/components/schemas/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
    HelmAuthConfig:
      type: object
      properties:
        secret:
          $ref: '#/components/schemas/GitRepoSecretConfig'
          description: Secret configuration for Helm authentication
        helmRepoUrlRegex:
          type: string
          description: Regular expression pattern to match Helm repository URLs
      description: Authentication configuration for Helm repository access
      title: Helm authentication configuration
    protobufAny:
      type: object
      properties:
        typeUrl:
          type: string
        value:
          type: string
          format: byte
    GitRepoListStatusSummary:
      type: object
      properties:
        description:
          type: string
          description: Description of the status summary
        total:
          type: integer
          format: int32
          description: Total number of GitRepos
        values:
          type: object
          additionalProperties:
            type: integer
            format: int32
          description: Map of status values and their counts
      description: Summary of GitRepo statuses in the list response
      title: GitRepo list status summary
    GitRepoCreateRequest:
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/GitRepoMetadata'
          description: Metadata for the GitRepo (required)
        data:
          $ref: '#/components/schemas/GitRepoData'
          description: Data specification for the GitRepo (required)
      description: Request message for creating a new GitRepo configuration
      title: GitRepo create request
      required:
      - metadata
      - data
    GitRepoStatusDisplay:
      type: object
      properties:
        readyBundleDeployments:
          type: string
          description: Ready bundle deployments count
        state:
          type: string
          description: Current state of the GitRepo
      description: Display-friendly status information
      title: GitRepo status display
    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
    GitRepoData:
      type: object
      properties:
        projectId:
          type: string
          description: Project ID where the GitRepo belongs (required)
        repoDetails:
          $ref: '#/components/schemas/GitRepoRepositoryDetails'
          description: Repository details and configuration (required)
        auth:
          $ref: '#/components/schemas/GitRepoAuthConfig'
          description: Authentication configuration
        target:
          $ref: '#/components/schemas/GitRepoTargetConfig'
          description: Target deployment configuration (required)
      description: Complete data specification for a GitRepo configuration
      title: GitRepo data
      required:
      - projectId
      - repoDetails
      - target
    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: '#/components/schemas/ZcOpsType'
          title: "Describes one of the operations type : possible values\n                        Read/Delete/Create/Update/List"
        operationStatus:
          $ref: '#/components/schemas/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: '#/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'
    GitRepoSecretConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SecretType'
          description: Type of secret for authentication
        name:
          type: string
          description: Name of the secret
      description: Secret configuration for GitRepo authentication
      title: GitRepo secret configuration
    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
    GitRepoListResponse:
      type: object
      properties:
        totalCount:
          type: integer
          format: int32
          description: Total count of GitRepos
        stateSummary:
          $ref: '#/components/schemas/GitRepoListStatusSummary'
          description: Summary of GitRepo statuses
        gitrepos:
          type: array
          items:
            $ref: '#/components/schemas/GitRepoGetResponse'
          description: List of GitRepo entries
      description: Response for GitRepo LIST operations containing multiple GitRepo entries with summary information
      title: GitRepo list response
    GitRepoRepositoryDetails:
      type: object
      properties:
        url:
          type: string
          description: Git repository URL (required)
        branch:
          type: string
          description: Git branch to track
        commit:
          type: string
          description: Specific git commit hash
        pathList:
          type: array
          items:
            type: string
          description: List of paths within the repository to monitor
      description: Repository configuration details for GitRepo
      title: GitRepo repository details
      required:
      - url
    GitRepoTargetType:
      type: string
      enum:
      - GIT_REPO_TARGET_TYPE_UNKNOWN
      - GIT_REPO_TARGET_TYPE_ALL_CLUSTER
      - GIT_REPO_TARGET_TYPE_CLUSTER
      - GIT_REPO_TARGET_TYPE_CLUSTER_GROUP
      default: GIT_REPO_TARGET_TYPE_UNKNOWN
      title: GitRepo Target Types
    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
    GitRepoEvents:
      type: object
      properties:
        reason:
          type: string
          description: Reason for the event
        type:
          type: string
          description: Type of the event
        message:
          type: string
          description: Detailed message about the event
        lastUpdateTime:
          type: string
          format: date-time
          description: Last time the event was updated
      description: Events related to GitRepo operations
      title: GitRepo events
    googlerpcStatus

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