openapi: 3.2.0 info: title: Harness Argo Projects API version: '1.0' description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0. contact: name: API Support email: contact@harness.io url: https://harness.io/ x-logo: url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook altText: Harness termsOfService: https://harness.io/terms-of-use/ servers: - url: https://app.harness.io description: Harness host URL - url: https://{vanity} description: Vanity URL variables: vanity: default: app.harness.io security: - x-api-key: [] tags: - name: ArgoProjects paths: /gitops/api/v2/agents/{agentIdentifier}/argoprojects: get: description: ListForAgent lists all ArgoCD AppProjects mapped to this agent. operationId: AgentArgoProjectService_ListForAgent responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1ArgoProjectList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: query.name in: query required: false schema: type: string - name: pageSize in: query required: false schema: type: integer format: int32 - name: pageIndex in: query required: false schema: type: integer format: int32 tags: - ArgoProjects summary: Agent argo project service list for agent x-summary-source: derived post: description: Create creates an ArgoCD AppProject CRD in the cluster and auto-creates a Harness mapping if one does not exist. If a mapping already exists it is reused. operationId: AgentArgoProjectService_Create responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1ArgoProject' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: mapToHarnessProject.projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: mapToHarnessProject.orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: mapToHarnessProject.autoCreateServiceEnv description: Enable automated creation of service,environment and cluster-env link. Defaults to false. in: query required: false schema: type: boolean requestBody: $ref: '#/components/requestBodies/projectsProjectCreateRequest' tags: - ArgoProjects summary: Agent argo project service create x-summary-source: derived /gitops/api/v2/agents/{agentIdentifier}/argoprojects/{query.name}: get: description: Get returns an ArgoCD AppProject by name. Must be mapped to a Harness project. operationId: AgentArgoProjectService_Get responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1ArgoProject' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: query.name in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: pageSize in: query required: false schema: type: integer format: int32 - name: pageIndex in: query required: false schema: type: integer format: int32 tags: - ArgoProjects summary: Agent argo project service get x-summary-source: derived delete: description: Delete deletes an ArgoCD AppProject from the cluster. Must be mapped. Does not remove the Harness mapping. operationId: AgentArgoProjectService_Delete responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/projectsEmptyResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: query.name in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: pageSize in: query required: false schema: type: integer format: int32 - name: pageIndex in: query required: false schema: type: integer format: int32 tags: - ArgoProjects summary: Agent argo project service delete x-summary-source: derived /gitops/api/v2/agents/{agentIdentifier}/argoprojects/{query.name}/events: get: description: ListEvents returns Kubernetes events for a named ArgoCD AppProject. Must be mapped. operationId: AgentArgoProjectService_ListEvents responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/applicationsEventList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: query.name in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string - name: pageSize in: query required: false schema: type: integer format: int32 - name: pageIndex in: query required: false schema: type: integer format: int32 tags: - ArgoProjects summary: Agent argo project service list events x-summary-source: derived /gitops/api/v2/agents/{agentIdentifier}/argoprojects/{request.project.metadata.name}: put: description: Update updates an ArgoCD AppProject spec. Must be mapped to a Harness project. operationId: AgentArgoProjectService_Update responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1ArgoProject' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/gatewayruntimeError' parameters: - name: agentIdentifier description: Agent identifier for entity. in: path required: true schema: type: string - name: request.project.metadata.name description: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names +optional' in: path required: true schema: type: string - name: accountIdentifier description: Account Identifier for the Entity. in: query required: false schema: type: string - name: orgIdentifier description: Organization Identifier for the Entity. in: query required: false schema: type: string - name: projectIdentifier description: Project Identifier for the Entity. in: query required: false schema: type: string requestBody: $ref: '#/components/requestBodies/projectsProjectUpdateRequest' tags: - ArgoProjects summary: Agent argo project service update x-summary-source: derived components: schemas: appprojectsProjectRole: type: object properties: name: type: string title: Name is a name for this role description: type: string title: Description is a description of the role policies: type: array items: type: string title: Policies Stores a list of casbin formatted strings that define access policies for the role in the project jwtTokens: type: array items: $ref: '#/components/schemas/appprojectsJWTToken' title: JWTTokens are a list of generated JWT tokens bound to this role groups: type: array items: type: string title: Groups are a list of OIDC group claims bound to this role title: ProjectRole represents a role that has access to a project appprojectsOrphanedResourcesMonitorSettings: type: object properties: warn: type: boolean title: Warn indicates if warning condition should be created for apps which have orphaned resources ignore: type: array items: $ref: '#/components/schemas/appprojectsOrphanedResourceKey' title: Ignore contains a list of resources that are to be excluded from orphaned resources monitoring title: OrphanedResourcesMonitorSettings holds settings of orphaned resources monitoring appprojectsAppProjectStatus: type: object properties: jwtTokensByRole: type: object additionalProperties: $ref: '#/components/schemas/appprojectsJWTTokens' title: JWTTokensByRole contains a list of JWT tokens issued for a given role title: AppProjectStatus contains status information for AppProject CRs appprojectsSyncWindow: type: object properties: kind: type: string title: Kind defines if the window allows or blocks syncs schedule: type: string title: Schedule is the time the window will begin, specified in cron format duration: type: string title: Duration is the amount of time the sync window will be open applications: type: array items: type: string title: Applications contains a list of applications that the window will apply to namespaces: type: array items: type: string title: Namespaces contains a list of namespaces that the window will apply to clusters: type: array items: type: string title: Clusters contains a list of clusters that the window will apply to manualSync: type: boolean title: ManualSync enables manual syncs when they would otherwise be blocked timeZone: type: string title: TimeZone of the sync that will be applied to the schedule project: type: string title: 'Project this sync window belongs to this will be deprecated in future' title: SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps appprojectsAppProject: type: object properties: metadata: $ref: '#/components/schemas/v1ObjectMeta' spec: $ref: '#/components/schemas/appprojectsAppProjectSpec' status: $ref: '#/components/schemas/appprojectsAppProjectStatus' title: 'AppProject provides a logical grouping of applications, providing controls for: * where the apps may deploy to (cluster whitelist) * what may be deployed (repository whitelist, resource whitelist/blacklist) * who can access these applications (roles, OIDC group claims bindings) * and what they can do (RBAC policies) * automation access to these roles (JWT tokens) +genclient +genclient:noStatus +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=appprojects,shortName=appproj;appprojs' appprojectsApplicationDestinationServiceAccount: type: object properties: server: type: string description: Server specifies the URL of the target cluster's Kubernetes control plane API. namespace: type: string description: Namespace specifies the target namespace for the application's resources. defaultServiceAccount: type: string title: DefaultServiceAccount to be used for impersonation during the sync operation description: ApplicationDestinationServiceAccount holds information about the service account to be impersonated for the application sync operation. applicationsEventSource: type: object properties: component: type: string title: 'Component from which the event is generated. +' host: type: string title: 'Node name on which the event is generated. +' applicationsObjectReference: type: object properties: kind: type: string title: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +' namespace: type: string title: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ +' name: type: string title: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names +' uid: type: string title: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids +' apiVersion: type: string title: 'API version of the referent. +' resourceVersion: type: string title: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency +' fieldPath: type: string title: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. +' v1ListMeta: type: object properties: selfLink: type: string title: 'Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. +optional' resourceVersion: type: string title: 'String that identifies the server''s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency +optional' continue: type: string description: 'continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.' remainingItemCount: type: string format: int64 title: 'remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact. +optional' description: 'ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.' appprojectsOrphanedResourceKey: type: object properties: group: type: string kind: type: string name: type: string title: OrphanedResourceKey is a reference to a resource to be ignored from v1ManagedFieldsEntry: type: object properties: manager: type: string description: Manager is an identifier of the workflow managing these fields. operation: type: string description: 'Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are ''Apply'' and ''Update''.' apiVersion: type: string description: 'APIVersion defines the version of this resource that this field set applies to. The format is "group/version" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.' time: $ref: '#/components/schemas/v1Time' fieldsType: type: string title: 'FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"' fieldsV1: $ref: '#/components/schemas/v1FieldsV1' subresource: type: string description: 'Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.' description: 'ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.' appprojectsJWTToken: type: object properties: iat: type: string format: int64 exp: type: string format: int64 id: type: string title: JWTToken holds the issuedAt and expiresAt values of a token v1ObjectMeta: type: object properties: name: type: string title: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names +optional' generateName: type: string description: 'GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will return a 409. Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency +optional' namespace: type: string description: 'Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces +optional' selfLink: type: string title: 'Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. +optional' uid: type: string description: 'UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids +optional' resourceVersion: type: string description: 'An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency +optional' generation: type: string format: int64 title: 'A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. +optional' creationTimestamp: $ref: '#/components/schemas/v1Time' deletionTimestamp: $ref: '#/components/schemas/v1Time' deletionGracePeriodSeconds: type: string format: int64 title: 'Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only. +optional' labels: type: object additionalProperties: type: string title: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels +optional' annotations: type: object additionalProperties: type: string title: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +optional' ownerReferences: type: array items: $ref: '#/components/schemas/v1OwnerReference' title: 'List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller. +optional +patchMergeKey=uid +patchStrategy=merge +listType=map +listMapKey=uid' finalizers: type: array items: type: string title: 'Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list. +optional +patchStrategy=merge +listType=set' managedFields: type: array items: $ref: '#/components/schemas/v1ManagedFieldsEntry' description: 'ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn''t need to set or understand this field. A workflow can be the user''s name, a controller''s name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object. +optional +listType=atomic' description: 'ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.' applicationsEventList: type: object properties: metadata: $ref: '#/components/schemas/v1ListMeta' items: type: array items: $ref: '#/components/schemas/applicationsEvent' title: List of events description: EventList is a list of events. applicationsEvent: type: object properties: metadata: $ref: '#/components/schemas/v1ObjectMeta' involvedObject: $ref: '#/components/schemas/applicationsObjectReference' reason: type: string title: 'This should be a short, machine understandable string that gives the reason for the transition into the object''s current status. TODO: provide exact specification for format. +' message: type: string title: 'A human-readable description of the status of this operation. TODO: decide on maximum length. +' source: $ref: '#/components/schemas/applicationsEventSource' firstTimestamp: $ref: '#/components/schemas/v1Time' lastTimestamp: $ref: '#/components/schemas/v1Time' count: type: integer format: int32 title: 'The number of times this event has occurred. +' type: type: string title: 'Type of this event (Normal, Warning), new types could be added in the future +' eventTime: $ref: '#/components/schemas/v1MicroTime' series: $ref: '#/components/schemas/applicationsEventSeries' action: type: string title: 'What action was taken/failed regarding to the Regarding object. +' related: $ref: '#/components/schemas/applicationsObjectReference' reportingComponent: type: string title: 'Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. +' reportingInstance: type: string title: 'ID of the controller instance, e.g. `kubelet-xyzf`. +' firstTimestampTs: type: string format: date-time lastTimestampTs: type: string format: date-time appprojectsSignatureKey: type: object properties: keyID: type: string title: The ID of the key in hexadecimal notation title: SignatureKey is the specification of a key required to verify commit signatures with projectsEmptyResponse: type: object appprojectsApplicationDestination: type: object properties: server: type: string title: Server specifies the URL of the target cluster and must be set to the Kubernetes control plane API namespace: type: string title: 'Namespace specifies the target namespace for the application''s resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace' name: type: string title: Name is an alternate way of specifying the target cluster by its symbolic name title: ApplicationDestination holds information about the application's destination appprojectsJWTTokens: type: object properties: items: type: array items: $ref: '#/components/schemas/appprojectsJWTToken' title: JWTTokens represents a list of JWT tokens v1MicroTime: type: object properties: seconds: type: string format: int64 description: 'Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.' nanos: type: integer format: int32 description: 'Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.' description: 'MicroTime is version of Time with microsecond level precision. +protobuf.options.marshal=false +protobuf.as=Timestamp +protobuf.options.(gogoproto.goproto_stringer)=false' protobufAny: type: object properties: type_url: type: string description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." value: type: string format: byte description: Must be a valid serialized protocol buffer of the above specified type. description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := &pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": ,\n \"lastName\": \n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" appprojectsAppProjectSpec: type: object properties: sourceRepos: type: array items: type: string title: SourceRepos contains list of repository URLs which can be used for deployment destinations: type: array items: $ref: '#/components/schemas/appprojectsApplicationDestination' title: Destinations contains list of destinations available for deployment description: type: string title: Description contains optional project description roles: type: array items: $ref: '#/components/schemas/appprojectsProjectRole' title: Roles are user defined RBAC roles associated with this project clusterResourceWhitelist: type: array items: $ref: '#/components/schemas/appprojectsClusterResourceRestrictionItem' title: ClusterResourceWhitelist contains list of whitelisted cluster level resources namespaceResourceBlacklist: type: array items: $ref: '#/components/schemas/v1GroupKind' title: NamespaceResourceBlacklist contains list of blacklisted namespace level resources orphanedResources: $ref: '#/components/schemas/appprojectsOrphanedResourcesMonitorSettings' syncWindows: type: array items: $ref: '#/components/schemas/appprojectsSyncWindow' title: SyncWindows controls when syncs can be run for apps in this project namespaceResourceWhitelist: type: array items: $ref: '#/components/schemas/v1GroupKind' title: NamespaceResourceWhitelist contains list of whitelisted namespace level resources signatureKeys: type: array items: $ref: '#/components/schemas/appprojectsSignatureKey' title: SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync clusterResourceBlacklist: type: array items: $ref: '#/components/schemas/appprojectsClusterResourceRestrictionItem' title: ClusterResourceBlacklist contains list of blacklisted cluster level resources sourceNamespaces: type: array items: type: string title: SourceNamespaces defines the namespaces application resources are allowed to be created in permitOnlyProjectScopedClusters: type: boolean title: PermitOnlyProjectScopedClusters determines whether destinations can only reference clusters which are project-scoped destinationServiceAccounts: type: array items: $ref: '#/components/schemas/appprojectsApplicationDestinationServiceAccount' description: DestinationServiceAccounts holds information about the service accounts to be impersonated for the application sync operation for each destination. title: AppProjectSpec is the specification of an AppProject v1ArgoProject: type: object properties: id: type: string accountIdentifier: type: string description: Account Identifier for the ArgoProject. projectIdentifier: type: string description: Project Identifier for the ArgoProject. (Depends on mapping) orgIdentifier: type: string description: Organization Identifier for the ArgoProject. (Depends on mapping) name: type: string createdAt: type: string format: date-time lastModifiedAt: type: string format: date-time agentIdentifier: type: string description: Agent identifier for ArgoProject. This will be prefixed with scope. appProject: $ref: '#/components/schemas/appprojectsAppProject' description: AppProject resource with harness metadata and additional fields. projectsProjectUpdateRequest: type: object properties: project: $ref: '#/components/schemas/appprojectsAppProject' gatewayruntimeError: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: $ref: '#/components/schemas/protobufAny' v1ArgoProjectList: type: object properties: content: type: array items: $ref: '#/components/schemas/v1ArgoProject' totalPages: type: integer format: int32 totalItems: type: integer format: int32 pageItemCount: type: integer format: int32 pageSize: type: integer format: int32 pageIndex: type: integer format: int32 empty: type: boolean v1FieldsV1: type: object properties: Raw: type: string format: byte description: Raw is the underlying serialization of this object. description: 'FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. Each key is either a ''.'' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: ''f:'', where is the name of a field in a struct, or key in a map ''v:'', where is the exact json formatted value of a list item ''i:'', where is position of a item in a list ''k:'', where is a map of a list item''s key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. The exact format is defined in sigs.k8s.io/structured-merge-diff +protobuf.options.(gogoproto.goproto_stringer)=false' appprojectsClusterResourceRestrictionItem: type: object properties: group: type: string kind: type: string name: type: string description: 'Name is the name of the restricted resource. Glob patterns using Go''s filepath.Match syntax are supported. Unlike the group and kind fields, if no name is specified, all resources of the specified group/kind are matched.' title: ClusterResourceRestrictionItem is a cluster resource that is restricted by the project's whitelist or blacklist v1OwnerReference: type: object properties: apiVersion: type: string description: API version of the referent. kind: type: string title: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' name: type: string title: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' uid: type: string title: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' controller: type: boolean title: 'If true, this reference points to the managing controller. +optional' blockOwnerDeletion: type: boolean title: 'If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. +optional' title: 'OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field. +structType=atomic' v1GroupKind: type: object properties: group: type: string kind: type: string description: +protobuf.options.(gogoproto.goproto_stringer)=false title: 'GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types' v1Time: type: object properties: seconds: type: string format: int64 description: 'Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.' nanos: type: integer format: int32 description: 'Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.' description: 'Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +protobuf.options.marshal=false +protobuf.as=Timestamp +protobuf.options.(gogoproto.goproto_stringer)=false' projectsProjectCreateRequest: type: object properties: project: $ref: '#/components/schemas/appprojectsAppProject' upsert: type: boolean description: ProjectCreateRequest defines project creation parameters. applicationsEventSeries: type: object properties: count: type: integer format: int32 title: Number of occurrences in this series up to the last heartbeat time lastObservedTime: $ref: '#/components/schemas/v1MicroTime' description: 'EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.' requestBodies: projectsProjectUpdateRequest: content: application/json: schema: $ref: '#/components/schemas/projectsProjectUpdateRequest' required: true projectsProjectCreateRequest: content: application/json: schema: $ref: '#/components/schemas/projectsProjectCreateRequest' required: true securitySchemes: x-api-key: name: x-api-key type: apiKey in: header description: API key is a token provided while making the API calls. This is used to authenticate the client at the exposed endpoint. externalDocs: description: Find out more about Swagger url: http://swagger.io x-stoplight: id: oc91t4vrfnjyi x-tagGroups: - name: Organizations tags: - Organization - name: Projects tags: - Org Project - Project - name: Secrets tags: - Account Secret - Org Secret - Project Secret - Secrets - name: Connectors tags: - Account Connector - Org Connector - Project Connector - Connectors - GoogleSecretManagerConnector - name: Roles tags: - Account Roles - Organization Roles - Project Roles - Roles - name: Resource Groups tags: - Account Resource Groups - Organization Resource Groups - Project Resource Groups - Filter Resource Groups - Harness Resource Group - Zendesk - name: Role Assignments tags: - Account Role Assignments - Org Role Assignments - Project Role Assignments - Role Assignments - name: Platform tags: - Access Control List - Account Banner - Account Banner - Account Licensed Modules - Account License Type - Account Webhooks - AccountSetting - Accounts - Analyze Account Access Policy - Analyze Organization Access Policy - Analyze Project Access Policy - ApiKey - Audit - AuditFilters - Authentication Settings - Canny - Devops Essentials License Data By Account - EULA - Filter - Harness Resource Type - Invite - IP Allowlist - Nextgen Ldap - Notification Channels - Notification Rules - OIDC - Oidc-Access-Token - Oidc-ID-Token - Org Webhooks - Permissions - Project Webhooks - Secret Managers - Service Account - Setting - SMTP - Source Code Manager - Token - User - User Group - Variables - name: Delegate tags: - Agent mTLS Endpoint Management - Delegate Download Resource - Delegate Group Tags Resource - Delegate Setup Resource - Delegate Token Resource - name: Pipelines tags: - Pipelines - Input Sets - Approvals - Pipeline Execution - Pipeline Dashboard - Pipeline Input Set - Pipeline - Pipeline Execution Details - Pipeline Execute - Pipeline Refresh - Pipeline data retention - Triggers - TriggersEvents - Webhook Triggers - Webhook Event Handler - DryRunPipeline - name: Artifact Registry tags: - Registries - Artifacts - Docker Artifacts - Helm Artifacts - quarantine - Webhooks - Spaces - Replication - Registry V3 - Registries - Registry V3 - Packages - Registry V3 - Versions - Registry V3 - Files - Registry V3 - Metadata - Registry V3 - Firewall - Registry V3 - Transfer - name: Database DevOps tags: - Database Schema - Database Instance - Deployed State - Execution Config - Migration State - name: CD tags: - K8s Release Service Mapping - CustomDeployment - Environments - EnvironmentGroup - Infrastructures - Usage - File Store - Service Dashboard - ServiceOverrides - Rollback - tas - name: Deployment Freeze tags: - Freeze CRUD - Freeze Evaluation - Freeze Schema - name: Services tags: - Account Services - Org Services - Project Services - Services - name: Rancher Infrastructures tags: - Account Rancher Infrastructure - Org Rancher Infrastructure - Project Rancher Infrastructure - name: Templates tags: - Account Template - Org Template - Project Template - Templates - Global Templates - name: GitOps tags: - Agents - Application - Applications - Certificates - Clusters - Dashboard Aggregates - Dashboards - GnuPGP Keys - GPG Keys - Hosts - Project mappings - Projects - Reconciler - Repositories - Repository Certificates - Repository credentials - ValidateHost - name: GitX tags: - GitX Webhooks - Org Gitx Webhooks - Project Gitx Webhooks - name: CACM tags: - Anomalies Ignorelist Rule - Anomalies - BI Dashboards - Budgets - Budget Groups - Cost Categories - Cloud Accounts - K8S Connectors Metadata - Notification Settings v2 - Overview - Data Job Status - Recommendation cost settings - Unit Metric - Anomaly Comments - Cloud and AI cost anomaly details - Cloud and AI cost anomalies v2 - Cost Details - Currency Preferences - External Data Provider - AiEngine - CACM governance cost settings - Governance Enforcement Recommendation APIs - Governance Alert - Governance Overview - Governance Recommendation APIs - RuleEnforcement - Rule Executions - Rule - Rule Sets - Perspectives Folders - Perspective Reports - Perspectives - Cost Category Jira Project Mapping - Recommendations Details - Recommendations - Recommendation Jira - Recommendation Preferences - Recommendation Presets - Recommendation Servicenow - Recommendation Tags - Recommendation Ignore List - AutoStopping Rules - AutoStopping Rules V2 - AutoStopping Load Balancers - AutoStopping Fixed Schedules - AutoStopping Alerts - Commitment Orchestrator Events APIs - name: Feature Flags tags: - API Keys - Feature Flags - Targets - Target Groups - Environment Perspectives - Anomalies - Proxy - Tags - name: SRM tags: - Monitored Services - SLOs dashboard - NG SLOs - SLOs - Downtime - Srm Notification - name: Internal Developer Portal - IDP tags: - Entities - Teams - CatalogCustomProperties - Scores - DataSource - KubernetesDataPoints - AggregationRules - AppConfig - PluginInfo - LayoutProxy - Kinds - LayoutsV3 - LayoutsV4 - name: Environment Management - IDP tags: - Environment - Infrastructure - Instance - name: Custom Dashboards tags: - aida - dashboards - downloads - embed - folders - name: Policy Management tags: - dashboard - examples - policies - evaluate - evaluations - policysets - system - name: Code tags: - repository - status_checks - pullreq - upload - webhook - resource - rules - labels - name: IaCM tags: - usage - approvals - costs - executions - module-registry - workspaces - settings - tf-standard-backend - variables - name: STO tags: - Exemptions - Issues - Scans - Products - Test Targets - Target Variants - name: SEI tags: - Collection categories - Collections - Contributors - DORA - name: Git Sync (deprecated) tags: - Git Branches - Git Full Sync - Git Sync Settings - Git Sync - Git Sync Errors - name: Error Models tags: - Error Response - Governance Metadata - name: Supply Chain Security tags: - integration - PipelineInfraConfig - SBOM - Integration Step Config - Delete Step Config - Delete Repositories - Pipeline Store Config - Evidence Vault [Beta] - name: Release Management tags: - Release Groups - Releases - Orchestration Processes - Orchestration Activities - Orchestration Executions - Conflicts - Freeze - Reports - Uploads - name: Resilience Testing tags: - Actions - Action Templates - Chaos Components - Chaos Hubs - ChaosGuard Conditions - ChaosGuard Rules - DR Tests - Experiments - Experiment Templates - Faults - Fault Templates - Chaos Infrastructure - Health - Network Maps - Onboarding - Probes - Probe Templates - Chaos Recommendations - Risks