{
  "$defs": {
    "ApplicationDeletionPolicy": {
      "oneOf": [
        {
          "const": "Foreground",
          "description": "Cascade deletion in the foreground using the Argo CD resources finalizer.",
          "type": "string"
        },
        {
          "const": "Background",
          "description": "Cascade deletion in the background using the Argo CD background finalizer.",
          "type": "string"
        },
        {
          "const": "Orphan",
          "description": "Omit the finalizer and leave workload resources in place.",
          "type": "string"
        }
      ]
    },
    "CatalogApplicationOverrides": {
      "additionalProperties": false,
      "properties": {
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Annotations added to generated Applications.",
          "type": "object"
        },
        "applicationDeletionPolicy": {
          "anyOf": [
            {
              "$ref": "#/$defs/ApplicationDeletionPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Application deletion override; inherits the instance default when omitted."
        },
        "enabled": {
          "default": true,
          "description": "Whether to generate a catalog Application recursively sourcing `_nyl/catalog`.",
          "type": "boolean"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels added to generated Applications.",
          "type": "object"
        },
        "name": {
          "description": "Catalog Application name. Defaults to the target name; names must be unique within the Argo CD instance.",
          "type": [
            "string",
            "null"
          ]
        },
        "project": {
          "description": "Argo CD project override; inherits the instance catalog default when omitted.",
          "type": [
            "string",
            "null"
          ]
        },
        "selfPrunePolicy": {
          "anyOf": [
            {
              "$ref": "#/$defs/ManagedResourceDeletionPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Self-pruning override; inherits the instance default when omitted."
        },
        "syncPolicy": {
          "anyOf": [
            {
              "$ref": "#/$defs/GitOpsSyncPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Catalog synchronization override; inherits the instance default when omitted."
        }
      },
      "type": "object"
    },
    "DeploymentTargetSpec": {
      "additionalProperties": false,
      "properties": {
        "applicationGroupSelector": {
          "$ref": "#/$defs/LabelSelector",
          "default": {},
          "description": "Matches literal ApplicationGroup metadata labels before rendering their specs. An empty selector matches all groups."
        },
        "argocdRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/LocalReference"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project-local ArgoCDInstance. Required when any explicit instance exists; otherwise Nyl uses a target-local instance in the workload Cluster and `argocd` namespace."
        },
        "catalogApplication": {
          "$ref": "#/$defs/CatalogApplicationOverrides",
          "default": {
            "enabled": true
          },
          "description": "Target-specific catalog Application settings. Unspecified policy inherits from the ArgoCDInstance."
        },
        "clusterRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/LocalReference"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project-local workload Cluster. Defaults to the target name when omitted."
        },
        "publication": {
          "$ref": "#/$defs/GitPublication",
          "description": "Git repository, revision, and path prefix owned by this target. Targets on the same repository revision must have disjoint prefixes."
        },
        "releaseInputs": {
          "additionalProperties": {
            "additionalProperties": {
              "$ref": "#/$defs/InputBinding"
            },
            "type": "object"
          },
          "description": "Release input bindings, keyed by `<applicationGroup>/<release>` and then input name. Each binding sets exactly one source and replaces the Release default whole. Keys of selected but disabled groups are ignored; other keys must name a rendered Release and inputs it declares. Not visible to templates as `target.spec.releaseInputs`.",
          "type": "object"
        },
        "values": {
          "additionalProperties": true,
          "description": "Target values recursively overlaid on Cluster values and exposed as template inputs.",
          "type": "object"
        }
      },
      "required": [
        "publication"
      ],
      "type": "object"
    },
    "FileInputSource": {
      "additionalProperties": false,
      "description": "A value read from a YAML or JSON file of this repository.",
      "properties": {
        "path": {
          "description": "File path relative to the directory containing `nyl.toml`, or from the Git worktree root with a leading `/`. The file must contain a single YAML or JSON document.",
          "type": "string"
        },
        "pointer": {
          "description": "JSON Pointer selecting the value inside the document; the whole document when empty.",
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "GitInputSource": {
      "additionalProperties": false,
      "description": "A value read from a file of a Git repository at a locked commit.\n\nRendering reads only `commit` and never resolves `revision`; `nyl update\nsource-locks` moves the lock.",
      "oneOf": [
        {
          "description": "Reads from the named GitRepository.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "repository": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "repository"
                ]
              }
            ]
          },
          "properties": {
            "repositoryRef": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "repositoryRef"
          ],
          "title": "repositoryRef"
        },
        {
          "description": "Reads from the inline coordinates declared here.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "repositoryRef": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "repositoryRef"
                ]
              }
            ]
          },
          "properties": {
            "repository": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "repository"
          ],
          "title": "repository"
        }
      ],
      "properties": {
        "commit": {
          "description": "Full 40-character lowercase commit ID that is read, refreshed by `nyl update source-locks`.",
          "type": "string"
        },
        "path": {
          "description": "Path in the repository. In this repository it follows the local path rule: relative to the directory containing `nyl.toml`, may begin with `..` segments, or starts with `/` to name a path from the Git worktree root, and never leaves the worktree. In a remote repository it is relative to the checkout root, with an optional leading `/`.",
          "type": "string"
        },
        "pointer": {
          "description": "JSON Pointer selecting the value inside the document; the whole document when empty.",
          "type": "string"
        },
        "repository": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReadGitRepository"
            },
            {
              "type": "null"
            }
          ],
          "description": "Inline repository coordinates to read from. Mutually exclusive with `repositoryRef`."
        },
        "repositoryRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/LocalReference"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project-local `gitops.nyl/v1` GitRepository to read from. Mutually exclusive with inline `repository`."
        },
        "revision": {
          "description": "Human-readable branch or tag that `nyl update source-locks` resolves.",
          "type": "string"
        }
      },
      "required": [
        "revision",
        "commit",
        "path"
      ],
      "type": "object"
    },
    "GitOpsAutomatedSyncPolicy": {
      "additionalProperties": false,
      "properties": {
        "enabled": {
          "description": "Whether automated sync is enabled. Omission enables it when the automated block is present.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "prune": {
          "default": false,
          "description": "Allow Argo CD to prune resources removed from desired manifests.",
          "type": "boolean"
        },
        "selfHeal": {
          "default": false,
          "description": "Allow Argo CD to repair live drift automatically.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "GitOpsResourceMetadata": {
      "additionalProperties": false,
      "description": "Metadata shared by local GitOps compiler resources.",
      "properties": {
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Literal labels used for organization and target selection.",
          "type": "object"
        },
        "name": {
          "description": "Project-local identity, validated by the resource kind; remains static during discovery.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "GitOpsSyncPolicy": {
      "additionalProperties": false,
      "properties": {
        "automated": {
          "anyOf": [
            {
              "$ref": "#/$defs/GitOpsAutomatedSyncPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Presence enables automated synchronization unless `enabled` is false."
        },
        "syncOptions": {
          "description": "Argo CD sync options. Generated Applications add `ApplyOutOfSyncOnly=true` and `ServerSideApply=true` unless an option with the same key is supplied.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GitPublication": {
      "additionalProperties": false,
      "description": "Git coordinates used as a rendered output and Argo CD source.",
      "oneOf": [
        {
          "description": "Publishes to the coordinates of the named GitRepository.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "repository": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "repository"
                ]
              }
            ]
          },
          "properties": {
            "repositoryRef": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "repositoryRef"
          ],
          "title": "repositoryRef"
        },
        {
          "description": "Publishes to the inline coordinates declared here.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "repositoryRef": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "repositoryRef"
                ]
              }
            ]
          },
          "properties": {
            "repository": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "repository"
          ],
          "title": "repository"
        }
      ],
      "properties": {
        "pathPrefix": {
          "description": "Normalized repository-relative output prefix. Defaults to the target name.",
          "type": [
            "string",
            "null"
          ]
        },
        "repository": {
          "anyOf": [
            {
              "$ref": "#/$defs/InlineGitRepository"
            },
            {
              "type": "null"
            }
          ],
          "description": "Inline Git coordinates. Exactly one of `repositoryRef` and `repository` is required."
        },
        "repositoryRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/LocalReference"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project-local GitRepository identity in `gitops.nyl/v1`. Exactly one of `repositoryRef` and `repository` is required."
        },
        "revision": {
          "description": "Publication branch or revision for this target.",
          "type": "string"
        }
      },
      "required": [
        "revision"
      ],
      "type": "object"
    },
    "InlineGitRepository": {
      "additionalProperties": false,
      "properties": {
        "publishURL": {
          "description": "Optional Git write URL. Publication uses `repoURL` when omitted.",
          "type": [
            "string",
            "null"
          ]
        },
        "repoURL": {
          "description": "Credential-free Git read URL used by renderers and generated Applications.",
          "type": "string"
        }
      },
      "required": [
        "repoURL"
      ],
      "type": "object"
    },
    "InputBinding": {
      "additionalProperties": false,
      "description": "Where one Release input's value comes from. Set exactly one field.",
      "oneOf": [
        {
          "description": "Binds an inline literal value.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "fromFile": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromFile"
                ]
              },
              {
                "properties": {
                  "fromGit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromGit"
                ]
              },
              {
                "properties": {
                  "fromPublication": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPublication"
                ]
              },
              {
                "properties": {
                  "fromUnit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromUnit"
                ]
              },
              {
                "properties": {
                  "fromPromotion": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPromotion"
                ]
              }
            ]
          },
          "properties": {
            "value": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "value"
          ],
          "title": "value"
        },
        {
          "description": "Reads the value from a YAML or JSON file of this repository.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "value": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "value"
                ]
              },
              {
                "properties": {
                  "fromGit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromGit"
                ]
              },
              {
                "properties": {
                  "fromPublication": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPublication"
                ]
              },
              {
                "properties": {
                  "fromUnit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromUnit"
                ]
              },
              {
                "properties": {
                  "fromPromotion": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPromotion"
                ]
              }
            ]
          },
          "properties": {
            "fromFile": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "fromFile"
          ],
          "title": "fromFile"
        },
        {
          "description": "Reads the value from a file of a Git repository at a locked commit.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "value": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "value"
                ]
              },
              {
                "properties": {
                  "fromFile": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromFile"
                ]
              },
              {
                "properties": {
                  "fromPublication": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPublication"
                ]
              },
              {
                "properties": {
                  "fromUnit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromUnit"
                ]
              },
              {
                "properties": {
                  "fromPromotion": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPromotion"
                ]
              }
            ]
          },
          "properties": {
            "fromGit": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "fromGit"
          ],
          "title": "fromGit"
        },
        {
          "description": "Reads the value from a state file in this target's publication branch.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "value": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "value"
                ]
              },
              {
                "properties": {
                  "fromFile": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromFile"
                ]
              },
              {
                "properties": {
                  "fromGit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromGit"
                ]
              },
              {
                "properties": {
                  "fromUnit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromUnit"
                ]
              },
              {
                "properties": {
                  "fromPromotion": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPromotion"
                ]
              }
            ]
          },
          "properties": {
            "fromPublication": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "fromPublication"
          ],
          "title": "fromPublication"
        },
        {
          "description": "Reserved for orchestration: reads a recorded unit output or artifact field.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "value": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "value"
                ]
              },
              {
                "properties": {
                  "fromFile": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromFile"
                ]
              },
              {
                "properties": {
                  "fromGit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromGit"
                ]
              },
              {
                "properties": {
                  "fromPublication": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPublication"
                ]
              },
              {
                "properties": {
                  "fromPromotion": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPromotion"
                ]
              }
            ]
          },
          "properties": {
            "fromUnit": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "fromUnit"
          ],
          "title": "fromUnit"
        },
        {
          "description": "Reserved for orchestration: reads a value recorded through a PromotionPath.",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "value": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "value"
                ]
              },
              {
                "properties": {
                  "fromFile": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromFile"
                ]
              },
              {
                "properties": {
                  "fromGit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromGit"
                ]
              },
              {
                "properties": {
                  "fromPublication": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromPublication"
                ]
              },
              {
                "properties": {
                  "fromUnit": {
                    "not": {
                      "type": "null"
                    }
                  }
                },
                "required": [
                  "fromUnit"
                ]
              }
            ]
          },
          "properties": {
            "fromPromotion": {
              "not": {
                "type": "null"
              }
            }
          },
          "required": [
            "fromPromotion"
          ],
          "title": "fromPromotion"
        }
      ],
      "properties": {
        "fromFile": {
          "anyOf": [
            {
              "$ref": "#/$defs/FileInputSource"
            },
            {
              "type": "null"
            }
          ],
          "description": "A YAML or JSON file of this repository."
        },
        "fromGit": {
          "anyOf": [
            {
              "$ref": "#/$defs/GitInputSource"
            },
            {
              "type": "null"
            }
          ],
          "description": "A YAML or JSON file of a Git repository at a locked commit."
        },
        "fromPromotion": {
          "anyOf": [
            {
              "$ref": "#/$defs/PromotionInputSource"
            },
            {
              "type": "null"
            }
          ],
          "description": "Reserved for orchestration: a value recorded through a PromotionPath. Rejected outside orchestrated execution."
        },
        "fromPublication": {
          "anyOf": [
            {
              "$ref": "#/$defs/PublicationInputSource"
            },
            {
              "type": "null"
            }
          ],
          "description": "A state file in this target's publication branch, read at the publication base commit."
        },
        "fromUnit": {
          "anyOf": [
            {
              "$ref": "#/$defs/UnitInputSource"
            },
            {
              "type": "null"
            }
          ],
          "description": "Reserved for orchestration: a recorded unit output or artifact field. Rejected outside orchestrated execution."
        },
        "value": {
          "description": "Inline literal value. DeploymentTargets are static, so it is never templated."
        }
      },
      "type": "object"
    },
    "LabelSelector": {
      "additionalProperties": false,
      "properties": {
        "matchLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Exact label matches, combined with AND. An empty map selects every ApplicationGroup.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "LocalReference": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Project-local name of the referenced resource; its kind and API group are determined by the containing field.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "ManagedResourceDeletionPolicy": {
      "oneOf": [
        {
          "const": "Automatic",
          "description": "Allow pruning or deletion without additional restrictions.",
          "type": "string"
        },
        {
          "const": "Confirm",
          "description": "Require confirmation through the Argo CD Prune or Delete sync option.",
          "type": "string"
        },
        {
          "const": "Retain",
          "description": "Set the Argo CD Prune or Delete sync option to false.",
          "type": "string"
        }
      ]
    },
    "PromotionInputSource": {
      "additionalProperties": false,
      "description": "Reserved orchestration reference to a promoted value.",
      "properties": {
        "path": {
          "description": "PromotionPath the value must come from.",
          "type": [
            "string",
            "null"
          ]
        },
        "value": {
          "description": "Promoted value name, as declared by a PromotionPath.",
          "type": "string"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "PublicationInputSource": {
      "additionalProperties": false,
      "description": "A value read from a state file in the target's own publication branch.\n\nThe file is read at the publication base commit, the branch head that\n`publish-tree` builds on, so a published commit holds the state and the\nmanifests rendered from it.",
      "properties": {
        "carryFileFromWorktree": {
          "description": "Untracked working-tree file of this run, under the local path rule. When present, Nyl renders from it and writes its bytes to `path` in the publication commit; otherwise the base copy is written back. With `carryFileFromWorktree`, `path` is owned by this target.",
          "type": [
            "string",
            "null"
          ]
        },
        "path": {
          "description": "State file path relative to the target's publication path prefix. It must lie outside every directory a generated Argo CD Application syncs: workload Release directories and `_nyl`.",
          "type": "string"
        },
        "pointer": {
          "description": "JSON Pointer selecting the value inside the document; the whole document when empty.",
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "ReadGitRepository": {
      "additionalProperties": false,
      "description": "Credential-free coordinates for a repository that is only read.",
      "properties": {
        "repoURL": {
          "description": "Git read URL. Source checkouts never publish to this repository.",
          "type": "string"
        }
      },
      "required": [
        "repoURL"
      ],
      "type": "object"
    },
    "UnitInputSource": {
      "additionalProperties": false,
      "description": "Reserved orchestration reference to a unit output or artifact field.",
      "properties": {
        "artifact": {
          "description": "Published artifact name. Set exactly one of `output` and `artifact`.",
          "type": [
            "string",
            "null"
          ]
        },
        "attestations": {
          "description": "Required attestations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "environment": {
          "description": "Environment of the unit, for cross-environment references.",
          "type": [
            "string",
            "null"
          ]
        },
        "evidence": {
          "description": "Required evidence level: `published` or `attested`.",
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "description": "Expected artifact kind.",
          "type": [
            "string",
            "null"
          ]
        },
        "output": {
          "description": "Declared output name. Set exactly one of `output` and `artifact`.",
          "type": [
            "string",
            "null"
          ]
        },
        "pointer": {
          "description": "JSON Pointer inside the output or artifact.",
          "type": [
            "string",
            "null"
          ]
        },
        "unit": {
          "description": "Producing unit name.",
          "type": "string"
        }
      },
      "required": [
        "unit"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Binds a Kubernetes Cluster to render values, ApplicationGroup selection, and Git publication coordinates.\n\nA target owns one independently renderable publication slice. It is compiler configuration and does not represent a general infrastructure environment.\n\n## When needed\n\nRequired for target-aware Kubernetes GitOps operations. It supplies workload Cluster selection and publication coordinates.\n\n## If omitted\n\nOperations requiring a target fail when none are declared. If exactly one target exists, Nyl selects it without `--target`; with multiple targets, select one explicitly. Target selection never creates a DeploymentTarget.",
  "examples": [
    {
      "apiVersion": "k8s.gitops.nyl/v1",
      "kind": "DeploymentTarget",
      "metadata": {
        "name": "production"
      },
      "spec": {
        "argocdRef": {
          "name": "primary"
        },
        "clusterRef": {
          "name": "primary"
        },
        "publication": {
          "pathPrefix": "targets/production",
          "repositoryRef": {
            "name": "deploy"
          },
          "revision": "deploy"
        }
      }
    }
  ],
  "properties": {
    "apiVersion": {
      "const": "k8s.gitops.nyl/v1",
      "description": "API group and version defining this resource.",
      "type": "string"
    },
    "kind": {
      "const": "DeploymentTarget",
      "description": "Resource kind within the API group.",
      "type": "string"
    },
    "metadata": {
      "$ref": "#/$defs/GitOpsResourceMetadata",
      "description": "Resource identity and metadata."
    },
    "spec": {
      "$ref": "#/$defs/DeploymentTargetSpec",
      "description": "Configuration for this resource."
    }
  },
  "required": [
    "apiVersion",
    "kind",
    "metadata",
    "spec"
  ],
  "title": "DeploymentTarget",
  "type": "object"
}
