# Sync an application

Sync syncs an application to its target state. Harness Event type (deploy)

Endpoint: POST /gitops/api/v1/agents/{agentIdentifier}/applications/{request.name}/sync
Version: 1.0
Security: x-api-key

## Path parameters:

  - `agentIdentifier` (string, required)
    Agent identifier for entity.

  - `request.name` (string, required)

## Query parameters:

  - `accountIdentifier` (string)
    Account Identifier for the Entity.

  - `orgIdentifier` (string)
    Organization Identifier for the Entity.

  - `projectIdentifier` (string)
    Project Identifier for the Entity.

## Request fields (application/json):

  - `name` (string)

  - `revision` (string)

  - `dryRun` (boolean)

  - `prune` (boolean)

  - `strategy` (object)

  - `strategy.apply` (object)

  - `strategy.apply.force` (boolean)
    Force indicates whether or not to supply the --force flag to kubectl apply.
The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
retried for 5 times.

  - `strategy.hook` (object)
    SyncStrategyHook will perform a sync using hooks annotations.
If no hook annotation is specified falls back to kubectl apply.

  - `strategy.hook.force` (boolean)

  - `resources` (array)

  - `resources.group` (string)

  - `resources.kind` (string)

  - `resources.name` (string)

  - `resources.namespace` (string)

  - `manifests` (array)

  - `infos` (array)

  - `infos.name` (string)

  - `infos.value` (string)

  - `retryStrategy` (object)

  - `retryStrategy.limit` (string)
    Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.

  - `retryStrategy.backoff` (object)

  - `retryStrategy.backoff.duration` (string)

  - `retryStrategy.backoff.factor` (string)

  - `retryStrategy.backoff.maxDuration` (string)

  - `retryStrategy.refresh` (boolean)

  - `syncOptions` (object)

  - `syncOptions.items` (array)

  - `appNamespace` (string)

  - `project` (string)

  - `sourcePositions` (array)

  - `revisions` (array)

## Response 200 fields (application/json):

  - `accountIdentifier` (string)
    Account Identifier for the Entity.

  - `orgIdentifier` (string)
    Organization Identifier for the Entity.

  - `projectIdentifier` (string)
    Project Identifier for the Entity.

  - `agentIdentifier` (string)
    Agent identifier for entity.

  - `name` (string)

  - `clusterIdentifier` (string)

  - `repoIdentifier` (string)

  - `app` (object)

  - `app.metadata` (object)
    ObjectMeta is metadata that all persisted resources must have, which includes all objects
users must create.

  - `app.metadata.name` (string)

  - `app.metadata.generateName` (string)
    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

  - `app.metadata.namespace` (string)
    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

  - `app.metadata.selfLink` (string)

  - `app.metadata.uid` (string)
    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

  - `app.metadata.resourceVersion` (string)
    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

  - `app.metadata.generation` (string)

  - `app.metadata.creationTimestamp` (object)
    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

  - `app.metadata.creationTimestamp.seconds` (string)
    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.

  - `app.metadata.creationTimestamp.nanos` (integer)
    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.

  - `app.metadata.deletionTimestamp` (object)
    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

  - `app.metadata.deletionGracePeriodSeconds` (string)

  - `app.metadata.labels` (object)

  - `app.metadata.annotations` (object)

  - `app.metadata.ownerReferences` (array)

  - `app.metadata.ownerReferences.apiVersion` (string)
    API version of the referent.

  - `app.metadata.ownerReferences.kind` (string)

  - `app.metadata.ownerReferences.name` (string)

  - `app.metadata.ownerReferences.uid` (string)

  - `app.metadata.ownerReferences.controller` (boolean)

  - `app.metadata.ownerReferences.blockOwnerDeletion` (boolean)

  - `app.metadata.finalizers` (array)

  - `app.metadata.managedFields` (array)
    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

  - `app.metadata.managedFields.manager` (string)
    Manager is an identifier of the workflow managing these fields.

  - `app.metadata.managedFields.operation` (string)
    Operation is the type of operation which lead to this ManagedFieldsEntry being created.
The only valid values for this field are 'Apply' and 'Update'.

  - `app.metadata.managedFields.apiVersion` (string)
    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.

  - `app.metadata.managedFields.time` (object)
    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

  - `app.metadata.managedFields.fieldsType` (string)

  - `app.metadata.managedFields.fieldsV1` (object)
    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

  - `app.metadata.managedFields.fieldsV1.Raw` (string)
    Raw is the underlying serialization of this object.

  - `app.metadata.managedFields.subresource` (string)
    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.

  - `app.spec` (object)
    ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.

  - `app.spec.source` (object)

  - `app.spec.source.repoURL` (string)

  - `app.spec.source.path` (string)
    Path is a directory path within the Git repository, and is only valid for applications sourced from Git.

  - `app.spec.source.targetRevision` (string)
    TargetRevision defines the revision of the source to sync the application to.
In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
In case of Helm, this is a semver tag for the Chart's version.

  - `app.spec.source.helm` (object)

  - `app.spec.source.helm.valueFiles` (array)

  - `app.spec.source.helm.parameters` (array)

  - `app.spec.source.helm.parameters.name` (string)

  - `app.spec.source.helm.parameters.value` (string)

  - `app.spec.source.helm.parameters.forceString` (boolean)

  - `app.spec.source.helm.releaseName` (string)

  - `app.spec.source.helm.values` (string)

  - `app.spec.source.helm.fileParameters` (array)

  - `app.spec.source.helm.fileParameters.name` (string)

  - `app.spec.source.helm.fileParameters.path` (string)

  - `app.spec.source.helm.version` (string)

  - `app.spec.source.helm.passCredentials` (boolean)

  - `app.spec.source.helm.ignoreMissingValueFiles` (boolean)

  - `app.spec.source.helm.skipCrds` (boolean)

  - `app.spec.source.helm.valuesObject` (object)

  - `app.spec.source.helm.namespace` (string)
    Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.

  - `app.spec.source.helm.kubeVersion` (string)
    KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
uses the Kubernetes version of the target cluster.

  - `app.spec.source.helm.apiVersions` (array)
    APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.

  - `app.spec.source.helm.skipTests` (boolean)
    SkipTests skips test manifest installation step (Helm's --skip-tests).

  - `app.spec.source.helm.skipSchemaValidation` (boolean)

  - `app.spec.source.kustomize` (object)

  - `app.spec.source.kustomize.namePrefix` (string)

  - `app.spec.source.kustomize.nameSuffix` (string)

  - `app.spec.source.kustomize.images` (array)

  - `app.spec.source.kustomize.commonLabels` (object)

  - `app.spec.source.kustomize.version` (string)

  - `app.spec.source.kustomize.commonAnnotations` (object)

  - `app.spec.source.kustomize.forceCommonLabels` (boolean)

  - `app.spec.source.kustomize.forceCommonAnnotations` (boolean)

  - `app.spec.source.kustomize.namespace` (string)

  - `app.spec.source.kustomize.commonAnnotationsEnvsubst` (boolean)

  - `app.spec.source.kustomize.replicas` (array)

  - `app.spec.source.kustomize.replicas.count` (string)

  - `app.spec.source.kustomize.replicas.name` (string)

  - `app.spec.source.kustomize.patches` (array)

  - `app.spec.source.kustomize.patches.path` (string)

  - `app.spec.source.kustomize.patches.patch` (string)

  - `app.spec.source.kustomize.patches.target` (object)

  - `app.spec.source.kustomize.patches.target.resId` (object)

  - `app.spec.source.kustomize.patches.target.resId.gvk` (object)

  - `app.spec.source.kustomize.patches.target.resId.gvk.group` (string)

  - `app.spec.source.kustomize.patches.target.resId.gvk.version` (string)

  - `app.spec.source.kustomize.patches.target.resId.gvk.kind` (string)

  - `app.spec.source.kustomize.patches.target.resId.name` (string)

  - `app.spec.source.kustomize.patches.target.resId.namespace` (string)

  - `app.spec.source.kustomize.patches.target.annotationSelector` (string)

  - `app.spec.source.kustomize.patches.target.labelSelector` (string)

  - `app.spec.source.kustomize.patches.options` (object)

  - `app.spec.source.kustomize.components` (array)

  - `app.spec.source.kustomize.labelWithoutSelector` (boolean)

  - `app.spec.source.kustomize.kubeVersion` (string)
    KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
uses the Kubernetes version of the target cluster.

  - `app.spec.source.kustomize.apiVersions` (array)
    APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.

  - `app.spec.source.kustomize.ignoreMissingComponents` (boolean)

  - `app.spec.source.kustomize.labelIncludeTemplates` (boolean)

  - `app.spec.source.ksonnet` (object)

  - `app.spec.source.ksonnet.environment` (string)

  - `app.spec.source.ksonnet.parameters` (array)

  - `app.spec.source.ksonnet.parameters.component` (string)

  - `app.spec.source.ksonnet.parameters.name` (string)

  - `app.spec.source.ksonnet.parameters.value` (string)

  - `app.spec.source.directory` (object)

  - `app.spec.source.directory.recurse` (boolean)

  - `app.spec.source.directory.jsonnet` (object)

  - `app.spec.source.directory.jsonnet.extVars` (array)

  - `app.spec.source.directory.jsonnet.extVars.name` (string)

  - `app.spec.source.directory.jsonnet.extVars.value` (string)

  - `app.spec.source.directory.jsonnet.extVars.code` (boolean)

  - `app.spec.source.directory.jsonnet.tlas` (array)

  - `app.spec.source.directory.jsonnet.libs` (array)

  - `app.spec.source.directory.exclude` (string)

  - `app.spec.source.directory.include` (string)

  - `app.spec.source.plugin` (object)

  - `app.spec.source.plugin.name` (string)

  - `app.spec.source.plugin.env` (array)

  - `app.spec.source.plugin.env.name` (string)

  - `app.spec.source.plugin.env.value` (string)

  - `app.spec.source.plugin.parameters` (array)

  - `app.spec.source.plugin.parameters.name` (string)
    Name is the name identifying a parameter.

  - `app.spec.source.plugin.parameters.string` (string)
    String_ is the value of a string type parameter.

  - `app.spec.source.plugin.parameters.map` (object)

  - `app.spec.source.plugin.parameters.map.map` (object)

  - `app.spec.source.plugin.parameters.array` (object)

  - `app.spec.source.plugin.parameters.array.array` (array)

  - `app.spec.source.chart` (string)
    Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.

  - `app.spec.source.ref` (string)
    Ref is reference to another source within sources field. This field will not be used if used with a source tag.

  - `app.spec.source.name` (string)
    Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.

  - `app.spec.destination` (object)

  - `app.spec.destination.server` (string)

  - `app.spec.destination.namespace` (string)

  - `app.spec.destination.name` (string)

  - `app.spec.project` (string)
    Project is a reference to the project this application belongs to.
The empty string means that application belongs to the 'default' project.

  - `app.spec.syncPolicy` (object)

  - `app.spec.syncPolicy.automated` (object)

  - `app.spec.syncPolicy.automated.prune` (boolean)

  - `app.spec.syncPolicy.automated.selfHeal` (boolean)

  - `app.spec.syncPolicy.automated.allowEmpty` (boolean)

  - `app.spec.syncPolicy.automated.enabled` (boolean)

  - `app.spec.syncPolicy.syncOptions` (array)

  - `app.spec.syncPolicy.retry` (object)

  - `app.spec.syncPolicy.managedNamespaceMetadata` (object)

  - `app.spec.syncPolicy.managedNamespaceMetadata.labels` (object)

  - `app.spec.syncPolicy.managedNamespaceMetadata.annotations` (object)

  - `app.spec.ignoreDifferences` (array)

  - `app.spec.ignoreDifferences.group` (string)

  - `app.spec.ignoreDifferences.kind` (string)

  - `app.spec.ignoreDifferences.name` (string)

  - `app.spec.ignoreDifferences.namespace` (string)

  - `app.spec.ignoreDifferences.jsonPointers` (array)

  - `app.spec.ignoreDifferences.jqPathExpressions` (array)

  - `app.spec.ignoreDifferences.managedFieldsManagers` (array)

  - `app.spec.info` (array)

  - `app.spec.revisionHistoryLimit` (string)
    RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions.
This should only be changed in exceptional circumstances.
Setting to zero will store no history. This will reduce storage used.
Increasing will increase the space used to store the history, so we do not recommend increasing it.
Default is 10.

  - `app.spec.sources` (array)

  - `app.spec.sourceHydrator` (object)
    SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.

  - `app.spec.sourceHydrator.drySource` (object)
    DrySource specifies a location for dry "don't repeat yourself" manifest source information.

  - `app.spec.sourceHydrator.drySource.repoURL` (string)

  - `app.spec.sourceHydrator.drySource.targetRevision` (string)

  - `app.spec.sourceHydrator.drySource.path` (string)

  - `app.spec.sourceHydrator.drySource.helm` (object)

  - `app.spec.sourceHydrator.drySource.kustomize` (object)

  - `app.spec.sourceHydrator.drySource.directory` (object)

  - `app.spec.sourceHydrator.drySource.plugin` (object)

  - `app.spec.sourceHydrator.syncSource` (object)
    SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the
associated DrySource config in the SourceHydrator.

  - `app.spec.sourceHydrator.syncSource.targetBranch` (string)
    TargetBranch is the branch from which hydrated manifests will be synced.
If HydrateTo is not set, this is also the branch to which hydrated manifests are committed.

  - `app.spec.sourceHydrator.syncSource.path` (string)
    Path is a directory path within the git repository where hydrated manifests should be committed to and synced
from. The Path should never point to the root of the repo. If hydrateTo is set, this is just the path from which
hydrated manifests will be synced.

+kubebuilder:validation:Required
+kubebuilder:validation:MinLength=1
+kubebuilder:validation:Pattern=^.{2,}|[^./]$

  - `app.spec.sourceHydrator.hydrateTo` (object)
    HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to
the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.

  - `app.spec.sourceHydrator.hydrateTo.targetBranch` (string)

  - `app.status` (object)

  - `app.status.resources` (array)

  - `app.status.resources.group` (string)
    Group represents the API group of the resource (e.g., "apps" for Deployments).

  - `app.status.resources.version` (string)
    Version indicates the API version of the resource (e.g., "v1", "v1beta1").

  - `app.status.resources.kind` (string)
    Kind specifies the type of the resource (e.g., "Deployment", "Service").

  - `app.status.resources.namespace` (string)
    Namespace defines the Kubernetes namespace where the resource is located.

  - `app.status.resources.name` (string)
    Name is the unique name of the resource within the namespace.

  - `app.status.resources.status` (string)
    Status represents the synchronization state of the resource (e.g., Synced, OutOfSync).

  - `app.status.resources.health` (object)

  - `app.status.resources.health.status` (string)

  - `app.status.resources.health.message` (string)

  - `app.status.resources.health.lastTransitionTime` (object)
    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

  - `app.status.resources.hook` (boolean)
    Hook is true if the resource is used as a lifecycle hook in an Argo CD application.

  - `app.status.resources.requiresPruning` (boolean)
    RequiresPruning is true if the resource needs to be pruned (deleted) as part of synchronization.

  - `app.status.resources.syncWave` (string)
    SyncWave determines the order in which resources are applied during a sync operation.
Lower values are applied first.

  - `app.status.resources.requiresDeletionConfirmation` (boolean)
    RequiresDeletionConfirmation is true if the resource requires explicit user confirmation before deletion.

  - `app.status.sync` (object)

  - `app.status.sync.status` (string)

  - `app.status.sync.comparedTo` (object)

  - `app.status.sync.comparedTo.source` (object)

  - `app.status.sync.comparedTo.destination` (object)

  - `app.status.sync.comparedTo.sources` (array)

  - `app.status.sync.comparedTo.ignoreDifferences` (array)

  - `app.status.sync.revision` (string)

  - `app.status.sync.revisions` (array)

  - `app.status.health` (object)

  - `app.status.health.status` (string)

  - `app.status.health.message` (string)
    Deprecated: this field is not used and will be removed in a future release.

  - `app.status.health.lastTransitionTime` (object)
    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

  - `app.status.history` (array)

  - `app.status.history.revision` (string)

  - `app.status.history.deployedAt` (object)
    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

  - `app.status.history.id` (string)

  - `app.status.history.source` (object)

  - `app.status.history.deployStartedAt` (object)
    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

  - `app.status.history.deployedAtTs` (string)

  - `app.status.history.deployStartedAtTs` (string)

  - `app.status.history.sources` (array)

  - `app.status.history.revisions` (array)

  - `app.status.history.initiatedBy` (object)

  - `app.status.history.initiatedBy.username` (string)

  - `app.status.history.initiatedBy.automated` (boolean)
    Automated is set to true if operation was initiated automatically by the application controller.

  - `app.status.conditions` (array)

  - `app.status.conditions.type` (string)

  - `app.status.conditions.message` (string)

  - `app.status.conditions.lastTransitionTime` (object)
    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

  - `app.status.conditions.lastTransitionTimeTs` (string)

  - `app.status.reconciledAt` (object)
    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

  - `app.status.operationState` (object)

  - `app.status.operationState.operation` (object)

  - `app.status.operationState.operation.sync` (object)
    SyncOperation contains details about a sync operation.

  - `app.status.operationState.operation.sync.revision` (string)
    Revision is the revision (Git) or chart version (Helm) which to sync the application to
If omitted, will use the revision specified in app spec.

  - `app.status.operationState.operation.sync.prune` (boolean)

  - `app.status.operationState.operation.sync.dryRun` (boolean)

  - `app.status.operationState.operation.sync.syncStrategy` (object)

  - `app.status.operationState.operation.sync.resources` (array)

  - `app.status.operationState.operation.sync.source` (object)

  - `app.status.operationState.operation.sync.manifests` (array)

  - `app.status.operationState.operation.sync.syncOptions` (array)

  - `app.status.operationState.operation.sync.sources` (array)

  - `app.status.operationState.operation.sync.revisions` (array)
    Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
If omitted, will use the revision specified in app spec.

  - `app.status.operationState.operation.sync.autoHealAttemptsCount` (string)

  - `app.status.operationState.operation.initiatedBy` (object)

  - `app.status.operationState.operation.info` (array)

  - `app.status.operationState.operation.retry` (object)

  - `app.status.operationState.phase` (string)

  - `app.status.operationState.message` (string)
    Message holds any pertinent messages when attempting to perform operation (typically errors).

  - `app.status.operationState.syncResult` (object)

  - `app.status.operationState.syncResult.resources` (array)

  - `app.status.operationState.syncResult.resources.group` (string)

  - `app.status.operationState.syncResult.resources.version` (string)

  - `app.status.operationState.syncResult.resources.kind` (string)

  - `app.status.operationState.syncResult.resources.namespace` (string)

  - `app.status.operationState.syncResult.resources.name` (string)

  - `app.status.operationState.syncResult.resources.status` (string)

  - `app.status.operationState.syncResult.resources.message` (string)

  - `app.status.operationState.syncResult.resources.hookType` (string)

  - `app.status.operationState.syncResult.resources.hookPhase` (string)
    HookPhase contains the state of any operation associated with this resource OR hook
This can also contain values for non-hook resources.

  - `app.status.operationState.syncResult.resources.syncPhase` (string)

  - `app.status.operationState.syncResult.resources.images` (array)

  - `app.status.operationState.syncResult.revision` (string)

  - `app.status.operationState.syncResult.source` (object)

  - `app.status.operationState.syncResult.sources` (array)

  - `app.status.operationState.syncResult.revisions` (array)

  - `app.status.operationState.syncResult.managedNamespaceMetadata` (object)

  - `app.status.operationState.startedAt` (object)
    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

  - `app.status.operationState.finishedAt` (object)
    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

  - `app.status.operationState.retryCount` (string)

  - `app.status.operationState.startedAtTs` (string)

  - `app.status.operationState.finishedAtTs` (string)

  - `app.status.observedAt` (object)
    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

  - `app.status.sourceType` (string)

  - `app.status.summary` (object)

  - `app.status.summary.externalURLs` (array)
    ExternalURLs holds all external URLs of application child resources.

  - `app.status.summary.images` (array)
    Images holds all images of application child resources.

  - `app.status.resourceHealthSource` (string)

  - `app.status.sourceTypes` (array)

  - `app.status.controllerNamespace` (string)

  - `app.status.sourceHydrator` (object)

  - `app.status.sourceHydrator.lastSuccessfulOperation` (object)

  - `app.status.sourceHydrator.lastSuccessfulOperation.drySHA` (string)

  - `app.status.sourceHydrator.lastSuccessfulOperation.hydratedSHA` (string)

  - `app.status.sourceHydrator.lastSuccessfulOperation.sourceHydrator` (object)
    SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.

  - `app.status.sourceHydrator.currentOperation` (object)

  - `app.status.sourceHydrator.currentOperation.startedAt` (object)
    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

  - `app.status.sourceHydrator.currentOperation.finishedAt` (object)
    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

  - `app.status.sourceHydrator.currentOperation.phase` (string)

  - `app.status.sourceHydrator.currentOperation.message` (string)

  - `app.status.sourceHydrator.currentOperation.drySHA` (string)

  - `app.status.sourceHydrator.currentOperation.hydratedSHA` (string)

  - `app.status.sourceHydrator.currentOperation.sourceHydrator` (object)
    SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.

  - `app.operation` (object)

  - `createdAt` (string)

  - `lastModifiedAt` (string)

  - `stale` (boolean)

  - `skipRepoValidation` (boolean)

  - `repoIdentifiers` (array)

  - `parentAppRef` (string)
    Reference of owner application (Application Set)

  - `governanceMetadata` (object)
    GovernanceMetadata contains OPA policy evaluation results for an entity.
This structure mirrors the standard Harness governanceMetadata format used across all services.

  - `governanceMetadata.id` (string)
    Unique identifier for this evaluation

  - `governanceMetadata.deny` (boolean)
    Whether the policy denied the action

  - `governanceMetadata.status` (string)
    Overall status: pass, warning, or error

  - `governanceMetadata.message` (string)
    Human-readable message

  - `governanceMetadata.timestamp` (string)
    Timestamp of evaluation in Unix milliseconds

  - `governanceMetadata.accountId` (string)
    Account ID where evaluation was performed

  - `governanceMetadata.orgId` (string)
    Organization ID where evaluation was performed

  - `governanceMetadata.projectId` (string)
    Project ID where evaluation was performed

  - `governanceMetadata.entity` (string)
    Entity identifier that was evaluated

  - `governanceMetadata.type` (string)
    Type of entity evaluated (e.g., application)

  - `governanceMetadata.action` (string)
    Action that triggered evaluation (e.g., onsave, onsync)

  - `governanceMetadata.created` (string)
    Creation timestamp in Unix milliseconds

  - `governanceMetadata.details` (array)
    Detailed results for each policy set

  - `governanceMetadata.details.policySetId` (string)
    Unique ID of the policy set

  - `governanceMetadata.details.policySetName` (string)
    Name of the policy set

  - `governanceMetadata.details.identifier` (string)
    User-defined identifier of the policy set

  - `governanceMetadata.details.deny` (boolean)
    Whether this policy set denied the action

  - `governanceMetadata.details.status` (string)
    Status: pass, warning, or error

  - `governanceMetadata.details.accountId` (string)
    Account ID

  - `governanceMetadata.details.orgId` (string)
    Organization ID

  - `governanceMetadata.details.projectId` (string)
    Project ID

  - `governanceMetadata.details.description` (string)
    Description of the policy set

  - `governanceMetadata.details.created` (string)
    Creation timestamp

  - `governanceMetadata.details.policyMetadata` (array)
    Individual policy evaluation results

  - `governanceMetadata.details.policyMetadata.policyId` (string)
    Unique ID of the policy

  - `governanceMetadata.details.policyMetadata.policyName` (string)
    Name of the policy

  - `governanceMetadata.details.policyMetadata.identifier` (string)
    User-defined identifier of the policy

  - `governanceMetadata.details.policyMetadata.severity` (string)
    Severity level: warning or error

  - `governanceMetadata.details.policyMetadata.status` (string)
    Status: pass, warning, or error

  - `governanceMetadata.details.policyMetadata.denyMessages` (array)
    Messages explaining why the policy denied the action

  - `governanceMetadata.details.policyMetadata.accountId` (string)
    Account ID

  - `governanceMetadata.details.policyMetadata.orgId` (string)
    Organization ID

  - `governanceMetadata.details.policyMetadata.projectId` (string)
    Project ID

  - `governanceMetadata.details.policyMetadata.created` (string)
    Creation timestamp

  - `governanceMetadata.details.policyMetadata.updated` (string)
    Last update timestamp

  - `governanceMetadata.details.policyMetadata.error` (string)
    Error message from rego engine if any

## Response default fields (application/json):

  - `error` (string)

  - `code` (integer)

  - `message` (string)

  - `details` (array)

  - `details.type_url` (string)
    A URL/resource name that uniquely identifies the type of the serialized
protocol buffer message. This string must contain at least
one "/" character. The last segment of the URL's path must represent
the fully qualified name of the type (as in
path/google.protobuf.Duration). The name should be in a canonical form
(e.g., leading "." is not accepted).

In practice, teams usually precompile into the binary all types that they
expect it to use in the context of Any. However, for URLs which use the
scheme http, https, or no scheme, one can optionally set up a type
server that maps type URLs to message definitions as follows:

* If no scheme is provided, https is assumed.
* An HTTP GET on the URL must yield a [google.protobuf.Type][]
  value in binary format, or produce an error.
* Applications are allowed to cache lookup results based on the
  URL, or have them precompiled into a binary to avoid any
  lookup. Therefore, binary compatibility needs to be preserved
  on changes to types. (Use versioned type names to manage
  breaking changes.)

Note: this functionality is not currently available in the official
protobuf release, and it is not used for type URLs beginning with
type.googleapis.com. As of May 2023, there are no widely used type server
implementations and no plans to implement one.

Schemes other than http, https (or the empty scheme) might be
used with implementation specific semantics.

  - `details.value` (string)
    Must be a valid serialized protocol buffer of the above specified type.


