From f0c10d853561682e7506f44f98199158e5541370 Mon Sep 17 00:00:00 2001 From: Johannes Malsam Date: Wed, 14 Aug 2024 13:45:07 +0200 Subject: [PATCH 1/9] ROX-25847: add argocd types --- .golangci.yml | 1 + argocd/v1alpha1/README.md | 4 + argocd/v1alpha1/applicationset_types.go | 708 ++++ argocd/v1alpha1/appproject_types.go | 31 + argocd/v1alpha1/register.go | 65 + argocd/v1alpha1/repository_types.go | 146 + argocd/v1alpha1/types.go | 1215 ++++++ argocd/v1alpha1/zz_generated_deepcopy.go | 4434 ++++++++++++++++++++++ fleetshard/pkg/k8s/client.go | 20 +- 9 files changed, 6618 insertions(+), 6 deletions(-) create mode 100644 argocd/v1alpha1/README.md create mode 100644 argocd/v1alpha1/applicationset_types.go create mode 100644 argocd/v1alpha1/appproject_types.go create mode 100644 argocd/v1alpha1/register.go create mode 100644 argocd/v1alpha1/repository_types.go create mode 100644 argocd/v1alpha1/types.go create mode 100644 argocd/v1alpha1/zz_generated_deepcopy.go diff --git a/.golangci.yml b/.golangci.yml index 365c72bd40..d475184dd0 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -4,6 +4,7 @@ run: - internal/dinosaur/pkg/api/private - internal/dinosaur/pkg/api/admin/private - pkg/client/redhatsso/api + - argocd skip-files: - ".*_moq.go" # timeout for analysis, e.g. 30s, 5m, default is 1m diff --git a/argocd/v1alpha1/README.md b/argocd/v1alpha1/README.md new file mode 100644 index 0000000000..d34cb1a71f --- /dev/null +++ b/argocd/v1alpha1/README.md @@ -0,0 +1,4 @@ +These types were copy-pasted from https://github.com/argoproj/argo-cd/tree/master/pkg/apis/application/v1alpha1 + +We are not importing the ArgoCD dependency itself, because it would significantly +complexify the go.mod, and might introduce conflicts with the stackrox dependencies. diff --git a/argocd/v1alpha1/applicationset_types.go b/argocd/v1alpha1/applicationset_types.go new file mode 100644 index 0000000000..5991ef8bdc --- /dev/null +++ b/argocd/v1alpha1/applicationset_types.go @@ -0,0 +1,708 @@ +package v1alpha1 + +import ( + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// Utility struct for a reference to a secret key. +type SecretRef struct { + SecretName string `json:"secretName" protobuf:"bytes,1,opt,name=secretName"` + Key string `json:"key" protobuf:"bytes,2,opt,name=key"` +} + +// Utility struct for a reference to a configmap key. +type ConfigMapKeyRef struct { + ConfigMapName string `json:"configMapName" protobuf:"bytes,1,opt,name=configMapName"` + Key string `json:"key" protobuf:"bytes,2,opt,name=key"` +} + +// ApplicationSet is a set of Application resources +type ApplicationSet struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Spec ApplicationSetSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status ApplicationSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// ApplicationSetSpec represents a class of application set state. +type ApplicationSetSpec struct { + GoTemplate bool `json:"goTemplate,omitempty" protobuf:"bytes,1,name=goTemplate"` + Generators []ApplicationSetGenerator `json:"generators" protobuf:"bytes,2,name=generators"` + Template ApplicationSetTemplate `json:"template" protobuf:"bytes,3,name=template"` + SyncPolicy *ApplicationSetSyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"` + Strategy *ApplicationSetStrategy `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"` + PreservedFields *ApplicationPreservedFields `json:"preservedFields,omitempty" protobuf:"bytes,6,opt,name=preservedFields"` + GoTemplateOptions []string `json:"goTemplateOptions,omitempty" protobuf:"bytes,7,opt,name=goTemplateOptions"` + // ApplyNestedSelectors enables selectors defined within the generators of two level-nested matrix or merge generators + ApplyNestedSelectors bool `json:"applyNestedSelectors,omitempty" protobuf:"bytes,8,name=applyNestedSelectors"` + IgnoreApplicationDifferences ApplicationSetIgnoreDifferences `json:"ignoreApplicationDifferences,omitempty" protobuf:"bytes,9,name=ignoreApplicationDifferences"` + TemplatePatch *string `json:"templatePatch,omitempty" protobuf:"bytes,10,name=templatePatch"` +} + +type ApplicationPreservedFields struct { + Annotations []string `json:"annotations,omitempty" protobuf:"bytes,1,name=annotations"` + Labels []string `json:"labels,omitempty" protobuf:"bytes,2,name=labels"` +} + +// ApplicationSetStrategy configures how generated Applications are updated in sequence. +type ApplicationSetStrategy struct { + Type string `json:"type,omitempty" protobuf:"bytes,1,opt,name=type"` + RollingSync *ApplicationSetRolloutStrategy `json:"rollingSync,omitempty" protobuf:"bytes,2,opt,name=rollingSync"` + // RollingUpdate *ApplicationSetRolloutStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,3,opt,name=rollingUpdate"` +} +type ApplicationSetRolloutStrategy struct { + Steps []ApplicationSetRolloutStep `json:"steps,omitempty" protobuf:"bytes,1,opt,name=steps"` +} + +type ApplicationSetRolloutStep struct { + MatchExpressions []ApplicationMatchExpression `json:"matchExpressions,omitempty" protobuf:"bytes,1,opt,name=matchExpressions"` + MaxUpdate *intstr.IntOrString `json:"maxUpdate,omitempty" protobuf:"bytes,2,opt,name=maxUpdate"` +} + +type ApplicationMatchExpression struct { + Key string `json:"key,omitempty" protobuf:"bytes,1,opt,name=key"` + Operator string `json:"operator,omitempty" protobuf:"bytes,2,opt,name=operator"` + Values []string `json:"values,omitempty" protobuf:"bytes,3,opt,name=values"` +} + +// ApplicationsSyncPolicy representation +// "create-only" means applications are only created. If the generator's result contains update, applications won't be updated +// "create-update" means applications are only created/Updated. If the generator's result contains update, applications will be updated, but not deleted +// "create-delete" means applications are only created/deleted. If the generator's result contains update, applications won't be updated, if it results in deleted applications, the applications will be deleted +// "sync" means create/update/deleted. If the generator's result contains update, applications will be updated, if it results in deleted applications, the applications will be deleted +// If no ApplicationsSyncPolicy is defined, it defaults it to sync +type ApplicationsSyncPolicy string + +// sync / create-only / create-update / create-delete +const ( + ApplicationsSyncPolicyCreateOnly ApplicationsSyncPolicy = "create-only" + ApplicationsSyncPolicyCreateUpdate ApplicationsSyncPolicy = "create-update" + ApplicationsSyncPolicyCreateDelete ApplicationsSyncPolicy = "create-delete" + ApplicationsSyncPolicySync ApplicationsSyncPolicy = "sync" +) + +// ApplicationSetSyncPolicy configures how generated Applications will relate to their +// ApplicationSet. +type ApplicationSetSyncPolicy struct { + // PreserveResourcesOnDeletion will preserve resources on deletion. If PreserveResourcesOnDeletion is set to true, these Applications will not be deleted. + PreserveResourcesOnDeletion bool `json:"preserveResourcesOnDeletion,omitempty" protobuf:"bytes,1,name=syncPolicy"` + // ApplicationsSync represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, sync + ApplicationsSync *ApplicationsSyncPolicy `json:"applicationsSync,omitempty" protobuf:"bytes,2,opt,name=applicationsSync,casttype=ApplicationsSyncPolicy"` +} + +// ApplicationSetIgnoreDifferences configures how the ApplicationSet controller will ignore differences in live +// applications when applying changes from generated applications. +type ApplicationSetIgnoreDifferences []ApplicationSetResourceIgnoreDifferences + +// ApplicationSetResourceIgnoreDifferences configures how the ApplicationSet controller will ignore differences in live +// applications when applying changes from generated applications. +type ApplicationSetResourceIgnoreDifferences struct { + // Name is the name of the application to ignore differences for. If not specified, the rule applies to all applications. + Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` + // JSONPointers is a list of JSON pointers to fields to ignore differences for. + JSONPointers []string `json:"jsonPointers,omitempty" protobuf:"bytes,2,name=jsonPointers"` + // JQPathExpressions is a list of JQ path expressions to fields to ignore differences for. + JQPathExpressions []string `json:"jqPathExpressions,omitempty" protobuf:"bytes,3,name=jqExpressions"` +} + +// ApplicationSetTemplate represents argocd ApplicationSpec +type ApplicationSetTemplate struct { + ApplicationSetTemplateMeta `json:"metadata" protobuf:"bytes,1,name=metadata"` + Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,name=spec"` +} + +// ApplicationSetTemplateMeta represents the Argo CD application fields that may +// be used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta) +type ApplicationSetTemplateMeta struct { + Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,name=namespace"` + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,name=labels"` + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,4,name=annotations"` + Finalizers []string `json:"finalizers,omitempty" protobuf:"bytes,5,name=finalizers"` +} + +// ApplicationSetGenerator represents a generator at the top level of an ApplicationSet. +type ApplicationSetGenerator struct { + List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` + Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` + Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` + SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` + ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` + PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` + Matrix *MatrixGenerator `json:"matrix,omitempty" protobuf:"bytes,7,name=matrix"` + Merge *MergeGenerator `json:"merge,omitempty" protobuf:"bytes,8,name=merge"` + + // Selector allows to post-filter all generator. + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"` + + Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"` +} + +// ApplicationSetNestedGenerator represents a generator nested within a combination-type generator (MatrixGenerator or +// MergeGenerator). +type ApplicationSetNestedGenerator struct { + List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` + Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` + Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` + SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` + ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` + PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` + + // Matrix should have the form of NestedMatrixGenerator + Matrix *apiextensionsv1.JSON `json:"matrix,omitempty" protobuf:"bytes,7,name=matrix"` + + // Merge should have the form of NestedMergeGenerator + Merge *apiextensionsv1.JSON `json:"merge,omitempty" protobuf:"bytes,8,name=merge"` + + // Selector allows to post-filter all generator. + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"` + + Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"` +} + +type ApplicationSetNestedGenerators []ApplicationSetNestedGenerator + +// ApplicationSetTerminalGenerator represents a generator nested within a nested generator (for example, a list within +// a merge within a matrix). A generator at this level may not be a combination-type generator (MatrixGenerator or +// MergeGenerator). ApplicationSet enforces this nesting depth limit because CRDs do not support recursive types. +// https://github.com/kubernetes-sigs/controller-tools/issues/477 +type ApplicationSetTerminalGenerator struct { + List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` + Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` + Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` + SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` + ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` + PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` + Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,7,name=plugin"` + + // Selector allows to post-filter all generator. + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,8,name=selector"` +} + +type ApplicationSetTerminalGenerators []ApplicationSetTerminalGenerator + +// ListGenerator include items info +type ListGenerator struct { + Elements []apiextensionsv1.JSON `json:"elements" protobuf:"bytes,1,name=elements"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` + ElementsYaml string `json:"elementsYaml,omitempty" protobuf:"bytes,3,opt,name=elementsYaml"` +} + +// MatrixGenerator generates the cartesian product of two sets of parameters. The parameters are defined by two nested +// generators. +type MatrixGenerator struct { + Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` +} + +// NestedMatrixGenerator is a MatrixGenerator nested under another combination-type generator (MatrixGenerator or +// MergeGenerator). NestedMatrixGenerator does not have an override template, because template overriding has no meaning +// within the constituent generators of combination-type generators. +// +// NOTE: Nested matrix generator is not included directly in the CRD struct, instead it is included +// as a generic 'apiextensionsv1.JSON' object, and then marshalled into a NestedMatrixGenerator +// when processed. +type NestedMatrixGenerator struct { + Generators ApplicationSetTerminalGenerators `json:"generators" protobuf:"bytes,1,name=generators"` +} + +// MergeGenerator merges the output of two or more generators. Where the values for all specified merge keys are equal +// between two sets of generated parameters, the parameter sets will be merged with the parameters from the latter +// generator taking precedence. Parameter sets with merge keys not present in the base generator's params will be +// ignored. +// For example, if the first generator produced [{a: '1', b: '2'}, {c: '1', d: '1'}] and the second generator produced +// [{'a': 'override'}], the united parameters for merge keys = ['a'] would be +// [{a: 'override', b: '1'}, {c: '1', d: '1'}]. +// +// MergeGenerator supports template overriding. If a MergeGenerator is one of multiple top-level generators, its +// template will be merged with the top-level generator before the parameters are applied. +type MergeGenerator struct { + Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` + MergeKeys []string `json:"mergeKeys" protobuf:"bytes,2,name=mergeKeys"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,3,name=template"` +} + +// NestedMergeGenerator is a MergeGenerator nested under another combination-type generator (MatrixGenerator or +// MergeGenerator). NestedMergeGenerator does not have an override template, because template overriding has no meaning +// within the constituent generators of combination-type generators. +// +// NOTE: Nested merge generator is not included directly in the CRD struct, instead it is included +// as a generic 'apiextensionsv1.JSON' object, and then marshalled into a NestedMergeGenerator +// when processed. +type NestedMergeGenerator struct { + Generators ApplicationSetTerminalGenerators `json:"generators" protobuf:"bytes,1,name=generators"` + MergeKeys []string `json:"mergeKeys" protobuf:"bytes,2,name=mergeKeys"` +} + +// ClusterGenerator defines a generator to match against clusters registered with ArgoCD. +type ClusterGenerator struct { + // Selector defines a label selector to match against all clusters registered with ArgoCD. + // Clusters today are stored as Kubernetes Secrets, thus the Secret labels will be used + // for matching the selector. + Selector metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,name=selector"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` + + // Values contains key/value pairs which are passed directly as parameters to the template + Values map[string]string `json:"values,omitempty" protobuf:"bytes,3,name=values"` +} + +// DuckType defines a generator to match against clusters registered with ArgoCD. +type DuckTypeGenerator struct { + // ConfigMapRef is a ConfigMap with the duck type definitions needed to retrieve the data + // this includes apiVersion(group/version), kind, matchKey and validation settings + // Name is the resource name of the kind, group and version, defined in the ConfigMapRef + // RequeueAfterSeconds is how long before the duckType will be rechecked for a change + ConfigMapRef string `json:"configMapRef" protobuf:"bytes,1,name=configMapRef"` + Name string `json:"name,omitempty" protobuf:"bytes,2,name=name"` + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,3,name=requeueAfterSeconds"` + LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty" protobuf:"bytes,4,name=labelSelector"` + + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,5,name=template"` + // Values contains key/value pairs which are passed directly as parameters to the template + Values map[string]string `json:"values,omitempty" protobuf:"bytes,6,name=values"` +} + +type GitGenerator struct { + RepoURL string `json:"repoURL" protobuf:"bytes,1,name=repoURL"` + Directories []GitDirectoryGeneratorItem `json:"directories,omitempty" protobuf:"bytes,2,name=directories"` + Files []GitFileGeneratorItem `json:"files,omitempty" protobuf:"bytes,3,name=files"` + Revision string `json:"revision" protobuf:"bytes,4,name=revision"` + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,5,name=requeueAfterSeconds"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,6,name=template"` + PathParamPrefix string `json:"pathParamPrefix,omitempty" protobuf:"bytes,7,name=pathParamPrefix"` + + // Values contains key/value pairs which are passed directly as parameters to the template + Values map[string]string `json:"values,omitempty" protobuf:"bytes,8,name=values"` +} + +type GitDirectoryGeneratorItem struct { + Path string `json:"path" protobuf:"bytes,1,name=path"` + Exclude bool `json:"exclude,omitempty" protobuf:"bytes,2,name=exclude"` +} + +type GitFileGeneratorItem struct { + Path string `json:"path" protobuf:"bytes,1,name=path"` +} + +// SCMProviderGenerator defines a generator that scrapes a SCMaaS API to find candidate repos. +type SCMProviderGenerator struct { + // Which provider to use and config for it. + Github *SCMProviderGeneratorGithub `json:"github,omitempty" protobuf:"bytes,1,opt,name=github"` + Gitlab *SCMProviderGeneratorGitlab `json:"gitlab,omitempty" protobuf:"bytes,2,opt,name=gitlab"` + Bitbucket *SCMProviderGeneratorBitbucket `json:"bitbucket,omitempty" protobuf:"bytes,3,opt,name=bitbucket"` + BitbucketServer *SCMProviderGeneratorBitbucketServer `json:"bitbucketServer,omitempty" protobuf:"bytes,4,opt,name=bitbucketServer"` + Gitea *SCMProviderGeneratorGitea `json:"gitea,omitempty" protobuf:"bytes,5,opt,name=gitea"` + AzureDevOps *SCMProviderGeneratorAzureDevOps `json:"azureDevOps,omitempty" protobuf:"bytes,6,opt,name=azureDevOps"` + // Filters for which repos should be considered. + Filters []SCMProviderGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,7,rep,name=filters"` + // Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers + // necessarily support all protocols. + CloneProtocol string `json:"cloneProtocol,omitempty" protobuf:"bytes,8,opt,name=cloneProtocol"` + // Standard parameters. + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,9,opt,name=requeueAfterSeconds"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,10,opt,name=template"` + + // Values contains key/value pairs which are passed directly as parameters to the template + Values map[string]string `json:"values,omitempty" protobuf:"bytes,11,name=values"` + AWSCodeCommit *SCMProviderGeneratorAWSCodeCommit `json:"awsCodeCommit,omitempty" protobuf:"bytes,12,opt,name=awsCodeCommit"` + // If you add a new SCM provider, update CustomApiUrl below. +} + +// SCMProviderGeneratorGitea defines a connection info specific to Gitea. +type SCMProviderGeneratorGitea struct { + // Gitea organization or user to scan. Required. + Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` + // The Gitea URL to talk to. For example https://gitea.mydomain.com/. + API string `json:"api" protobuf:"bytes,2,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` + // Allow self-signed TLS / Certificates; default: false + Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"` +} + +// SCMProviderGeneratorGithub defines connection info specific to GitHub. +type SCMProviderGeneratorGithub struct { + // GitHub org to scan. Required. + Organization string `json:"organization" protobuf:"bytes,1,opt,name=organization"` + // The GitHub API URL to talk to. If blank, use https://api.github.com/. + API string `json:"api,omitempty" protobuf:"bytes,2,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` + // AppSecretName is a reference to a GitHub App repo-creds secret. + AppSecretName string `json:"appSecretName,omitempty" protobuf:"bytes,4,opt,name=appSecretName"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,5,opt,name=allBranches"` +} + +// SCMProviderGeneratorGitlab defines connection info specific to Gitlab. +type SCMProviderGeneratorGitlab struct { + // Gitlab group to scan. Required. You can use either the project id (recommended) or the full namespaced path. + Group string `json:"group" protobuf:"bytes,1,opt,name=group"` + // Recurse through subgroups (true) or scan only the base group (false). Defaults to "false" + IncludeSubgroups bool `json:"includeSubgroups,omitempty" protobuf:"varint,2,opt,name=includeSubgroups"` + // The Gitlab API URL to talk to. + API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,5,opt,name=allBranches"` + // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false + Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` + // When recursing through subgroups, also include shared Projects (true) or scan only the subgroups under same path (false). Defaults to "true" + IncludeSharedProjects *bool `json:"includeSharedProjects,omitempty" protobuf:"varint,7,opt,name=includeSharedProjects"` + // Filter repos list based on Gitlab Topic. + Topic string `json:"topic,omitempty" protobuf:"bytes,8,opt,name=topic"` + // ConfigMap key holding the trusted certificates + CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,9,opt,name=caRef"` +} + +// SCMProviderGeneratorBitbucket defines connection info specific to Bitbucket Cloud (API version 2). +type SCMProviderGeneratorBitbucket struct { + // Bitbucket workspace to scan. Required. + Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` + // Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches. Required + User string `json:"user" protobuf:"bytes,2,opt,name=user"` + // The app password to use for the user. Required. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/ + AppPasswordRef *SecretRef `json:"appPasswordRef" protobuf:"bytes,3,opt,name=appPasswordRef"` + // Scan all branches instead of just the main branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` +} + +// SCMProviderGeneratorBitbucketServer defines connection info specific to Bitbucket Server. +type SCMProviderGeneratorBitbucketServer struct { + // Project to scan. Required. + Project string `json:"project" protobuf:"bytes,1,opt,name=project"` + // The Bitbucket Server REST API URL to talk to. Required. + API string `json:"api" protobuf:"bytes,2,opt,name=api"` + // Credentials for Basic auth + BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,3,opt,name=basicAuth"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` + // Credentials for AccessToken (Bearer auth) + BearerToken *BearerTokenBitbucket `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` + // Allow self-signed TLS / Certificates; default: false + Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` + // ConfigMap key holding the trusted certificates + CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` +} + +// SCMProviderGeneratorAzureDevOps defines connection info specific to Azure DevOps. +type SCMProviderGeneratorAzureDevOps struct { + // Azure Devops organization. Required. E.g. "my-organization". + Organization string `json:"organization" protobuf:"bytes,5,opt,name=organization"` + // The URL to Azure DevOps. If blank, use https://dev.azure.com. + API string `json:"api,omitempty" protobuf:"bytes,6,opt,name=api"` + // Azure Devops team project. Required. E.g. "my-team". + TeamProject string `json:"teamProject" protobuf:"bytes,7,opt,name=teamProject"` + // The Personal Access Token (PAT) to use when connecting. Required. + AccessTokenRef *SecretRef `json:"accessTokenRef" protobuf:"bytes,8,opt,name=accessTokenRef"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,9,opt,name=allBranches"` +} + +type TagFilter struct { + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` + Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` +} + +// SCMProviderGeneratorAWSCodeCommit defines connection info specific to AWS CodeCommit. +type SCMProviderGeneratorAWSCodeCommit struct { + // TagFilters provides the tag filter(s) for repo discovery + TagFilters []*TagFilter `json:"tagFilters,omitempty" protobuf:"bytes,1,opt,name=tagFilters"` + // Role provides the AWS IAM role to assume, for cross-account repo discovery + // if not provided, AppSet controller will use its pod/node identity to discover. + Role string `json:"role,omitempty" protobuf:"bytes,2,opt,name=role"` + // Region provides the AWS region to discover repos. + // if not provided, AppSet controller will infer the current region from environment. + Region string `json:"region,omitempty" protobuf:"bytes,3,opt,name=region"` + // Scan all branches instead of just the default branch. + AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` +} + +// SCMProviderGeneratorFilter is a single repository filter. +// If multiple filter types are set on a single struct, they will be AND'd together. All filters must +// pass for a repo to be included. +type SCMProviderGeneratorFilter struct { + // A regex for repo names. + RepositoryMatch *string `json:"repositoryMatch,omitempty" protobuf:"bytes,1,opt,name=repositoryMatch"` + // An array of paths, all of which must exist. + PathsExist []string `json:"pathsExist,omitempty" protobuf:"bytes,2,rep,name=pathsExist"` + // An array of paths, all of which must not exist. + PathsDoNotExist []string `json:"pathsDoNotExist,omitempty" protobuf:"bytes,3,rep,name=pathsDoNotExist"` + // A regex which must match at least one label. + LabelMatch *string `json:"labelMatch,omitempty" protobuf:"bytes,4,opt,name=labelMatch"` + // A regex which must match the branch name. + BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,5,opt,name=branchMatch"` +} + +// PullRequestGenerator defines a generator that scrapes a PullRequest API to find candidate pull requests. +type PullRequestGenerator struct { + // Which provider to use and config for it. + Github *PullRequestGeneratorGithub `json:"github,omitempty" protobuf:"bytes,1,opt,name=github"` + GitLab *PullRequestGeneratorGitLab `json:"gitlab,omitempty" protobuf:"bytes,2,opt,name=gitlab"` + Gitea *PullRequestGeneratorGitea `json:"gitea,omitempty" protobuf:"bytes,3,opt,name=gitea"` + BitbucketServer *PullRequestGeneratorBitbucketServer `json:"bitbucketServer,omitempty" protobuf:"bytes,4,opt,name=bitbucketServer"` + // Filters for which pull requests should be considered. + Filters []PullRequestGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,5,rep,name=filters"` + // Standard parameters. + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,7,opt,name=template"` + Bitbucket *PullRequestGeneratorBitbucket `json:"bitbucket,omitempty" protobuf:"bytes,8,opt,name=bitbucket"` + // Additional provider to use and config for it. + AzureDevOps *PullRequestGeneratorAzureDevOps `json:"azuredevops,omitempty" protobuf:"bytes,9,opt,name=azuredevops"` + // If you add a new SCM provider, update CustomApiUrl below. +} + +// PullRequestGeneratorGitea defines connection info specific to Gitea. +type PullRequestGeneratorGitea struct { + // Gitea org or user to scan. Required. + Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` + // Gitea repo name to scan. Required. + Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` + // The Gitea API URL to talk to. Required + API string `json:"api" protobuf:"bytes,3,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` + // Allow insecure tls, for self-signed certificates; default: false. + Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"` +} + +// PullRequestGeneratorAzureDevOps defines connection info specific to AzureDevOps. +type PullRequestGeneratorAzureDevOps struct { + // Azure DevOps org to scan. Required. + Organization string `json:"organization" protobuf:"bytes,1,opt,name=organization"` + // Azure DevOps project name to scan. Required. + Project string `json:"project" protobuf:"bytes,2,opt,name=project"` + // Azure DevOps repo name to scan. Required. + Repo string `json:"repo" protobuf:"bytes,3,opt,name=repo"` + // The Azure DevOps API URL to talk to. If blank, use https://dev.azure.com/. + API string `json:"api,omitempty" protobuf:"bytes,4,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,5,opt,name=tokenRef"` + // Labels is used to filter the PRs that you want to target + Labels []string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"` +} + +// PullRequestGenerator defines connection info specific to GitHub. +type PullRequestGeneratorGithub struct { + // GitHub org or user to scan. Required. + Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` + // GitHub repo name to scan. Required. + Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` + // The GitHub API URL to talk to. If blank, use https://api.github.com/. + API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` + // AppSecretName is a reference to a GitHub App repo-creds secret with permission to access pull requests. + AppSecretName string `json:"appSecretName,omitempty" protobuf:"bytes,5,opt,name=appSecretName"` + // Labels is used to filter the PRs that you want to target + Labels []string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"` +} + +// PullRequestGeneratorGitLab defines connection info specific to GitLab. +type PullRequestGeneratorGitLab struct { + // GitLab project to scan. Required. + Project string `json:"project" protobuf:"bytes,1,opt,name=project"` + // The GitLab API URL to talk to. If blank, uses https://gitlab.com/. + API string `json:"api,omitempty" protobuf:"bytes,2,opt,name=api"` + // Authentication token reference. + TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` + // Labels is used to filter the MRs that you want to target + Labels []string `json:"labels,omitempty" protobuf:"bytes,4,rep,name=labels"` + // PullRequestState is an additional MRs filter to get only those with a certain state. Default: "" (all states) + PullRequestState string `json:"pullRequestState,omitempty" protobuf:"bytes,5,rep,name=pullRequestState"` + // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false + Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` + // ConfigMap key holding the trusted certificates + CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` +} + +// PullRequestGeneratorBitbucketServer defines connection info specific to BitbucketServer. +type PullRequestGeneratorBitbucketServer struct { + // Project to scan. Required. + Project string `json:"project" protobuf:"bytes,1,opt,name=project"` + // Repo name to scan. Required. + Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` + // The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest Required. + API string `json:"api" protobuf:"bytes,3,opt,name=api"` + // Credentials for Basic auth + BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"` + // Credentials for AccessToken (Bearer auth) + BearerToken *BearerTokenBitbucket `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` + // Allow self-signed TLS / Certificates; default: false + Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` + // ConfigMap key holding the trusted certificates + CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` +} + +// PullRequestGeneratorBitbucket defines connection info specific to Bitbucket. +type PullRequestGeneratorBitbucket struct { + // Workspace to scan. Required. + Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` + // Repo name to scan. Required. + Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` + // The Bitbucket REST API URL to talk to. If blank, uses https://api.bitbucket.org/2.0. + API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` + // Credentials for Basic auth + BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"` + // Credentials for AppToken (Bearer auth) + BearerToken *BearerTokenBitbucketCloud `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` +} + +// BearerTokenBitbucket defines the Bearer token for BitBucket AppToken auth. +type BearerTokenBitbucket struct { + // Password (or personal access token) reference. + TokenRef *SecretRef `json:"tokenRef" protobuf:"bytes,1,opt,name=tokenRef"` +} + +// BearerTokenBitbucketCloud defines the Bearer token for BitBucket AppToken auth. +type BearerTokenBitbucketCloud struct { + // Password (or personal access token) reference. + TokenRef *SecretRef `json:"tokenRef" protobuf:"bytes,1,opt,name=tokenRef"` +} + +// BasicAuthBitbucketServer defines the username/(password or personal access token) for Basic auth. +type BasicAuthBitbucketServer struct { + // Username for Basic auth + Username string `json:"username" protobuf:"bytes,1,opt,name=username"` + // Password (or personal access token) reference. + PasswordRef *SecretRef `json:"passwordRef" protobuf:"bytes,2,opt,name=passwordRef"` +} + +// PullRequestGeneratorFilter is a single pull request filter. +// If multiple filter types are set on a single struct, they will be AND'd together. All filters must +// pass for a pull request to be included. +type PullRequestGeneratorFilter struct { + BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,1,opt,name=branchMatch"` + TargetBranchMatch *string `json:"targetBranchMatch,omitempty" protobuf:"bytes,2,opt,name=targetBranchMatch"` +} + +type PluginConfigMapRef struct { + // Name of the ConfigMap + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` +} + +type PluginParameters map[string]apiextensionsv1.JSON + +type PluginInput struct { + // Parameters contains the information to pass to the plugin. It is a map. The keys must be strings, and the + // values can be any type. + Parameters PluginParameters `json:"parameters,omitempty" protobuf:"bytes,1,name=parameters"` +} + +// PluginGenerator defines connection info specific to Plugin. +type PluginGenerator struct { + ConfigMapRef PluginConfigMapRef `json:"configMapRef" protobuf:"bytes,1,name=configMapRef"` + Input PluginInput `json:"input,omitempty" protobuf:"bytes,2,name=input"` + // RequeueAfterSeconds determines how long the ApplicationSet controller will wait before reconciling the ApplicationSet again. + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,3,opt,name=requeueAfterSeconds"` + Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,4,name=template"` + + // Values contains key/value pairs which are passed directly as parameters to the template. These values will not be + // sent as parameters to the plugin. + Values map[string]string `json:"values,omitempty" protobuf:"bytes,5,name=values"` +} + +// ApplicationSetStatus defines the observed state of ApplicationSet +type ApplicationSetStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file + Conditions []ApplicationSetCondition `json:"conditions,omitempty" protobuf:"bytes,1,name=conditions"` + ApplicationStatus []ApplicationSetApplicationStatus `json:"applicationStatus,omitempty" protobuf:"bytes,2,name=applicationStatus"` + // Resources is a list of Applications resources managed by this application set. + Resources []ResourceStatus `json:"resources,omitempty" protobuf:"bytes,3,opt,name=resources"` +} + +// ApplicationSetCondition contains details about an applicationset condition, which is usually an error or warning +type ApplicationSetCondition struct { + // Type is an applicationset condition type + Type ApplicationSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type"` + // Message contains human-readable message indicating details about condition + Message string `json:"message" protobuf:"bytes,2,opt,name=message"` + // LastTransitionTime is the time the condition was last observed + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // True/False/Unknown + Status ApplicationSetConditionStatus `json:"status" protobuf:"bytes,4,opt,name=status"` + // Single word camelcase representing the reason for the status eg ErrorOccurred + Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` +} + +// SyncStatusCode is a type which represents possible comparison results +type ApplicationSetConditionStatus string + +// Application Condition Status +const ( + // ApplicationSetConditionStatusTrue indicates that a application has been successfully established + ApplicationSetConditionStatusTrue ApplicationSetConditionStatus = "True" + // ApplicationSetConditionStatusFalse indicates that a application attempt has failed + ApplicationSetConditionStatusFalse ApplicationSetConditionStatus = "False" + // ApplicationSetConditionStatusUnknown indicates that the application condition status could not be reliably determined + ApplicationSetConditionStatusUnknown ApplicationSetConditionStatus = "Unknown" +) + +// ApplicationSetConditionType represents type of application condition. Type name has following convention: +// prefix "Error" means error condition +// prefix "Warning" means warning condition +// prefix "Info" means informational condition +type ApplicationSetConditionType string + +// ErrorOccurred / ParametersGenerated / TemplateRendered / ResourcesUpToDate +const ( + ApplicationSetConditionErrorOccurred ApplicationSetConditionType = "ErrorOccurred" + ApplicationSetConditionParametersGenerated ApplicationSetConditionType = "ParametersGenerated" + ApplicationSetConditionResourcesUpToDate ApplicationSetConditionType = "ResourcesUpToDate" + ApplicationSetConditionRolloutProgressing ApplicationSetConditionType = "RolloutProgressing" +) + +type ApplicationSetReasonType string + +const ( + ApplicationSetReasonErrorOccurred = "ErrorOccurred" + ApplicationSetReasonApplicationSetUpToDate = "ApplicationSetUpToDate" + ApplicationSetReasonParametersGenerated = "ParametersGenerated" + ApplicationSetReasonApplicationGenerated = "ApplicationGeneratedSuccessfully" + ApplicationSetReasonUpdateApplicationError = "UpdateApplicationError" + ApplicationSetReasonApplicationParamsGenerationError = "ApplicationGenerationFromParamsError" + ApplicationSetReasonRenderTemplateParamsError = "RenderTemplateParamsError" + ApplicationSetReasonCreateApplicationError = "CreateApplicationError" + ApplicationSetReasonDeleteApplicationError = "DeleteApplicationError" + ApplicationSetReasonRefreshApplicationError = "RefreshApplicationError" + ApplicationSetReasonApplicationValidationError = "ApplicationValidationError" + ApplicationSetReasonApplicationSetModified = "ApplicationSetModified" + ApplicationSetReasonApplicationSetRolloutComplete = "ApplicationSetRolloutComplete" + ApplicationSetReasonSyncApplicationError = "SyncApplicationError" +) + +// ApplicationSetApplicationStatus contains details about each Application managed by the ApplicationSet +type ApplicationSetApplicationStatus struct { + // Application contains the name of the Application resource + Application string `json:"application" protobuf:"bytes,1,opt,name=application"` + // LastTransitionTime is the time the status was last updated + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,2,opt,name=lastTransitionTime"` + // Message contains human-readable message indicating details about the status + Message string `json:"message" protobuf:"bytes,3,opt,name=message"` + // Status contains the AppSet's perceived status of the managed Application resource: (Waiting, Pending, Progressing, Healthy) + Status string `json:"status" protobuf:"bytes,4,opt,name=status"` + // Step tracks which step this Application should be updated in + Step string `json:"step" protobuf:"bytes,5,opt,name=step"` + // TargetRevision tracks the desired revisions the Application should be synced to. + TargetRevisions []string `json:"targetRevisions" protobuf:"bytes,6,opt,name=targetrevisions"` +} + +// ApplicationSetList contains a list of ApplicationSet +type ApplicationSetList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items []ApplicationSet `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// ApplicationSetTree holds nodes which belongs to the application +// Used to build a tree of an ApplicationSet and its children +type ApplicationSetTree struct { + // Nodes contains list of nodes which are directly managed by the applicationset + Nodes []ResourceNode `json:"nodes,omitempty" protobuf:"bytes,1,rep,name=nodes"` +} diff --git a/argocd/v1alpha1/appproject_types.go b/argocd/v1alpha1/appproject_types.go new file mode 100644 index 0000000000..fc86fc209c --- /dev/null +++ b/argocd/v1alpha1/appproject_types.go @@ -0,0 +1,31 @@ +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// AppProjectList is list of AppProject resources +type AppProjectList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Items []AppProject `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// 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) +type AppProject struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Spec AppProjectSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status AppProjectStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// AppProjectStatus contains status information for AppProject CRs +type AppProjectStatus struct { + // JWTTokensByRole contains a list of JWT tokens issued for a given role + JWTTokensByRole map[string]JWTTokens `json:"jwtTokensByRole,omitempty" protobuf:"bytes,1,opt,name=jwtTokensByRole"` +} diff --git a/argocd/v1alpha1/register.go b/argocd/v1alpha1/register.go new file mode 100644 index 0000000000..be2212bb8d --- /dev/null +++ b/argocd/v1alpha1/register.go @@ -0,0 +1,65 @@ +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +const ( + // API Group + Group string = "argoproj.io" + + // Application constants + ApplicationKind string = "Application" + ApplicationSingular string = "application" + ApplicationPlural string = "applications" + ApplicationShortName string = "app" + ApplicationFullName string = ApplicationPlural + "." + Group + + // AppProject constants + AppProjectKind string = "AppProject" + AppProjectSingular string = "appproject" + AppProjectPlural string = "appprojects" + AppProjectShortName string = "appproject" + AppProjectFullName string = AppProjectPlural + "." + Group + + // ApplicationSet constants + ApplicationSetKind string = "ApplicationSet" + ApplicationSetSingular string = "applicationset" + ApplicationSetShortName string = "appset" + ApplicationSetPlural string = "applicationsets" + ApplicationSetFullName string = ApplicationSetPlural + "." + Group +) + +var ( + // SchemeGroupVersion is group version used to register these objects + SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: "v1alpha1"} + ApplicationSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: ApplicationKind} + AppProjectSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: AppProjectKind} + ApplicationSetSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: ApplicationSetKind} +) + +// Resource takes an unqualified resource and returns a Group-qualified GroupResource. +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// addKnownTypes adds the set of types defined in this package to the supplied scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Application{}, + &ApplicationList{}, + &AppProject{}, + &AppProjectList{}, + &ApplicationSet{}, + &ApplicationSetList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/argocd/v1alpha1/repository_types.go b/argocd/v1alpha1/repository_types.go new file mode 100644 index 0000000000..7e62f63275 --- /dev/null +++ b/argocd/v1alpha1/repository_types.go @@ -0,0 +1,146 @@ +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// RepoCreds holds the definition for repository credentials +type RepoCreds struct { + // URL is the URL to which these credentials match + URL string `json:"url" protobuf:"bytes,1,opt,name=url"` + // Username for authenticating at the repo server + Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"` + // Password for authenticating at the repo server + Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"` + // SSHPrivateKey contains the private key data for authenticating at the repo server using SSH (only Git repos) + SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"` + // TLSClientCertData specifies the TLS client cert data for authenticating at the repo server + TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,5,opt,name=tlsClientCertData"` + // TLSClientCertKey specifies the TLS client cert key for authenticating at the repo server + TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,6,opt,name=tlsClientCertKey"` + // GithubAppPrivateKey specifies the private key PEM data for authentication via GitHub app + GithubAppPrivateKey string `json:"githubAppPrivateKey,omitempty" protobuf:"bytes,7,opt,name=githubAppPrivateKey"` + // GithubAppId specifies the Github App ID of the app used to access the repo for GitHub app authentication + GithubAppId int64 `json:"githubAppID,omitempty" protobuf:"bytes,8,opt,name=githubAppID"` + // GithubAppInstallationId specifies the ID of the installed GitHub App for GitHub app authentication + GithubAppInstallationId int64 `json:"githubAppInstallationID,omitempty" protobuf:"bytes,9,opt,name=githubAppInstallationID"` + // GithubAppEnterpriseBaseURL specifies the GitHub API URL for GitHub app authentication. If empty will default to https://api.github.com + GitHubAppEnterpriseBaseURL string `json:"githubAppEnterpriseBaseUrl,omitempty" protobuf:"bytes,10,opt,name=githubAppEnterpriseBaseUrl"` + // EnableOCI specifies whether helm-oci support should be enabled for this repo + EnableOCI bool `json:"enableOCI,omitempty" protobuf:"bytes,11,opt,name=enableOCI"` + // Type specifies the type of the repoCreds. Can be either "git" or "helm. "git" is assumed if empty or absent. + Type string `json:"type,omitempty" protobuf:"bytes,12,opt,name=type"` + // GCPServiceAccountKey specifies the service account key in JSON format to be used for getting credentials to Google Cloud Source repos + GCPServiceAccountKey string `json:"gcpServiceAccountKey,omitempty" protobuf:"bytes,13,opt,name=gcpServiceAccountKey"` + // Proxy specifies the HTTP/HTTPS proxy used to access repos at the repo server + Proxy string `json:"proxy,omitempty" protobuf:"bytes,19,opt,name=proxy"` + // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections + ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,20,opt,name=forceHttpBasicAuth"` +} + +// Repository is a repository holding application configurations +type Repository struct { + // Repo contains the URL to the remote repository + Repo string `json:"repo" protobuf:"bytes,1,opt,name=repo"` + // Username contains the user name used for authenticating at the remote repository + Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"` + // Password contains the password or PAT used for authenticating at the remote repository + Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"` + // SSHPrivateKey contains the PEM data for authenticating at the repo server. Only used with Git repos. + SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"` + // ConnectionState contains information about the current state of connection to the repository server + ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,5,opt,name=connectionState"` + // InsecureIgnoreHostKey should not be used anymore, Insecure is favoured + // Used only for Git repos + InsecureIgnoreHostKey bool `json:"insecureIgnoreHostKey,omitempty" protobuf:"bytes,6,opt,name=insecureIgnoreHostKey"` + // Insecure specifies whether the connection to the repository ignores any errors when verifying TLS certificates or SSH host keys + Insecure bool `json:"insecure,omitempty" protobuf:"bytes,7,opt,name=insecure"` + // EnableLFS specifies whether git-lfs support should be enabled for this repo. Only valid for Git repositories. + EnableLFS bool `json:"enableLfs,omitempty" protobuf:"bytes,8,opt,name=enableLfs"` + // TLSClientCertData contains a certificate in PEM format for authenticating at the repo server + TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,9,opt,name=tlsClientCertData"` + // TLSClientCertKey contains a private key in PEM format for authenticating at the repo server + TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,10,opt,name=tlsClientCertKey"` + // Type specifies the type of the repo. Can be either "git" or "helm. "git" is assumed if empty or absent. + Type string `json:"type,omitempty" protobuf:"bytes,11,opt,name=type"` + // Name specifies a name to be used for this repo. Only used with Helm repos + Name string `json:"name,omitempty" protobuf:"bytes,12,opt,name=name"` + // Whether credentials were inherited from a credential set + InheritedCreds bool `json:"inheritedCreds,omitempty" protobuf:"bytes,13,opt,name=inheritedCreds"` + // EnableOCI specifies whether helm-oci support should be enabled for this repo + EnableOCI bool `json:"enableOCI,omitempty" protobuf:"bytes,14,opt,name=enableOCI"` + // Github App Private Key PEM data + GithubAppPrivateKey string `json:"githubAppPrivateKey,omitempty" protobuf:"bytes,15,opt,name=githubAppPrivateKey"` + // GithubAppId specifies the ID of the GitHub app used to access the repo + GithubAppId int64 `json:"githubAppID,omitempty" protobuf:"bytes,16,opt,name=githubAppID"` + // GithubAppInstallationId specifies the installation ID of the GitHub App used to access the repo + GithubAppInstallationId int64 `json:"githubAppInstallationID,omitempty" protobuf:"bytes,17,opt,name=githubAppInstallationID"` + // GithubAppEnterpriseBaseURL specifies the base URL of GitHub Enterprise installation. If empty will default to https://api.github.com + GitHubAppEnterpriseBaseURL string `json:"githubAppEnterpriseBaseUrl,omitempty" protobuf:"bytes,18,opt,name=githubAppEnterpriseBaseUrl"` + // Proxy specifies the HTTP/HTTPS proxy used to access the repo + Proxy string `json:"proxy,omitempty" protobuf:"bytes,19,opt,name=proxy"` + // Reference between project and repository that allows it to be automatically added as an item inside SourceRepos project entity + Project string `json:"project,omitempty" protobuf:"bytes,20,opt,name=project"` + // GCPServiceAccountKey specifies the service account key in JSON format to be used for getting credentials to Google Cloud Source repos + GCPServiceAccountKey string `json:"gcpServiceAccountKey,omitempty" protobuf:"bytes,21,opt,name=gcpServiceAccountKey"` + // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections + ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,22,opt,name=forceHttpBasicAuth"` +} + +// Repositories defines a list of Repository configurations +type Repositories []*Repository + +// RepositoryList is a collection of Repositories. +type RepositoryList struct { + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items Repositories `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// RepositoryList is a collection of Repositories. +type RepoCredsList struct { + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items []RepoCreds `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// A RepositoryCertificate is either SSH known hosts entry or TLS certificate +type RepositoryCertificate struct { + // ServerName specifies the DNS name of the server this certificate is intended for + ServerName string `json:"serverName" protobuf:"bytes,1,opt,name=serverName"` + // CertType specifies the type of the certificate - currently one of "https" or "ssh" + CertType string `json:"certType" protobuf:"bytes,2,opt,name=certType"` + // CertSubType specifies the sub type of the cert, i.e. "ssh-rsa" + CertSubType string `json:"certSubType" protobuf:"bytes,3,opt,name=certSubType"` + // CertData contains the actual certificate data, dependent on the certificate type + CertData []byte `json:"certData" protobuf:"bytes,4,opt,name=certData"` + // CertInfo will hold additional certificate info, depdendent on the certificate type (e.g. SSH fingerprint, X509 CommonName) + CertInfo string `json:"certInfo" protobuf:"bytes,5,opt,name=certInfo"` +} + +// RepositoryCertificateList is a collection of RepositoryCertificates +type RepositoryCertificateList struct { + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // List of certificates to be processed + Items []RepositoryCertificate `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// GnuPGPublicKey is a representation of a GnuPG public key +type GnuPGPublicKey struct { + // KeyID specifies the key ID, in hexadecimal string format + KeyID string `json:"keyID" protobuf:"bytes,1,opt,name=keyID"` + // Fingerprint is the fingerprint of the key + Fingerprint string `json:"fingerprint,omitempty" protobuf:"bytes,2,opt,name=fingerprint"` + // Owner holds the owner identification, e.g. a name and e-mail address + Owner string `json:"owner,omitempty" protobuf:"bytes,3,opt,name=owner"` + // Trust holds the level of trust assigned to this key + Trust string `json:"trust,omitempty" protobuf:"bytes,4,opt,name=trust"` + // SubType holds the key's sub type (e.g. rsa4096) + SubType string `json:"subType,omitempty" protobuf:"bytes,5,opt,name=subType"` + // KeyData holds the raw key data, in base64 encoded format + KeyData string `json:"keyData,omitempty" protobuf:"bytes,6,opt,name=keyData"` +} + +// GnuPGPublicKeyList is a collection of GnuPGPublicKey objects +type GnuPGPublicKeyList struct { + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items []GnuPGPublicKey `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/argocd/v1alpha1/types.go b/argocd/v1alpha1/types.go new file mode 100644 index 0000000000..fd00b02d58 --- /dev/null +++ b/argocd/v1alpha1/types.go @@ -0,0 +1,1215 @@ +package v1alpha1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/watch" +) + +// Application is a definition of Application resource. +type Application struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status ApplicationStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` + Operation *Operation `json:"operation,omitempty" protobuf:"bytes,4,opt,name=operation"` +} + +// ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision. +type ApplicationSpec struct { + // Source is a reference to the location of the application's manifests or chart + Source *ApplicationSource `json:"source,omitempty" protobuf:"bytes,1,opt,name=source"` + // Destination is a reference to the target Kubernetes server and namespace + Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,name=destination"` + // Project is a reference to the project this application belongs to. + // The empty string means that application belongs to the 'default' project. + Project string `json:"project" protobuf:"bytes,3,name=project"` + // SyncPolicy controls when and how a sync will be performed + SyncPolicy *SyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"` + // IgnoreDifferences is a list of resources and their fields which should be ignored during comparison + IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,5,name=ignoreDifferences"` + // Info contains a list of information (URLs, email addresses, and plain text) that relates to the application + Info []Info `json:"info,omitempty" protobuf:"bytes,6,name=info"` + // 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. + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty" protobuf:"bytes,7,name=revisionHistoryLimit"` + + // Sources is a reference to the location of the application's manifests or chart + Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"` +} + +type IgnoreDifferences []ResourceIgnoreDifferences + +type TrackingMethod string + +// ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state. +type ResourceIgnoreDifferences struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` + JSONPointers []string `json:"jsonPointers,omitempty" protobuf:"bytes,5,opt,name=jsonPointers"` + JQPathExpressions []string `json:"jqPathExpressions,omitempty" protobuf:"bytes,6,opt,name=jqPathExpressions"` + // ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the + // desired state defined in the SCM and won't be displayed in diffs + ManagedFieldsManagers []string `json:"managedFieldsManagers,omitempty" protobuf:"bytes,7,opt,name=managedFieldsManagers"` +} + +// EnvEntry represents an entry in the application's environment +type EnvEntry struct { + // Name is the name of the variable, usually expressed in uppercase + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + // Value is the value of the variable + Value string `json:"value" protobuf:"bytes,2,opt,name=value"` +} + +// Env is a list of environment variable entries +type Env []*EnvEntry + +// ApplicationSource contains all required information about the source of an application +type ApplicationSource struct { + // RepoURL is the URL to the repository (Git or Helm) that contains the application manifests + RepoURL string `json:"repoURL" protobuf:"bytes,1,opt,name=repoURL"` + // Path is a directory path within the Git repository, and is only valid for applications sourced from Git. + Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"` + // 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. + TargetRevision string `json:"targetRevision,omitempty" protobuf:"bytes,4,opt,name=targetRevision"` + // Helm holds helm specific options + Helm *ApplicationSourceHelm `json:"helm,omitempty" protobuf:"bytes,7,opt,name=helm"` + // Kustomize holds kustomize specific options + Kustomize *ApplicationSourceKustomize `json:"kustomize,omitempty" protobuf:"bytes,8,opt,name=kustomize"` + // Directory holds path/directory specific options + Directory *ApplicationSourceDirectory `json:"directory,omitempty" protobuf:"bytes,10,opt,name=directory"` + // Plugin holds config management plugin specific options + Plugin *ApplicationSourcePlugin `json:"plugin,omitempty" protobuf:"bytes,11,opt,name=plugin"` + // Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo. + Chart string `json:"chart,omitempty" protobuf:"bytes,12,opt,name=chart"` + // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. + Ref string `json:"ref,omitempty" protobuf:"bytes,13,opt,name=ref"` +} + +// ApplicationSources contains list of required information about the sources of an application +type ApplicationSources []ApplicationSource + +// ApplicationSourceType specifies the type of the application's source +type ApplicationSourceType string + +const ( + ApplicationSourceTypeHelm ApplicationSourceType = "Helm" + ApplicationSourceTypeKustomize ApplicationSourceType = "Kustomize" + ApplicationSourceTypeDirectory ApplicationSourceType = "Directory" + ApplicationSourceTypePlugin ApplicationSourceType = "Plugin" +) + +// RefreshType specifies how to refresh the sources of a given application +type RefreshType string + +const ( + RefreshTypeNormal RefreshType = "normal" + RefreshTypeHard RefreshType = "hard" +) + +type RefTarget struct { + Repo Repository `protobuf:"bytes,1,opt,name=repo"` + TargetRevision string `protobuf:"bytes,2,opt,name=targetRevision"` + Chart string `protobuf:"bytes,3,opt,name=chart"` +} + +type RefTargetRevisionMapping map[string]*RefTarget + +// ApplicationSourceHelm holds helm specific options +type ApplicationSourceHelm struct { + // ValuesFiles is a list of Helm value files to use when generating a template + ValueFiles []string `json:"valueFiles,omitempty" protobuf:"bytes,1,opt,name=valueFiles"` + // Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation + Parameters []HelmParameter `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` + // ReleaseName is the Helm release name to use. If omitted it will use the application name + ReleaseName string `json:"releaseName,omitempty" protobuf:"bytes,3,opt,name=releaseName"` + // Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other. + Values string `json:"values,omitempty" patchStrategy:"replace" protobuf:"bytes,4,opt,name=values"` + // FileParameters are file parameters to the helm template + FileParameters []HelmFileParameter `json:"fileParameters,omitempty" protobuf:"bytes,5,opt,name=fileParameters"` + // Version is the Helm version to use for templating ("3") + Version string `json:"version,omitempty" protobuf:"bytes,6,opt,name=version"` + // PassCredentials pass credentials to all domains (Helm's --pass-credentials) + PassCredentials bool `json:"passCredentials,omitempty" protobuf:"bytes,7,opt,name=passCredentials"` + // IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values + IgnoreMissingValueFiles bool `json:"ignoreMissingValueFiles,omitempty" protobuf:"bytes,8,opt,name=ignoreMissingValueFiles"` + // SkipCrds skips custom resource definition installation step (Helm's --skip-crds) + SkipCrds bool `json:"skipCrds,omitempty" protobuf:"bytes,9,opt,name=skipCrds"` + // ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values. + ValuesObject *runtime.RawExtension `json:"valuesObject,omitempty" protobuf:"bytes,10,opt,name=valuesObject"` + // Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace. + Namespace string `json:"namespace,omitempty" protobuf:"bytes,11,opt,name=namespace"` + // 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. + KubeVersion string `json:"kubeVersion,omitempty" protobuf:"bytes,12,opt,name=kubeVersion"` + // 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. + APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,13,opt,name=apiVersions"` +} + +// HelmParameter is a parameter that's passed to helm template during manifest generation +type HelmParameter struct { + // Name is the name of the Helm parameter + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // Value is the value for the Helm parameter + Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` + // ForceString determines whether to tell Helm to interpret booleans and numbers as strings + ForceString bool `json:"forceString,omitempty" protobuf:"bytes,3,opt,name=forceString"` +} + +// HelmFileParameter is a file parameter that's passed to helm template during manifest generation +type HelmFileParameter struct { + // Name is the name of the Helm parameter + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // Path is the path to the file containing the values for the Helm parameter + Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"` +} + +// KustomizeImage represents a Kustomize image definition in the format [old_image_name=]: +type KustomizeImage string + +// KustomizeImages is a list of Kustomize images +type KustomizeImages []KustomizeImage + +// ApplicationSourceKustomize holds options specific to an Application source specific to Kustomize +type ApplicationSourceKustomize struct { + // NamePrefix is a prefix appended to resources for Kustomize apps + NamePrefix string `json:"namePrefix,omitempty" protobuf:"bytes,1,opt,name=namePrefix"` + // NameSuffix is a suffix appended to resources for Kustomize apps + NameSuffix string `json:"nameSuffix,omitempty" protobuf:"bytes,2,opt,name=nameSuffix"` + // Images is a list of Kustomize image override specifications + Images KustomizeImages `json:"images,omitempty" protobuf:"bytes,3,opt,name=images"` + // CommonLabels is a list of additional labels to add to rendered manifests + CommonLabels map[string]string `json:"commonLabels,omitempty" protobuf:"bytes,4,opt,name=commonLabels"` + // Version controls which version of Kustomize to use for rendering manifests + Version string `json:"version,omitempty" protobuf:"bytes,5,opt,name=version"` + // CommonAnnotations is a list of additional annotations to add to rendered manifests + CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" protobuf:"bytes,6,opt,name=commonAnnotations"` + // ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps + ForceCommonLabels bool `json:"forceCommonLabels,omitempty" protobuf:"bytes,7,opt,name=forceCommonLabels"` + // ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps + ForceCommonAnnotations bool `json:"forceCommonAnnotations,omitempty" protobuf:"bytes,8,opt,name=forceCommonAnnotations"` + // Namespace sets the namespace that Kustomize adds to all resources + Namespace string `json:"namespace,omitempty" protobuf:"bytes,9,opt,name=namespace"` + // CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values + CommonAnnotationsEnvsubst bool `json:"commonAnnotationsEnvsubst,omitempty" protobuf:"bytes,10,opt,name=commonAnnotationsEnvsubst"` + // Replicas is a list of Kustomize Replicas override specifications + Replicas KustomizeReplicas `json:"replicas,omitempty" protobuf:"bytes,11,opt,name=replicas"` + // Patches is a list of Kustomize patches + Patches KustomizePatches `json:"patches,omitempty" protobuf:"bytes,12,opt,name=patches"` + // Components specifies a list of kustomize components to add to the kustomization before building + Components []string `json:"components,omitempty" protobuf:"bytes,13,rep,name=components"` + // LabelWithoutSelector specifies whether to apply common labels to resource selectors or not + LabelWithoutSelector bool `json:"labelWithoutSelector,omitempty" protobuf:"bytes,14,opt,name=labelWithoutSelector"` + // 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. + KubeVersion string `json:"kubeVersion,omitempty" protobuf:"bytes,15,opt,name=kubeVersion"` + // 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. + APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,16,opt,name=apiVersions"` +} + +type KustomizeReplica struct { + // Name of Deployment or StatefulSet + Name string `json:"name" protobuf:"bytes,1,name=name"` + // Number of replicas + Count intstr.IntOrString `json:"count" protobuf:"bytes,2,name=count"` +} + +type KustomizeReplicas []KustomizeReplica + +type KustomizePatches []KustomizePatch + +type KustomizePatch struct { + Path string `json:"path,omitempty" yaml:"path,omitempty" protobuf:"bytes,1,opt,name=path"` + Patch string `json:"patch,omitempty" yaml:"patch,omitempty" protobuf:"bytes,2,opt,name=patch"` + Target *KustomizeSelector `json:"target,omitempty" yaml:"target,omitempty" protobuf:"bytes,3,opt,name=target"` + Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty" protobuf:"bytes,4,opt,name=options"` +} + +type KustomizeSelector struct { + KustomizeResId `json:",inline,omitempty" yaml:",inline,omitempty" protobuf:"bytes,1,opt,name=resId"` + AnnotationSelector string `json:"annotationSelector,omitempty" yaml:"annotationSelector,omitempty" protobuf:"bytes,2,opt,name=annotationSelector"` + LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty" protobuf:"bytes,3,opt,name=labelSelector"` +} + +type KustomizeResId struct { + KustomizeGvk `json:",inline,omitempty" yaml:",inline,omitempty" protobuf:"bytes,1,opt,name=gvk"` + Name string `json:"name,omitempty" yaml:"name,omitempty" protobuf:"bytes,2,opt,name=name"` + Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` +} + +type KustomizeGvk struct { + Group string `json:"group,omitempty" yaml:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Version string `json:"version,omitempty" yaml:"version,omitempty" protobuf:"bytes,2,opt,name=version"` + Kind string `json:"kind,omitempty" yaml:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` +} + +// JsonnetVar represents a variable to be passed to jsonnet during manifest generation +type JsonnetVar struct { + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + Value string `json:"value" protobuf:"bytes,2,opt,name=value"` + Code bool `json:"code,omitempty" protobuf:"bytes,3,opt,name=code"` +} + +// ApplicationSourceJsonnet holds options specific to applications of type Jsonnet +type ApplicationSourceJsonnet struct { + // ExtVars is a list of Jsonnet External Variables + ExtVars []JsonnetVar `json:"extVars,omitempty" protobuf:"bytes,1,opt,name=extVars"` + // TLAS is a list of Jsonnet Top-level Arguments + TLAs []JsonnetVar `json:"tlas,omitempty" protobuf:"bytes,2,opt,name=tlas"` + // Additional library search dirs + Libs []string `json:"libs,omitempty" protobuf:"bytes,3,opt,name=libs"` +} + +// ApplicationSourceDirectory holds options for applications of type plain YAML or Jsonnet +type ApplicationSourceDirectory struct { + // Recurse specifies whether to scan a directory recursively for manifests + Recurse bool `json:"recurse,omitempty" protobuf:"bytes,1,opt,name=recurse"` + // Jsonnet holds options specific to Jsonnet + Jsonnet ApplicationSourceJsonnet `json:"jsonnet,omitempty" protobuf:"bytes,2,opt,name=jsonnet"` + // Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation + Exclude string `json:"exclude,omitempty" protobuf:"bytes,3,opt,name=exclude"` + // Include contains a glob pattern to match paths against that should be explicitly included during manifest generation + Include string `json:"include,omitempty" protobuf:"bytes,4,opt,name=include"` +} + +type OptionalMap struct { + // Map is the value of a map type parameter. + // +optional + Map map[string]string `json:"map" protobuf:"bytes,1,rep,name=map"` + // We need the explicit +optional so that kube-builder generates the CRD without marking this as required. +} + +type OptionalArray struct { + // Array is the value of an array type parameter. + // +optional + Array []string `json:"array" protobuf:"bytes,1,rep,name=array"` + // We need the explicit +optional so that kube-builder generates the CRD without marking this as required. +} + +type ApplicationSourcePluginParameter struct { + // We use pointers to structs because go-to-protobuf represents pointers to arrays/maps as repeated fields. + // These repeated fields have no way to represent "present but empty." So we would have no way to distinguish + // {name: parameters, array: []} from {name: parameter} + // By wrapping the array/map in a struct, we can use a pointer to the struct to represent "present but empty." + + // Name is the name identifying a parameter. + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // String_ is the value of a string type parameter. + String_ *string `json:"string,omitempty" protobuf:"bytes,5,opt,name=string"` + // Map is the value of a map type parameter. + *OptionalMap `json:",omitempty" protobuf:"bytes,3,rep,name=map"` + // Array is the value of an array type parameter. + *OptionalArray `json:",omitempty" protobuf:"bytes,4,rep,name=array"` +} + +type ApplicationSourcePluginParameters []ApplicationSourcePluginParameter + +// ApplicationSourcePlugin holds options specific to config management plugins +type ApplicationSourcePlugin struct { + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + Env `json:"env,omitempty" protobuf:"bytes,2,opt,name=env"` + Parameters ApplicationSourcePluginParameters `json:"parameters,omitempty" protobuf:"bytes,3,opt,name=parameters"` +} + +// ApplicationDestination holds information about the application's destination +type ApplicationDestination struct { + // Server specifies the URL of the target cluster's Kubernetes control plane API. This must be set if Name is not set. + Server string `json:"server,omitempty" protobuf:"bytes,1,opt,name=server"` + // 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 + Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"` + // Name is an alternate way of specifying the target cluster by its symbolic name. This must be set if Server is not set. + Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` + + // nolint:govet + isServerInferred bool `json:"-"` +} + +type ResourceHealthLocation string + +var ( + ResourceHealthLocationInline ResourceHealthLocation = "" + ResourceHealthLocationAppTree ResourceHealthLocation = "appTree" +) + +// ApplicationStatus contains status information for the application +type ApplicationStatus struct { + // Resources is a list of Kubernetes resources managed by this application + Resources []ResourceStatus `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"` + // Sync contains information about the application's current sync status + Sync SyncStatus `json:"sync,omitempty" protobuf:"bytes,2,opt,name=sync"` + // Health contains information about the application's current health status + Health HealthStatus `json:"health,omitempty" protobuf:"bytes,3,opt,name=health"` + // History contains information about the application's sync history + History RevisionHistories `json:"history,omitempty" protobuf:"bytes,4,opt,name=history"` + // Conditions is a list of currently observed application conditions + Conditions []ApplicationCondition `json:"conditions,omitempty" protobuf:"bytes,5,opt,name=conditions"` + // ReconciledAt indicates when the application state was reconciled using the latest git version + ReconciledAt *metav1.Time `json:"reconciledAt,omitempty" protobuf:"bytes,6,opt,name=reconciledAt"` + // OperationState contains information about any ongoing operations, such as a sync + OperationState *OperationState `json:"operationState,omitempty" protobuf:"bytes,7,opt,name=operationState"` + // ObservedAt indicates when the application state was updated without querying latest git state + // Deprecated: controller no longer updates ObservedAt field + ObservedAt *metav1.Time `json:"observedAt,omitempty" protobuf:"bytes,8,opt,name=observedAt"` + // SourceType specifies the type of this application + SourceType ApplicationSourceType `json:"sourceType,omitempty" protobuf:"bytes,9,opt,name=sourceType"` + // Summary contains a list of URLs and container images used by this application + Summary ApplicationSummary `json:"summary,omitempty" protobuf:"bytes,10,opt,name=summary"` + // ResourceHealthSource indicates where the resource health status is stored: inline if not set or appTree + ResourceHealthSource ResourceHealthLocation `json:"resourceHealthSource,omitempty" protobuf:"bytes,11,opt,name=resourceHealthSource"` + // SourceTypes specifies the type of the sources included in the application + SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"` + // ControllerNamespace indicates the namespace in which the application controller is located + ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"` +} + +// JWTTokens represents a list of JWT tokens +type JWTTokens struct { + Items []JWTToken `json:"items,omitempty" protobuf:"bytes,1,opt,name=items"` +} + +// OperationInitiator contains information about the initiator of an operation +type OperationInitiator struct { + // Username contains the name of a user who started operation + Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"` + // Automated is set to true if operation was initiated automatically by the application controller. + Automated bool `json:"automated,omitempty" protobuf:"bytes,2,opt,name=automated"` +} + +// Operation contains information about a requested or running operation +type Operation struct { + // Sync contains parameters for the operation + Sync *SyncOperation `json:"sync,omitempty" protobuf:"bytes,1,opt,name=sync"` + // InitiatedBy contains information about who initiated the operations + InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,2,opt,name=initiatedBy"` + // Info is a list of informational items for this operation + Info []*Info `json:"info,omitempty" protobuf:"bytes,3,name=info"` + // Retry controls the strategy to apply if a sync fails + Retry RetryStrategy `json:"retry,omitempty" protobuf:"bytes,4,opt,name=retry"` +} + +// SyncOperationResource contains resources to sync. +type SyncOperationResource struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` + // nolint:govet + Exclude bool `json:"-"` +} + +// RevisionHistories is a array of history, oldest first and newest last +type RevisionHistories []RevisionHistory + +// SyncOperation contains details about a sync operation. +type SyncOperation struct { + // 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. + Revision string `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"` + // Prune specifies to delete resources from the cluster that are no longer tracked in git + Prune bool `json:"prune,omitempty" protobuf:"bytes,2,opt,name=prune"` + // DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync + DryRun bool `json:"dryRun,omitempty" protobuf:"bytes,3,opt,name=dryRun"` + // SyncStrategy describes how to perform the sync + SyncStrategy *SyncStrategy `json:"syncStrategy,omitempty" protobuf:"bytes,4,opt,name=syncStrategy"` + // Resources describes which resources shall be part of the sync + Resources []SyncOperationResource `json:"resources,omitempty" protobuf:"bytes,6,opt,name=resources"` + // Source overrides the source definition set in the application. + // This is typically set in a Rollback operation and is nil during a Sync operation + Source *ApplicationSource `json:"source,omitempty" protobuf:"bytes,7,opt,name=source"` + // Manifests is an optional field that overrides sync source with a local directory for development + Manifests []string `json:"manifests,omitempty" protobuf:"bytes,8,opt,name=manifests"` + // SyncOptions provide per-sync sync-options, e.g. Validate=false + SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,9,opt,name=syncOptions"` + // Sources overrides the source definition set in the application. + // This is typically set in a Rollback operation and is nil during a Sync operation + Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,10,opt,name=sources"` + // 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. + Revisions []string `json:"revisions,omitempty" protobuf:"bytes,11,opt,name=revisions"` +} + +// OperationState contains information about state of a running operation +type OperationState struct { + // Operation is the original requested operation + Operation Operation `json:"operation" protobuf:"bytes,1,opt,name=operation"` + // Phase is the current phase of the operation + Phase string `json:"phase" protobuf:"bytes,2,opt,name=phase"` + // Message holds any pertinent messages when attempting to perform operation (typically errors). + Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` + // SyncResult is the result of a Sync operation + SyncResult *SyncOperationResult `json:"syncResult,omitempty" protobuf:"bytes,4,opt,name=syncResult"` + // StartedAt contains time of operation start + StartedAt metav1.Time `json:"startedAt" protobuf:"bytes,6,opt,name=startedAt"` + // FinishedAt contains time of operation completion + FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,7,opt,name=finishedAt"` + // RetryCount contains time of operation retries + RetryCount int64 `json:"retryCount,omitempty" protobuf:"bytes,8,opt,name=retryCount"` +} + +type Info struct { + Name string `json:"name" protobuf:"bytes,1,name=name"` + Value string `json:"value" protobuf:"bytes,2,name=value"` +} + +type SyncOptions []string + +type ManagedNamespaceMetadata struct { + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,1,opt,name=labels"` + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,opt,name=annotations"` +} + +// SyncPolicy controls when a sync will be performed in response to updates in git +type SyncPolicy struct { + // Automated will keep an application synced to the target revision + Automated *SyncPolicyAutomated `json:"automated,omitempty" protobuf:"bytes,1,opt,name=automated"` + // Options allow you to specify whole app sync-options + SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,2,opt,name=syncOptions"` + // Retry controls failed sync retry behavior + Retry *RetryStrategy `json:"retry,omitempty" protobuf:"bytes,3,opt,name=retry"` + // ManagedNamespaceMetadata controls metadata in the given namespace (if CreateNamespace=true) + ManagedNamespaceMetadata *ManagedNamespaceMetadata `json:"managedNamespaceMetadata,omitempty" protobuf:"bytes,4,opt,name=managedNamespaceMetadata"` + // If you add a field here, be sure to update IsZero. +} + +// RetryStrategy contains information about the strategy to apply when a sync failed +type RetryStrategy struct { + // Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed. + Limit int64 `json:"limit,omitempty" protobuf:"bytes,1,opt,name=limit"` + // Backoff controls how to backoff on subsequent retries of failed syncs + Backoff *Backoff `json:"backoff,omitempty" protobuf:"bytes,2,opt,name=backoff,casttype=Backoff"` +} + +// Backoff is the backoff strategy to use on subsequent retries for failing syncs +type Backoff struct { + // Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h") + Duration string `json:"duration,omitempty" protobuf:"bytes,1,opt,name=duration"` + // Factor is a factor to multiply the base duration after each failed retry + Factor *int64 `json:"factor,omitempty" protobuf:"bytes,2,name=factor"` + // MaxDuration is the maximum amount of time allowed for the backoff strategy + MaxDuration string `json:"maxDuration,omitempty" protobuf:"bytes,3,opt,name=maxDuration"` +} + +// SyncPolicyAutomated controls the behavior of an automated sync +type SyncPolicyAutomated struct { + // Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false) + Prune bool `json:"prune,omitempty" protobuf:"bytes,1,opt,name=prune"` + // SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false) + SelfHeal bool `json:"selfHeal,omitempty" protobuf:"bytes,2,opt,name=selfHeal"` + // AllowEmpty allows apps have zero live resources (default: false) + AllowEmpty bool `json:"allowEmpty,omitempty" protobuf:"bytes,3,opt,name=allowEmpty"` +} + +// SyncStrategy controls the manner in which a sync is performed +type SyncStrategy struct { + // Apply will perform a `kubectl apply` to perform the sync. + Apply *SyncStrategyApply `json:"apply,omitempty" protobuf:"bytes,1,opt,name=apply"` + // Hook will submit any referenced resources to perform the sync. This is the default strategy + Hook *SyncStrategyHook `json:"hook,omitempty" protobuf:"bytes,2,opt,name=hook"` +} + +// SyncStrategyApply uses `kubectl apply` to perform the apply +type SyncStrategyApply struct { + // 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. + Force bool `json:"force,omitempty" protobuf:"bytes,1,opt,name=force"` +} + +// SyncStrategyHook will perform a sync using hooks annotations. +// If no hook annotation is specified falls back to `kubectl apply`. +type SyncStrategyHook struct { + // Embed SyncStrategyApply type to inherit any `apply` options + // +optional + SyncStrategyApply `json:",inline" protobuf:"bytes,1,opt,name=syncStrategyApply"` +} + +// RevisionMetadata contains metadata for a specific revision in a Git repository +type RevisionMetadata struct { + // who authored this revision, + // typically their name and email, e.g. "John Doe ", + // but might not match this example + Author string `json:"author,omitempty" protobuf:"bytes,1,opt,name=author"` + // Date specifies when the revision was authored + Date metav1.Time `json:"date" protobuf:"bytes,2,opt,name=date"` + // Tags specifies any tags currently attached to the revision + // Floating tags can move from one revision to another + Tags []string `json:"tags,omitempty" protobuf:"bytes,3,opt,name=tags"` + // Message contains the message associated with the revision, most likely the commit message. + Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` + // SignatureInfo contains a hint on the signer if the revision was signed with GPG, and signature verification is enabled. + SignatureInfo string `json:"signatureInfo,omitempty" protobuf:"bytes,5,opt,name=signatureInfo"` +} + +// ChartDetails contains helm chart metadata for a specific version +type ChartDetails struct { + Description string `json:"description,omitempty" protobuf:"bytes,1,opt,name=description"` + // The URL of this projects home page, e.g. "http://example.com" + Home string `json:"home,omitempty" protobuf:"bytes,2,opt,name=home"` + // List of maintainer details, name and email, e.g. ["John Doe "] + Maintainers []string `json:"maintainers,omitempty" protobuf:"bytes,3,opt,name=maintainers"` +} + +// SyncOperationResult represent result of sync operation +type SyncOperationResult struct { + // Resources contains a list of sync result items for each individual resource in a sync operation + Resources ResourceResults `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"` + // Revision holds the revision this sync operation was performed to + Revision string `json:"revision" protobuf:"bytes,2,opt,name=revision"` + // Source records the application source information of the sync, used for comparing auto-sync + Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,3,opt,name=source"` + // Source records the application source information of the sync, used for comparing auto-sync + Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,4,opt,name=sources"` + // Revisions holds the revision this sync operation was performed for respective indexed source in sources field + Revisions []string `json:"revisions,omitempty" protobuf:"bytes,5,opt,name=revisions"` + // ManagedNamespaceMetadata contains the current sync state of managed namespace metadata + ManagedNamespaceMetadata *ManagedNamespaceMetadata `json:"managedNamespaceMetadata,omitempty" protobuf:"bytes,6,opt,name=managedNamespaceMetadata"` +} + +// ResourceResult holds the operation result details of a specific resource +type ResourceResult struct { + // Group specifies the API group of the resource + Group string `json:"group" protobuf:"bytes,1,opt,name=group"` + // Version specifies the API version of the resource + Version string `json:"version" protobuf:"bytes,2,opt,name=version"` + // Kind specifies the API kind of the resource + Kind string `json:"kind" protobuf:"bytes,3,opt,name=kind"` + // Namespace specifies the target namespace of the resource + Namespace string `json:"namespace" protobuf:"bytes,4,opt,name=namespace"` + // Name specifies the name of the resource + Name string `json:"name" protobuf:"bytes,5,opt,name=name"` + // Status holds the final result of the sync. Will be empty if the resources is yet to be applied/pruned and is always zero-value for hooks + Status string `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"` + // Message contains an informational or error message for the last sync OR operation + Message string `json:"message,omitempty" protobuf:"bytes,7,opt,name=message"` + // HookType specifies the type of the hook. Empty for non-hook resources + HookType string `json:"hookType,omitempty" protobuf:"bytes,8,opt,name=hookType"` + // HookPhase contains the state of any operation associated with this resource OR hook + // This can also contain values for non-hook resources. + HookPhase string `json:"hookPhase,omitempty" protobuf:"bytes,9,opt,name=hookPhase"` + // SyncPhase indicates the particular phase of the sync that this result was acquired in + SyncPhase string `json:"syncPhase,omitempty" protobuf:"bytes,10,opt,name=syncPhase"` +} + +// ResourceResults defines a list of resource results for a given operation +type ResourceResults []*ResourceResult + +// RevisionHistory contains history information about a previous sync +type RevisionHistory struct { + // Revision holds the revision the sync was performed against + Revision string `json:"revision,omitempty" protobuf:"bytes,2,opt,name=revision"` + // DeployedAt holds the time the sync operation completed + DeployedAt metav1.Time `json:"deployedAt" protobuf:"bytes,4,opt,name=deployedAt"` + // ID is an auto incrementing identifier of the RevisionHistory + ID int64 `json:"id" protobuf:"bytes,5,opt,name=id"` + // Source is a reference to the application source used for the sync operation + Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,6,opt,name=source"` + // DeployStartedAt holds the time the sync operation started + DeployStartedAt *metav1.Time `json:"deployStartedAt,omitempty" protobuf:"bytes,7,opt,name=deployStartedAt"` + // Sources is a reference to the application sources used for the sync operation + Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"` + // Revisions holds the revision of each source in sources field the sync was performed against + Revisions []string `json:"revisions,omitempty" protobuf:"bytes,9,opt,name=revisions"` + // InitiatedBy contains information about who initiated the operations + InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,10,opt,name=initiatedBy"` +} + +// ApplicationWatchEvent contains information about application change. +type ApplicationWatchEvent struct { + Type watch.EventType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=k8s.io/apimachinery/pkg/watch.EventType"` + + // Application is: + // * If Type is Added or Modified: the new state of the object. + // * If Type is Deleted: the state of the object immediately before deletion. + // * If Type is Error: *api.Status is recommended; other types may make sense + // depending on context. + Application Application `json:"application" protobuf:"bytes,2,opt,name=application"` +} + +// ApplicationList is list of Application resources +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type ApplicationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Items []Application `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// ComponentParameter contains information about component parameter value +type ComponentParameter struct { + Component string `json:"component,omitempty" protobuf:"bytes,1,opt,name=component"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + Value string `json:"value" protobuf:"bytes,3,opt,name=value"` +} + +// SyncStatusCode is a type which represents possible comparison results +type SyncStatusCode string + +// Possible comparison results +const ( + // SyncStatusCodeUnknown indicates that the status of a sync could not be reliably determined + SyncStatusCodeUnknown SyncStatusCode = "Unknown" + // SyncStatusCodeOutOfSync indicates that desired and live states match + SyncStatusCodeSynced SyncStatusCode = "Synced" + // SyncStatusCodeOutOfSync indicates that there is a drift between desired and live states + SyncStatusCodeOutOfSync SyncStatusCode = "OutOfSync" +) + +// ApplicationConditionType represents type of application condition. Type name has following convention: +// prefix "Error" means error condition +// prefix "Warning" means warning condition +// prefix "Info" means informational condition +type ApplicationConditionType = string + +const ( + // ApplicationConditionDeletionError indicates that controller failed to delete application + ApplicationConditionDeletionError = "DeletionError" + // ApplicationConditionInvalidSpecError indicates that application source is invalid + ApplicationConditionInvalidSpecError = "InvalidSpecError" + // ApplicationConditionComparisonError indicates controller failed to compare application state + ApplicationConditionComparisonError = "ComparisonError" + // ApplicationConditionSyncError indicates controller failed to automatically sync the application + ApplicationConditionSyncError = "SyncError" + // ApplicationConditionUnknownError indicates an unknown controller error + ApplicationConditionUnknownError = "UnknownError" + // ApplicationConditionSharedResourceWarning indicates that controller detected resources which belongs to more than one application + ApplicationConditionSharedResourceWarning = "SharedResourceWarning" + // ApplicationConditionRepeatedResourceWarning indicates that application source has resource with same Group, Kind, Name, Namespace multiple times + ApplicationConditionRepeatedResourceWarning = "RepeatedResourceWarning" + // ApplicationConditionExcludedResourceWarning indicates that application has resource which is configured to be excluded + ApplicationConditionExcludedResourceWarning = "ExcludedResourceWarning" + // ApplicationConditionOrphanedResourceWarning indicates that application has orphaned resources + ApplicationConditionOrphanedResourceWarning = "OrphanedResourceWarning" +) + +// ApplicationCondition contains details about an application condition, which is usually an error or warning +type ApplicationCondition struct { + // Type is an application condition type + Type ApplicationConditionType `json:"type" protobuf:"bytes,1,opt,name=type"` + // Message contains human-readable message indicating details about condition + Message string `json:"message" protobuf:"bytes,2,opt,name=message"` + // LastTransitionTime is the time the condition was last observed + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` +} + +// ComparedTo contains application source and target which was used for resources comparison +type ComparedTo struct { + // Source is a reference to the application's source used for comparison + Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,1,opt,name=source"` + // Destination is a reference to the application's destination used for comparison + Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,opt,name=destination"` + // Sources is a reference to the application's multiple sources used for comparison + Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,3,opt,name=sources"` + // IgnoreDifferences is a reference to the application's ignored differences used for comparison + IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,4,opt,name=ignoreDifferences"` +} + +// SyncStatus contains information about the currently observed live and desired states of an application +type SyncStatus struct { + // Status is the sync state of the comparison + Status SyncStatusCode `json:"status" protobuf:"bytes,1,opt,name=status,casttype=SyncStatusCode"` + // ComparedTo contains information about what has been compared + ComparedTo ComparedTo `json:"comparedTo,omitempty" protobuf:"bytes,2,opt,name=comparedTo"` + // Revision contains information about the revision the comparison has been performed to + Revision string `json:"revision,omitempty" protobuf:"bytes,3,opt,name=revision"` + // Revisions contains information about the revisions of multiple sources the comparison has been performed to + Revisions []string `json:"revisions,omitempty" protobuf:"bytes,4,opt,name=revisions"` +} + +// HealthStatus contains information about the currently observed health state of an application or resource +type HealthStatus struct { + // Status holds the status code of the application or resource + Status string `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"` + // Message is a human-readable informational message describing the health status + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` +} + +// InfoItem contains arbitrary, human readable information about an application +type InfoItem struct { + // Name is a human readable title for this piece of information. + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // Value is human readable content. + Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` +} + +// ResourceNetworkingInfo holds networking resource related information +// TODO: describe members of this type +type ResourceNetworkingInfo struct { + TargetLabels map[string]string `json:"targetLabels,omitempty" protobuf:"bytes,1,opt,name=targetLabels"` + TargetRefs []ResourceRef `json:"targetRefs,omitempty" protobuf:"bytes,2,opt,name=targetRefs"` + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,opt,name=labels"` + Ingress []v1.LoadBalancerIngress `json:"ingress,omitempty" protobuf:"bytes,4,opt,name=ingress"` + // ExternalURLs holds list of URLs which should be available externally. List is populated for ingress resources using rules hostnames. + ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,5,opt,name=externalURLs"` +} + +// TODO: describe this type +type HostResourceInfo struct { + ResourceName v1.ResourceName `json:"resourceName,omitempty" protobuf:"bytes,1,name=resourceName"` + RequestedByApp int64 `json:"requestedByApp,omitempty" protobuf:"bytes,2,name=requestedByApp"` + RequestedByNeighbors int64 `json:"requestedByNeighbors,omitempty" protobuf:"bytes,3,name=requestedByNeighbors"` + Capacity int64 `json:"capacity,omitempty" protobuf:"bytes,4,name=capacity"` +} + +// HostInfo holds host name and resources metrics +// TODO: describe purpose of this type +// TODO: describe members of this type +type HostInfo struct { + Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` + ResourcesInfo []HostResourceInfo `json:"resourcesInfo,omitempty" protobuf:"bytes,2,name=resourcesInfo"` + SystemInfo v1.NodeSystemInfo `json:"systemInfo,omitempty" protobuf:"bytes,3,opt,name=systemInfo"` +} + +// ApplicationTree holds nodes which belongs to the application +// TODO: describe purpose of this type +type ApplicationTree struct { + // Nodes contains list of nodes which either directly managed by the application and children of directly managed nodes. + Nodes []ResourceNode `json:"nodes,omitempty" protobuf:"bytes,1,rep,name=nodes"` + // OrphanedNodes contains if or orphaned nodes: nodes which are not managed by the app but in the same namespace. List is populated only if orphaned resources enabled in app project. + OrphanedNodes []ResourceNode `json:"orphanedNodes,omitempty" protobuf:"bytes,2,rep,name=orphanedNodes"` + // Hosts holds list of Kubernetes nodes that run application related pods + Hosts []HostInfo `json:"hosts,omitempty" protobuf:"bytes,3,rep,name=hosts"` +} + +// ApplicationSummary contains information about URLs and container images used by an application +type ApplicationSummary struct { + // ExternalURLs holds all external URLs of application child resources. + ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,1,opt,name=externalURLs"` + // Images holds all images of application child resources. + Images []string `json:"images,omitempty" protobuf:"bytes,2,opt,name=images"` +} + +// ResourceRef includes fields which uniquely identify a resource +type ResourceRef struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"` + Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` + Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"` + UID string `json:"uid,omitempty" protobuf:"bytes,6,opt,name=uid"` +} + +// ResourceNode contains information about live resource and its children +// TODO: describe members of this type +type ResourceNode struct { + ResourceRef `json:",inline" protobuf:"bytes,1,opt,name=resourceRef"` + ParentRefs []ResourceRef `json:"parentRefs,omitempty" protobuf:"bytes,2,opt,name=parentRefs"` + Info []InfoItem `json:"info,omitempty" protobuf:"bytes,3,opt,name=info"` + NetworkingInfo *ResourceNetworkingInfo `json:"networkingInfo,omitempty" protobuf:"bytes,4,opt,name=networkingInfo"` + ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,5,opt,name=resourceVersion"` + Images []string `json:"images,omitempty" protobuf:"bytes,6,opt,name=images"` + Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"` + CreatedAt *metav1.Time `json:"createdAt,omitempty" protobuf:"bytes,8,opt,name=createdAt"` +} + +// ResourceStatus holds the current sync and health status of a resource +// TODO: describe members of this type +type ResourceStatus struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"` + Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` + Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"` + Status SyncStatusCode `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"` + Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"` + Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"` + RequiresPruning bool `json:"requiresPruning,omitempty" protobuf:"bytes,9,opt,name=requiresPruning"` + SyncWave int64 `json:"syncWave,omitempty" protobuf:"bytes,10,opt,name=syncWave"` +} + +// ResourceDiff holds the diff of a live and target resource object +// TODO: describe members of this type +type ResourceDiff struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"` + Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` + Name string `json:"name,omitempty" protobuf:"bytes,4,opt,name=name"` + // TargetState contains the JSON serialized resource manifest defined in the Git/Helm + TargetState string `json:"targetState,omitempty" protobuf:"bytes,5,opt,name=targetState"` + // TargetState contains the JSON live resource manifest + LiveState string `json:"liveState,omitempty" protobuf:"bytes,6,opt,name=liveState"` + // Diff contains the JSON patch between target and live resource + // Deprecated: use NormalizedLiveState and PredictedLiveState to render the difference + Diff string `json:"diff,omitempty" protobuf:"bytes,7,opt,name=diff"` + Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"` + // NormalizedLiveState contains JSON serialized live resource state with applied normalizations + NormalizedLiveState string `json:"normalizedLiveState,omitempty" protobuf:"bytes,9,opt,name=normalizedLiveState"` + // PredictedLiveState contains JSON serialized resource state that is calculated based on normalized and target resource state + PredictedLiveState string `json:"predictedLiveState,omitempty" protobuf:"bytes,10,opt,name=predictedLiveState"` + ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,11,opt,name=resourceVersion"` + Modified bool `json:"modified,omitempty" protobuf:"bytes,12,opt,name=modified"` +} + +// ConnectionStatus represents the status indicator for a connection to a remote resource +type ConnectionStatus = string + +const ( + // ConnectionStatusSuccessful indicates that a connection has been successfully established + ConnectionStatusSuccessful = "Successful" + // ConnectionStatusFailed indicates that a connection attempt has failed + ConnectionStatusFailed = "Failed" + // ConnectionStatusUnknown indicates that the connection status could not be reliably determined + ConnectionStatusUnknown = "Unknown" +) + +// ConnectionState contains information about remote resource connection state, currently used for clusters and repositories +type ConnectionState struct { + // Status contains the current status indicator for the connection + Status ConnectionStatus `json:"status" protobuf:"bytes,1,opt,name=status"` + // Message contains human readable information about the connection status + Message string `json:"message" protobuf:"bytes,2,opt,name=message"` + // ModifiedAt contains the timestamp when this connection status has been determined + ModifiedAt *metav1.Time `json:"attemptedAt" protobuf:"bytes,3,opt,name=attemptedAt"` +} + +// Cluster is the definition of a cluster resource +type Cluster struct { + // ID is an internal field cluster identifier. Not exposed via API. + ID string `json:"-"` + // Server is the API server URL of the Kubernetes cluster + Server string `json:"server" protobuf:"bytes,1,opt,name=server"` + // Name of the cluster. If omitted, will use the server address + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + // Config holds cluster information for connecting to a cluster + Config ClusterConfig `json:"config" protobuf:"bytes,3,opt,name=config"` + // Deprecated: use Info.ConnectionState field instead. + // ConnectionState contains information about cluster connection state + ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,4,opt,name=connectionState"` + // Deprecated: use Info.ServerVersion field instead. + // The server version + ServerVersion string `json:"serverVersion,omitempty" protobuf:"bytes,5,opt,name=serverVersion"` + // Holds list of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty. + Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,6,opt,name=namespaces"` + // RefreshRequestedAt holds time when cluster cache refresh has been requested + RefreshRequestedAt *metav1.Time `json:"refreshRequestedAt,omitempty" protobuf:"bytes,7,opt,name=refreshRequestedAt"` + // Info holds information about cluster cache and state + Info ClusterInfo `json:"info,omitempty" protobuf:"bytes,8,opt,name=info"` + // Shard contains optional shard number. Calculated on the fly by the application controller if not specified. + Shard *int64 `json:"shard,omitempty" protobuf:"bytes,9,opt,name=shard"` + // Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode. + ClusterResources bool `json:"clusterResources,omitempty" protobuf:"bytes,10,opt,name=clusterResources"` + // Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity + Project string `json:"project,omitempty" protobuf:"bytes,11,opt,name=project"` + // Labels for cluster secret metadata + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,12,opt,name=labels"` + // Annotations for cluster secret metadata + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,13,opt,name=annotations"` +} + +// ClusterInfo contains information about the cluster +type ClusterInfo struct { + // ConnectionState contains information about the connection to the cluster + ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,1,opt,name=connectionState"` + // ServerVersion contains information about the Kubernetes version of the cluster + ServerVersion string `json:"serverVersion,omitempty" protobuf:"bytes,2,opt,name=serverVersion"` + // CacheInfo contains information about the cluster cache + CacheInfo ClusterCacheInfo `json:"cacheInfo,omitempty" protobuf:"bytes,3,opt,name=cacheInfo"` + // ApplicationsCount is the number of applications managed by Argo CD on the cluster + ApplicationsCount int64 `json:"applicationsCount" protobuf:"bytes,4,opt,name=applicationsCount"` + // APIVersions contains list of API versions supported by the cluster + APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,5,opt,name=apiVersions"` +} + +// ClusterCacheInfo contains information about the cluster cache +type ClusterCacheInfo struct { + // ResourcesCount holds number of observed Kubernetes resources + ResourcesCount int64 `json:"resourcesCount,omitempty" protobuf:"bytes,1,opt,name=resourcesCount"` + // APIsCount holds number of observed Kubernetes API count + APIsCount int64 `json:"apisCount,omitempty" protobuf:"bytes,2,opt,name=apisCount"` + // LastCacheSyncTime holds time of most recent cache synchronization + LastCacheSyncTime *metav1.Time `json:"lastCacheSyncTime,omitempty" protobuf:"bytes,3,opt,name=lastCacheSyncTime"` +} + +// ClusterList is a collection of Clusters. +type ClusterList struct { + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items []Cluster `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// AWSAuthConfig is an AWS IAM authentication configuration +type AWSAuthConfig struct { + // ClusterName contains AWS cluster name + ClusterName string `json:"clusterName,omitempty" protobuf:"bytes,1,opt,name=clusterName"` + + // RoleARN contains optional role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain. + RoleARN string `json:"roleARN,omitempty" protobuf:"bytes,2,opt,name=roleARN"` + + // Profile contains optional role ARN. If set then AWS IAM Authenticator uses the profile to perform cluster operations instead of the default AWS credential provider chain. + Profile string `json:"profile,omitempty" protobuf:"bytes,3,opt,name=profile"` +} + +// ExecProviderConfig is config used to call an external command to perform cluster authentication +// See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig +type ExecProviderConfig struct { + // Command to execute + Command string `json:"command,omitempty" protobuf:"bytes,1,opt,name=command"` + + // Arguments to pass to the command when executing it + Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"` + + // Env defines additional environment variables to expose to the process + Env map[string]string `json:"env,omitempty" protobuf:"bytes,3,opt,name=env"` + + // Preferred input version of the ExecInfo + APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,4,opt,name=apiVersion"` + + // This text is shown to the user when the executable doesn't seem to be present + InstallHint string `json:"installHint,omitempty" protobuf:"bytes,5,opt,name=installHint"` +} + +// ClusterConfig is the configuration attributes. This structure is subset of the go-client +// rest.Config with annotations added for marshalling. +type ClusterConfig struct { + // Server requires Basic authentication + Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"` + Password string `json:"password,omitempty" protobuf:"bytes,2,opt,name=password"` + + // Server requires Bearer authentication. This client will not attempt to use + // refresh tokens for an OAuth2 flow. + // TODO: demonstrate an OAuth2 compatible client. + BearerToken string `json:"bearerToken,omitempty" protobuf:"bytes,3,opt,name=bearerToken"` + + // TLSClientConfig contains settings to enable transport layer security + TLSClientConfig `json:"tlsClientConfig" protobuf:"bytes,4,opt,name=tlsClientConfig"` + + // AWSAuthConfig contains IAM authentication configuration + AWSAuthConfig *AWSAuthConfig `json:"awsAuthConfig,omitempty" protobuf:"bytes,5,opt,name=awsAuthConfig"` + + // ExecProviderConfig contains configuration for an exec provider + ExecProviderConfig *ExecProviderConfig `json:"execProviderConfig,omitempty" protobuf:"bytes,6,opt,name=execProviderConfig"` +} + +// TLSClientConfig contains settings to enable transport layer security +type TLSClientConfig struct { + // Insecure specifies that the server should be accessed without verifying the TLS certificate. For testing only. + Insecure bool `json:"insecure" protobuf:"bytes,1,opt,name=insecure"` + // ServerName is passed to the server for SNI and is used in the client to check server + // certificates against. If ServerName is empty, the hostname used to contact the + // server is used. + ServerName string `json:"serverName,omitempty" protobuf:"bytes,2,opt,name=serverName"` + // CertData holds PEM-encoded bytes (typically read from a client certificate file). + // CertData takes precedence over CertFile + CertData []byte `json:"certData,omitempty" protobuf:"bytes,3,opt,name=certData"` + // KeyData holds PEM-encoded bytes (typically read from a client certificate key file). + // KeyData takes precedence over KeyFile + KeyData []byte `json:"keyData,omitempty" protobuf:"bytes,4,opt,name=keyData"` + // CAData holds PEM-encoded bytes (typically read from a root certificates bundle). + // CAData takes precedence over CAFile + CAData []byte `json:"caData,omitempty" protobuf:"bytes,5,opt,name=caData"` +} + +// KnownTypeField contains mapping between CRD field and known Kubernetes type. +// This is mainly used for unit conversion in unknown resources (e.g. 0.1 == 100mi) +// TODO: Describe the members of this type +type KnownTypeField struct { + Field string `json:"field,omitempty" protobuf:"bytes,1,opt,name=field"` + Type string `json:"type,omitempty" protobuf:"bytes,2,opt,name=type"` +} + +// OverrideIgnoreDiff contains configurations about how fields should be ignored during diffs between +// the desired state and live state +type OverrideIgnoreDiff struct { + // JSONPointers is a JSON path list following the format defined in RFC4627 (https://datatracker.ietf.org/doc/html/rfc6902#section-3) + JSONPointers []string `json:"jsonPointers" protobuf:"bytes,1,rep,name=jSONPointers"` + // JQPathExpressions is a JQ path list that will be evaludated during the diff process + JQPathExpressions []string `json:"jqPathExpressions" protobuf:"bytes,2,opt,name=jqPathExpressions"` + // ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the + // desired state defined in the SCM and won't be displayed in diffs + ManagedFieldsManagers []string `json:"managedFieldsManagers" protobuf:"bytes,3,opt,name=managedFieldsManagers"` +} + +type rawResourceOverride struct { + HealthLua string `json:"health.lua,omitempty"` + UseOpenLibs bool `json:"health.lua.useOpenLibs,omitempty"` + Actions string `json:"actions,omitempty"` + IgnoreDifferences string `json:"ignoreDifferences,omitempty"` + IgnoreResourceUpdates string `json:"ignoreResourceUpdates,omitempty"` + KnownTypeFields []KnownTypeField `json:"knownTypeFields,omitempty"` +} + +// ResourceOverride holds configuration to customize resource diffing and health assessment +// TODO: describe the members of this type +type ResourceOverride struct { + HealthLua string `protobuf:"bytes,1,opt,name=healthLua"` + UseOpenLibs bool `protobuf:"bytes,5,opt,name=useOpenLibs"` + Actions string `protobuf:"bytes,3,opt,name=actions"` + IgnoreDifferences OverrideIgnoreDiff `protobuf:"bytes,2,opt,name=ignoreDifferences"` + IgnoreResourceUpdates OverrideIgnoreDiff `protobuf:"bytes,6,opt,name=ignoreResourceUpdates"` + KnownTypeFields []KnownTypeField `protobuf:"bytes,4,opt,name=knownTypeFields"` +} + +// TODO: describe this type +// TODO: describe members of this type +type ResourceActions struct { + ActionDiscoveryLua string `json:"discovery.lua,omitempty" yaml:"discovery.lua,omitempty" protobuf:"bytes,1,opt,name=actionDiscoveryLua"` + Definitions []ResourceActionDefinition `json:"definitions,omitempty" protobuf:"bytes,2,rep,name=definitions"` +} + +// TODO: describe this type +// TODO: describe members of this type +type ResourceActionDefinition struct { + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + ActionLua string `json:"action.lua" yaml:"action.lua" protobuf:"bytes,2,opt,name=actionLua"` +} + +// TODO: describe this type +// TODO: describe members of this type +type ResourceAction struct { + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + Params []ResourceActionParam `json:"params,omitempty" protobuf:"bytes,2,rep,name=params"` + Disabled bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"` + IconClass string `json:"iconClass,omitempty" protobuf:"bytes,4,opt,name=iconClass"` + DisplayName string `json:"displayName,omitempty" protobuf:"bytes,5,opt,name=displayName"` +} + +// TODO: describe this type +// TODO: describe members of this type +type ResourceActionParam struct { + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` + Type string `json:"type,omitempty" protobuf:"bytes,3,opt,name=type"` + Default string `json:"default,omitempty" protobuf:"bytes,4,opt,name=default"` +} + +// TODO: refactor to use rbacpolicy.ActionGet, rbacpolicy.ActionCreate, without import cycle +var validActions = map[string]bool{ + "get": true, + "create": true, + "update": true, + "delete": true, + "sync": true, + "override": true, + "*": true, +} + +// OrphanedResourcesMonitorSettings holds settings of orphaned resources monitoring +type OrphanedResourcesMonitorSettings struct { + // Warn indicates if warning condition should be created for apps which have orphaned resources + Warn *bool `json:"warn,omitempty" protobuf:"bytes,1,name=warn"` + // Ignore contains a list of resources that are to be excluded from orphaned resources monitoring + Ignore []OrphanedResourceKey `json:"ignore,omitempty" protobuf:"bytes,2,opt,name=ignore"` +} + +// OrphanedResourceKey is a reference to a resource to be ignored from +type OrphanedResourceKey struct { + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"` + Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` +} + +// SignatureKey is the specification of a key required to verify commit signatures with +type SignatureKey struct { + // The ID of the key in hexadecimal notation + KeyID string `json:"keyID" protobuf:"bytes,1,name=keyID"` +} + +// AppProjectSpec is the specification of an AppProject +type AppProjectSpec struct { + // SourceRepos contains list of repository URLs which can be used for deployment + SourceRepos []string `json:"sourceRepos,omitempty" protobuf:"bytes,1,name=sourceRepos"` + // Destinations contains list of destinations available for deployment + Destinations []ApplicationDestination `json:"destinations,omitempty" protobuf:"bytes,2,name=destination"` + // Description contains optional project description + Description string `json:"description,omitempty" protobuf:"bytes,3,opt,name=description"` + // Roles are user defined RBAC roles associated with this project + Roles []ProjectRole `json:"roles,omitempty" protobuf:"bytes,4,rep,name=roles"` + // ClusterResourceWhitelist contains list of whitelisted cluster level resources + ClusterResourceWhitelist []metav1.GroupKind `json:"clusterResourceWhitelist,omitempty" protobuf:"bytes,5,opt,name=clusterResourceWhitelist"` + // NamespaceResourceBlacklist contains list of blacklisted namespace level resources + NamespaceResourceBlacklist []metav1.GroupKind `json:"namespaceResourceBlacklist,omitempty" protobuf:"bytes,6,opt,name=namespaceResourceBlacklist"` + // OrphanedResources specifies if controller should monitor orphaned resources of apps in this project + OrphanedResources *OrphanedResourcesMonitorSettings `json:"orphanedResources,omitempty" protobuf:"bytes,7,opt,name=orphanedResources"` + // SyncWindows controls when syncs can be run for apps in this project + SyncWindows SyncWindows `json:"syncWindows,omitempty" protobuf:"bytes,8,opt,name=syncWindows"` + // NamespaceResourceWhitelist contains list of whitelisted namespace level resources + NamespaceResourceWhitelist []metav1.GroupKind `json:"namespaceResourceWhitelist,omitempty" protobuf:"bytes,9,opt,name=namespaceResourceWhitelist"` + // SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync + SignatureKeys []SignatureKey `json:"signatureKeys,omitempty" protobuf:"bytes,10,opt,name=signatureKeys"` + // ClusterResourceBlacklist contains list of blacklisted cluster level resources + ClusterResourceBlacklist []metav1.GroupKind `json:"clusterResourceBlacklist,omitempty" protobuf:"bytes,11,opt,name=clusterResourceBlacklist"` + // SourceNamespaces defines the namespaces application resources are allowed to be created in + SourceNamespaces []string `json:"sourceNamespaces,omitempty" protobuf:"bytes,12,opt,name=sourceNamespaces"` + // PermitOnlyProjectScopedClusters determines whether destinations can only reference clusters which are project-scoped + PermitOnlyProjectScopedClusters bool `json:"permitOnlyProjectScopedClusters,omitempty" protobuf:"bytes,13,opt,name=permitOnlyProjectScopedClusters"` +} + +// SyncWindows is a collection of sync windows in this project +type SyncWindows []*SyncWindow + +// SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps +type SyncWindow struct { + // Kind defines if the window allows or blocks syncs + Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"` + // Schedule is the time the window will begin, specified in cron format + Schedule string `json:"schedule,omitempty" protobuf:"bytes,2,opt,name=schedule"` + // Duration is the amount of time the sync window will be open + Duration string `json:"duration,omitempty" protobuf:"bytes,3,opt,name=duration"` + // Applications contains a list of applications that the window will apply to + Applications []string `json:"applications,omitempty" protobuf:"bytes,4,opt,name=applications"` + // Namespaces contains a list of namespaces that the window will apply to + Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,5,opt,name=namespaces"` + // Clusters contains a list of clusters that the window will apply to + Clusters []string `json:"clusters,omitempty" protobuf:"bytes,6,opt,name=clusters"` + // ManualSync enables manual syncs when they would otherwise be blocked + ManualSync bool `json:"manualSync,omitempty" protobuf:"bytes,7,opt,name=manualSync"` + // TimeZone of the sync that will be applied to the schedule + TimeZone string `json:"timeZone,omitempty" protobuf:"bytes,8,opt,name=timeZone"` +} + +// ProjectRole represents a role that has access to a project +type ProjectRole struct { + // Name is a name for this role + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + // Description is a description of the role + Description string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"` + // Policies Stores a list of casbin formatted strings that define access policies for the role in the project + Policies []string `json:"policies,omitempty" protobuf:"bytes,3,rep,name=policies"` + // JWTTokens are a list of generated JWT tokens bound to this role + JWTTokens []JWTToken `json:"jwtTokens,omitempty" protobuf:"bytes,4,rep,name=jwtTokens"` + // Groups are a list of OIDC group claims bound to this role + Groups []string `json:"groups,omitempty" protobuf:"bytes,5,rep,name=groups"` +} + +// JWTToken holds the issuedAt and expiresAt values of a token +type JWTToken struct { + IssuedAt int64 `json:"iat" protobuf:"int64,1,opt,name=iat"` + ExpiresAt int64 `json:"exp,omitempty" protobuf:"int64,2,opt,name=exp"` + ID string `json:"id,omitempty" protobuf:"bytes,3,opt,name=id"` +} + +// Command holds binary path and arguments list +type Command struct { + Command []string `json:"command,omitempty" protobuf:"bytes,1,name=command"` + Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"` +} + +// ConfigManagementPlugin contains config management plugin configuration +type ConfigManagementPlugin struct { + Name string `json:"name" protobuf:"bytes,1,name=name"` + Init *Command `json:"init,omitempty" protobuf:"bytes,2,name=init"` + Generate Command `json:"generate" protobuf:"bytes,3,name=generate"` + LockRepo bool `json:"lockRepo,omitempty" protobuf:"bytes,4,name=lockRepo"` +} + +// HelmOptions holds helm options +type HelmOptions struct { + ValuesFileSchemes []string `protobuf:"bytes,1,opt,name=valuesFileSchemes"` +} + +// KustomizeOptions are options for kustomize to use when building manifests +type KustomizeOptions struct { + // BuildOptions is a string of build parameters to use when calling `kustomize build` + BuildOptions string `protobuf:"bytes,1,opt,name=buildOptions"` + // BinaryPath holds optional path to kustomize binary + BinaryPath string `protobuf:"bytes,2,opt,name=binaryPath"` +} diff --git a/argocd/v1alpha1/zz_generated_deepcopy.go b/argocd/v1alpha1/zz_generated_deepcopy.go new file mode 100644 index 0000000000..27e5f80d0c --- /dev/null +++ b/argocd/v1alpha1/zz_generated_deepcopy.go @@ -0,0 +1,4434 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + corev1 "k8s.io/api/core/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AWSAuthConfig) DeepCopyInto(out *AWSAuthConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSAuthConfig. +func (in *AWSAuthConfig) DeepCopy() *AWSAuthConfig { + if in == nil { + return nil + } + out := new(AWSAuthConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppProject) DeepCopyInto(out *AppProject) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProject. +func (in *AppProject) DeepCopy() *AppProject { + if in == nil { + return nil + } + out := new(AppProject) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AppProject) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppProjectList) DeepCopyInto(out *AppProjectList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AppProject, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectList. +func (in *AppProjectList) DeepCopy() *AppProjectList { + if in == nil { + return nil + } + out := new(AppProjectList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AppProjectList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppProjectSpec) DeepCopyInto(out *AppProjectSpec) { + *out = *in + if in.SourceRepos != nil { + in, out := &in.SourceRepos, &out.SourceRepos + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Destinations != nil { + in, out := &in.Destinations, &out.Destinations + *out = make([]ApplicationDestination, len(*in)) + copy(*out, *in) + } + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]ProjectRole, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ClusterResourceWhitelist != nil { + in, out := &in.ClusterResourceWhitelist, &out.ClusterResourceWhitelist + *out = make([]v1.GroupKind, len(*in)) + copy(*out, *in) + } + if in.NamespaceResourceBlacklist != nil { + in, out := &in.NamespaceResourceBlacklist, &out.NamespaceResourceBlacklist + *out = make([]v1.GroupKind, len(*in)) + copy(*out, *in) + } + if in.OrphanedResources != nil { + in, out := &in.OrphanedResources, &out.OrphanedResources + *out = new(OrphanedResourcesMonitorSettings) + (*in).DeepCopyInto(*out) + } + if in.SyncWindows != nil { + in, out := &in.SyncWindows, &out.SyncWindows + *out = make(SyncWindows, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(SyncWindow) + (*in).DeepCopyInto(*out) + } + } + } + if in.NamespaceResourceWhitelist != nil { + in, out := &in.NamespaceResourceWhitelist, &out.NamespaceResourceWhitelist + *out = make([]v1.GroupKind, len(*in)) + copy(*out, *in) + } + if in.SignatureKeys != nil { + in, out := &in.SignatureKeys, &out.SignatureKeys + *out = make([]SignatureKey, len(*in)) + copy(*out, *in) + } + if in.ClusterResourceBlacklist != nil { + in, out := &in.ClusterResourceBlacklist, &out.ClusterResourceBlacklist + *out = make([]v1.GroupKind, len(*in)) + copy(*out, *in) + } + if in.SourceNamespaces != nil { + in, out := &in.SourceNamespaces, &out.SourceNamespaces + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectSpec. +func (in *AppProjectSpec) DeepCopy() *AppProjectSpec { + if in == nil { + return nil + } + out := new(AppProjectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppProjectStatus) DeepCopyInto(out *AppProjectStatus) { + *out = *in + if in.JWTTokensByRole != nil { + in, out := &in.JWTTokensByRole, &out.JWTTokensByRole + *out = make(map[string]JWTTokens, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectStatus. +func (in *AppProjectStatus) DeepCopy() *AppProjectStatus { + if in == nil { + return nil + } + out := new(AppProjectStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Application) DeepCopyInto(out *Application) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + if in.Operation != nil { + in, out := &in.Operation, &out.Operation + *out = new(Operation) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Application. +func (in *Application) DeepCopy() *Application { + if in == nil { + return nil + } + out := new(Application) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Application) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationCondition) DeepCopyInto(out *ApplicationCondition) { + *out = *in + if in.LastTransitionTime != nil { + in, out := &in.LastTransitionTime, &out.LastTransitionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCondition. +func (in *ApplicationCondition) DeepCopy() *ApplicationCondition { + if in == nil { + return nil + } + out := new(ApplicationCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationDestination) DeepCopyInto(out *ApplicationDestination) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationDestination. +func (in *ApplicationDestination) DeepCopy() *ApplicationDestination { + if in == nil { + return nil + } + out := new(ApplicationDestination) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationList) DeepCopyInto(out *ApplicationList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Application, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationList. +func (in *ApplicationList) DeepCopy() *ApplicationList { + if in == nil { + return nil + } + out := new(ApplicationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationMatchExpression) DeepCopyInto(out *ApplicationMatchExpression) { + *out = *in + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationMatchExpression. +func (in *ApplicationMatchExpression) DeepCopy() *ApplicationMatchExpression { + if in == nil { + return nil + } + out := new(ApplicationMatchExpression) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationPreservedFields) DeepCopyInto(out *ApplicationPreservedFields) { + *out = *in + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationPreservedFields. +func (in *ApplicationPreservedFields) DeepCopy() *ApplicationPreservedFields { + if in == nil { + return nil + } + out := new(ApplicationPreservedFields) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSet) DeepCopyInto(out *ApplicationSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSet. +func (in *ApplicationSet) DeepCopy() *ApplicationSet { + if in == nil { + return nil + } + out := new(ApplicationSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetApplicationStatus) DeepCopyInto(out *ApplicationSetApplicationStatus) { + *out = *in + if in.LastTransitionTime != nil { + in, out := &in.LastTransitionTime, &out.LastTransitionTime + *out = (*in).DeepCopy() + } + if in.TargetRevisions != nil { + in, out := &in.TargetRevisions, &out.TargetRevisions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetApplicationStatus. +func (in *ApplicationSetApplicationStatus) DeepCopy() *ApplicationSetApplicationStatus { + if in == nil { + return nil + } + out := new(ApplicationSetApplicationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetCondition) DeepCopyInto(out *ApplicationSetCondition) { + *out = *in + if in.LastTransitionTime != nil { + in, out := &in.LastTransitionTime, &out.LastTransitionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetCondition. +func (in *ApplicationSetCondition) DeepCopy() *ApplicationSetCondition { + if in == nil { + return nil + } + out := new(ApplicationSetCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetGenerator) DeepCopyInto(out *ApplicationSetGenerator) { + *out = *in + if in.List != nil { + in, out := &in.List, &out.List + *out = new(ListGenerator) + (*in).DeepCopyInto(*out) + } + if in.Clusters != nil { + in, out := &in.Clusters, &out.Clusters + *out = new(ClusterGenerator) + (*in).DeepCopyInto(*out) + } + if in.Git != nil { + in, out := &in.Git, &out.Git + *out = new(GitGenerator) + (*in).DeepCopyInto(*out) + } + if in.SCMProvider != nil { + in, out := &in.SCMProvider, &out.SCMProvider + *out = new(SCMProviderGenerator) + (*in).DeepCopyInto(*out) + } + if in.ClusterDecisionResource != nil { + in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource + *out = new(DuckTypeGenerator) + (*in).DeepCopyInto(*out) + } + if in.PullRequest != nil { + in, out := &in.PullRequest, &out.PullRequest + *out = new(PullRequestGenerator) + (*in).DeepCopyInto(*out) + } + if in.Matrix != nil { + in, out := &in.Matrix, &out.Matrix + *out = new(MatrixGenerator) + (*in).DeepCopyInto(*out) + } + if in.Merge != nil { + in, out := &in.Merge, &out.Merge + *out = new(MergeGenerator) + (*in).DeepCopyInto(*out) + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(PluginGenerator) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetGenerator. +func (in *ApplicationSetGenerator) DeepCopy() *ApplicationSetGenerator { + if in == nil { + return nil + } + out := new(ApplicationSetGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ApplicationSetIgnoreDifferences) DeepCopyInto(out *ApplicationSetIgnoreDifferences) { + { + in := &in + *out = make(ApplicationSetIgnoreDifferences, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetIgnoreDifferences. +func (in ApplicationSetIgnoreDifferences) DeepCopy() ApplicationSetIgnoreDifferences { + if in == nil { + return nil + } + out := new(ApplicationSetIgnoreDifferences) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetList) DeepCopyInto(out *ApplicationSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ApplicationSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetList. +func (in *ApplicationSetList) DeepCopy() *ApplicationSetList { + if in == nil { + return nil + } + out := new(ApplicationSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetNestedGenerator) DeepCopyInto(out *ApplicationSetNestedGenerator) { + *out = *in + if in.List != nil { + in, out := &in.List, &out.List + *out = new(ListGenerator) + (*in).DeepCopyInto(*out) + } + if in.Clusters != nil { + in, out := &in.Clusters, &out.Clusters + *out = new(ClusterGenerator) + (*in).DeepCopyInto(*out) + } + if in.Git != nil { + in, out := &in.Git, &out.Git + *out = new(GitGenerator) + (*in).DeepCopyInto(*out) + } + if in.SCMProvider != nil { + in, out := &in.SCMProvider, &out.SCMProvider + *out = new(SCMProviderGenerator) + (*in).DeepCopyInto(*out) + } + if in.ClusterDecisionResource != nil { + in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource + *out = new(DuckTypeGenerator) + (*in).DeepCopyInto(*out) + } + if in.PullRequest != nil { + in, out := &in.PullRequest, &out.PullRequest + *out = new(PullRequestGenerator) + (*in).DeepCopyInto(*out) + } + if in.Matrix != nil { + in, out := &in.Matrix, &out.Matrix + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } + if in.Merge != nil { + in, out := &in.Merge, &out.Merge + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(PluginGenerator) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetNestedGenerator. +func (in *ApplicationSetNestedGenerator) DeepCopy() *ApplicationSetNestedGenerator { + if in == nil { + return nil + } + out := new(ApplicationSetNestedGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ApplicationSetNestedGenerators) DeepCopyInto(out *ApplicationSetNestedGenerators) { + { + in := &in + *out = make(ApplicationSetNestedGenerators, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetNestedGenerators. +func (in ApplicationSetNestedGenerators) DeepCopy() ApplicationSetNestedGenerators { + if in == nil { + return nil + } + out := new(ApplicationSetNestedGenerators) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetResourceIgnoreDifferences) DeepCopyInto(out *ApplicationSetResourceIgnoreDifferences) { + *out = *in + if in.JSONPointers != nil { + in, out := &in.JSONPointers, &out.JSONPointers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.JQPathExpressions != nil { + in, out := &in.JQPathExpressions, &out.JQPathExpressions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetResourceIgnoreDifferences. +func (in *ApplicationSetResourceIgnoreDifferences) DeepCopy() *ApplicationSetResourceIgnoreDifferences { + if in == nil { + return nil + } + out := new(ApplicationSetResourceIgnoreDifferences) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetRolloutStep) DeepCopyInto(out *ApplicationSetRolloutStep) { + *out = *in + if in.MatchExpressions != nil { + in, out := &in.MatchExpressions, &out.MatchExpressions + *out = make([]ApplicationMatchExpression, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MaxUpdate != nil { + in, out := &in.MaxUpdate, &out.MaxUpdate + *out = new(intstr.IntOrString) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetRolloutStep. +func (in *ApplicationSetRolloutStep) DeepCopy() *ApplicationSetRolloutStep { + if in == nil { + return nil + } + out := new(ApplicationSetRolloutStep) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetRolloutStrategy) DeepCopyInto(out *ApplicationSetRolloutStrategy) { + *out = *in + if in.Steps != nil { + in, out := &in.Steps, &out.Steps + *out = make([]ApplicationSetRolloutStep, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetRolloutStrategy. +func (in *ApplicationSetRolloutStrategy) DeepCopy() *ApplicationSetRolloutStrategy { + if in == nil { + return nil + } + out := new(ApplicationSetRolloutStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetSpec) DeepCopyInto(out *ApplicationSetSpec) { + *out = *in + if in.Generators != nil { + in, out := &in.Generators, &out.Generators + *out = make([]ApplicationSetGenerator, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.Template.DeepCopyInto(&out.Template) + if in.SyncPolicy != nil { + in, out := &in.SyncPolicy, &out.SyncPolicy + *out = new(ApplicationSetSyncPolicy) + (*in).DeepCopyInto(*out) + } + if in.Strategy != nil { + in, out := &in.Strategy, &out.Strategy + *out = new(ApplicationSetStrategy) + (*in).DeepCopyInto(*out) + } + if in.PreservedFields != nil { + in, out := &in.PreservedFields, &out.PreservedFields + *out = new(ApplicationPreservedFields) + (*in).DeepCopyInto(*out) + } + if in.GoTemplateOptions != nil { + in, out := &in.GoTemplateOptions, &out.GoTemplateOptions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.IgnoreApplicationDifferences != nil { + in, out := &in.IgnoreApplicationDifferences, &out.IgnoreApplicationDifferences + *out = make(ApplicationSetIgnoreDifferences, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TemplatePatch != nil { + in, out := &in.TemplatePatch, &out.TemplatePatch + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetSpec. +func (in *ApplicationSetSpec) DeepCopy() *ApplicationSetSpec { + if in == nil { + return nil + } + out := new(ApplicationSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetStatus) DeepCopyInto(out *ApplicationSetStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ApplicationSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationStatus != nil { + in, out := &in.ApplicationStatus, &out.ApplicationStatus + *out = make([]ApplicationSetApplicationStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]ResourceStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetStatus. +func (in *ApplicationSetStatus) DeepCopy() *ApplicationSetStatus { + if in == nil { + return nil + } + out := new(ApplicationSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetStrategy) DeepCopyInto(out *ApplicationSetStrategy) { + *out = *in + if in.RollingSync != nil { + in, out := &in.RollingSync, &out.RollingSync + *out = new(ApplicationSetRolloutStrategy) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetStrategy. +func (in *ApplicationSetStrategy) DeepCopy() *ApplicationSetStrategy { + if in == nil { + return nil + } + out := new(ApplicationSetStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetSyncPolicy) DeepCopyInto(out *ApplicationSetSyncPolicy) { + *out = *in + if in.ApplicationsSync != nil { + in, out := &in.ApplicationsSync, &out.ApplicationsSync + *out = new(ApplicationsSyncPolicy) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetSyncPolicy. +func (in *ApplicationSetSyncPolicy) DeepCopy() *ApplicationSetSyncPolicy { + if in == nil { + return nil + } + out := new(ApplicationSetSyncPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetTemplate) DeepCopyInto(out *ApplicationSetTemplate) { + *out = *in + in.ApplicationSetTemplateMeta.DeepCopyInto(&out.ApplicationSetTemplateMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplate. +func (in *ApplicationSetTemplate) DeepCopy() *ApplicationSetTemplate { + if in == nil { + return nil + } + out := new(ApplicationSetTemplate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetTemplateMeta) DeepCopyInto(out *ApplicationSetTemplateMeta) { + *out = *in + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Finalizers != nil { + in, out := &in.Finalizers, &out.Finalizers + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplateMeta. +func (in *ApplicationSetTemplateMeta) DeepCopy() *ApplicationSetTemplateMeta { + if in == nil { + return nil + } + out := new(ApplicationSetTemplateMeta) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetTerminalGenerator) DeepCopyInto(out *ApplicationSetTerminalGenerator) { + *out = *in + if in.List != nil { + in, out := &in.List, &out.List + *out = new(ListGenerator) + (*in).DeepCopyInto(*out) + } + if in.Clusters != nil { + in, out := &in.Clusters, &out.Clusters + *out = new(ClusterGenerator) + (*in).DeepCopyInto(*out) + } + if in.Git != nil { + in, out := &in.Git, &out.Git + *out = new(GitGenerator) + (*in).DeepCopyInto(*out) + } + if in.SCMProvider != nil { + in, out := &in.SCMProvider, &out.SCMProvider + *out = new(SCMProviderGenerator) + (*in).DeepCopyInto(*out) + } + if in.ClusterDecisionResource != nil { + in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource + *out = new(DuckTypeGenerator) + (*in).DeepCopyInto(*out) + } + if in.PullRequest != nil { + in, out := &in.PullRequest, &out.PullRequest + *out = new(PullRequestGenerator) + (*in).DeepCopyInto(*out) + } + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(PluginGenerator) + (*in).DeepCopyInto(*out) + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTerminalGenerator. +func (in *ApplicationSetTerminalGenerator) DeepCopy() *ApplicationSetTerminalGenerator { + if in == nil { + return nil + } + out := new(ApplicationSetTerminalGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ApplicationSetTerminalGenerators) DeepCopyInto(out *ApplicationSetTerminalGenerators) { + { + in := &in + *out = make(ApplicationSetTerminalGenerators, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTerminalGenerators. +func (in ApplicationSetTerminalGenerators) DeepCopy() ApplicationSetTerminalGenerators { + if in == nil { + return nil + } + out := new(ApplicationSetTerminalGenerators) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSetTree) DeepCopyInto(out *ApplicationSetTree) { + *out = *in + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]ResourceNode, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTree. +func (in *ApplicationSetTree) DeepCopy() *ApplicationSetTree { + if in == nil { + return nil + } + out := new(ApplicationSetTree) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSource) DeepCopyInto(out *ApplicationSource) { + *out = *in + if in.Helm != nil { + in, out := &in.Helm, &out.Helm + *out = new(ApplicationSourceHelm) + (*in).DeepCopyInto(*out) + } + if in.Kustomize != nil { + in, out := &in.Kustomize, &out.Kustomize + *out = new(ApplicationSourceKustomize) + (*in).DeepCopyInto(*out) + } + if in.Directory != nil { + in, out := &in.Directory, &out.Directory + *out = new(ApplicationSourceDirectory) + (*in).DeepCopyInto(*out) + } + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(ApplicationSourcePlugin) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSource. +func (in *ApplicationSource) DeepCopy() *ApplicationSource { + if in == nil { + return nil + } + out := new(ApplicationSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourceDirectory) DeepCopyInto(out *ApplicationSourceDirectory) { + *out = *in + in.Jsonnet.DeepCopyInto(&out.Jsonnet) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceDirectory. +func (in *ApplicationSourceDirectory) DeepCopy() *ApplicationSourceDirectory { + if in == nil { + return nil + } + out := new(ApplicationSourceDirectory) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourceHelm) DeepCopyInto(out *ApplicationSourceHelm) { + *out = *in + if in.ValueFiles != nil { + in, out := &in.ValueFiles, &out.ValueFiles + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make([]HelmParameter, len(*in)) + copy(*out, *in) + } + if in.FileParameters != nil { + in, out := &in.FileParameters, &out.FileParameters + *out = make([]HelmFileParameter, len(*in)) + copy(*out, *in) + } + if in.ValuesObject != nil { + in, out := &in.ValuesObject, &out.ValuesObject + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceHelm. +func (in *ApplicationSourceHelm) DeepCopy() *ApplicationSourceHelm { + if in == nil { + return nil + } + out := new(ApplicationSourceHelm) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourceJsonnet) DeepCopyInto(out *ApplicationSourceJsonnet) { + *out = *in + if in.ExtVars != nil { + in, out := &in.ExtVars, &out.ExtVars + *out = make([]JsonnetVar, len(*in)) + copy(*out, *in) + } + if in.TLAs != nil { + in, out := &in.TLAs, &out.TLAs + *out = make([]JsonnetVar, len(*in)) + copy(*out, *in) + } + if in.Libs != nil { + in, out := &in.Libs, &out.Libs + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceJsonnet. +func (in *ApplicationSourceJsonnet) DeepCopy() *ApplicationSourceJsonnet { + if in == nil { + return nil + } + out := new(ApplicationSourceJsonnet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourceKustomize) DeepCopyInto(out *ApplicationSourceKustomize) { + *out = *in + if in.Images != nil { + in, out := &in.Images, &out.Images + *out = make(KustomizeImages, len(*in)) + copy(*out, *in) + } + if in.CommonLabels != nil { + in, out := &in.CommonLabels, &out.CommonLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.CommonAnnotations != nil { + in, out := &in.CommonAnnotations, &out.CommonAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + *out = make(KustomizeReplicas, len(*in)) + copy(*out, *in) + } + if in.Patches != nil { + in, out := &in.Patches, &out.Patches + *out = make(KustomizePatches, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceKustomize. +func (in *ApplicationSourceKustomize) DeepCopy() *ApplicationSourceKustomize { + if in == nil { + return nil + } + out := new(ApplicationSourceKustomize) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourcePlugin) DeepCopyInto(out *ApplicationSourcePlugin) { + *out = *in + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make(Env, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(EnvEntry) + **out = **in + } + } + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make(ApplicationSourcePluginParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePlugin. +func (in *ApplicationSourcePlugin) DeepCopy() *ApplicationSourcePlugin { + if in == nil { + return nil + } + out := new(ApplicationSourcePlugin) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSourcePluginParameter) DeepCopyInto(out *ApplicationSourcePluginParameter) { + *out = *in + if in.String_ != nil { + in, out := &in.String_, &out.String_ + *out = new(string) + **out = **in + } + if in.OptionalMap != nil { + in, out := &in.OptionalMap, &out.OptionalMap + *out = new(OptionalMap) + (*in).DeepCopyInto(*out) + } + if in.OptionalArray != nil { + in, out := &in.OptionalArray, &out.OptionalArray + *out = new(OptionalArray) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePluginParameter. +func (in *ApplicationSourcePluginParameter) DeepCopy() *ApplicationSourcePluginParameter { + if in == nil { + return nil + } + out := new(ApplicationSourcePluginParameter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ApplicationSourcePluginParameters) DeepCopyInto(out *ApplicationSourcePluginParameters) { + { + in := &in + *out = make(ApplicationSourcePluginParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePluginParameters. +func (in ApplicationSourcePluginParameters) DeepCopy() ApplicationSourcePluginParameters { + if in == nil { + return nil + } + out := new(ApplicationSourcePluginParameters) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ApplicationSources) DeepCopyInto(out *ApplicationSources) { + { + in := &in + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSources. +func (in ApplicationSources) DeepCopy() ApplicationSources { + if in == nil { + return nil + } + out := new(ApplicationSources) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec) { + *out = *in + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(ApplicationSource) + (*in).DeepCopyInto(*out) + } + out.Destination = in.Destination + if in.SyncPolicy != nil { + in, out := &in.SyncPolicy, &out.SyncPolicy + *out = new(SyncPolicy) + (*in).DeepCopyInto(*out) + } + if in.IgnoreDifferences != nil { + in, out := &in.IgnoreDifferences, &out.IgnoreDifferences + *out = make(IgnoreDifferences, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Info != nil { + in, out := &in.Info, &out.Info + *out = make([]Info, len(*in)) + copy(*out, *in) + } + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + *out = new(int64) + **out = **in + } + if in.Sources != nil { + in, out := &in.Sources, &out.Sources + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSpec. +func (in *ApplicationSpec) DeepCopy() *ApplicationSpec { + if in == nil { + return nil + } + out := new(ApplicationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationStatus) DeepCopyInto(out *ApplicationStatus) { + *out = *in + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]ResourceStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.Sync.DeepCopyInto(&out.Sync) + out.Health = in.Health + if in.History != nil { + in, out := &in.History, &out.History + *out = make(RevisionHistories, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ApplicationCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ReconciledAt != nil { + in, out := &in.ReconciledAt, &out.ReconciledAt + *out = (*in).DeepCopy() + } + if in.OperationState != nil { + in, out := &in.OperationState, &out.OperationState + *out = new(OperationState) + (*in).DeepCopyInto(*out) + } + if in.ObservedAt != nil { + in, out := &in.ObservedAt, &out.ObservedAt + *out = (*in).DeepCopy() + } + in.Summary.DeepCopyInto(&out.Summary) + if in.SourceTypes != nil { + in, out := &in.SourceTypes, &out.SourceTypes + *out = make([]ApplicationSourceType, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationStatus. +func (in *ApplicationStatus) DeepCopy() *ApplicationStatus { + if in == nil { + return nil + } + out := new(ApplicationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSummary) DeepCopyInto(out *ApplicationSummary) { + *out = *in + if in.ExternalURLs != nil { + in, out := &in.ExternalURLs, &out.ExternalURLs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Images != nil { + in, out := &in.Images, &out.Images + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSummary. +func (in *ApplicationSummary) DeepCopy() *ApplicationSummary { + if in == nil { + return nil + } + out := new(ApplicationSummary) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationTree) DeepCopyInto(out *ApplicationTree) { + *out = *in + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]ResourceNode, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OrphanedNodes != nil { + in, out := &in.OrphanedNodes, &out.OrphanedNodes + *out = make([]ResourceNode, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Hosts != nil { + in, out := &in.Hosts, &out.Hosts + *out = make([]HostInfo, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationTree. +func (in *ApplicationTree) DeepCopy() *ApplicationTree { + if in == nil { + return nil + } + out := new(ApplicationTree) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationWatchEvent) DeepCopyInto(out *ApplicationWatchEvent) { + *out = *in + in.Application.DeepCopyInto(&out.Application) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationWatchEvent. +func (in *ApplicationWatchEvent) DeepCopy() *ApplicationWatchEvent { + if in == nil { + return nil + } + out := new(ApplicationWatchEvent) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Backoff) DeepCopyInto(out *Backoff) { + *out = *in + if in.Factor != nil { + in, out := &in.Factor, &out.Factor + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backoff. +func (in *Backoff) DeepCopy() *Backoff { + if in == nil { + return nil + } + out := new(Backoff) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BasicAuthBitbucketServer) DeepCopyInto(out *BasicAuthBitbucketServer) { + *out = *in + if in.PasswordRef != nil { // pragma: allowlist secret + in, out := &in.PasswordRef, &out.PasswordRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthBitbucketServer. +func (in *BasicAuthBitbucketServer) DeepCopy() *BasicAuthBitbucketServer { + if in == nil { + return nil + } + out := new(BasicAuthBitbucketServer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BearerTokenBitbucketCloud) DeepCopyInto(out *BearerTokenBitbucketCloud) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BearerTokenBitbucketCloud. +func (in *BearerTokenBitbucketCloud) DeepCopy() *BearerTokenBitbucketCloud { + if in == nil { + return nil + } + out := new(BearerTokenBitbucketCloud) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ChartDetails) DeepCopyInto(out *ChartDetails) { + *out = *in + if in.Maintainers != nil { + in, out := &in.Maintainers, &out.Maintainers + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartDetails. +func (in *ChartDetails) DeepCopy() *ChartDetails { + if in == nil { + return nil + } + out := new(ChartDetails) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Cluster) DeepCopyInto(out *Cluster) { + *out = *in + in.Config.DeepCopyInto(&out.Config) + in.ConnectionState.DeepCopyInto(&out.ConnectionState) + if in.Namespaces != nil { + in, out := &in.Namespaces, &out.Namespaces + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.RefreshRequestedAt != nil { + in, out := &in.RefreshRequestedAt, &out.RefreshRequestedAt + *out = (*in).DeepCopy() + } + in.Info.DeepCopyInto(&out.Info) + if in.Shard != nil { + in, out := &in.Shard, &out.Shard + *out = new(int64) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster. +func (in *Cluster) DeepCopy() *Cluster { + if in == nil { + return nil + } + out := new(Cluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterCacheInfo) DeepCopyInto(out *ClusterCacheInfo) { + *out = *in + if in.LastCacheSyncTime != nil { + in, out := &in.LastCacheSyncTime, &out.LastCacheSyncTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCacheInfo. +func (in *ClusterCacheInfo) DeepCopy() *ClusterCacheInfo { + if in == nil { + return nil + } + out := new(ClusterCacheInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig) { + *out = *in + in.TLSClientConfig.DeepCopyInto(&out.TLSClientConfig) + if in.AWSAuthConfig != nil { + in, out := &in.AWSAuthConfig, &out.AWSAuthConfig + *out = new(AWSAuthConfig) + **out = **in + } + if in.ExecProviderConfig != nil { + in, out := &in.ExecProviderConfig, &out.ExecProviderConfig + *out = new(ExecProviderConfig) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfig. +func (in *ClusterConfig) DeepCopy() *ClusterConfig { + if in == nil { + return nil + } + out := new(ClusterConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterGenerator) DeepCopyInto(out *ClusterGenerator) { + *out = *in + in.Selector.DeepCopyInto(&out.Selector) + in.Template.DeepCopyInto(&out.Template) + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterGenerator. +func (in *ClusterGenerator) DeepCopy() *ClusterGenerator { + if in == nil { + return nil + } + out := new(ClusterGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterInfo) DeepCopyInto(out *ClusterInfo) { + *out = *in + in.ConnectionState.DeepCopyInto(&out.ConnectionState) + in.CacheInfo.DeepCopyInto(&out.CacheInfo) + if in.APIVersions != nil { + in, out := &in.APIVersions, &out.APIVersions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInfo. +func (in *ClusterInfo) DeepCopy() *ClusterInfo { + if in == nil { + return nil + } + out := new(ClusterInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterList) DeepCopyInto(out *ClusterList) { + *out = *in + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Cluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. +func (in *ClusterList) DeepCopy() *ClusterList { + if in == nil { + return nil + } + out := new(ClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Command) DeepCopyInto(out *Command) { + *out = *in + if in.Command != nil { + in, out := &in.Command, &out.Command + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Command. +func (in *Command) DeepCopy() *Command { + if in == nil { + return nil + } + out := new(Command) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ComparedTo) DeepCopyInto(out *ComparedTo) { + *out = *in + in.Source.DeepCopyInto(&out.Source) + out.Destination = in.Destination + if in.Sources != nil { + in, out := &in.Sources, &out.Sources + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IgnoreDifferences != nil { + in, out := &in.IgnoreDifferences, &out.IgnoreDifferences + *out = make(IgnoreDifferences, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComparedTo. +func (in *ComparedTo) DeepCopy() *ComparedTo { + if in == nil { + return nil + } + out := new(ComparedTo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ComponentParameter) DeepCopyInto(out *ComponentParameter) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameter. +func (in *ComponentParameter) DeepCopy() *ComponentParameter { + if in == nil { + return nil + } + out := new(ComponentParameter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigManagementPlugin) DeepCopyInto(out *ConfigManagementPlugin) { + *out = *in + if in.Init != nil { + in, out := &in.Init, &out.Init + *out = new(Command) + (*in).DeepCopyInto(*out) + } + in.Generate.DeepCopyInto(&out.Generate) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigManagementPlugin. +func (in *ConfigManagementPlugin) DeepCopy() *ConfigManagementPlugin { + if in == nil { + return nil + } + out := new(ConfigManagementPlugin) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConnectionState) DeepCopyInto(out *ConnectionState) { + *out = *in + if in.ModifiedAt != nil { + in, out := &in.ModifiedAt, &out.ModifiedAt + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionState. +func (in *ConnectionState) DeepCopy() *ConnectionState { + if in == nil { + return nil + } + out := new(ConnectionState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DuckTypeGenerator) DeepCopyInto(out *DuckTypeGenerator) { + *out = *in + if in.RequeueAfterSeconds != nil { + in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds + *out = new(int64) + **out = **in + } + in.LabelSelector.DeepCopyInto(&out.LabelSelector) + in.Template.DeepCopyInto(&out.Template) + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckTypeGenerator. +func (in *DuckTypeGenerator) DeepCopy() *DuckTypeGenerator { + if in == nil { + return nil + } + out := new(DuckTypeGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in Env) DeepCopyInto(out *Env) { + { + in := &in + *out = make(Env, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(EnvEntry) + **out = **in + } + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Env. +func (in Env) DeepCopy() Env { + if in == nil { + return nil + } + out := new(Env) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EnvEntry) DeepCopyInto(out *EnvEntry) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvEntry. +func (in *EnvEntry) DeepCopy() *EnvEntry { + if in == nil { + return nil + } + out := new(EnvEntry) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecProviderConfig) DeepCopyInto(out *ExecProviderConfig) { + *out = *in + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecProviderConfig. +func (in *ExecProviderConfig) DeepCopy() *ExecProviderConfig { + if in == nil { + return nil + } + out := new(ExecProviderConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitDirectoryGeneratorItem) DeepCopyInto(out *GitDirectoryGeneratorItem) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitDirectoryGeneratorItem. +func (in *GitDirectoryGeneratorItem) DeepCopy() *GitDirectoryGeneratorItem { + if in == nil { + return nil + } + out := new(GitDirectoryGeneratorItem) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitFileGeneratorItem) DeepCopyInto(out *GitFileGeneratorItem) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitFileGeneratorItem. +func (in *GitFileGeneratorItem) DeepCopy() *GitFileGeneratorItem { + if in == nil { + return nil + } + out := new(GitFileGeneratorItem) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitGenerator) DeepCopyInto(out *GitGenerator) { + *out = *in + if in.Directories != nil { + in, out := &in.Directories, &out.Directories + *out = make([]GitDirectoryGeneratorItem, len(*in)) + copy(*out, *in) + } + if in.Files != nil { + in, out := &in.Files, &out.Files + *out = make([]GitFileGeneratorItem, len(*in)) + copy(*out, *in) + } + if in.RequeueAfterSeconds != nil { + in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds + *out = new(int64) + **out = **in + } + in.Template.DeepCopyInto(&out.Template) + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitGenerator. +func (in *GitGenerator) DeepCopy() *GitGenerator { + if in == nil { + return nil + } + out := new(GitGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GnuPGPublicKey) DeepCopyInto(out *GnuPGPublicKey) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GnuPGPublicKey. +func (in *GnuPGPublicKey) DeepCopy() *GnuPGPublicKey { + if in == nil { + return nil + } + out := new(GnuPGPublicKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GnuPGPublicKeyList) DeepCopyInto(out *GnuPGPublicKeyList) { + *out = *in + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]GnuPGPublicKey, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GnuPGPublicKeyList. +func (in *GnuPGPublicKeyList) DeepCopy() *GnuPGPublicKeyList { + if in == nil { + return nil + } + out := new(GnuPGPublicKeyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HealthStatus) DeepCopyInto(out *HealthStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthStatus. +func (in *HealthStatus) DeepCopy() *HealthStatus { + if in == nil { + return nil + } + out := new(HealthStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HelmFileParameter) DeepCopyInto(out *HelmFileParameter) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmFileParameter. +func (in *HelmFileParameter) DeepCopy() *HelmFileParameter { + if in == nil { + return nil + } + out := new(HelmFileParameter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HelmOptions) DeepCopyInto(out *HelmOptions) { + *out = *in + if in.ValuesFileSchemes != nil { + in, out := &in.ValuesFileSchemes, &out.ValuesFileSchemes + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmOptions. +func (in *HelmOptions) DeepCopy() *HelmOptions { + if in == nil { + return nil + } + out := new(HelmOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HelmParameter) DeepCopyInto(out *HelmParameter) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmParameter. +func (in *HelmParameter) DeepCopy() *HelmParameter { + if in == nil { + return nil + } + out := new(HelmParameter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostInfo) DeepCopyInto(out *HostInfo) { + *out = *in + if in.ResourcesInfo != nil { + in, out := &in.ResourcesInfo, &out.ResourcesInfo + *out = make([]HostResourceInfo, len(*in)) + copy(*out, *in) + } + out.SystemInfo = in.SystemInfo + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostInfo. +func (in *HostInfo) DeepCopy() *HostInfo { + if in == nil { + return nil + } + out := new(HostInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostResourceInfo) DeepCopyInto(out *HostResourceInfo) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostResourceInfo. +func (in *HostResourceInfo) DeepCopy() *HostResourceInfo { + if in == nil { + return nil + } + out := new(HostResourceInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in IgnoreDifferences) DeepCopyInto(out *IgnoreDifferences) { + { + in := &in + *out = make(IgnoreDifferences, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IgnoreDifferences. +func (in IgnoreDifferences) DeepCopy() IgnoreDifferences { + if in == nil { + return nil + } + out := new(IgnoreDifferences) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Info) DeepCopyInto(out *Info) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Info. +func (in *Info) DeepCopy() *Info { + if in == nil { + return nil + } + out := new(Info) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InfoItem) DeepCopyInto(out *InfoItem) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfoItem. +func (in *InfoItem) DeepCopy() *InfoItem { + if in == nil { + return nil + } + out := new(InfoItem) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JWTToken) DeepCopyInto(out *JWTToken) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTToken. +func (in *JWTToken) DeepCopy() *JWTToken { + if in == nil { + return nil + } + out := new(JWTToken) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JWTTokens) DeepCopyInto(out *JWTTokens) { + *out = *in + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]JWTToken, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTTokens. +func (in *JWTTokens) DeepCopy() *JWTTokens { + if in == nil { + return nil + } + out := new(JWTTokens) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JsonnetVar) DeepCopyInto(out *JsonnetVar) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JsonnetVar. +func (in *JsonnetVar) DeepCopy() *JsonnetVar { + if in == nil { + return nil + } + out := new(JsonnetVar) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KnownTypeField) DeepCopyInto(out *KnownTypeField) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KnownTypeField. +func (in *KnownTypeField) DeepCopy() *KnownTypeField { + if in == nil { + return nil + } + out := new(KnownTypeField) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizeGvk) DeepCopyInto(out *KustomizeGvk) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeGvk. +func (in *KustomizeGvk) DeepCopy() *KustomizeGvk { + if in == nil { + return nil + } + out := new(KustomizeGvk) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in KustomizeImages) DeepCopyInto(out *KustomizeImages) { + { + in := &in + *out = make(KustomizeImages, len(*in)) + copy(*out, *in) + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeImages. +func (in KustomizeImages) DeepCopy() KustomizeImages { + if in == nil { + return nil + } + out := new(KustomizeImages) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizeOptions) DeepCopyInto(out *KustomizeOptions) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeOptions. +func (in *KustomizeOptions) DeepCopy() *KustomizeOptions { + if in == nil { + return nil + } + out := new(KustomizeOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizePatch) DeepCopyInto(out *KustomizePatch) { + *out = *in + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(KustomizeSelector) + **out = **in + } + if in.Options != nil { + in, out := &in.Options, &out.Options + *out = make(map[string]bool, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizePatch. +func (in *KustomizePatch) DeepCopy() *KustomizePatch { + if in == nil { + return nil + } + out := new(KustomizePatch) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in KustomizePatches) DeepCopyInto(out *KustomizePatches) { + { + in := &in + *out = make(KustomizePatches, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizePatches. +func (in KustomizePatches) DeepCopy() KustomizePatches { + if in == nil { + return nil + } + out := new(KustomizePatches) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizeReplica) DeepCopyInto(out *KustomizeReplica) { + *out = *in + out.Count = in.Count + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplica. +func (in *KustomizeReplica) DeepCopy() *KustomizeReplica { + if in == nil { + return nil + } + out := new(KustomizeReplica) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in KustomizeReplicas) DeepCopyInto(out *KustomizeReplicas) { + { + in := &in + *out = make(KustomizeReplicas, len(*in)) + copy(*out, *in) + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplicas. +func (in KustomizeReplicas) DeepCopy() KustomizeReplicas { + if in == nil { + return nil + } + out := new(KustomizeReplicas) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizeResId) DeepCopyInto(out *KustomizeResId) { + *out = *in + out.KustomizeGvk = in.KustomizeGvk + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeResId. +func (in *KustomizeResId) DeepCopy() *KustomizeResId { + if in == nil { + return nil + } + out := new(KustomizeResId) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KustomizeSelector) DeepCopyInto(out *KustomizeSelector) { + *out = *in + out.KustomizeResId = in.KustomizeResId + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeSelector. +func (in *KustomizeSelector) DeepCopy() *KustomizeSelector { + if in == nil { + return nil + } + out := new(KustomizeSelector) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ListGenerator) DeepCopyInto(out *ListGenerator) { + *out = *in + if in.Elements != nil { + in, out := &in.Elements, &out.Elements + *out = make([]apiextensionsv1.JSON, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListGenerator. +func (in *ListGenerator) DeepCopy() *ListGenerator { + if in == nil { + return nil + } + out := new(ListGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedNamespaceMetadata) DeepCopyInto(out *ManagedNamespaceMetadata) { + *out = *in + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedNamespaceMetadata. +func (in *ManagedNamespaceMetadata) DeepCopy() *ManagedNamespaceMetadata { + if in == nil { + return nil + } + out := new(ManagedNamespaceMetadata) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MatrixGenerator) DeepCopyInto(out *MatrixGenerator) { + *out = *in + if in.Generators != nil { + in, out := &in.Generators, &out.Generators + *out = make([]ApplicationSetNestedGenerator, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatrixGenerator. +func (in *MatrixGenerator) DeepCopy() *MatrixGenerator { + if in == nil { + return nil + } + out := new(MatrixGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MergeGenerator) DeepCopyInto(out *MergeGenerator) { + *out = *in + if in.Generators != nil { + in, out := &in.Generators, &out.Generators + *out = make([]ApplicationSetNestedGenerator, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MergeKeys != nil { + in, out := &in.MergeKeys, &out.MergeKeys + *out = make([]string, len(*in)) + copy(*out, *in) + } + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MergeGenerator. +func (in *MergeGenerator) DeepCopy() *MergeGenerator { + if in == nil { + return nil + } + out := new(MergeGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NestedMatrixGenerator) DeepCopyInto(out *NestedMatrixGenerator) { + *out = *in + if in.Generators != nil { + in, out := &in.Generators, &out.Generators + *out = make(ApplicationSetTerminalGenerators, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedMatrixGenerator. +func (in *NestedMatrixGenerator) DeepCopy() *NestedMatrixGenerator { + if in == nil { + return nil + } + out := new(NestedMatrixGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NestedMergeGenerator) DeepCopyInto(out *NestedMergeGenerator) { + *out = *in + if in.Generators != nil { + in, out := &in.Generators, &out.Generators + *out = make(ApplicationSetTerminalGenerators, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MergeKeys != nil { + in, out := &in.MergeKeys, &out.MergeKeys + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedMergeGenerator. +func (in *NestedMergeGenerator) DeepCopy() *NestedMergeGenerator { + if in == nil { + return nil + } + out := new(NestedMergeGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Operation) DeepCopyInto(out *Operation) { + *out = *in + if in.Sync != nil { + in, out := &in.Sync, &out.Sync + *out = new(SyncOperation) + (*in).DeepCopyInto(*out) + } + out.InitiatedBy = in.InitiatedBy + if in.Info != nil { + in, out := &in.Info, &out.Info + *out = make([]*Info, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(Info) + **out = **in + } + } + } + in.Retry.DeepCopyInto(&out.Retry) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operation. +func (in *Operation) DeepCopy() *Operation { + if in == nil { + return nil + } + out := new(Operation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OperationInitiator) DeepCopyInto(out *OperationInitiator) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationInitiator. +func (in *OperationInitiator) DeepCopy() *OperationInitiator { + if in == nil { + return nil + } + out := new(OperationInitiator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OperationState) DeepCopyInto(out *OperationState) { + *out = *in + in.Operation.DeepCopyInto(&out.Operation) + if in.SyncResult != nil { + in, out := &in.SyncResult, &out.SyncResult + *out = new(SyncOperationResult) + (*in).DeepCopyInto(*out) + } + in.StartedAt.DeepCopyInto(&out.StartedAt) + if in.FinishedAt != nil { + in, out := &in.FinishedAt, &out.FinishedAt + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationState. +func (in *OperationState) DeepCopy() *OperationState { + if in == nil { + return nil + } + out := new(OperationState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OptionalArray) DeepCopyInto(out *OptionalArray) { + *out = *in + if in.Array != nil { + in, out := &in.Array, &out.Array + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalArray. +func (in *OptionalArray) DeepCopy() *OptionalArray { + if in == nil { + return nil + } + out := new(OptionalArray) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OptionalMap) DeepCopyInto(out *OptionalMap) { + *out = *in + if in.Map != nil { + in, out := &in.Map, &out.Map + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalMap. +func (in *OptionalMap) DeepCopy() *OptionalMap { + if in == nil { + return nil + } + out := new(OptionalMap) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrphanedResourceKey) DeepCopyInto(out *OrphanedResourceKey) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrphanedResourceKey. +func (in *OrphanedResourceKey) DeepCopy() *OrphanedResourceKey { + if in == nil { + return nil + } + out := new(OrphanedResourceKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrphanedResourcesMonitorSettings) DeepCopyInto(out *OrphanedResourcesMonitorSettings) { + *out = *in + if in.Warn != nil { + in, out := &in.Warn, &out.Warn + *out = new(bool) + **out = **in + } + if in.Ignore != nil { + in, out := &in.Ignore, &out.Ignore + *out = make([]OrphanedResourceKey, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrphanedResourcesMonitorSettings. +func (in *OrphanedResourcesMonitorSettings) DeepCopy() *OrphanedResourcesMonitorSettings { + if in == nil { + return nil + } + out := new(OrphanedResourcesMonitorSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OverrideIgnoreDiff) DeepCopyInto(out *OverrideIgnoreDiff) { + *out = *in + if in.JSONPointers != nil { + in, out := &in.JSONPointers, &out.JSONPointers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.JQPathExpressions != nil { + in, out := &in.JQPathExpressions, &out.JQPathExpressions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ManagedFieldsManagers != nil { + in, out := &in.ManagedFieldsManagers, &out.ManagedFieldsManagers + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideIgnoreDiff. +func (in *OverrideIgnoreDiff) DeepCopy() *OverrideIgnoreDiff { + if in == nil { + return nil + } + out := new(OverrideIgnoreDiff) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PluginConfigMapRef) DeepCopyInto(out *PluginConfigMapRef) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigMapRef. +func (in *PluginConfigMapRef) DeepCopy() *PluginConfigMapRef { + if in == nil { + return nil + } + out := new(PluginConfigMapRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PluginGenerator) DeepCopyInto(out *PluginGenerator) { + *out = *in + out.ConfigMapRef = in.ConfigMapRef + in.Input.DeepCopyInto(&out.Input) + if in.RequeueAfterSeconds != nil { + in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds + *out = new(int64) + **out = **in + } + in.Template.DeepCopyInto(&out.Template) + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginGenerator. +func (in *PluginGenerator) DeepCopy() *PluginGenerator { + if in == nil { + return nil + } + out := new(PluginGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PluginInput) DeepCopyInto(out *PluginInput) { + *out = *in + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make(PluginParameters, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInput. +func (in *PluginInput) DeepCopy() *PluginInput { + if in == nil { + return nil + } + out := new(PluginInput) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in PluginParameters) DeepCopyInto(out *PluginParameters) { + { + in := &in + *out = make(PluginParameters, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginParameters. +func (in PluginParameters) DeepCopy() PluginParameters { + if in == nil { + return nil + } + out := new(PluginParameters) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRole) DeepCopyInto(out *ProjectRole) { + *out = *in + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.JWTTokens != nil { + in, out := &in.JWTTokens, &out.JWTTokens + *out = make([]JWTToken, len(*in)) + copy(*out, *in) + } + if in.Groups != nil { + in, out := &in.Groups, &out.Groups + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRole. +func (in *ProjectRole) DeepCopy() *ProjectRole { + if in == nil { + return nil + } + out := new(ProjectRole) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGenerator) DeepCopyInto(out *PullRequestGenerator) { + *out = *in + if in.Github != nil { + in, out := &in.Github, &out.Github + *out = new(PullRequestGeneratorGithub) + (*in).DeepCopyInto(*out) + } + if in.GitLab != nil { + in, out := &in.GitLab, &out.GitLab + *out = new(PullRequestGeneratorGitLab) + (*in).DeepCopyInto(*out) + } + if in.Gitea != nil { + in, out := &in.Gitea, &out.Gitea + *out = new(PullRequestGeneratorGitea) + (*in).DeepCopyInto(*out) + } + if in.BitbucketServer != nil { + in, out := &in.BitbucketServer, &out.BitbucketServer + *out = new(PullRequestGeneratorBitbucketServer) + (*in).DeepCopyInto(*out) + } + if in.Filters != nil { + in, out := &in.Filters, &out.Filters + *out = make([]PullRequestGeneratorFilter, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RequeueAfterSeconds != nil { + in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds + *out = new(int64) + **out = **in + } + in.Template.DeepCopyInto(&out.Template) + if in.Bitbucket != nil { + in, out := &in.Bitbucket, &out.Bitbucket + *out = new(PullRequestGeneratorBitbucket) + (*in).DeepCopyInto(*out) + } + if in.AzureDevOps != nil { + in, out := &in.AzureDevOps, &out.AzureDevOps + *out = new(PullRequestGeneratorAzureDevOps) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGenerator. +func (in *PullRequestGenerator) DeepCopy() *PullRequestGenerator { + if in == nil { + return nil + } + out := new(PullRequestGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorAzureDevOps) DeepCopyInto(out *PullRequestGeneratorAzureDevOps) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorAzureDevOps. +func (in *PullRequestGeneratorAzureDevOps) DeepCopy() *PullRequestGeneratorAzureDevOps { + if in == nil { + return nil + } + out := new(PullRequestGeneratorAzureDevOps) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorBitbucket) DeepCopyInto(out *PullRequestGeneratorBitbucket) { + *out = *in + if in.BasicAuth != nil { + in, out := &in.BasicAuth, &out.BasicAuth + *out = new(BasicAuthBitbucketServer) + (*in).DeepCopyInto(*out) + } + if in.BearerToken != nil { + in, out := &in.BearerToken, &out.BearerToken + *out = new(BearerTokenBitbucketCloud) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorBitbucket. +func (in *PullRequestGeneratorBitbucket) DeepCopy() *PullRequestGeneratorBitbucket { + if in == nil { + return nil + } + out := new(PullRequestGeneratorBitbucket) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorBitbucketServer) DeepCopyInto(out *PullRequestGeneratorBitbucketServer) { + *out = *in + if in.BasicAuth != nil { + in, out := &in.BasicAuth, &out.BasicAuth + *out = new(BasicAuthBitbucketServer) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorBitbucketServer. +func (in *PullRequestGeneratorBitbucketServer) DeepCopy() *PullRequestGeneratorBitbucketServer { + if in == nil { + return nil + } + out := new(PullRequestGeneratorBitbucketServer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorFilter) DeepCopyInto(out *PullRequestGeneratorFilter) { + *out = *in + if in.BranchMatch != nil { + in, out := &in.BranchMatch, &out.BranchMatch + *out = new(string) + **out = **in + } + if in.TargetBranchMatch != nil { + in, out := &in.TargetBranchMatch, &out.TargetBranchMatch + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorFilter. +func (in *PullRequestGeneratorFilter) DeepCopy() *PullRequestGeneratorFilter { + if in == nil { + return nil + } + out := new(PullRequestGeneratorFilter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorGitLab) DeepCopyInto(out *PullRequestGeneratorGitLab) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGitLab. +func (in *PullRequestGeneratorGitLab) DeepCopy() *PullRequestGeneratorGitLab { + if in == nil { + return nil + } + out := new(PullRequestGeneratorGitLab) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorGitea) DeepCopyInto(out *PullRequestGeneratorGitea) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGitea. +func (in *PullRequestGeneratorGitea) DeepCopy() *PullRequestGeneratorGitea { + if in == nil { + return nil + } + out := new(PullRequestGeneratorGitea) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PullRequestGeneratorGithub) DeepCopyInto(out *PullRequestGeneratorGithub) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGithub. +func (in *PullRequestGeneratorGithub) DeepCopy() *PullRequestGeneratorGithub { + if in == nil { + return nil + } + out := new(PullRequestGeneratorGithub) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RefTarget) DeepCopyInto(out *RefTarget) { + *out = *in + in.Repo.DeepCopyInto(&out.Repo) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefTarget. +func (in *RefTarget) DeepCopy() *RefTarget { + if in == nil { + return nil + } + out := new(RefTarget) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in RefTargetRevisionMapping) DeepCopyInto(out *RefTargetRevisionMapping) { + { + in := &in + *out = make(RefTargetRevisionMapping, len(*in)) + for key, val := range *in { + var outVal *RefTarget + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(RefTarget) + (*in).DeepCopyInto(*out) + } + (*out)[key] = outVal + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefTargetRevisionMapping. +func (in RefTargetRevisionMapping) DeepCopy() RefTargetRevisionMapping { + if in == nil { + return nil + } + out := new(RefTargetRevisionMapping) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RepoCreds) DeepCopyInto(out *RepoCreds) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepoCreds. +func (in *RepoCreds) DeepCopy() *RepoCreds { + if in == nil { + return nil + } + out := new(RepoCreds) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RepoCredsList) DeepCopyInto(out *RepoCredsList) { + *out = *in + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RepoCreds, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepoCredsList. +func (in *RepoCredsList) DeepCopy() *RepoCredsList { + if in == nil { + return nil + } + out := new(RepoCredsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in Repositories) DeepCopyInto(out *Repositories) { + { + in := &in + *out = make(Repositories, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(Repository) + (*in).DeepCopyInto(*out) + } + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repositories. +func (in Repositories) DeepCopy() Repositories { + if in == nil { + return nil + } + out := new(Repositories) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Repository) DeepCopyInto(out *Repository) { + *out = *in + in.ConnectionState.DeepCopyInto(&out.ConnectionState) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repository. +func (in *Repository) DeepCopy() *Repository { + if in == nil { + return nil + } + out := new(Repository) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RepositoryCertificate) DeepCopyInto(out *RepositoryCertificate) { + *out = *in + if in.CertData != nil { + in, out := &in.CertData, &out.CertData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryCertificate. +func (in *RepositoryCertificate) DeepCopy() *RepositoryCertificate { + if in == nil { + return nil + } + out := new(RepositoryCertificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RepositoryCertificateList) DeepCopyInto(out *RepositoryCertificateList) { + *out = *in + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RepositoryCertificate, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryCertificateList. +func (in *RepositoryCertificateList) DeepCopy() *RepositoryCertificateList { + if in == nil { + return nil + } + out := new(RepositoryCertificateList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RepositoryList) DeepCopyInto(out *RepositoryList) { + *out = *in + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make(Repositories, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(Repository) + (*in).DeepCopyInto(*out) + } + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryList. +func (in *RepositoryList) DeepCopy() *RepositoryList { + if in == nil { + return nil + } + out := new(RepositoryList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceAction) DeepCopyInto(out *ResourceAction) { + *out = *in + if in.Params != nil { + in, out := &in.Params, &out.Params + *out = make([]ResourceActionParam, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAction. +func (in *ResourceAction) DeepCopy() *ResourceAction { + if in == nil { + return nil + } + out := new(ResourceAction) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceActionDefinition) DeepCopyInto(out *ResourceActionDefinition) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActionDefinition. +func (in *ResourceActionDefinition) DeepCopy() *ResourceActionDefinition { + if in == nil { + return nil + } + out := new(ResourceActionDefinition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceActionParam) DeepCopyInto(out *ResourceActionParam) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActionParam. +func (in *ResourceActionParam) DeepCopy() *ResourceActionParam { + if in == nil { + return nil + } + out := new(ResourceActionParam) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceActions) DeepCopyInto(out *ResourceActions) { + *out = *in + if in.Definitions != nil { + in, out := &in.Definitions, &out.Definitions + *out = make([]ResourceActionDefinition, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActions. +func (in *ResourceActions) DeepCopy() *ResourceActions { + if in == nil { + return nil + } + out := new(ResourceActions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceDiff) DeepCopyInto(out *ResourceDiff) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDiff. +func (in *ResourceDiff) DeepCopy() *ResourceDiff { + if in == nil { + return nil + } + out := new(ResourceDiff) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceIgnoreDifferences) DeepCopyInto(out *ResourceIgnoreDifferences) { + *out = *in + if in.JSONPointers != nil { + in, out := &in.JSONPointers, &out.JSONPointers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.JQPathExpressions != nil { + in, out := &in.JQPathExpressions, &out.JQPathExpressions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ManagedFieldsManagers != nil { + in, out := &in.ManagedFieldsManagers, &out.ManagedFieldsManagers + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceIgnoreDifferences. +func (in *ResourceIgnoreDifferences) DeepCopy() *ResourceIgnoreDifferences { + if in == nil { + return nil + } + out := new(ResourceIgnoreDifferences) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceNetworkingInfo) DeepCopyInto(out *ResourceNetworkingInfo) { + *out = *in + if in.TargetLabels != nil { + in, out := &in.TargetLabels, &out.TargetLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TargetRefs != nil { + in, out := &in.TargetRefs, &out.TargetRefs + *out = make([]ResourceRef, len(*in)) + copy(*out, *in) + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make([]corev1.LoadBalancerIngress, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ExternalURLs != nil { + in, out := &in.ExternalURLs, &out.ExternalURLs + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceNetworkingInfo. +func (in *ResourceNetworkingInfo) DeepCopy() *ResourceNetworkingInfo { + if in == nil { + return nil + } + out := new(ResourceNetworkingInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceNode) DeepCopyInto(out *ResourceNode) { + *out = *in + out.ResourceRef = in.ResourceRef + if in.ParentRefs != nil { + in, out := &in.ParentRefs, &out.ParentRefs + *out = make([]ResourceRef, len(*in)) + copy(*out, *in) + } + if in.Info != nil { + in, out := &in.Info, &out.Info + *out = make([]InfoItem, len(*in)) + copy(*out, *in) + } + if in.NetworkingInfo != nil { + in, out := &in.NetworkingInfo, &out.NetworkingInfo + *out = new(ResourceNetworkingInfo) + (*in).DeepCopyInto(*out) + } + if in.Images != nil { + in, out := &in.Images, &out.Images + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Health != nil { + in, out := &in.Health, &out.Health + *out = new(HealthStatus) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceNode. +func (in *ResourceNode) DeepCopy() *ResourceNode { + if in == nil { + return nil + } + out := new(ResourceNode) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceOverride) DeepCopyInto(out *ResourceOverride) { + *out = *in + in.IgnoreDifferences.DeepCopyInto(&out.IgnoreDifferences) + in.IgnoreResourceUpdates.DeepCopyInto(&out.IgnoreResourceUpdates) + if in.KnownTypeFields != nil { + in, out := &in.KnownTypeFields, &out.KnownTypeFields + *out = make([]KnownTypeField, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOverride. +func (in *ResourceOverride) DeepCopy() *ResourceOverride { + if in == nil { + return nil + } + out := new(ResourceOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceRef) DeepCopyInto(out *ResourceRef) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRef. +func (in *ResourceRef) DeepCopy() *ResourceRef { + if in == nil { + return nil + } + out := new(ResourceRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceResult) DeepCopyInto(out *ResourceResult) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceResult. +func (in *ResourceResult) DeepCopy() *ResourceResult { + if in == nil { + return nil + } + out := new(ResourceResult) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ResourceResults) DeepCopyInto(out *ResourceResults) { + { + in := &in + *out = make(ResourceResults, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(ResourceResult) + **out = **in + } + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceResults. +func (in ResourceResults) DeepCopy() ResourceResults { + if in == nil { + return nil + } + out := new(ResourceResults) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus) { + *out = *in + if in.Health != nil { + in, out := &in.Health, &out.Health + *out = new(HealthStatus) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceStatus. +func (in *ResourceStatus) DeepCopy() *ResourceStatus { + if in == nil { + return nil + } + out := new(ResourceStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RetryStrategy) DeepCopyInto(out *RetryStrategy) { + *out = *in + if in.Backoff != nil { + in, out := &in.Backoff, &out.Backoff + *out = new(Backoff) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryStrategy. +func (in *RetryStrategy) DeepCopy() *RetryStrategy { + if in == nil { + return nil + } + out := new(RetryStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in RevisionHistories) DeepCopyInto(out *RevisionHistories) { + { + in := &in + *out = make(RevisionHistories, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionHistories. +func (in RevisionHistories) DeepCopy() RevisionHistories { + if in == nil { + return nil + } + out := new(RevisionHistories) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RevisionHistory) DeepCopyInto(out *RevisionHistory) { + *out = *in + in.DeployedAt.DeepCopyInto(&out.DeployedAt) + in.Source.DeepCopyInto(&out.Source) + if in.DeployStartedAt != nil { + in, out := &in.DeployStartedAt, &out.DeployStartedAt + *out = (*in).DeepCopy() + } + if in.Sources != nil { + in, out := &in.Sources, &out.Sources + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } + out.InitiatedBy = in.InitiatedBy + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionHistory. +func (in *RevisionHistory) DeepCopy() *RevisionHistory { + if in == nil { + return nil + } + out := new(RevisionHistory) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RevisionMetadata) DeepCopyInto(out *RevisionMetadata) { + *out = *in + in.Date.DeepCopyInto(&out.Date) + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionMetadata. +func (in *RevisionMetadata) DeepCopy() *RevisionMetadata { + if in == nil { + return nil + } + out := new(RevisionMetadata) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGenerator) DeepCopyInto(out *SCMProviderGenerator) { + *out = *in + if in.Github != nil { + in, out := &in.Github, &out.Github + *out = new(SCMProviderGeneratorGithub) + (*in).DeepCopyInto(*out) + } + if in.Gitlab != nil { + in, out := &in.Gitlab, &out.Gitlab + *out = new(SCMProviderGeneratorGitlab) + (*in).DeepCopyInto(*out) + } + if in.Bitbucket != nil { + in, out := &in.Bitbucket, &out.Bitbucket + *out = new(SCMProviderGeneratorBitbucket) + (*in).DeepCopyInto(*out) + } + if in.BitbucketServer != nil { + in, out := &in.BitbucketServer, &out.BitbucketServer + *out = new(SCMProviderGeneratorBitbucketServer) + (*in).DeepCopyInto(*out) + } + if in.Gitea != nil { + in, out := &in.Gitea, &out.Gitea + *out = new(SCMProviderGeneratorGitea) + (*in).DeepCopyInto(*out) + } + if in.AzureDevOps != nil { + in, out := &in.AzureDevOps, &out.AzureDevOps + *out = new(SCMProviderGeneratorAzureDevOps) + (*in).DeepCopyInto(*out) + } + if in.Filters != nil { + in, out := &in.Filters, &out.Filters + *out = make([]SCMProviderGeneratorFilter, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RequeueAfterSeconds != nil { + in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds + *out = new(int64) + **out = **in + } + in.Template.DeepCopyInto(&out.Template) + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.AWSCodeCommit != nil { + in, out := &in.AWSCodeCommit, &out.AWSCodeCommit + *out = new(SCMProviderGeneratorAWSCodeCommit) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGenerator. +func (in *SCMProviderGenerator) DeepCopy() *SCMProviderGenerator { + if in == nil { + return nil + } + out := new(SCMProviderGenerator) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopyInto(out *SCMProviderGeneratorAWSCodeCommit) { + *out = *in + if in.TagFilters != nil { + in, out := &in.TagFilters, &out.TagFilters + *out = make([]*TagFilter, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(TagFilter) + **out = **in + } + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorAWSCodeCommit. +func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopy() *SCMProviderGeneratorAWSCodeCommit { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorAWSCodeCommit) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorAzureDevOps) DeepCopyInto(out *SCMProviderGeneratorAzureDevOps) { + *out = *in + if in.AccessTokenRef != nil { + in, out := &in.AccessTokenRef, &out.AccessTokenRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorAzureDevOps. +func (in *SCMProviderGeneratorAzureDevOps) DeepCopy() *SCMProviderGeneratorAzureDevOps { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorAzureDevOps) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorBitbucket) DeepCopyInto(out *SCMProviderGeneratorBitbucket) { + *out = *in + if in.AppPasswordRef != nil { // pragma: allowlist secret + in, out := &in.AppPasswordRef, &out.AppPasswordRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorBitbucket. +func (in *SCMProviderGeneratorBitbucket) DeepCopy() *SCMProviderGeneratorBitbucket { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorBitbucket) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorBitbucketServer) DeepCopyInto(out *SCMProviderGeneratorBitbucketServer) { + *out = *in + if in.BasicAuth != nil { + in, out := &in.BasicAuth, &out.BasicAuth + *out = new(BasicAuthBitbucketServer) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorBitbucketServer. +func (in *SCMProviderGeneratorBitbucketServer) DeepCopy() *SCMProviderGeneratorBitbucketServer { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorBitbucketServer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorFilter) DeepCopyInto(out *SCMProviderGeneratorFilter) { + *out = *in + if in.RepositoryMatch != nil { + in, out := &in.RepositoryMatch, &out.RepositoryMatch + *out = new(string) + **out = **in + } + if in.PathsExist != nil { + in, out := &in.PathsExist, &out.PathsExist + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PathsDoNotExist != nil { + in, out := &in.PathsDoNotExist, &out.PathsDoNotExist + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.LabelMatch != nil { + in, out := &in.LabelMatch, &out.LabelMatch + *out = new(string) + **out = **in + } + if in.BranchMatch != nil { + in, out := &in.BranchMatch, &out.BranchMatch + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorFilter. +func (in *SCMProviderGeneratorFilter) DeepCopy() *SCMProviderGeneratorFilter { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorFilter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorGitea) DeepCopyInto(out *SCMProviderGeneratorGitea) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGitea. +func (in *SCMProviderGeneratorGitea) DeepCopy() *SCMProviderGeneratorGitea { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorGitea) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorGithub) DeepCopyInto(out *SCMProviderGeneratorGithub) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGithub. +func (in *SCMProviderGeneratorGithub) DeepCopy() *SCMProviderGeneratorGithub { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorGithub) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SCMProviderGeneratorGitlab) DeepCopyInto(out *SCMProviderGeneratorGitlab) { + *out = *in + if in.TokenRef != nil { + in, out := &in.TokenRef, &out.TokenRef + *out = new(SecretRef) + **out = **in + } + if in.IncludeSharedProjects != nil { + in, out := &in.IncludeSharedProjects, &out.IncludeSharedProjects + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGitlab. +func (in *SCMProviderGeneratorGitlab) DeepCopy() *SCMProviderGeneratorGitlab { + if in == nil { + return nil + } + out := new(SCMProviderGeneratorGitlab) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecretRef) DeepCopyInto(out *SecretRef) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef. +func (in *SecretRef) DeepCopy() *SecretRef { + if in == nil { + return nil + } + out := new(SecretRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SignatureKey) DeepCopyInto(out *SignatureKey) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureKey. +func (in *SignatureKey) DeepCopy() *SignatureKey { + if in == nil { + return nil + } + out := new(SignatureKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncOperation) DeepCopyInto(out *SyncOperation) { + *out = *in + if in.SyncStrategy != nil { + in, out := &in.SyncStrategy, &out.SyncStrategy + *out = new(SyncStrategy) + (*in).DeepCopyInto(*out) + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]SyncOperationResource, len(*in)) + copy(*out, *in) + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(ApplicationSource) + (*in).DeepCopyInto(*out) + } + if in.Manifests != nil { + in, out := &in.Manifests, &out.Manifests + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SyncOptions != nil { + in, out := &in.SyncOptions, &out.SyncOptions + *out = make(SyncOptions, len(*in)) + copy(*out, *in) + } + if in.Sources != nil { + in, out := &in.Sources, &out.Sources + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperation. +func (in *SyncOperation) DeepCopy() *SyncOperation { + if in == nil { + return nil + } + out := new(SyncOperation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncOperationResource) DeepCopyInto(out *SyncOperationResource) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperationResource. +func (in *SyncOperationResource) DeepCopy() *SyncOperationResource { + if in == nil { + return nil + } + out := new(SyncOperationResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncOperationResult) DeepCopyInto(out *SyncOperationResult) { + *out = *in + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make(ResourceResults, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(ResourceResult) + **out = **in + } + } + } + in.Source.DeepCopyInto(&out.Source) + if in.Sources != nil { + in, out := &in.Sources, &out.Sources + *out = make(ApplicationSources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ManagedNamespaceMetadata != nil { + in, out := &in.ManagedNamespaceMetadata, &out.ManagedNamespaceMetadata + *out = new(ManagedNamespaceMetadata) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperationResult. +func (in *SyncOperationResult) DeepCopy() *SyncOperationResult { + if in == nil { + return nil + } + out := new(SyncOperationResult) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in SyncOptions) DeepCopyInto(out *SyncOptions) { + { + in := &in + *out = make(SyncOptions, len(*in)) + copy(*out, *in) + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOptions. +func (in SyncOptions) DeepCopy() SyncOptions { + if in == nil { + return nil + } + out := new(SyncOptions) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncPolicy) DeepCopyInto(out *SyncPolicy) { + *out = *in + if in.Automated != nil { + in, out := &in.Automated, &out.Automated + *out = new(SyncPolicyAutomated) + **out = **in + } + if in.SyncOptions != nil { + in, out := &in.SyncOptions, &out.SyncOptions + *out = make(SyncOptions, len(*in)) + copy(*out, *in) + } + if in.Retry != nil { + in, out := &in.Retry, &out.Retry + *out = new(RetryStrategy) + (*in).DeepCopyInto(*out) + } + if in.ManagedNamespaceMetadata != nil { + in, out := &in.ManagedNamespaceMetadata, &out.ManagedNamespaceMetadata + *out = new(ManagedNamespaceMetadata) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncPolicy. +func (in *SyncPolicy) DeepCopy() *SyncPolicy { + if in == nil { + return nil + } + out := new(SyncPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncPolicyAutomated) DeepCopyInto(out *SyncPolicyAutomated) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncPolicyAutomated. +func (in *SyncPolicyAutomated) DeepCopy() *SyncPolicyAutomated { + if in == nil { + return nil + } + out := new(SyncPolicyAutomated) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncStatus) DeepCopyInto(out *SyncStatus) { + *out = *in + in.ComparedTo.DeepCopyInto(&out.ComparedTo) + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStatus. +func (in *SyncStatus) DeepCopy() *SyncStatus { + if in == nil { + return nil + } + out := new(SyncStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncStrategy) DeepCopyInto(out *SyncStrategy) { + *out = *in + if in.Apply != nil { + in, out := &in.Apply, &out.Apply + *out = new(SyncStrategyApply) + **out = **in + } + if in.Hook != nil { + in, out := &in.Hook, &out.Hook + *out = new(SyncStrategyHook) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategy. +func (in *SyncStrategy) DeepCopy() *SyncStrategy { + if in == nil { + return nil + } + out := new(SyncStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncStrategyApply) DeepCopyInto(out *SyncStrategyApply) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategyApply. +func (in *SyncStrategyApply) DeepCopy() *SyncStrategyApply { + if in == nil { + return nil + } + out := new(SyncStrategyApply) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncStrategyHook) DeepCopyInto(out *SyncStrategyHook) { + *out = *in + out.SyncStrategyApply = in.SyncStrategyApply + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategyHook. +func (in *SyncStrategyHook) DeepCopy() *SyncStrategyHook { + if in == nil { + return nil + } + out := new(SyncStrategyHook) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SyncWindow) DeepCopyInto(out *SyncWindow) { + *out = *in + if in.Applications != nil { + in, out := &in.Applications, &out.Applications + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Namespaces != nil { + in, out := &in.Namespaces, &out.Namespaces + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Clusters != nil { + in, out := &in.Clusters, &out.Clusters + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncWindow. +func (in *SyncWindow) DeepCopy() *SyncWindow { + if in == nil { + return nil + } + out := new(SyncWindow) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in SyncWindows) DeepCopyInto(out *SyncWindows) { + { + in := &in + *out = make(SyncWindows, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(SyncWindow) + (*in).DeepCopyInto(*out) + } + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncWindows. +func (in SyncWindows) DeepCopy() SyncWindows { + if in == nil { + return nil + } + out := new(SyncWindows) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) { + *out = *in + if in.CertData != nil { + in, out := &in.CertData, &out.CertData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.CAData != nil { + in, out := &in.CAData, &out.CAData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSClientConfig. +func (in *TLSClientConfig) DeepCopy() *TLSClientConfig { + if in == nil { + return nil + } + out := new(TLSClientConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TagFilter) DeepCopyInto(out *TagFilter) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagFilter. +func (in *TagFilter) DeepCopy() *TagFilter { + if in == nil { + return nil + } + out := new(TagFilter) + in.DeepCopyInto(out) + return out +} diff --git a/fleetshard/pkg/k8s/client.go b/fleetshard/pkg/k8s/client.go index 9ef7d705e7..f46c25f9c4 100644 --- a/fleetshard/pkg/k8s/client.go +++ b/fleetshard/pkg/k8s/client.go @@ -6,6 +6,7 @@ import ( "github.com/openshift/addon-operator/apis/addons" openshiftOperatorV1 "github.com/openshift/api/operator/v1" openshiftRouteV1 "github.com/openshift/api/route/v1" + argocdv1alpha1 "github.com/stackrox/acs-fleet-manager/argocd/v1alpha1" "github.com/stackrox/rox/operator/apis/platform/v1alpha1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -21,15 +22,22 @@ var routesGVK = schema.GroupVersionResource{ Resource: "routes", } +func must(err error) { + if err != nil { + glog.Fatal(err) + } +} + // CreateClientOrDie creates a new kubernetes client or dies func CreateClientOrDie() ctrlClient.Client { scheme := runtime.NewScheme() - _ = clientgoscheme.AddToScheme(scheme) - _ = v1alpha1.AddToScheme(scheme) - _ = openshiftRouteV1.Install(scheme) - _ = openshiftOperatorV1.Install(scheme) - _ = addons.AddToScheme(scheme) - _ = verticalpodautoscalingv1.AddToScheme(scheme) + must(clientgoscheme.AddToScheme(scheme)) + must(v1alpha1.AddToScheme(scheme)) + must(openshiftRouteV1.Install(scheme)) + must(openshiftOperatorV1.Install(scheme)) + must(addons.AddToScheme(scheme)) + must(verticalpodautoscalingv1.AddToScheme(scheme)) + must(argocdv1alpha1.AddToScheme(scheme)) config, err := ctrl.GetConfig() if err != nil { From 3172ba131e434c0cbd2b02fdcceddd57e79733bf Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 15:34:51 +0200 Subject: [PATCH 2/9] ROX-25847: add argocd types --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 49974e484f..7b4a6fb049 100644 --- a/go.mod +++ b/go.mod @@ -67,6 +67,7 @@ require ( gorm.io/gorm v1.25.11 helm.sh/helm/v3 v3.14.3 k8s.io/api v0.29.2 + k8s.io/apiextensions-apiserver v0.29.2 k8s.io/apimachinery v0.29.2 k8s.io/autoscaler/vertical-pod-autoscaler v1.2.0 k8s.io/client-go v0.29.2 @@ -212,7 +213,6 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.4.6 // indirect - k8s.io/apiextensions-apiserver v0.29.2 // indirect k8s.io/component-base v0.29.2 // indirect k8s.io/klog/v2 v2.120.0 // indirect k8s.io/kube-openapi v0.0.0-20240105020646-a37d4de58910 // indirect From d63be2721089197ca1c267f3e5d379c1021ccb9e Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:15:23 +0200 Subject: [PATCH 3/9] ROX-25847: add argocd types --- argocd/v1alpha1/README.md | 4 - argocd/v1alpha1/applicationset_types.go | 708 ---- argocd/v1alpha1/appproject_types.go | 31 - argocd/v1alpha1/register.go | 65 - argocd/v1alpha1/repository_types.go | 146 - argocd/v1alpha1/types.go | 1215 ------ argocd/v1alpha1/zz_generated_deepcopy.go | 4434 ---------------------- fleetshard/pkg/k8s/client.go | 4 +- go.mod | 130 +- go.sum | 1245 +++++- 10 files changed, 1321 insertions(+), 6661 deletions(-) delete mode 100644 argocd/v1alpha1/README.md delete mode 100644 argocd/v1alpha1/applicationset_types.go delete mode 100644 argocd/v1alpha1/appproject_types.go delete mode 100644 argocd/v1alpha1/register.go delete mode 100644 argocd/v1alpha1/repository_types.go delete mode 100644 argocd/v1alpha1/types.go delete mode 100644 argocd/v1alpha1/zz_generated_deepcopy.go diff --git a/argocd/v1alpha1/README.md b/argocd/v1alpha1/README.md deleted file mode 100644 index d34cb1a71f..0000000000 --- a/argocd/v1alpha1/README.md +++ /dev/null @@ -1,4 +0,0 @@ -These types were copy-pasted from https://github.com/argoproj/argo-cd/tree/master/pkg/apis/application/v1alpha1 - -We are not importing the ArgoCD dependency itself, because it would significantly -complexify the go.mod, and might introduce conflicts with the stackrox dependencies. diff --git a/argocd/v1alpha1/applicationset_types.go b/argocd/v1alpha1/applicationset_types.go deleted file mode 100644 index 5991ef8bdc..0000000000 --- a/argocd/v1alpha1/applicationset_types.go +++ /dev/null @@ -1,708 +0,0 @@ -package v1alpha1 - -import ( - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// Utility struct for a reference to a secret key. -type SecretRef struct { - SecretName string `json:"secretName" protobuf:"bytes,1,opt,name=secretName"` - Key string `json:"key" protobuf:"bytes,2,opt,name=key"` -} - -// Utility struct for a reference to a configmap key. -type ConfigMapKeyRef struct { - ConfigMapName string `json:"configMapName" protobuf:"bytes,1,opt,name=configMapName"` - Key string `json:"key" protobuf:"bytes,2,opt,name=key"` -} - -// ApplicationSet is a set of Application resources -type ApplicationSet struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Spec ApplicationSetSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - Status ApplicationSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// ApplicationSetSpec represents a class of application set state. -type ApplicationSetSpec struct { - GoTemplate bool `json:"goTemplate,omitempty" protobuf:"bytes,1,name=goTemplate"` - Generators []ApplicationSetGenerator `json:"generators" protobuf:"bytes,2,name=generators"` - Template ApplicationSetTemplate `json:"template" protobuf:"bytes,3,name=template"` - SyncPolicy *ApplicationSetSyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"` - Strategy *ApplicationSetStrategy `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"` - PreservedFields *ApplicationPreservedFields `json:"preservedFields,omitempty" protobuf:"bytes,6,opt,name=preservedFields"` - GoTemplateOptions []string `json:"goTemplateOptions,omitempty" protobuf:"bytes,7,opt,name=goTemplateOptions"` - // ApplyNestedSelectors enables selectors defined within the generators of two level-nested matrix or merge generators - ApplyNestedSelectors bool `json:"applyNestedSelectors,omitempty" protobuf:"bytes,8,name=applyNestedSelectors"` - IgnoreApplicationDifferences ApplicationSetIgnoreDifferences `json:"ignoreApplicationDifferences,omitempty" protobuf:"bytes,9,name=ignoreApplicationDifferences"` - TemplatePatch *string `json:"templatePatch,omitempty" protobuf:"bytes,10,name=templatePatch"` -} - -type ApplicationPreservedFields struct { - Annotations []string `json:"annotations,omitempty" protobuf:"bytes,1,name=annotations"` - Labels []string `json:"labels,omitempty" protobuf:"bytes,2,name=labels"` -} - -// ApplicationSetStrategy configures how generated Applications are updated in sequence. -type ApplicationSetStrategy struct { - Type string `json:"type,omitempty" protobuf:"bytes,1,opt,name=type"` - RollingSync *ApplicationSetRolloutStrategy `json:"rollingSync,omitempty" protobuf:"bytes,2,opt,name=rollingSync"` - // RollingUpdate *ApplicationSetRolloutStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,3,opt,name=rollingUpdate"` -} -type ApplicationSetRolloutStrategy struct { - Steps []ApplicationSetRolloutStep `json:"steps,omitempty" protobuf:"bytes,1,opt,name=steps"` -} - -type ApplicationSetRolloutStep struct { - MatchExpressions []ApplicationMatchExpression `json:"matchExpressions,omitempty" protobuf:"bytes,1,opt,name=matchExpressions"` - MaxUpdate *intstr.IntOrString `json:"maxUpdate,omitempty" protobuf:"bytes,2,opt,name=maxUpdate"` -} - -type ApplicationMatchExpression struct { - Key string `json:"key,omitempty" protobuf:"bytes,1,opt,name=key"` - Operator string `json:"operator,omitempty" protobuf:"bytes,2,opt,name=operator"` - Values []string `json:"values,omitempty" protobuf:"bytes,3,opt,name=values"` -} - -// ApplicationsSyncPolicy representation -// "create-only" means applications are only created. If the generator's result contains update, applications won't be updated -// "create-update" means applications are only created/Updated. If the generator's result contains update, applications will be updated, but not deleted -// "create-delete" means applications are only created/deleted. If the generator's result contains update, applications won't be updated, if it results in deleted applications, the applications will be deleted -// "sync" means create/update/deleted. If the generator's result contains update, applications will be updated, if it results in deleted applications, the applications will be deleted -// If no ApplicationsSyncPolicy is defined, it defaults it to sync -type ApplicationsSyncPolicy string - -// sync / create-only / create-update / create-delete -const ( - ApplicationsSyncPolicyCreateOnly ApplicationsSyncPolicy = "create-only" - ApplicationsSyncPolicyCreateUpdate ApplicationsSyncPolicy = "create-update" - ApplicationsSyncPolicyCreateDelete ApplicationsSyncPolicy = "create-delete" - ApplicationsSyncPolicySync ApplicationsSyncPolicy = "sync" -) - -// ApplicationSetSyncPolicy configures how generated Applications will relate to their -// ApplicationSet. -type ApplicationSetSyncPolicy struct { - // PreserveResourcesOnDeletion will preserve resources on deletion. If PreserveResourcesOnDeletion is set to true, these Applications will not be deleted. - PreserveResourcesOnDeletion bool `json:"preserveResourcesOnDeletion,omitempty" protobuf:"bytes,1,name=syncPolicy"` - // ApplicationsSync represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, sync - ApplicationsSync *ApplicationsSyncPolicy `json:"applicationsSync,omitempty" protobuf:"bytes,2,opt,name=applicationsSync,casttype=ApplicationsSyncPolicy"` -} - -// ApplicationSetIgnoreDifferences configures how the ApplicationSet controller will ignore differences in live -// applications when applying changes from generated applications. -type ApplicationSetIgnoreDifferences []ApplicationSetResourceIgnoreDifferences - -// ApplicationSetResourceIgnoreDifferences configures how the ApplicationSet controller will ignore differences in live -// applications when applying changes from generated applications. -type ApplicationSetResourceIgnoreDifferences struct { - // Name is the name of the application to ignore differences for. If not specified, the rule applies to all applications. - Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` - // JSONPointers is a list of JSON pointers to fields to ignore differences for. - JSONPointers []string `json:"jsonPointers,omitempty" protobuf:"bytes,2,name=jsonPointers"` - // JQPathExpressions is a list of JQ path expressions to fields to ignore differences for. - JQPathExpressions []string `json:"jqPathExpressions,omitempty" protobuf:"bytes,3,name=jqExpressions"` -} - -// ApplicationSetTemplate represents argocd ApplicationSpec -type ApplicationSetTemplate struct { - ApplicationSetTemplateMeta `json:"metadata" protobuf:"bytes,1,name=metadata"` - Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,name=spec"` -} - -// ApplicationSetTemplateMeta represents the Argo CD application fields that may -// be used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta) -type ApplicationSetTemplateMeta struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,name=namespace"` - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,name=labels"` - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,4,name=annotations"` - Finalizers []string `json:"finalizers,omitempty" protobuf:"bytes,5,name=finalizers"` -} - -// ApplicationSetGenerator represents a generator at the top level of an ApplicationSet. -type ApplicationSetGenerator struct { - List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` - Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` - Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` - SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` - ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` - PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` - Matrix *MatrixGenerator `json:"matrix,omitempty" protobuf:"bytes,7,name=matrix"` - Merge *MergeGenerator `json:"merge,omitempty" protobuf:"bytes,8,name=merge"` - - // Selector allows to post-filter all generator. - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"` - - Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"` -} - -// ApplicationSetNestedGenerator represents a generator nested within a combination-type generator (MatrixGenerator or -// MergeGenerator). -type ApplicationSetNestedGenerator struct { - List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` - Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` - Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` - SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` - ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` - PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` - - // Matrix should have the form of NestedMatrixGenerator - Matrix *apiextensionsv1.JSON `json:"matrix,omitempty" protobuf:"bytes,7,name=matrix"` - - // Merge should have the form of NestedMergeGenerator - Merge *apiextensionsv1.JSON `json:"merge,omitempty" protobuf:"bytes,8,name=merge"` - - // Selector allows to post-filter all generator. - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"` - - Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"` -} - -type ApplicationSetNestedGenerators []ApplicationSetNestedGenerator - -// ApplicationSetTerminalGenerator represents a generator nested within a nested generator (for example, a list within -// a merge within a matrix). A generator at this level may not be a combination-type generator (MatrixGenerator or -// MergeGenerator). ApplicationSet enforces this nesting depth limit because CRDs do not support recursive types. -// https://github.com/kubernetes-sigs/controller-tools/issues/477 -type ApplicationSetTerminalGenerator struct { - List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` - Clusters *ClusterGenerator `json:"clusters,omitempty" protobuf:"bytes,2,name=clusters"` - Git *GitGenerator `json:"git,omitempty" protobuf:"bytes,3,name=git"` - SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"` - ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"` - PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"` - Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,7,name=plugin"` - - // Selector allows to post-filter all generator. - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,8,name=selector"` -} - -type ApplicationSetTerminalGenerators []ApplicationSetTerminalGenerator - -// ListGenerator include items info -type ListGenerator struct { - Elements []apiextensionsv1.JSON `json:"elements" protobuf:"bytes,1,name=elements"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` - ElementsYaml string `json:"elementsYaml,omitempty" protobuf:"bytes,3,opt,name=elementsYaml"` -} - -// MatrixGenerator generates the cartesian product of two sets of parameters. The parameters are defined by two nested -// generators. -type MatrixGenerator struct { - Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` -} - -// NestedMatrixGenerator is a MatrixGenerator nested under another combination-type generator (MatrixGenerator or -// MergeGenerator). NestedMatrixGenerator does not have an override template, because template overriding has no meaning -// within the constituent generators of combination-type generators. -// -// NOTE: Nested matrix generator is not included directly in the CRD struct, instead it is included -// as a generic 'apiextensionsv1.JSON' object, and then marshalled into a NestedMatrixGenerator -// when processed. -type NestedMatrixGenerator struct { - Generators ApplicationSetTerminalGenerators `json:"generators" protobuf:"bytes,1,name=generators"` -} - -// MergeGenerator merges the output of two or more generators. Where the values for all specified merge keys are equal -// between two sets of generated parameters, the parameter sets will be merged with the parameters from the latter -// generator taking precedence. Parameter sets with merge keys not present in the base generator's params will be -// ignored. -// For example, if the first generator produced [{a: '1', b: '2'}, {c: '1', d: '1'}] and the second generator produced -// [{'a': 'override'}], the united parameters for merge keys = ['a'] would be -// [{a: 'override', b: '1'}, {c: '1', d: '1'}]. -// -// MergeGenerator supports template overriding. If a MergeGenerator is one of multiple top-level generators, its -// template will be merged with the top-level generator before the parameters are applied. -type MergeGenerator struct { - Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` - MergeKeys []string `json:"mergeKeys" protobuf:"bytes,2,name=mergeKeys"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,3,name=template"` -} - -// NestedMergeGenerator is a MergeGenerator nested under another combination-type generator (MatrixGenerator or -// MergeGenerator). NestedMergeGenerator does not have an override template, because template overriding has no meaning -// within the constituent generators of combination-type generators. -// -// NOTE: Nested merge generator is not included directly in the CRD struct, instead it is included -// as a generic 'apiextensionsv1.JSON' object, and then marshalled into a NestedMergeGenerator -// when processed. -type NestedMergeGenerator struct { - Generators ApplicationSetTerminalGenerators `json:"generators" protobuf:"bytes,1,name=generators"` - MergeKeys []string `json:"mergeKeys" protobuf:"bytes,2,name=mergeKeys"` -} - -// ClusterGenerator defines a generator to match against clusters registered with ArgoCD. -type ClusterGenerator struct { - // Selector defines a label selector to match against all clusters registered with ArgoCD. - // Clusters today are stored as Kubernetes Secrets, thus the Secret labels will be used - // for matching the selector. - Selector metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,name=selector"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` - - // Values contains key/value pairs which are passed directly as parameters to the template - Values map[string]string `json:"values,omitempty" protobuf:"bytes,3,name=values"` -} - -// DuckType defines a generator to match against clusters registered with ArgoCD. -type DuckTypeGenerator struct { - // ConfigMapRef is a ConfigMap with the duck type definitions needed to retrieve the data - // this includes apiVersion(group/version), kind, matchKey and validation settings - // Name is the resource name of the kind, group and version, defined in the ConfigMapRef - // RequeueAfterSeconds is how long before the duckType will be rechecked for a change - ConfigMapRef string `json:"configMapRef" protobuf:"bytes,1,name=configMapRef"` - Name string `json:"name,omitempty" protobuf:"bytes,2,name=name"` - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,3,name=requeueAfterSeconds"` - LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty" protobuf:"bytes,4,name=labelSelector"` - - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,5,name=template"` - // Values contains key/value pairs which are passed directly as parameters to the template - Values map[string]string `json:"values,omitempty" protobuf:"bytes,6,name=values"` -} - -type GitGenerator struct { - RepoURL string `json:"repoURL" protobuf:"bytes,1,name=repoURL"` - Directories []GitDirectoryGeneratorItem `json:"directories,omitempty" protobuf:"bytes,2,name=directories"` - Files []GitFileGeneratorItem `json:"files,omitempty" protobuf:"bytes,3,name=files"` - Revision string `json:"revision" protobuf:"bytes,4,name=revision"` - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,5,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,6,name=template"` - PathParamPrefix string `json:"pathParamPrefix,omitempty" protobuf:"bytes,7,name=pathParamPrefix"` - - // Values contains key/value pairs which are passed directly as parameters to the template - Values map[string]string `json:"values,omitempty" protobuf:"bytes,8,name=values"` -} - -type GitDirectoryGeneratorItem struct { - Path string `json:"path" protobuf:"bytes,1,name=path"` - Exclude bool `json:"exclude,omitempty" protobuf:"bytes,2,name=exclude"` -} - -type GitFileGeneratorItem struct { - Path string `json:"path" protobuf:"bytes,1,name=path"` -} - -// SCMProviderGenerator defines a generator that scrapes a SCMaaS API to find candidate repos. -type SCMProviderGenerator struct { - // Which provider to use and config for it. - Github *SCMProviderGeneratorGithub `json:"github,omitempty" protobuf:"bytes,1,opt,name=github"` - Gitlab *SCMProviderGeneratorGitlab `json:"gitlab,omitempty" protobuf:"bytes,2,opt,name=gitlab"` - Bitbucket *SCMProviderGeneratorBitbucket `json:"bitbucket,omitempty" protobuf:"bytes,3,opt,name=bitbucket"` - BitbucketServer *SCMProviderGeneratorBitbucketServer `json:"bitbucketServer,omitempty" protobuf:"bytes,4,opt,name=bitbucketServer"` - Gitea *SCMProviderGeneratorGitea `json:"gitea,omitempty" protobuf:"bytes,5,opt,name=gitea"` - AzureDevOps *SCMProviderGeneratorAzureDevOps `json:"azureDevOps,omitempty" protobuf:"bytes,6,opt,name=azureDevOps"` - // Filters for which repos should be considered. - Filters []SCMProviderGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,7,rep,name=filters"` - // Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers - // necessarily support all protocols. - CloneProtocol string `json:"cloneProtocol,omitempty" protobuf:"bytes,8,opt,name=cloneProtocol"` - // Standard parameters. - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,9,opt,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,10,opt,name=template"` - - // Values contains key/value pairs which are passed directly as parameters to the template - Values map[string]string `json:"values,omitempty" protobuf:"bytes,11,name=values"` - AWSCodeCommit *SCMProviderGeneratorAWSCodeCommit `json:"awsCodeCommit,omitempty" protobuf:"bytes,12,opt,name=awsCodeCommit"` - // If you add a new SCM provider, update CustomApiUrl below. -} - -// SCMProviderGeneratorGitea defines a connection info specific to Gitea. -type SCMProviderGeneratorGitea struct { - // Gitea organization or user to scan. Required. - Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` - // The Gitea URL to talk to. For example https://gitea.mydomain.com/. - API string `json:"api" protobuf:"bytes,2,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` - // Allow self-signed TLS / Certificates; default: false - Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"` -} - -// SCMProviderGeneratorGithub defines connection info specific to GitHub. -type SCMProviderGeneratorGithub struct { - // GitHub org to scan. Required. - Organization string `json:"organization" protobuf:"bytes,1,opt,name=organization"` - // The GitHub API URL to talk to. If blank, use https://api.github.com/. - API string `json:"api,omitempty" protobuf:"bytes,2,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` - // AppSecretName is a reference to a GitHub App repo-creds secret. - AppSecretName string `json:"appSecretName,omitempty" protobuf:"bytes,4,opt,name=appSecretName"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,5,opt,name=allBranches"` -} - -// SCMProviderGeneratorGitlab defines connection info specific to Gitlab. -type SCMProviderGeneratorGitlab struct { - // Gitlab group to scan. Required. You can use either the project id (recommended) or the full namespaced path. - Group string `json:"group" protobuf:"bytes,1,opt,name=group"` - // Recurse through subgroups (true) or scan only the base group (false). Defaults to "false" - IncludeSubgroups bool `json:"includeSubgroups,omitempty" protobuf:"varint,2,opt,name=includeSubgroups"` - // The Gitlab API URL to talk to. - API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,5,opt,name=allBranches"` - // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false - Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` - // When recursing through subgroups, also include shared Projects (true) or scan only the subgroups under same path (false). Defaults to "true" - IncludeSharedProjects *bool `json:"includeSharedProjects,omitempty" protobuf:"varint,7,opt,name=includeSharedProjects"` - // Filter repos list based on Gitlab Topic. - Topic string `json:"topic,omitempty" protobuf:"bytes,8,opt,name=topic"` - // ConfigMap key holding the trusted certificates - CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,9,opt,name=caRef"` -} - -// SCMProviderGeneratorBitbucket defines connection info specific to Bitbucket Cloud (API version 2). -type SCMProviderGeneratorBitbucket struct { - // Bitbucket workspace to scan. Required. - Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` - // Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches. Required - User string `json:"user" protobuf:"bytes,2,opt,name=user"` - // The app password to use for the user. Required. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/ - AppPasswordRef *SecretRef `json:"appPasswordRef" protobuf:"bytes,3,opt,name=appPasswordRef"` - // Scan all branches instead of just the main branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` -} - -// SCMProviderGeneratorBitbucketServer defines connection info specific to Bitbucket Server. -type SCMProviderGeneratorBitbucketServer struct { - // Project to scan. Required. - Project string `json:"project" protobuf:"bytes,1,opt,name=project"` - // The Bitbucket Server REST API URL to talk to. Required. - API string `json:"api" protobuf:"bytes,2,opt,name=api"` - // Credentials for Basic auth - BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,3,opt,name=basicAuth"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` - // Credentials for AccessToken (Bearer auth) - BearerToken *BearerTokenBitbucket `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` - // Allow self-signed TLS / Certificates; default: false - Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` - // ConfigMap key holding the trusted certificates - CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` -} - -// SCMProviderGeneratorAzureDevOps defines connection info specific to Azure DevOps. -type SCMProviderGeneratorAzureDevOps struct { - // Azure Devops organization. Required. E.g. "my-organization". - Organization string `json:"organization" protobuf:"bytes,5,opt,name=organization"` - // The URL to Azure DevOps. If blank, use https://dev.azure.com. - API string `json:"api,omitempty" protobuf:"bytes,6,opt,name=api"` - // Azure Devops team project. Required. E.g. "my-team". - TeamProject string `json:"teamProject" protobuf:"bytes,7,opt,name=teamProject"` - // The Personal Access Token (PAT) to use when connecting. Required. - AccessTokenRef *SecretRef `json:"accessTokenRef" protobuf:"bytes,8,opt,name=accessTokenRef"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,9,opt,name=allBranches"` -} - -type TagFilter struct { - Key string `json:"key" protobuf:"bytes,1,opt,name=key"` - Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` -} - -// SCMProviderGeneratorAWSCodeCommit defines connection info specific to AWS CodeCommit. -type SCMProviderGeneratorAWSCodeCommit struct { - // TagFilters provides the tag filter(s) for repo discovery - TagFilters []*TagFilter `json:"tagFilters,omitempty" protobuf:"bytes,1,opt,name=tagFilters"` - // Role provides the AWS IAM role to assume, for cross-account repo discovery - // if not provided, AppSet controller will use its pod/node identity to discover. - Role string `json:"role,omitempty" protobuf:"bytes,2,opt,name=role"` - // Region provides the AWS region to discover repos. - // if not provided, AppSet controller will infer the current region from environment. - Region string `json:"region,omitempty" protobuf:"bytes,3,opt,name=region"` - // Scan all branches instead of just the default branch. - AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"` -} - -// SCMProviderGeneratorFilter is a single repository filter. -// If multiple filter types are set on a single struct, they will be AND'd together. All filters must -// pass for a repo to be included. -type SCMProviderGeneratorFilter struct { - // A regex for repo names. - RepositoryMatch *string `json:"repositoryMatch,omitempty" protobuf:"bytes,1,opt,name=repositoryMatch"` - // An array of paths, all of which must exist. - PathsExist []string `json:"pathsExist,omitempty" protobuf:"bytes,2,rep,name=pathsExist"` - // An array of paths, all of which must not exist. - PathsDoNotExist []string `json:"pathsDoNotExist,omitempty" protobuf:"bytes,3,rep,name=pathsDoNotExist"` - // A regex which must match at least one label. - LabelMatch *string `json:"labelMatch,omitempty" protobuf:"bytes,4,opt,name=labelMatch"` - // A regex which must match the branch name. - BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,5,opt,name=branchMatch"` -} - -// PullRequestGenerator defines a generator that scrapes a PullRequest API to find candidate pull requests. -type PullRequestGenerator struct { - // Which provider to use and config for it. - Github *PullRequestGeneratorGithub `json:"github,omitempty" protobuf:"bytes,1,opt,name=github"` - GitLab *PullRequestGeneratorGitLab `json:"gitlab,omitempty" protobuf:"bytes,2,opt,name=gitlab"` - Gitea *PullRequestGeneratorGitea `json:"gitea,omitempty" protobuf:"bytes,3,opt,name=gitea"` - BitbucketServer *PullRequestGeneratorBitbucketServer `json:"bitbucketServer,omitempty" protobuf:"bytes,4,opt,name=bitbucketServer"` - // Filters for which pull requests should be considered. - Filters []PullRequestGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,5,rep,name=filters"` - // Standard parameters. - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,7,opt,name=template"` - Bitbucket *PullRequestGeneratorBitbucket `json:"bitbucket,omitempty" protobuf:"bytes,8,opt,name=bitbucket"` - // Additional provider to use and config for it. - AzureDevOps *PullRequestGeneratorAzureDevOps `json:"azuredevops,omitempty" protobuf:"bytes,9,opt,name=azuredevops"` - // If you add a new SCM provider, update CustomApiUrl below. -} - -// PullRequestGeneratorGitea defines connection info specific to Gitea. -type PullRequestGeneratorGitea struct { - // Gitea org or user to scan. Required. - Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` - // Gitea repo name to scan. Required. - Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` - // The Gitea API URL to talk to. Required - API string `json:"api" protobuf:"bytes,3,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` - // Allow insecure tls, for self-signed certificates; default: false. - Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"` -} - -// PullRequestGeneratorAzureDevOps defines connection info specific to AzureDevOps. -type PullRequestGeneratorAzureDevOps struct { - // Azure DevOps org to scan. Required. - Organization string `json:"organization" protobuf:"bytes,1,opt,name=organization"` - // Azure DevOps project name to scan. Required. - Project string `json:"project" protobuf:"bytes,2,opt,name=project"` - // Azure DevOps repo name to scan. Required. - Repo string `json:"repo" protobuf:"bytes,3,opt,name=repo"` - // The Azure DevOps API URL to talk to. If blank, use https://dev.azure.com/. - API string `json:"api,omitempty" protobuf:"bytes,4,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,5,opt,name=tokenRef"` - // Labels is used to filter the PRs that you want to target - Labels []string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"` -} - -// PullRequestGenerator defines connection info specific to GitHub. -type PullRequestGeneratorGithub struct { - // GitHub org or user to scan. Required. - Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` - // GitHub repo name to scan. Required. - Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` - // The GitHub API URL to talk to. If blank, use https://api.github.com/. - API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"` - // AppSecretName is a reference to a GitHub App repo-creds secret with permission to access pull requests. - AppSecretName string `json:"appSecretName,omitempty" protobuf:"bytes,5,opt,name=appSecretName"` - // Labels is used to filter the PRs that you want to target - Labels []string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"` -} - -// PullRequestGeneratorGitLab defines connection info specific to GitLab. -type PullRequestGeneratorGitLab struct { - // GitLab project to scan. Required. - Project string `json:"project" protobuf:"bytes,1,opt,name=project"` - // The GitLab API URL to talk to. If blank, uses https://gitlab.com/. - API string `json:"api,omitempty" protobuf:"bytes,2,opt,name=api"` - // Authentication token reference. - TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,3,opt,name=tokenRef"` - // Labels is used to filter the MRs that you want to target - Labels []string `json:"labels,omitempty" protobuf:"bytes,4,rep,name=labels"` - // PullRequestState is an additional MRs filter to get only those with a certain state. Default: "" (all states) - PullRequestState string `json:"pullRequestState,omitempty" protobuf:"bytes,5,rep,name=pullRequestState"` - // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false - Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` - // ConfigMap key holding the trusted certificates - CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` -} - -// PullRequestGeneratorBitbucketServer defines connection info specific to BitbucketServer. -type PullRequestGeneratorBitbucketServer struct { - // Project to scan. Required. - Project string `json:"project" protobuf:"bytes,1,opt,name=project"` - // Repo name to scan. Required. - Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` - // The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest Required. - API string `json:"api" protobuf:"bytes,3,opt,name=api"` - // Credentials for Basic auth - BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"` - // Credentials for AccessToken (Bearer auth) - BearerToken *BearerTokenBitbucket `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` - // Allow self-signed TLS / Certificates; default: false - Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"` - // ConfigMap key holding the trusted certificates - CARef *ConfigMapKeyRef `json:"caRef,omitempty" protobuf:"bytes,7,opt,name=caRef"` -} - -// PullRequestGeneratorBitbucket defines connection info specific to Bitbucket. -type PullRequestGeneratorBitbucket struct { - // Workspace to scan. Required. - Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"` - // Repo name to scan. Required. - Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"` - // The Bitbucket REST API URL to talk to. If blank, uses https://api.bitbucket.org/2.0. - API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"` - // Credentials for Basic auth - BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"` - // Credentials for AppToken (Bearer auth) - BearerToken *BearerTokenBitbucketCloud `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"` -} - -// BearerTokenBitbucket defines the Bearer token for BitBucket AppToken auth. -type BearerTokenBitbucket struct { - // Password (or personal access token) reference. - TokenRef *SecretRef `json:"tokenRef" protobuf:"bytes,1,opt,name=tokenRef"` -} - -// BearerTokenBitbucketCloud defines the Bearer token for BitBucket AppToken auth. -type BearerTokenBitbucketCloud struct { - // Password (or personal access token) reference. - TokenRef *SecretRef `json:"tokenRef" protobuf:"bytes,1,opt,name=tokenRef"` -} - -// BasicAuthBitbucketServer defines the username/(password or personal access token) for Basic auth. -type BasicAuthBitbucketServer struct { - // Username for Basic auth - Username string `json:"username" protobuf:"bytes,1,opt,name=username"` - // Password (or personal access token) reference. - PasswordRef *SecretRef `json:"passwordRef" protobuf:"bytes,2,opt,name=passwordRef"` -} - -// PullRequestGeneratorFilter is a single pull request filter. -// If multiple filter types are set on a single struct, they will be AND'd together. All filters must -// pass for a pull request to be included. -type PullRequestGeneratorFilter struct { - BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,1,opt,name=branchMatch"` - TargetBranchMatch *string `json:"targetBranchMatch,omitempty" protobuf:"bytes,2,opt,name=targetBranchMatch"` -} - -type PluginConfigMapRef struct { - // Name of the ConfigMap - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` -} - -type PluginParameters map[string]apiextensionsv1.JSON - -type PluginInput struct { - // Parameters contains the information to pass to the plugin. It is a map. The keys must be strings, and the - // values can be any type. - Parameters PluginParameters `json:"parameters,omitempty" protobuf:"bytes,1,name=parameters"` -} - -// PluginGenerator defines connection info specific to Plugin. -type PluginGenerator struct { - ConfigMapRef PluginConfigMapRef `json:"configMapRef" protobuf:"bytes,1,name=configMapRef"` - Input PluginInput `json:"input,omitempty" protobuf:"bytes,2,name=input"` - // RequeueAfterSeconds determines how long the ApplicationSet controller will wait before reconciling the ApplicationSet again. - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,3,opt,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,4,name=template"` - - // Values contains key/value pairs which are passed directly as parameters to the template. These values will not be - // sent as parameters to the plugin. - Values map[string]string `json:"values,omitempty" protobuf:"bytes,5,name=values"` -} - -// ApplicationSetStatus defines the observed state of ApplicationSet -type ApplicationSetStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file - Conditions []ApplicationSetCondition `json:"conditions,omitempty" protobuf:"bytes,1,name=conditions"` - ApplicationStatus []ApplicationSetApplicationStatus `json:"applicationStatus,omitempty" protobuf:"bytes,2,name=applicationStatus"` - // Resources is a list of Applications resources managed by this application set. - Resources []ResourceStatus `json:"resources,omitempty" protobuf:"bytes,3,opt,name=resources"` -} - -// ApplicationSetCondition contains details about an applicationset condition, which is usually an error or warning -type ApplicationSetCondition struct { - // Type is an applicationset condition type - Type ApplicationSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type"` - // Message contains human-readable message indicating details about condition - Message string `json:"message" protobuf:"bytes,2,opt,name=message"` - // LastTransitionTime is the time the condition was last observed - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // True/False/Unknown - Status ApplicationSetConditionStatus `json:"status" protobuf:"bytes,4,opt,name=status"` - // Single word camelcase representing the reason for the status eg ErrorOccurred - Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` -} - -// SyncStatusCode is a type which represents possible comparison results -type ApplicationSetConditionStatus string - -// Application Condition Status -const ( - // ApplicationSetConditionStatusTrue indicates that a application has been successfully established - ApplicationSetConditionStatusTrue ApplicationSetConditionStatus = "True" - // ApplicationSetConditionStatusFalse indicates that a application attempt has failed - ApplicationSetConditionStatusFalse ApplicationSetConditionStatus = "False" - // ApplicationSetConditionStatusUnknown indicates that the application condition status could not be reliably determined - ApplicationSetConditionStatusUnknown ApplicationSetConditionStatus = "Unknown" -) - -// ApplicationSetConditionType represents type of application condition. Type name has following convention: -// prefix "Error" means error condition -// prefix "Warning" means warning condition -// prefix "Info" means informational condition -type ApplicationSetConditionType string - -// ErrorOccurred / ParametersGenerated / TemplateRendered / ResourcesUpToDate -const ( - ApplicationSetConditionErrorOccurred ApplicationSetConditionType = "ErrorOccurred" - ApplicationSetConditionParametersGenerated ApplicationSetConditionType = "ParametersGenerated" - ApplicationSetConditionResourcesUpToDate ApplicationSetConditionType = "ResourcesUpToDate" - ApplicationSetConditionRolloutProgressing ApplicationSetConditionType = "RolloutProgressing" -) - -type ApplicationSetReasonType string - -const ( - ApplicationSetReasonErrorOccurred = "ErrorOccurred" - ApplicationSetReasonApplicationSetUpToDate = "ApplicationSetUpToDate" - ApplicationSetReasonParametersGenerated = "ParametersGenerated" - ApplicationSetReasonApplicationGenerated = "ApplicationGeneratedSuccessfully" - ApplicationSetReasonUpdateApplicationError = "UpdateApplicationError" - ApplicationSetReasonApplicationParamsGenerationError = "ApplicationGenerationFromParamsError" - ApplicationSetReasonRenderTemplateParamsError = "RenderTemplateParamsError" - ApplicationSetReasonCreateApplicationError = "CreateApplicationError" - ApplicationSetReasonDeleteApplicationError = "DeleteApplicationError" - ApplicationSetReasonRefreshApplicationError = "RefreshApplicationError" - ApplicationSetReasonApplicationValidationError = "ApplicationValidationError" - ApplicationSetReasonApplicationSetModified = "ApplicationSetModified" - ApplicationSetReasonApplicationSetRolloutComplete = "ApplicationSetRolloutComplete" - ApplicationSetReasonSyncApplicationError = "SyncApplicationError" -) - -// ApplicationSetApplicationStatus contains details about each Application managed by the ApplicationSet -type ApplicationSetApplicationStatus struct { - // Application contains the name of the Application resource - Application string `json:"application" protobuf:"bytes,1,opt,name=application"` - // LastTransitionTime is the time the status was last updated - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,2,opt,name=lastTransitionTime"` - // Message contains human-readable message indicating details about the status - Message string `json:"message" protobuf:"bytes,3,opt,name=message"` - // Status contains the AppSet's perceived status of the managed Application resource: (Waiting, Pending, Progressing, Healthy) - Status string `json:"status" protobuf:"bytes,4,opt,name=status"` - // Step tracks which step this Application should be updated in - Step string `json:"step" protobuf:"bytes,5,opt,name=step"` - // TargetRevision tracks the desired revisions the Application should be synced to. - TargetRevisions []string `json:"targetRevisions" protobuf:"bytes,6,opt,name=targetrevisions"` -} - -// ApplicationSetList contains a list of ApplicationSet -type ApplicationSetList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items []ApplicationSet `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// ApplicationSetTree holds nodes which belongs to the application -// Used to build a tree of an ApplicationSet and its children -type ApplicationSetTree struct { - // Nodes contains list of nodes which are directly managed by the applicationset - Nodes []ResourceNode `json:"nodes,omitempty" protobuf:"bytes,1,rep,name=nodes"` -} diff --git a/argocd/v1alpha1/appproject_types.go b/argocd/v1alpha1/appproject_types.go deleted file mode 100644 index fc86fc209c..0000000000 --- a/argocd/v1alpha1/appproject_types.go +++ /dev/null @@ -1,31 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// AppProjectList is list of AppProject resources -type AppProjectList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Items []AppProject `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// 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) -type AppProject struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Spec AppProjectSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - Status AppProjectStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// AppProjectStatus contains status information for AppProject CRs -type AppProjectStatus struct { - // JWTTokensByRole contains a list of JWT tokens issued for a given role - JWTTokensByRole map[string]JWTTokens `json:"jwtTokensByRole,omitempty" protobuf:"bytes,1,opt,name=jwtTokensByRole"` -} diff --git a/argocd/v1alpha1/register.go b/argocd/v1alpha1/register.go deleted file mode 100644 index be2212bb8d..0000000000 --- a/argocd/v1alpha1/register.go +++ /dev/null @@ -1,65 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -const ( - // API Group - Group string = "argoproj.io" - - // Application constants - ApplicationKind string = "Application" - ApplicationSingular string = "application" - ApplicationPlural string = "applications" - ApplicationShortName string = "app" - ApplicationFullName string = ApplicationPlural + "." + Group - - // AppProject constants - AppProjectKind string = "AppProject" - AppProjectSingular string = "appproject" - AppProjectPlural string = "appprojects" - AppProjectShortName string = "appproject" - AppProjectFullName string = AppProjectPlural + "." + Group - - // ApplicationSet constants - ApplicationSetKind string = "ApplicationSet" - ApplicationSetSingular string = "applicationset" - ApplicationSetShortName string = "appset" - ApplicationSetPlural string = "applicationsets" - ApplicationSetFullName string = ApplicationSetPlural + "." + Group -) - -var ( - // SchemeGroupVersion is group version used to register these objects - SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: "v1alpha1"} - ApplicationSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: ApplicationKind} - AppProjectSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: AppProjectKind} - ApplicationSetSchemaGroupVersionKind = schema.GroupVersionKind{Group: Group, Version: "v1alpha1", Kind: ApplicationSetKind} -) - -// Resource takes an unqualified resource and returns a Group-qualified GroupResource. -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - AddToScheme = SchemeBuilder.AddToScheme -) - -// addKnownTypes adds the set of types defined in this package to the supplied scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &Application{}, - &ApplicationList{}, - &AppProject{}, - &AppProjectList{}, - &ApplicationSet{}, - &ApplicationSetList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/argocd/v1alpha1/repository_types.go b/argocd/v1alpha1/repository_types.go deleted file mode 100644 index 7e62f63275..0000000000 --- a/argocd/v1alpha1/repository_types.go +++ /dev/null @@ -1,146 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// RepoCreds holds the definition for repository credentials -type RepoCreds struct { - // URL is the URL to which these credentials match - URL string `json:"url" protobuf:"bytes,1,opt,name=url"` - // Username for authenticating at the repo server - Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"` - // Password for authenticating at the repo server - Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"` - // SSHPrivateKey contains the private key data for authenticating at the repo server using SSH (only Git repos) - SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"` - // TLSClientCertData specifies the TLS client cert data for authenticating at the repo server - TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,5,opt,name=tlsClientCertData"` - // TLSClientCertKey specifies the TLS client cert key for authenticating at the repo server - TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,6,opt,name=tlsClientCertKey"` - // GithubAppPrivateKey specifies the private key PEM data for authentication via GitHub app - GithubAppPrivateKey string `json:"githubAppPrivateKey,omitempty" protobuf:"bytes,7,opt,name=githubAppPrivateKey"` - // GithubAppId specifies the Github App ID of the app used to access the repo for GitHub app authentication - GithubAppId int64 `json:"githubAppID,omitempty" protobuf:"bytes,8,opt,name=githubAppID"` - // GithubAppInstallationId specifies the ID of the installed GitHub App for GitHub app authentication - GithubAppInstallationId int64 `json:"githubAppInstallationID,omitempty" protobuf:"bytes,9,opt,name=githubAppInstallationID"` - // GithubAppEnterpriseBaseURL specifies the GitHub API URL for GitHub app authentication. If empty will default to https://api.github.com - GitHubAppEnterpriseBaseURL string `json:"githubAppEnterpriseBaseUrl,omitempty" protobuf:"bytes,10,opt,name=githubAppEnterpriseBaseUrl"` - // EnableOCI specifies whether helm-oci support should be enabled for this repo - EnableOCI bool `json:"enableOCI,omitempty" protobuf:"bytes,11,opt,name=enableOCI"` - // Type specifies the type of the repoCreds. Can be either "git" or "helm. "git" is assumed if empty or absent. - Type string `json:"type,omitempty" protobuf:"bytes,12,opt,name=type"` - // GCPServiceAccountKey specifies the service account key in JSON format to be used for getting credentials to Google Cloud Source repos - GCPServiceAccountKey string `json:"gcpServiceAccountKey,omitempty" protobuf:"bytes,13,opt,name=gcpServiceAccountKey"` - // Proxy specifies the HTTP/HTTPS proxy used to access repos at the repo server - Proxy string `json:"proxy,omitempty" protobuf:"bytes,19,opt,name=proxy"` - // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections - ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,20,opt,name=forceHttpBasicAuth"` -} - -// Repository is a repository holding application configurations -type Repository struct { - // Repo contains the URL to the remote repository - Repo string `json:"repo" protobuf:"bytes,1,opt,name=repo"` - // Username contains the user name used for authenticating at the remote repository - Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"` - // Password contains the password or PAT used for authenticating at the remote repository - Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"` - // SSHPrivateKey contains the PEM data for authenticating at the repo server. Only used with Git repos. - SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"` - // ConnectionState contains information about the current state of connection to the repository server - ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,5,opt,name=connectionState"` - // InsecureIgnoreHostKey should not be used anymore, Insecure is favoured - // Used only for Git repos - InsecureIgnoreHostKey bool `json:"insecureIgnoreHostKey,omitempty" protobuf:"bytes,6,opt,name=insecureIgnoreHostKey"` - // Insecure specifies whether the connection to the repository ignores any errors when verifying TLS certificates or SSH host keys - Insecure bool `json:"insecure,omitempty" protobuf:"bytes,7,opt,name=insecure"` - // EnableLFS specifies whether git-lfs support should be enabled for this repo. Only valid for Git repositories. - EnableLFS bool `json:"enableLfs,omitempty" protobuf:"bytes,8,opt,name=enableLfs"` - // TLSClientCertData contains a certificate in PEM format for authenticating at the repo server - TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,9,opt,name=tlsClientCertData"` - // TLSClientCertKey contains a private key in PEM format for authenticating at the repo server - TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,10,opt,name=tlsClientCertKey"` - // Type specifies the type of the repo. Can be either "git" or "helm. "git" is assumed if empty or absent. - Type string `json:"type,omitempty" protobuf:"bytes,11,opt,name=type"` - // Name specifies a name to be used for this repo. Only used with Helm repos - Name string `json:"name,omitempty" protobuf:"bytes,12,opt,name=name"` - // Whether credentials were inherited from a credential set - InheritedCreds bool `json:"inheritedCreds,omitempty" protobuf:"bytes,13,opt,name=inheritedCreds"` - // EnableOCI specifies whether helm-oci support should be enabled for this repo - EnableOCI bool `json:"enableOCI,omitempty" protobuf:"bytes,14,opt,name=enableOCI"` - // Github App Private Key PEM data - GithubAppPrivateKey string `json:"githubAppPrivateKey,omitempty" protobuf:"bytes,15,opt,name=githubAppPrivateKey"` - // GithubAppId specifies the ID of the GitHub app used to access the repo - GithubAppId int64 `json:"githubAppID,omitempty" protobuf:"bytes,16,opt,name=githubAppID"` - // GithubAppInstallationId specifies the installation ID of the GitHub App used to access the repo - GithubAppInstallationId int64 `json:"githubAppInstallationID,omitempty" protobuf:"bytes,17,opt,name=githubAppInstallationID"` - // GithubAppEnterpriseBaseURL specifies the base URL of GitHub Enterprise installation. If empty will default to https://api.github.com - GitHubAppEnterpriseBaseURL string `json:"githubAppEnterpriseBaseUrl,omitempty" protobuf:"bytes,18,opt,name=githubAppEnterpriseBaseUrl"` - // Proxy specifies the HTTP/HTTPS proxy used to access the repo - Proxy string `json:"proxy,omitempty" protobuf:"bytes,19,opt,name=proxy"` - // Reference between project and repository that allows it to be automatically added as an item inside SourceRepos project entity - Project string `json:"project,omitempty" protobuf:"bytes,20,opt,name=project"` - // GCPServiceAccountKey specifies the service account key in JSON format to be used for getting credentials to Google Cloud Source repos - GCPServiceAccountKey string `json:"gcpServiceAccountKey,omitempty" protobuf:"bytes,21,opt,name=gcpServiceAccountKey"` - // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections - ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,22,opt,name=forceHttpBasicAuth"` -} - -// Repositories defines a list of Repository configurations -type Repositories []*Repository - -// RepositoryList is a collection of Repositories. -type RepositoryList struct { - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items Repositories `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// RepositoryList is a collection of Repositories. -type RepoCredsList struct { - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items []RepoCreds `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// A RepositoryCertificate is either SSH known hosts entry or TLS certificate -type RepositoryCertificate struct { - // ServerName specifies the DNS name of the server this certificate is intended for - ServerName string `json:"serverName" protobuf:"bytes,1,opt,name=serverName"` - // CertType specifies the type of the certificate - currently one of "https" or "ssh" - CertType string `json:"certType" protobuf:"bytes,2,opt,name=certType"` - // CertSubType specifies the sub type of the cert, i.e. "ssh-rsa" - CertSubType string `json:"certSubType" protobuf:"bytes,3,opt,name=certSubType"` - // CertData contains the actual certificate data, dependent on the certificate type - CertData []byte `json:"certData" protobuf:"bytes,4,opt,name=certData"` - // CertInfo will hold additional certificate info, depdendent on the certificate type (e.g. SSH fingerprint, X509 CommonName) - CertInfo string `json:"certInfo" protobuf:"bytes,5,opt,name=certInfo"` -} - -// RepositoryCertificateList is a collection of RepositoryCertificates -type RepositoryCertificateList struct { - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // List of certificates to be processed - Items []RepositoryCertificate `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// GnuPGPublicKey is a representation of a GnuPG public key -type GnuPGPublicKey struct { - // KeyID specifies the key ID, in hexadecimal string format - KeyID string `json:"keyID" protobuf:"bytes,1,opt,name=keyID"` - // Fingerprint is the fingerprint of the key - Fingerprint string `json:"fingerprint,omitempty" protobuf:"bytes,2,opt,name=fingerprint"` - // Owner holds the owner identification, e.g. a name and e-mail address - Owner string `json:"owner,omitempty" protobuf:"bytes,3,opt,name=owner"` - // Trust holds the level of trust assigned to this key - Trust string `json:"trust,omitempty" protobuf:"bytes,4,opt,name=trust"` - // SubType holds the key's sub type (e.g. rsa4096) - SubType string `json:"subType,omitempty" protobuf:"bytes,5,opt,name=subType"` - // KeyData holds the raw key data, in base64 encoded format - KeyData string `json:"keyData,omitempty" protobuf:"bytes,6,opt,name=keyData"` -} - -// GnuPGPublicKeyList is a collection of GnuPGPublicKey objects -type GnuPGPublicKeyList struct { - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items []GnuPGPublicKey `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/argocd/v1alpha1/types.go b/argocd/v1alpha1/types.go deleted file mode 100644 index fd00b02d58..0000000000 --- a/argocd/v1alpha1/types.go +++ /dev/null @@ -1,1215 +0,0 @@ -package v1alpha1 - -import ( - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/apimachinery/pkg/watch" -) - -// Application is a definition of Application resource. -type Application struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - Status ApplicationStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` - Operation *Operation `json:"operation,omitempty" protobuf:"bytes,4,opt,name=operation"` -} - -// ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision. -type ApplicationSpec struct { - // Source is a reference to the location of the application's manifests or chart - Source *ApplicationSource `json:"source,omitempty" protobuf:"bytes,1,opt,name=source"` - // Destination is a reference to the target Kubernetes server and namespace - Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,name=destination"` - // Project is a reference to the project this application belongs to. - // The empty string means that application belongs to the 'default' project. - Project string `json:"project" protobuf:"bytes,3,name=project"` - // SyncPolicy controls when and how a sync will be performed - SyncPolicy *SyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"` - // IgnoreDifferences is a list of resources and their fields which should be ignored during comparison - IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,5,name=ignoreDifferences"` - // Info contains a list of information (URLs, email addresses, and plain text) that relates to the application - Info []Info `json:"info,omitempty" protobuf:"bytes,6,name=info"` - // 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. - RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty" protobuf:"bytes,7,name=revisionHistoryLimit"` - - // Sources is a reference to the location of the application's manifests or chart - Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"` -} - -type IgnoreDifferences []ResourceIgnoreDifferences - -type TrackingMethod string - -// ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state. -type ResourceIgnoreDifferences struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` - Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` - JSONPointers []string `json:"jsonPointers,omitempty" protobuf:"bytes,5,opt,name=jsonPointers"` - JQPathExpressions []string `json:"jqPathExpressions,omitempty" protobuf:"bytes,6,opt,name=jqPathExpressions"` - // ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the - // desired state defined in the SCM and won't be displayed in diffs - ManagedFieldsManagers []string `json:"managedFieldsManagers,omitempty" protobuf:"bytes,7,opt,name=managedFieldsManagers"` -} - -// EnvEntry represents an entry in the application's environment -type EnvEntry struct { - // Name is the name of the variable, usually expressed in uppercase - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Value is the value of the variable - Value string `json:"value" protobuf:"bytes,2,opt,name=value"` -} - -// Env is a list of environment variable entries -type Env []*EnvEntry - -// ApplicationSource contains all required information about the source of an application -type ApplicationSource struct { - // RepoURL is the URL to the repository (Git or Helm) that contains the application manifests - RepoURL string `json:"repoURL" protobuf:"bytes,1,opt,name=repoURL"` - // Path is a directory path within the Git repository, and is only valid for applications sourced from Git. - Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"` - // 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. - TargetRevision string `json:"targetRevision,omitempty" protobuf:"bytes,4,opt,name=targetRevision"` - // Helm holds helm specific options - Helm *ApplicationSourceHelm `json:"helm,omitempty" protobuf:"bytes,7,opt,name=helm"` - // Kustomize holds kustomize specific options - Kustomize *ApplicationSourceKustomize `json:"kustomize,omitempty" protobuf:"bytes,8,opt,name=kustomize"` - // Directory holds path/directory specific options - Directory *ApplicationSourceDirectory `json:"directory,omitempty" protobuf:"bytes,10,opt,name=directory"` - // Plugin holds config management plugin specific options - Plugin *ApplicationSourcePlugin `json:"plugin,omitempty" protobuf:"bytes,11,opt,name=plugin"` - // Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo. - Chart string `json:"chart,omitempty" protobuf:"bytes,12,opt,name=chart"` - // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. - Ref string `json:"ref,omitempty" protobuf:"bytes,13,opt,name=ref"` -} - -// ApplicationSources contains list of required information about the sources of an application -type ApplicationSources []ApplicationSource - -// ApplicationSourceType specifies the type of the application's source -type ApplicationSourceType string - -const ( - ApplicationSourceTypeHelm ApplicationSourceType = "Helm" - ApplicationSourceTypeKustomize ApplicationSourceType = "Kustomize" - ApplicationSourceTypeDirectory ApplicationSourceType = "Directory" - ApplicationSourceTypePlugin ApplicationSourceType = "Plugin" -) - -// RefreshType specifies how to refresh the sources of a given application -type RefreshType string - -const ( - RefreshTypeNormal RefreshType = "normal" - RefreshTypeHard RefreshType = "hard" -) - -type RefTarget struct { - Repo Repository `protobuf:"bytes,1,opt,name=repo"` - TargetRevision string `protobuf:"bytes,2,opt,name=targetRevision"` - Chart string `protobuf:"bytes,3,opt,name=chart"` -} - -type RefTargetRevisionMapping map[string]*RefTarget - -// ApplicationSourceHelm holds helm specific options -type ApplicationSourceHelm struct { - // ValuesFiles is a list of Helm value files to use when generating a template - ValueFiles []string `json:"valueFiles,omitempty" protobuf:"bytes,1,opt,name=valueFiles"` - // Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation - Parameters []HelmParameter `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` - // ReleaseName is the Helm release name to use. If omitted it will use the application name - ReleaseName string `json:"releaseName,omitempty" protobuf:"bytes,3,opt,name=releaseName"` - // Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other. - Values string `json:"values,omitempty" patchStrategy:"replace" protobuf:"bytes,4,opt,name=values"` - // FileParameters are file parameters to the helm template - FileParameters []HelmFileParameter `json:"fileParameters,omitempty" protobuf:"bytes,5,opt,name=fileParameters"` - // Version is the Helm version to use for templating ("3") - Version string `json:"version,omitempty" protobuf:"bytes,6,opt,name=version"` - // PassCredentials pass credentials to all domains (Helm's --pass-credentials) - PassCredentials bool `json:"passCredentials,omitempty" protobuf:"bytes,7,opt,name=passCredentials"` - // IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values - IgnoreMissingValueFiles bool `json:"ignoreMissingValueFiles,omitempty" protobuf:"bytes,8,opt,name=ignoreMissingValueFiles"` - // SkipCrds skips custom resource definition installation step (Helm's --skip-crds) - SkipCrds bool `json:"skipCrds,omitempty" protobuf:"bytes,9,opt,name=skipCrds"` - // ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values. - ValuesObject *runtime.RawExtension `json:"valuesObject,omitempty" protobuf:"bytes,10,opt,name=valuesObject"` - // Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace. - Namespace string `json:"namespace,omitempty" protobuf:"bytes,11,opt,name=namespace"` - // 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. - KubeVersion string `json:"kubeVersion,omitempty" protobuf:"bytes,12,opt,name=kubeVersion"` - // 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. - APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,13,opt,name=apiVersions"` -} - -// HelmParameter is a parameter that's passed to helm template during manifest generation -type HelmParameter struct { - // Name is the name of the Helm parameter - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - // Value is the value for the Helm parameter - Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` - // ForceString determines whether to tell Helm to interpret booleans and numbers as strings - ForceString bool `json:"forceString,omitempty" protobuf:"bytes,3,opt,name=forceString"` -} - -// HelmFileParameter is a file parameter that's passed to helm template during manifest generation -type HelmFileParameter struct { - // Name is the name of the Helm parameter - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - // Path is the path to the file containing the values for the Helm parameter - Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"` -} - -// KustomizeImage represents a Kustomize image definition in the format [old_image_name=]: -type KustomizeImage string - -// KustomizeImages is a list of Kustomize images -type KustomizeImages []KustomizeImage - -// ApplicationSourceKustomize holds options specific to an Application source specific to Kustomize -type ApplicationSourceKustomize struct { - // NamePrefix is a prefix appended to resources for Kustomize apps - NamePrefix string `json:"namePrefix,omitempty" protobuf:"bytes,1,opt,name=namePrefix"` - // NameSuffix is a suffix appended to resources for Kustomize apps - NameSuffix string `json:"nameSuffix,omitempty" protobuf:"bytes,2,opt,name=nameSuffix"` - // Images is a list of Kustomize image override specifications - Images KustomizeImages `json:"images,omitempty" protobuf:"bytes,3,opt,name=images"` - // CommonLabels is a list of additional labels to add to rendered manifests - CommonLabels map[string]string `json:"commonLabels,omitempty" protobuf:"bytes,4,opt,name=commonLabels"` - // Version controls which version of Kustomize to use for rendering manifests - Version string `json:"version,omitempty" protobuf:"bytes,5,opt,name=version"` - // CommonAnnotations is a list of additional annotations to add to rendered manifests - CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" protobuf:"bytes,6,opt,name=commonAnnotations"` - // ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps - ForceCommonLabels bool `json:"forceCommonLabels,omitempty" protobuf:"bytes,7,opt,name=forceCommonLabels"` - // ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps - ForceCommonAnnotations bool `json:"forceCommonAnnotations,omitempty" protobuf:"bytes,8,opt,name=forceCommonAnnotations"` - // Namespace sets the namespace that Kustomize adds to all resources - Namespace string `json:"namespace,omitempty" protobuf:"bytes,9,opt,name=namespace"` - // CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values - CommonAnnotationsEnvsubst bool `json:"commonAnnotationsEnvsubst,omitempty" protobuf:"bytes,10,opt,name=commonAnnotationsEnvsubst"` - // Replicas is a list of Kustomize Replicas override specifications - Replicas KustomizeReplicas `json:"replicas,omitempty" protobuf:"bytes,11,opt,name=replicas"` - // Patches is a list of Kustomize patches - Patches KustomizePatches `json:"patches,omitempty" protobuf:"bytes,12,opt,name=patches"` - // Components specifies a list of kustomize components to add to the kustomization before building - Components []string `json:"components,omitempty" protobuf:"bytes,13,rep,name=components"` - // LabelWithoutSelector specifies whether to apply common labels to resource selectors or not - LabelWithoutSelector bool `json:"labelWithoutSelector,omitempty" protobuf:"bytes,14,opt,name=labelWithoutSelector"` - // 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. - KubeVersion string `json:"kubeVersion,omitempty" protobuf:"bytes,15,opt,name=kubeVersion"` - // 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. - APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,16,opt,name=apiVersions"` -} - -type KustomizeReplica struct { - // Name of Deployment or StatefulSet - Name string `json:"name" protobuf:"bytes,1,name=name"` - // Number of replicas - Count intstr.IntOrString `json:"count" protobuf:"bytes,2,name=count"` -} - -type KustomizeReplicas []KustomizeReplica - -type KustomizePatches []KustomizePatch - -type KustomizePatch struct { - Path string `json:"path,omitempty" yaml:"path,omitempty" protobuf:"bytes,1,opt,name=path"` - Patch string `json:"patch,omitempty" yaml:"patch,omitempty" protobuf:"bytes,2,opt,name=patch"` - Target *KustomizeSelector `json:"target,omitempty" yaml:"target,omitempty" protobuf:"bytes,3,opt,name=target"` - Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty" protobuf:"bytes,4,opt,name=options"` -} - -type KustomizeSelector struct { - KustomizeResId `json:",inline,omitempty" yaml:",inline,omitempty" protobuf:"bytes,1,opt,name=resId"` - AnnotationSelector string `json:"annotationSelector,omitempty" yaml:"annotationSelector,omitempty" protobuf:"bytes,2,opt,name=annotationSelector"` - LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty" protobuf:"bytes,3,opt,name=labelSelector"` -} - -type KustomizeResId struct { - KustomizeGvk `json:",inline,omitempty" yaml:",inline,omitempty" protobuf:"bytes,1,opt,name=gvk"` - Name string `json:"name,omitempty" yaml:"name,omitempty" protobuf:"bytes,2,opt,name=name"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` -} - -type KustomizeGvk struct { - Group string `json:"group,omitempty" yaml:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Version string `json:"version,omitempty" yaml:"version,omitempty" protobuf:"bytes,2,opt,name=version"` - Kind string `json:"kind,omitempty" yaml:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` -} - -// JsonnetVar represents a variable to be passed to jsonnet during manifest generation -type JsonnetVar struct { - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - Value string `json:"value" protobuf:"bytes,2,opt,name=value"` - Code bool `json:"code,omitempty" protobuf:"bytes,3,opt,name=code"` -} - -// ApplicationSourceJsonnet holds options specific to applications of type Jsonnet -type ApplicationSourceJsonnet struct { - // ExtVars is a list of Jsonnet External Variables - ExtVars []JsonnetVar `json:"extVars,omitempty" protobuf:"bytes,1,opt,name=extVars"` - // TLAS is a list of Jsonnet Top-level Arguments - TLAs []JsonnetVar `json:"tlas,omitempty" protobuf:"bytes,2,opt,name=tlas"` - // Additional library search dirs - Libs []string `json:"libs,omitempty" protobuf:"bytes,3,opt,name=libs"` -} - -// ApplicationSourceDirectory holds options for applications of type plain YAML or Jsonnet -type ApplicationSourceDirectory struct { - // Recurse specifies whether to scan a directory recursively for manifests - Recurse bool `json:"recurse,omitempty" protobuf:"bytes,1,opt,name=recurse"` - // Jsonnet holds options specific to Jsonnet - Jsonnet ApplicationSourceJsonnet `json:"jsonnet,omitempty" protobuf:"bytes,2,opt,name=jsonnet"` - // Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation - Exclude string `json:"exclude,omitempty" protobuf:"bytes,3,opt,name=exclude"` - // Include contains a glob pattern to match paths against that should be explicitly included during manifest generation - Include string `json:"include,omitempty" protobuf:"bytes,4,opt,name=include"` -} - -type OptionalMap struct { - // Map is the value of a map type parameter. - // +optional - Map map[string]string `json:"map" protobuf:"bytes,1,rep,name=map"` - // We need the explicit +optional so that kube-builder generates the CRD without marking this as required. -} - -type OptionalArray struct { - // Array is the value of an array type parameter. - // +optional - Array []string `json:"array" protobuf:"bytes,1,rep,name=array"` - // We need the explicit +optional so that kube-builder generates the CRD without marking this as required. -} - -type ApplicationSourcePluginParameter struct { - // We use pointers to structs because go-to-protobuf represents pointers to arrays/maps as repeated fields. - // These repeated fields have no way to represent "present but empty." So we would have no way to distinguish - // {name: parameters, array: []} from {name: parameter} - // By wrapping the array/map in a struct, we can use a pointer to the struct to represent "present but empty." - - // Name is the name identifying a parameter. - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - // String_ is the value of a string type parameter. - String_ *string `json:"string,omitempty" protobuf:"bytes,5,opt,name=string"` - // Map is the value of a map type parameter. - *OptionalMap `json:",omitempty" protobuf:"bytes,3,rep,name=map"` - // Array is the value of an array type parameter. - *OptionalArray `json:",omitempty" protobuf:"bytes,4,rep,name=array"` -} - -type ApplicationSourcePluginParameters []ApplicationSourcePluginParameter - -// ApplicationSourcePlugin holds options specific to config management plugins -type ApplicationSourcePlugin struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - Env `json:"env,omitempty" protobuf:"bytes,2,opt,name=env"` - Parameters ApplicationSourcePluginParameters `json:"parameters,omitempty" protobuf:"bytes,3,opt,name=parameters"` -} - -// ApplicationDestination holds information about the application's destination -type ApplicationDestination struct { - // Server specifies the URL of the target cluster's Kubernetes control plane API. This must be set if Name is not set. - Server string `json:"server,omitempty" protobuf:"bytes,1,opt,name=server"` - // 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 - Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"` - // Name is an alternate way of specifying the target cluster by its symbolic name. This must be set if Server is not set. - Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` - - // nolint:govet - isServerInferred bool `json:"-"` -} - -type ResourceHealthLocation string - -var ( - ResourceHealthLocationInline ResourceHealthLocation = "" - ResourceHealthLocationAppTree ResourceHealthLocation = "appTree" -) - -// ApplicationStatus contains status information for the application -type ApplicationStatus struct { - // Resources is a list of Kubernetes resources managed by this application - Resources []ResourceStatus `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"` - // Sync contains information about the application's current sync status - Sync SyncStatus `json:"sync,omitempty" protobuf:"bytes,2,opt,name=sync"` - // Health contains information about the application's current health status - Health HealthStatus `json:"health,omitempty" protobuf:"bytes,3,opt,name=health"` - // History contains information about the application's sync history - History RevisionHistories `json:"history,omitempty" protobuf:"bytes,4,opt,name=history"` - // Conditions is a list of currently observed application conditions - Conditions []ApplicationCondition `json:"conditions,omitempty" protobuf:"bytes,5,opt,name=conditions"` - // ReconciledAt indicates when the application state was reconciled using the latest git version - ReconciledAt *metav1.Time `json:"reconciledAt,omitempty" protobuf:"bytes,6,opt,name=reconciledAt"` - // OperationState contains information about any ongoing operations, such as a sync - OperationState *OperationState `json:"operationState,omitempty" protobuf:"bytes,7,opt,name=operationState"` - // ObservedAt indicates when the application state was updated without querying latest git state - // Deprecated: controller no longer updates ObservedAt field - ObservedAt *metav1.Time `json:"observedAt,omitempty" protobuf:"bytes,8,opt,name=observedAt"` - // SourceType specifies the type of this application - SourceType ApplicationSourceType `json:"sourceType,omitempty" protobuf:"bytes,9,opt,name=sourceType"` - // Summary contains a list of URLs and container images used by this application - Summary ApplicationSummary `json:"summary,omitempty" protobuf:"bytes,10,opt,name=summary"` - // ResourceHealthSource indicates where the resource health status is stored: inline if not set or appTree - ResourceHealthSource ResourceHealthLocation `json:"resourceHealthSource,omitempty" protobuf:"bytes,11,opt,name=resourceHealthSource"` - // SourceTypes specifies the type of the sources included in the application - SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"` - // ControllerNamespace indicates the namespace in which the application controller is located - ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"` -} - -// JWTTokens represents a list of JWT tokens -type JWTTokens struct { - Items []JWTToken `json:"items,omitempty" protobuf:"bytes,1,opt,name=items"` -} - -// OperationInitiator contains information about the initiator of an operation -type OperationInitiator struct { - // Username contains the name of a user who started operation - Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"` - // Automated is set to true if operation was initiated automatically by the application controller. - Automated bool `json:"automated,omitempty" protobuf:"bytes,2,opt,name=automated"` -} - -// Operation contains information about a requested or running operation -type Operation struct { - // Sync contains parameters for the operation - Sync *SyncOperation `json:"sync,omitempty" protobuf:"bytes,1,opt,name=sync"` - // InitiatedBy contains information about who initiated the operations - InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,2,opt,name=initiatedBy"` - // Info is a list of informational items for this operation - Info []*Info `json:"info,omitempty" protobuf:"bytes,3,name=info"` - // Retry controls the strategy to apply if a sync fails - Retry RetryStrategy `json:"retry,omitempty" protobuf:"bytes,4,opt,name=retry"` -} - -// SyncOperationResource contains resources to sync. -type SyncOperationResource struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` - Name string `json:"name" protobuf:"bytes,3,opt,name=name"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` - // nolint:govet - Exclude bool `json:"-"` -} - -// RevisionHistories is a array of history, oldest first and newest last -type RevisionHistories []RevisionHistory - -// SyncOperation contains details about a sync operation. -type SyncOperation struct { - // 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. - Revision string `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"` - // Prune specifies to delete resources from the cluster that are no longer tracked in git - Prune bool `json:"prune,omitempty" protobuf:"bytes,2,opt,name=prune"` - // DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync - DryRun bool `json:"dryRun,omitempty" protobuf:"bytes,3,opt,name=dryRun"` - // SyncStrategy describes how to perform the sync - SyncStrategy *SyncStrategy `json:"syncStrategy,omitempty" protobuf:"bytes,4,opt,name=syncStrategy"` - // Resources describes which resources shall be part of the sync - Resources []SyncOperationResource `json:"resources,omitempty" protobuf:"bytes,6,opt,name=resources"` - // Source overrides the source definition set in the application. - // This is typically set in a Rollback operation and is nil during a Sync operation - Source *ApplicationSource `json:"source,omitempty" protobuf:"bytes,7,opt,name=source"` - // Manifests is an optional field that overrides sync source with a local directory for development - Manifests []string `json:"manifests,omitempty" protobuf:"bytes,8,opt,name=manifests"` - // SyncOptions provide per-sync sync-options, e.g. Validate=false - SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,9,opt,name=syncOptions"` - // Sources overrides the source definition set in the application. - // This is typically set in a Rollback operation and is nil during a Sync operation - Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,10,opt,name=sources"` - // 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. - Revisions []string `json:"revisions,omitempty" protobuf:"bytes,11,opt,name=revisions"` -} - -// OperationState contains information about state of a running operation -type OperationState struct { - // Operation is the original requested operation - Operation Operation `json:"operation" protobuf:"bytes,1,opt,name=operation"` - // Phase is the current phase of the operation - Phase string `json:"phase" protobuf:"bytes,2,opt,name=phase"` - // Message holds any pertinent messages when attempting to perform operation (typically errors). - Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` - // SyncResult is the result of a Sync operation - SyncResult *SyncOperationResult `json:"syncResult,omitempty" protobuf:"bytes,4,opt,name=syncResult"` - // StartedAt contains time of operation start - StartedAt metav1.Time `json:"startedAt" protobuf:"bytes,6,opt,name=startedAt"` - // FinishedAt contains time of operation completion - FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,7,opt,name=finishedAt"` - // RetryCount contains time of operation retries - RetryCount int64 `json:"retryCount,omitempty" protobuf:"bytes,8,opt,name=retryCount"` -} - -type Info struct { - Name string `json:"name" protobuf:"bytes,1,name=name"` - Value string `json:"value" protobuf:"bytes,2,name=value"` -} - -type SyncOptions []string - -type ManagedNamespaceMetadata struct { - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,1,opt,name=labels"` - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,opt,name=annotations"` -} - -// SyncPolicy controls when a sync will be performed in response to updates in git -type SyncPolicy struct { - // Automated will keep an application synced to the target revision - Automated *SyncPolicyAutomated `json:"automated,omitempty" protobuf:"bytes,1,opt,name=automated"` - // Options allow you to specify whole app sync-options - SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,2,opt,name=syncOptions"` - // Retry controls failed sync retry behavior - Retry *RetryStrategy `json:"retry,omitempty" protobuf:"bytes,3,opt,name=retry"` - // ManagedNamespaceMetadata controls metadata in the given namespace (if CreateNamespace=true) - ManagedNamespaceMetadata *ManagedNamespaceMetadata `json:"managedNamespaceMetadata,omitempty" protobuf:"bytes,4,opt,name=managedNamespaceMetadata"` - // If you add a field here, be sure to update IsZero. -} - -// RetryStrategy contains information about the strategy to apply when a sync failed -type RetryStrategy struct { - // Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed. - Limit int64 `json:"limit,omitempty" protobuf:"bytes,1,opt,name=limit"` - // Backoff controls how to backoff on subsequent retries of failed syncs - Backoff *Backoff `json:"backoff,omitempty" protobuf:"bytes,2,opt,name=backoff,casttype=Backoff"` -} - -// Backoff is the backoff strategy to use on subsequent retries for failing syncs -type Backoff struct { - // Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h") - Duration string `json:"duration,omitempty" protobuf:"bytes,1,opt,name=duration"` - // Factor is a factor to multiply the base duration after each failed retry - Factor *int64 `json:"factor,omitempty" protobuf:"bytes,2,name=factor"` - // MaxDuration is the maximum amount of time allowed for the backoff strategy - MaxDuration string `json:"maxDuration,omitempty" protobuf:"bytes,3,opt,name=maxDuration"` -} - -// SyncPolicyAutomated controls the behavior of an automated sync -type SyncPolicyAutomated struct { - // Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false) - Prune bool `json:"prune,omitempty" protobuf:"bytes,1,opt,name=prune"` - // SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false) - SelfHeal bool `json:"selfHeal,omitempty" protobuf:"bytes,2,opt,name=selfHeal"` - // AllowEmpty allows apps have zero live resources (default: false) - AllowEmpty bool `json:"allowEmpty,omitempty" protobuf:"bytes,3,opt,name=allowEmpty"` -} - -// SyncStrategy controls the manner in which a sync is performed -type SyncStrategy struct { - // Apply will perform a `kubectl apply` to perform the sync. - Apply *SyncStrategyApply `json:"apply,omitempty" protobuf:"bytes,1,opt,name=apply"` - // Hook will submit any referenced resources to perform the sync. This is the default strategy - Hook *SyncStrategyHook `json:"hook,omitempty" protobuf:"bytes,2,opt,name=hook"` -} - -// SyncStrategyApply uses `kubectl apply` to perform the apply -type SyncStrategyApply struct { - // 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. - Force bool `json:"force,omitempty" protobuf:"bytes,1,opt,name=force"` -} - -// SyncStrategyHook will perform a sync using hooks annotations. -// If no hook annotation is specified falls back to `kubectl apply`. -type SyncStrategyHook struct { - // Embed SyncStrategyApply type to inherit any `apply` options - // +optional - SyncStrategyApply `json:",inline" protobuf:"bytes,1,opt,name=syncStrategyApply"` -} - -// RevisionMetadata contains metadata for a specific revision in a Git repository -type RevisionMetadata struct { - // who authored this revision, - // typically their name and email, e.g. "John Doe ", - // but might not match this example - Author string `json:"author,omitempty" protobuf:"bytes,1,opt,name=author"` - // Date specifies when the revision was authored - Date metav1.Time `json:"date" protobuf:"bytes,2,opt,name=date"` - // Tags specifies any tags currently attached to the revision - // Floating tags can move from one revision to another - Tags []string `json:"tags,omitempty" protobuf:"bytes,3,opt,name=tags"` - // Message contains the message associated with the revision, most likely the commit message. - Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` - // SignatureInfo contains a hint on the signer if the revision was signed with GPG, and signature verification is enabled. - SignatureInfo string `json:"signatureInfo,omitempty" protobuf:"bytes,5,opt,name=signatureInfo"` -} - -// ChartDetails contains helm chart metadata for a specific version -type ChartDetails struct { - Description string `json:"description,omitempty" protobuf:"bytes,1,opt,name=description"` - // The URL of this projects home page, e.g. "http://example.com" - Home string `json:"home,omitempty" protobuf:"bytes,2,opt,name=home"` - // List of maintainer details, name and email, e.g. ["John Doe "] - Maintainers []string `json:"maintainers,omitempty" protobuf:"bytes,3,opt,name=maintainers"` -} - -// SyncOperationResult represent result of sync operation -type SyncOperationResult struct { - // Resources contains a list of sync result items for each individual resource in a sync operation - Resources ResourceResults `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"` - // Revision holds the revision this sync operation was performed to - Revision string `json:"revision" protobuf:"bytes,2,opt,name=revision"` - // Source records the application source information of the sync, used for comparing auto-sync - Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,3,opt,name=source"` - // Source records the application source information of the sync, used for comparing auto-sync - Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,4,opt,name=sources"` - // Revisions holds the revision this sync operation was performed for respective indexed source in sources field - Revisions []string `json:"revisions,omitempty" protobuf:"bytes,5,opt,name=revisions"` - // ManagedNamespaceMetadata contains the current sync state of managed namespace metadata - ManagedNamespaceMetadata *ManagedNamespaceMetadata `json:"managedNamespaceMetadata,omitempty" protobuf:"bytes,6,opt,name=managedNamespaceMetadata"` -} - -// ResourceResult holds the operation result details of a specific resource -type ResourceResult struct { - // Group specifies the API group of the resource - Group string `json:"group" protobuf:"bytes,1,opt,name=group"` - // Version specifies the API version of the resource - Version string `json:"version" protobuf:"bytes,2,opt,name=version"` - // Kind specifies the API kind of the resource - Kind string `json:"kind" protobuf:"bytes,3,opt,name=kind"` - // Namespace specifies the target namespace of the resource - Namespace string `json:"namespace" protobuf:"bytes,4,opt,name=namespace"` - // Name specifies the name of the resource - Name string `json:"name" protobuf:"bytes,5,opt,name=name"` - // Status holds the final result of the sync. Will be empty if the resources is yet to be applied/pruned and is always zero-value for hooks - Status string `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"` - // Message contains an informational or error message for the last sync OR operation - Message string `json:"message,omitempty" protobuf:"bytes,7,opt,name=message"` - // HookType specifies the type of the hook. Empty for non-hook resources - HookType string `json:"hookType,omitempty" protobuf:"bytes,8,opt,name=hookType"` - // HookPhase contains the state of any operation associated with this resource OR hook - // This can also contain values for non-hook resources. - HookPhase string `json:"hookPhase,omitempty" protobuf:"bytes,9,opt,name=hookPhase"` - // SyncPhase indicates the particular phase of the sync that this result was acquired in - SyncPhase string `json:"syncPhase,omitempty" protobuf:"bytes,10,opt,name=syncPhase"` -} - -// ResourceResults defines a list of resource results for a given operation -type ResourceResults []*ResourceResult - -// RevisionHistory contains history information about a previous sync -type RevisionHistory struct { - // Revision holds the revision the sync was performed against - Revision string `json:"revision,omitempty" protobuf:"bytes,2,opt,name=revision"` - // DeployedAt holds the time the sync operation completed - DeployedAt metav1.Time `json:"deployedAt" protobuf:"bytes,4,opt,name=deployedAt"` - // ID is an auto incrementing identifier of the RevisionHistory - ID int64 `json:"id" protobuf:"bytes,5,opt,name=id"` - // Source is a reference to the application source used for the sync operation - Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,6,opt,name=source"` - // DeployStartedAt holds the time the sync operation started - DeployStartedAt *metav1.Time `json:"deployStartedAt,omitempty" protobuf:"bytes,7,opt,name=deployStartedAt"` - // Sources is a reference to the application sources used for the sync operation - Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"` - // Revisions holds the revision of each source in sources field the sync was performed against - Revisions []string `json:"revisions,omitempty" protobuf:"bytes,9,opt,name=revisions"` - // InitiatedBy contains information about who initiated the operations - InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,10,opt,name=initiatedBy"` -} - -// ApplicationWatchEvent contains information about application change. -type ApplicationWatchEvent struct { - Type watch.EventType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=k8s.io/apimachinery/pkg/watch.EventType"` - - // Application is: - // * If Type is Added or Modified: the new state of the object. - // * If Type is Deleted: the state of the object immediately before deletion. - // * If Type is Error: *api.Status is recommended; other types may make sense - // depending on context. - Application Application `json:"application" protobuf:"bytes,2,opt,name=application"` -} - -// ApplicationList is list of Application resources -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -type ApplicationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Items []Application `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// ComponentParameter contains information about component parameter value -type ComponentParameter struct { - Component string `json:"component,omitempty" protobuf:"bytes,1,opt,name=component"` - Name string `json:"name" protobuf:"bytes,2,opt,name=name"` - Value string `json:"value" protobuf:"bytes,3,opt,name=value"` -} - -// SyncStatusCode is a type which represents possible comparison results -type SyncStatusCode string - -// Possible comparison results -const ( - // SyncStatusCodeUnknown indicates that the status of a sync could not be reliably determined - SyncStatusCodeUnknown SyncStatusCode = "Unknown" - // SyncStatusCodeOutOfSync indicates that desired and live states match - SyncStatusCodeSynced SyncStatusCode = "Synced" - // SyncStatusCodeOutOfSync indicates that there is a drift between desired and live states - SyncStatusCodeOutOfSync SyncStatusCode = "OutOfSync" -) - -// ApplicationConditionType represents type of application condition. Type name has following convention: -// prefix "Error" means error condition -// prefix "Warning" means warning condition -// prefix "Info" means informational condition -type ApplicationConditionType = string - -const ( - // ApplicationConditionDeletionError indicates that controller failed to delete application - ApplicationConditionDeletionError = "DeletionError" - // ApplicationConditionInvalidSpecError indicates that application source is invalid - ApplicationConditionInvalidSpecError = "InvalidSpecError" - // ApplicationConditionComparisonError indicates controller failed to compare application state - ApplicationConditionComparisonError = "ComparisonError" - // ApplicationConditionSyncError indicates controller failed to automatically sync the application - ApplicationConditionSyncError = "SyncError" - // ApplicationConditionUnknownError indicates an unknown controller error - ApplicationConditionUnknownError = "UnknownError" - // ApplicationConditionSharedResourceWarning indicates that controller detected resources which belongs to more than one application - ApplicationConditionSharedResourceWarning = "SharedResourceWarning" - // ApplicationConditionRepeatedResourceWarning indicates that application source has resource with same Group, Kind, Name, Namespace multiple times - ApplicationConditionRepeatedResourceWarning = "RepeatedResourceWarning" - // ApplicationConditionExcludedResourceWarning indicates that application has resource which is configured to be excluded - ApplicationConditionExcludedResourceWarning = "ExcludedResourceWarning" - // ApplicationConditionOrphanedResourceWarning indicates that application has orphaned resources - ApplicationConditionOrphanedResourceWarning = "OrphanedResourceWarning" -) - -// ApplicationCondition contains details about an application condition, which is usually an error or warning -type ApplicationCondition struct { - // Type is an application condition type - Type ApplicationConditionType `json:"type" protobuf:"bytes,1,opt,name=type"` - // Message contains human-readable message indicating details about condition - Message string `json:"message" protobuf:"bytes,2,opt,name=message"` - // LastTransitionTime is the time the condition was last observed - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` -} - -// ComparedTo contains application source and target which was used for resources comparison -type ComparedTo struct { - // Source is a reference to the application's source used for comparison - Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,1,opt,name=source"` - // Destination is a reference to the application's destination used for comparison - Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,opt,name=destination"` - // Sources is a reference to the application's multiple sources used for comparison - Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,3,opt,name=sources"` - // IgnoreDifferences is a reference to the application's ignored differences used for comparison - IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,4,opt,name=ignoreDifferences"` -} - -// SyncStatus contains information about the currently observed live and desired states of an application -type SyncStatus struct { - // Status is the sync state of the comparison - Status SyncStatusCode `json:"status" protobuf:"bytes,1,opt,name=status,casttype=SyncStatusCode"` - // ComparedTo contains information about what has been compared - ComparedTo ComparedTo `json:"comparedTo,omitempty" protobuf:"bytes,2,opt,name=comparedTo"` - // Revision contains information about the revision the comparison has been performed to - Revision string `json:"revision,omitempty" protobuf:"bytes,3,opt,name=revision"` - // Revisions contains information about the revisions of multiple sources the comparison has been performed to - Revisions []string `json:"revisions,omitempty" protobuf:"bytes,4,opt,name=revisions"` -} - -// HealthStatus contains information about the currently observed health state of an application or resource -type HealthStatus struct { - // Status holds the status code of the application or resource - Status string `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"` - // Message is a human-readable informational message describing the health status - Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` -} - -// InfoItem contains arbitrary, human readable information about an application -type InfoItem struct { - // Name is a human readable title for this piece of information. - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - // Value is human readable content. - Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` -} - -// ResourceNetworkingInfo holds networking resource related information -// TODO: describe members of this type -type ResourceNetworkingInfo struct { - TargetLabels map[string]string `json:"targetLabels,omitempty" protobuf:"bytes,1,opt,name=targetLabels"` - TargetRefs []ResourceRef `json:"targetRefs,omitempty" protobuf:"bytes,2,opt,name=targetRefs"` - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,opt,name=labels"` - Ingress []v1.LoadBalancerIngress `json:"ingress,omitempty" protobuf:"bytes,4,opt,name=ingress"` - // ExternalURLs holds list of URLs which should be available externally. List is populated for ingress resources using rules hostnames. - ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,5,opt,name=externalURLs"` -} - -// TODO: describe this type -type HostResourceInfo struct { - ResourceName v1.ResourceName `json:"resourceName,omitempty" protobuf:"bytes,1,name=resourceName"` - RequestedByApp int64 `json:"requestedByApp,omitempty" protobuf:"bytes,2,name=requestedByApp"` - RequestedByNeighbors int64 `json:"requestedByNeighbors,omitempty" protobuf:"bytes,3,name=requestedByNeighbors"` - Capacity int64 `json:"capacity,omitempty" protobuf:"bytes,4,name=capacity"` -} - -// HostInfo holds host name and resources metrics -// TODO: describe purpose of this type -// TODO: describe members of this type -type HostInfo struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` - ResourcesInfo []HostResourceInfo `json:"resourcesInfo,omitempty" protobuf:"bytes,2,name=resourcesInfo"` - SystemInfo v1.NodeSystemInfo `json:"systemInfo,omitempty" protobuf:"bytes,3,opt,name=systemInfo"` -} - -// ApplicationTree holds nodes which belongs to the application -// TODO: describe purpose of this type -type ApplicationTree struct { - // Nodes contains list of nodes which either directly managed by the application and children of directly managed nodes. - Nodes []ResourceNode `json:"nodes,omitempty" protobuf:"bytes,1,rep,name=nodes"` - // OrphanedNodes contains if or orphaned nodes: nodes which are not managed by the app but in the same namespace. List is populated only if orphaned resources enabled in app project. - OrphanedNodes []ResourceNode `json:"orphanedNodes,omitempty" protobuf:"bytes,2,rep,name=orphanedNodes"` - // Hosts holds list of Kubernetes nodes that run application related pods - Hosts []HostInfo `json:"hosts,omitempty" protobuf:"bytes,3,rep,name=hosts"` -} - -// ApplicationSummary contains information about URLs and container images used by an application -type ApplicationSummary struct { - // ExternalURLs holds all external URLs of application child resources. - ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,1,opt,name=externalURLs"` - // Images holds all images of application child resources. - Images []string `json:"images,omitempty" protobuf:"bytes,2,opt,name=images"` -} - -// ResourceRef includes fields which uniquely identify a resource -type ResourceRef struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"` - Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` - Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"` - UID string `json:"uid,omitempty" protobuf:"bytes,6,opt,name=uid"` -} - -// ResourceNode contains information about live resource and its children -// TODO: describe members of this type -type ResourceNode struct { - ResourceRef `json:",inline" protobuf:"bytes,1,opt,name=resourceRef"` - ParentRefs []ResourceRef `json:"parentRefs,omitempty" protobuf:"bytes,2,opt,name=parentRefs"` - Info []InfoItem `json:"info,omitempty" protobuf:"bytes,3,opt,name=info"` - NetworkingInfo *ResourceNetworkingInfo `json:"networkingInfo,omitempty" protobuf:"bytes,4,opt,name=networkingInfo"` - ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,5,opt,name=resourceVersion"` - Images []string `json:"images,omitempty" protobuf:"bytes,6,opt,name=images"` - Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"` - CreatedAt *metav1.Time `json:"createdAt,omitempty" protobuf:"bytes,8,opt,name=createdAt"` -} - -// ResourceStatus holds the current sync and health status of a resource -// TODO: describe members of this type -type ResourceStatus struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"` - Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` - Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"` - Status SyncStatusCode `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"` - Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"` - Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"` - RequiresPruning bool `json:"requiresPruning,omitempty" protobuf:"bytes,9,opt,name=requiresPruning"` - SyncWave int64 `json:"syncWave,omitempty" protobuf:"bytes,10,opt,name=syncWave"` -} - -// ResourceDiff holds the diff of a live and target resource object -// TODO: describe members of this type -type ResourceDiff struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` - Name string `json:"name,omitempty" protobuf:"bytes,4,opt,name=name"` - // TargetState contains the JSON serialized resource manifest defined in the Git/Helm - TargetState string `json:"targetState,omitempty" protobuf:"bytes,5,opt,name=targetState"` - // TargetState contains the JSON live resource manifest - LiveState string `json:"liveState,omitempty" protobuf:"bytes,6,opt,name=liveState"` - // Diff contains the JSON patch between target and live resource - // Deprecated: use NormalizedLiveState and PredictedLiveState to render the difference - Diff string `json:"diff,omitempty" protobuf:"bytes,7,opt,name=diff"` - Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"` - // NormalizedLiveState contains JSON serialized live resource state with applied normalizations - NormalizedLiveState string `json:"normalizedLiveState,omitempty" protobuf:"bytes,9,opt,name=normalizedLiveState"` - // PredictedLiveState contains JSON serialized resource state that is calculated based on normalized and target resource state - PredictedLiveState string `json:"predictedLiveState,omitempty" protobuf:"bytes,10,opt,name=predictedLiveState"` - ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,11,opt,name=resourceVersion"` - Modified bool `json:"modified,omitempty" protobuf:"bytes,12,opt,name=modified"` -} - -// ConnectionStatus represents the status indicator for a connection to a remote resource -type ConnectionStatus = string - -const ( - // ConnectionStatusSuccessful indicates that a connection has been successfully established - ConnectionStatusSuccessful = "Successful" - // ConnectionStatusFailed indicates that a connection attempt has failed - ConnectionStatusFailed = "Failed" - // ConnectionStatusUnknown indicates that the connection status could not be reliably determined - ConnectionStatusUnknown = "Unknown" -) - -// ConnectionState contains information about remote resource connection state, currently used for clusters and repositories -type ConnectionState struct { - // Status contains the current status indicator for the connection - Status ConnectionStatus `json:"status" protobuf:"bytes,1,opt,name=status"` - // Message contains human readable information about the connection status - Message string `json:"message" protobuf:"bytes,2,opt,name=message"` - // ModifiedAt contains the timestamp when this connection status has been determined - ModifiedAt *metav1.Time `json:"attemptedAt" protobuf:"bytes,3,opt,name=attemptedAt"` -} - -// Cluster is the definition of a cluster resource -type Cluster struct { - // ID is an internal field cluster identifier. Not exposed via API. - ID string `json:"-"` - // Server is the API server URL of the Kubernetes cluster - Server string `json:"server" protobuf:"bytes,1,opt,name=server"` - // Name of the cluster. If omitted, will use the server address - Name string `json:"name" protobuf:"bytes,2,opt,name=name"` - // Config holds cluster information for connecting to a cluster - Config ClusterConfig `json:"config" protobuf:"bytes,3,opt,name=config"` - // Deprecated: use Info.ConnectionState field instead. - // ConnectionState contains information about cluster connection state - ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,4,opt,name=connectionState"` - // Deprecated: use Info.ServerVersion field instead. - // The server version - ServerVersion string `json:"serverVersion,omitempty" protobuf:"bytes,5,opt,name=serverVersion"` - // Holds list of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty. - Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,6,opt,name=namespaces"` - // RefreshRequestedAt holds time when cluster cache refresh has been requested - RefreshRequestedAt *metav1.Time `json:"refreshRequestedAt,omitempty" protobuf:"bytes,7,opt,name=refreshRequestedAt"` - // Info holds information about cluster cache and state - Info ClusterInfo `json:"info,omitempty" protobuf:"bytes,8,opt,name=info"` - // Shard contains optional shard number. Calculated on the fly by the application controller if not specified. - Shard *int64 `json:"shard,omitempty" protobuf:"bytes,9,opt,name=shard"` - // Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode. - ClusterResources bool `json:"clusterResources,omitempty" protobuf:"bytes,10,opt,name=clusterResources"` - // Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity - Project string `json:"project,omitempty" protobuf:"bytes,11,opt,name=project"` - // Labels for cluster secret metadata - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,12,opt,name=labels"` - // Annotations for cluster secret metadata - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,13,opt,name=annotations"` -} - -// ClusterInfo contains information about the cluster -type ClusterInfo struct { - // ConnectionState contains information about the connection to the cluster - ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,1,opt,name=connectionState"` - // ServerVersion contains information about the Kubernetes version of the cluster - ServerVersion string `json:"serverVersion,omitempty" protobuf:"bytes,2,opt,name=serverVersion"` - // CacheInfo contains information about the cluster cache - CacheInfo ClusterCacheInfo `json:"cacheInfo,omitempty" protobuf:"bytes,3,opt,name=cacheInfo"` - // ApplicationsCount is the number of applications managed by Argo CD on the cluster - ApplicationsCount int64 `json:"applicationsCount" protobuf:"bytes,4,opt,name=applicationsCount"` - // APIVersions contains list of API versions supported by the cluster - APIVersions []string `json:"apiVersions,omitempty" protobuf:"bytes,5,opt,name=apiVersions"` -} - -// ClusterCacheInfo contains information about the cluster cache -type ClusterCacheInfo struct { - // ResourcesCount holds number of observed Kubernetes resources - ResourcesCount int64 `json:"resourcesCount,omitempty" protobuf:"bytes,1,opt,name=resourcesCount"` - // APIsCount holds number of observed Kubernetes API count - APIsCount int64 `json:"apisCount,omitempty" protobuf:"bytes,2,opt,name=apisCount"` - // LastCacheSyncTime holds time of most recent cache synchronization - LastCacheSyncTime *metav1.Time `json:"lastCacheSyncTime,omitempty" protobuf:"bytes,3,opt,name=lastCacheSyncTime"` -} - -// ClusterList is a collection of Clusters. -type ClusterList struct { - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items []Cluster `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// AWSAuthConfig is an AWS IAM authentication configuration -type AWSAuthConfig struct { - // ClusterName contains AWS cluster name - ClusterName string `json:"clusterName,omitempty" protobuf:"bytes,1,opt,name=clusterName"` - - // RoleARN contains optional role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain. - RoleARN string `json:"roleARN,omitempty" protobuf:"bytes,2,opt,name=roleARN"` - - // Profile contains optional role ARN. If set then AWS IAM Authenticator uses the profile to perform cluster operations instead of the default AWS credential provider chain. - Profile string `json:"profile,omitempty" protobuf:"bytes,3,opt,name=profile"` -} - -// ExecProviderConfig is config used to call an external command to perform cluster authentication -// See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig -type ExecProviderConfig struct { - // Command to execute - Command string `json:"command,omitempty" protobuf:"bytes,1,opt,name=command"` - - // Arguments to pass to the command when executing it - Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"` - - // Env defines additional environment variables to expose to the process - Env map[string]string `json:"env,omitempty" protobuf:"bytes,3,opt,name=env"` - - // Preferred input version of the ExecInfo - APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,4,opt,name=apiVersion"` - - // This text is shown to the user when the executable doesn't seem to be present - InstallHint string `json:"installHint,omitempty" protobuf:"bytes,5,opt,name=installHint"` -} - -// ClusterConfig is the configuration attributes. This structure is subset of the go-client -// rest.Config with annotations added for marshalling. -type ClusterConfig struct { - // Server requires Basic authentication - Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"` - Password string `json:"password,omitempty" protobuf:"bytes,2,opt,name=password"` - - // Server requires Bearer authentication. This client will not attempt to use - // refresh tokens for an OAuth2 flow. - // TODO: demonstrate an OAuth2 compatible client. - BearerToken string `json:"bearerToken,omitempty" protobuf:"bytes,3,opt,name=bearerToken"` - - // TLSClientConfig contains settings to enable transport layer security - TLSClientConfig `json:"tlsClientConfig" protobuf:"bytes,4,opt,name=tlsClientConfig"` - - // AWSAuthConfig contains IAM authentication configuration - AWSAuthConfig *AWSAuthConfig `json:"awsAuthConfig,omitempty" protobuf:"bytes,5,opt,name=awsAuthConfig"` - - // ExecProviderConfig contains configuration for an exec provider - ExecProviderConfig *ExecProviderConfig `json:"execProviderConfig,omitempty" protobuf:"bytes,6,opt,name=execProviderConfig"` -} - -// TLSClientConfig contains settings to enable transport layer security -type TLSClientConfig struct { - // Insecure specifies that the server should be accessed without verifying the TLS certificate. For testing only. - Insecure bool `json:"insecure" protobuf:"bytes,1,opt,name=insecure"` - // ServerName is passed to the server for SNI and is used in the client to check server - // certificates against. If ServerName is empty, the hostname used to contact the - // server is used. - ServerName string `json:"serverName,omitempty" protobuf:"bytes,2,opt,name=serverName"` - // CertData holds PEM-encoded bytes (typically read from a client certificate file). - // CertData takes precedence over CertFile - CertData []byte `json:"certData,omitempty" protobuf:"bytes,3,opt,name=certData"` - // KeyData holds PEM-encoded bytes (typically read from a client certificate key file). - // KeyData takes precedence over KeyFile - KeyData []byte `json:"keyData,omitempty" protobuf:"bytes,4,opt,name=keyData"` - // CAData holds PEM-encoded bytes (typically read from a root certificates bundle). - // CAData takes precedence over CAFile - CAData []byte `json:"caData,omitempty" protobuf:"bytes,5,opt,name=caData"` -} - -// KnownTypeField contains mapping between CRD field and known Kubernetes type. -// This is mainly used for unit conversion in unknown resources (e.g. 0.1 == 100mi) -// TODO: Describe the members of this type -type KnownTypeField struct { - Field string `json:"field,omitempty" protobuf:"bytes,1,opt,name=field"` - Type string `json:"type,omitempty" protobuf:"bytes,2,opt,name=type"` -} - -// OverrideIgnoreDiff contains configurations about how fields should be ignored during diffs between -// the desired state and live state -type OverrideIgnoreDiff struct { - // JSONPointers is a JSON path list following the format defined in RFC4627 (https://datatracker.ietf.org/doc/html/rfc6902#section-3) - JSONPointers []string `json:"jsonPointers" protobuf:"bytes,1,rep,name=jSONPointers"` - // JQPathExpressions is a JQ path list that will be evaludated during the diff process - JQPathExpressions []string `json:"jqPathExpressions" protobuf:"bytes,2,opt,name=jqPathExpressions"` - // ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the - // desired state defined in the SCM and won't be displayed in diffs - ManagedFieldsManagers []string `json:"managedFieldsManagers" protobuf:"bytes,3,opt,name=managedFieldsManagers"` -} - -type rawResourceOverride struct { - HealthLua string `json:"health.lua,omitempty"` - UseOpenLibs bool `json:"health.lua.useOpenLibs,omitempty"` - Actions string `json:"actions,omitempty"` - IgnoreDifferences string `json:"ignoreDifferences,omitempty"` - IgnoreResourceUpdates string `json:"ignoreResourceUpdates,omitempty"` - KnownTypeFields []KnownTypeField `json:"knownTypeFields,omitempty"` -} - -// ResourceOverride holds configuration to customize resource diffing and health assessment -// TODO: describe the members of this type -type ResourceOverride struct { - HealthLua string `protobuf:"bytes,1,opt,name=healthLua"` - UseOpenLibs bool `protobuf:"bytes,5,opt,name=useOpenLibs"` - Actions string `protobuf:"bytes,3,opt,name=actions"` - IgnoreDifferences OverrideIgnoreDiff `protobuf:"bytes,2,opt,name=ignoreDifferences"` - IgnoreResourceUpdates OverrideIgnoreDiff `protobuf:"bytes,6,opt,name=ignoreResourceUpdates"` - KnownTypeFields []KnownTypeField `protobuf:"bytes,4,opt,name=knownTypeFields"` -} - -// TODO: describe this type -// TODO: describe members of this type -type ResourceActions struct { - ActionDiscoveryLua string `json:"discovery.lua,omitempty" yaml:"discovery.lua,omitempty" protobuf:"bytes,1,opt,name=actionDiscoveryLua"` - Definitions []ResourceActionDefinition `json:"definitions,omitempty" protobuf:"bytes,2,rep,name=definitions"` -} - -// TODO: describe this type -// TODO: describe members of this type -type ResourceActionDefinition struct { - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - ActionLua string `json:"action.lua" yaml:"action.lua" protobuf:"bytes,2,opt,name=actionLua"` -} - -// TODO: describe this type -// TODO: describe members of this type -type ResourceAction struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - Params []ResourceActionParam `json:"params,omitempty" protobuf:"bytes,2,rep,name=params"` - Disabled bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"` - IconClass string `json:"iconClass,omitempty" protobuf:"bytes,4,opt,name=iconClass"` - DisplayName string `json:"displayName,omitempty" protobuf:"bytes,5,opt,name=displayName"` -} - -// TODO: describe this type -// TODO: describe members of this type -type ResourceActionParam struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` - Type string `json:"type,omitempty" protobuf:"bytes,3,opt,name=type"` - Default string `json:"default,omitempty" protobuf:"bytes,4,opt,name=default"` -} - -// TODO: refactor to use rbacpolicy.ActionGet, rbacpolicy.ActionCreate, without import cycle -var validActions = map[string]bool{ - "get": true, - "create": true, - "update": true, - "delete": true, - "sync": true, - "override": true, - "*": true, -} - -// OrphanedResourcesMonitorSettings holds settings of orphaned resources monitoring -type OrphanedResourcesMonitorSettings struct { - // Warn indicates if warning condition should be created for apps which have orphaned resources - Warn *bool `json:"warn,omitempty" protobuf:"bytes,1,name=warn"` - // Ignore contains a list of resources that are to be excluded from orphaned resources monitoring - Ignore []OrphanedResourceKey `json:"ignore,omitempty" protobuf:"bytes,2,opt,name=ignore"` -} - -// OrphanedResourceKey is a reference to a resource to be ignored from -type OrphanedResourceKey struct { - Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` - Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"` - Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` -} - -// SignatureKey is the specification of a key required to verify commit signatures with -type SignatureKey struct { - // The ID of the key in hexadecimal notation - KeyID string `json:"keyID" protobuf:"bytes,1,name=keyID"` -} - -// AppProjectSpec is the specification of an AppProject -type AppProjectSpec struct { - // SourceRepos contains list of repository URLs which can be used for deployment - SourceRepos []string `json:"sourceRepos,omitempty" protobuf:"bytes,1,name=sourceRepos"` - // Destinations contains list of destinations available for deployment - Destinations []ApplicationDestination `json:"destinations,omitempty" protobuf:"bytes,2,name=destination"` - // Description contains optional project description - Description string `json:"description,omitempty" protobuf:"bytes,3,opt,name=description"` - // Roles are user defined RBAC roles associated with this project - Roles []ProjectRole `json:"roles,omitempty" protobuf:"bytes,4,rep,name=roles"` - // ClusterResourceWhitelist contains list of whitelisted cluster level resources - ClusterResourceWhitelist []metav1.GroupKind `json:"clusterResourceWhitelist,omitempty" protobuf:"bytes,5,opt,name=clusterResourceWhitelist"` - // NamespaceResourceBlacklist contains list of blacklisted namespace level resources - NamespaceResourceBlacklist []metav1.GroupKind `json:"namespaceResourceBlacklist,omitempty" protobuf:"bytes,6,opt,name=namespaceResourceBlacklist"` - // OrphanedResources specifies if controller should monitor orphaned resources of apps in this project - OrphanedResources *OrphanedResourcesMonitorSettings `json:"orphanedResources,omitempty" protobuf:"bytes,7,opt,name=orphanedResources"` - // SyncWindows controls when syncs can be run for apps in this project - SyncWindows SyncWindows `json:"syncWindows,omitempty" protobuf:"bytes,8,opt,name=syncWindows"` - // NamespaceResourceWhitelist contains list of whitelisted namespace level resources - NamespaceResourceWhitelist []metav1.GroupKind `json:"namespaceResourceWhitelist,omitempty" protobuf:"bytes,9,opt,name=namespaceResourceWhitelist"` - // SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync - SignatureKeys []SignatureKey `json:"signatureKeys,omitempty" protobuf:"bytes,10,opt,name=signatureKeys"` - // ClusterResourceBlacklist contains list of blacklisted cluster level resources - ClusterResourceBlacklist []metav1.GroupKind `json:"clusterResourceBlacklist,omitempty" protobuf:"bytes,11,opt,name=clusterResourceBlacklist"` - // SourceNamespaces defines the namespaces application resources are allowed to be created in - SourceNamespaces []string `json:"sourceNamespaces,omitempty" protobuf:"bytes,12,opt,name=sourceNamespaces"` - // PermitOnlyProjectScopedClusters determines whether destinations can only reference clusters which are project-scoped - PermitOnlyProjectScopedClusters bool `json:"permitOnlyProjectScopedClusters,omitempty" protobuf:"bytes,13,opt,name=permitOnlyProjectScopedClusters"` -} - -// SyncWindows is a collection of sync windows in this project -type SyncWindows []*SyncWindow - -// SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps -type SyncWindow struct { - // Kind defines if the window allows or blocks syncs - Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"` - // Schedule is the time the window will begin, specified in cron format - Schedule string `json:"schedule,omitempty" protobuf:"bytes,2,opt,name=schedule"` - // Duration is the amount of time the sync window will be open - Duration string `json:"duration,omitempty" protobuf:"bytes,3,opt,name=duration"` - // Applications contains a list of applications that the window will apply to - Applications []string `json:"applications,omitempty" protobuf:"bytes,4,opt,name=applications"` - // Namespaces contains a list of namespaces that the window will apply to - Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,5,opt,name=namespaces"` - // Clusters contains a list of clusters that the window will apply to - Clusters []string `json:"clusters,omitempty" protobuf:"bytes,6,opt,name=clusters"` - // ManualSync enables manual syncs when they would otherwise be blocked - ManualSync bool `json:"manualSync,omitempty" protobuf:"bytes,7,opt,name=manualSync"` - // TimeZone of the sync that will be applied to the schedule - TimeZone string `json:"timeZone,omitempty" protobuf:"bytes,8,opt,name=timeZone"` -} - -// ProjectRole represents a role that has access to a project -type ProjectRole struct { - // Name is a name for this role - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Description is a description of the role - Description string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"` - // Policies Stores a list of casbin formatted strings that define access policies for the role in the project - Policies []string `json:"policies,omitempty" protobuf:"bytes,3,rep,name=policies"` - // JWTTokens are a list of generated JWT tokens bound to this role - JWTTokens []JWTToken `json:"jwtTokens,omitempty" protobuf:"bytes,4,rep,name=jwtTokens"` - // Groups are a list of OIDC group claims bound to this role - Groups []string `json:"groups,omitempty" protobuf:"bytes,5,rep,name=groups"` -} - -// JWTToken holds the issuedAt and expiresAt values of a token -type JWTToken struct { - IssuedAt int64 `json:"iat" protobuf:"int64,1,opt,name=iat"` - ExpiresAt int64 `json:"exp,omitempty" protobuf:"int64,2,opt,name=exp"` - ID string `json:"id,omitempty" protobuf:"bytes,3,opt,name=id"` -} - -// Command holds binary path and arguments list -type Command struct { - Command []string `json:"command,omitempty" protobuf:"bytes,1,name=command"` - Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"` -} - -// ConfigManagementPlugin contains config management plugin configuration -type ConfigManagementPlugin struct { - Name string `json:"name" protobuf:"bytes,1,name=name"` - Init *Command `json:"init,omitempty" protobuf:"bytes,2,name=init"` - Generate Command `json:"generate" protobuf:"bytes,3,name=generate"` - LockRepo bool `json:"lockRepo,omitempty" protobuf:"bytes,4,name=lockRepo"` -} - -// HelmOptions holds helm options -type HelmOptions struct { - ValuesFileSchemes []string `protobuf:"bytes,1,opt,name=valuesFileSchemes"` -} - -// KustomizeOptions are options for kustomize to use when building manifests -type KustomizeOptions struct { - // BuildOptions is a string of build parameters to use when calling `kustomize build` - BuildOptions string `protobuf:"bytes,1,opt,name=buildOptions"` - // BinaryPath holds optional path to kustomize binary - BinaryPath string `protobuf:"bytes,2,opt,name=binaryPath"` -} diff --git a/argocd/v1alpha1/zz_generated_deepcopy.go b/argocd/v1alpha1/zz_generated_deepcopy.go deleted file mode 100644 index 27e5f80d0c..0000000000 --- a/argocd/v1alpha1/zz_generated_deepcopy.go +++ /dev/null @@ -1,4434 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - corev1 "k8s.io/api/core/v1" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - intstr "k8s.io/apimachinery/pkg/util/intstr" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AWSAuthConfig) DeepCopyInto(out *AWSAuthConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSAuthConfig. -func (in *AWSAuthConfig) DeepCopy() *AWSAuthConfig { - if in == nil { - return nil - } - out := new(AWSAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AppProject) DeepCopyInto(out *AppProject) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProject. -func (in *AppProject) DeepCopy() *AppProject { - if in == nil { - return nil - } - out := new(AppProject) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AppProject) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AppProjectList) DeepCopyInto(out *AppProjectList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]AppProject, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectList. -func (in *AppProjectList) DeepCopy() *AppProjectList { - if in == nil { - return nil - } - out := new(AppProjectList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AppProjectList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AppProjectSpec) DeepCopyInto(out *AppProjectSpec) { - *out = *in - if in.SourceRepos != nil { - in, out := &in.SourceRepos, &out.SourceRepos - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Destinations != nil { - in, out := &in.Destinations, &out.Destinations - *out = make([]ApplicationDestination, len(*in)) - copy(*out, *in) - } - if in.Roles != nil { - in, out := &in.Roles, &out.Roles - *out = make([]ProjectRole, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ClusterResourceWhitelist != nil { - in, out := &in.ClusterResourceWhitelist, &out.ClusterResourceWhitelist - *out = make([]v1.GroupKind, len(*in)) - copy(*out, *in) - } - if in.NamespaceResourceBlacklist != nil { - in, out := &in.NamespaceResourceBlacklist, &out.NamespaceResourceBlacklist - *out = make([]v1.GroupKind, len(*in)) - copy(*out, *in) - } - if in.OrphanedResources != nil { - in, out := &in.OrphanedResources, &out.OrphanedResources - *out = new(OrphanedResourcesMonitorSettings) - (*in).DeepCopyInto(*out) - } - if in.SyncWindows != nil { - in, out := &in.SyncWindows, &out.SyncWindows - *out = make(SyncWindows, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(SyncWindow) - (*in).DeepCopyInto(*out) - } - } - } - if in.NamespaceResourceWhitelist != nil { - in, out := &in.NamespaceResourceWhitelist, &out.NamespaceResourceWhitelist - *out = make([]v1.GroupKind, len(*in)) - copy(*out, *in) - } - if in.SignatureKeys != nil { - in, out := &in.SignatureKeys, &out.SignatureKeys - *out = make([]SignatureKey, len(*in)) - copy(*out, *in) - } - if in.ClusterResourceBlacklist != nil { - in, out := &in.ClusterResourceBlacklist, &out.ClusterResourceBlacklist - *out = make([]v1.GroupKind, len(*in)) - copy(*out, *in) - } - if in.SourceNamespaces != nil { - in, out := &in.SourceNamespaces, &out.SourceNamespaces - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectSpec. -func (in *AppProjectSpec) DeepCopy() *AppProjectSpec { - if in == nil { - return nil - } - out := new(AppProjectSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AppProjectStatus) DeepCopyInto(out *AppProjectStatus) { - *out = *in - if in.JWTTokensByRole != nil { - in, out := &in.JWTTokensByRole, &out.JWTTokensByRole - *out = make(map[string]JWTTokens, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppProjectStatus. -func (in *AppProjectStatus) DeepCopy() *AppProjectStatus { - if in == nil { - return nil - } - out := new(AppProjectStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Application) DeepCopyInto(out *Application) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - if in.Operation != nil { - in, out := &in.Operation, &out.Operation - *out = new(Operation) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Application. -func (in *Application) DeepCopy() *Application { - if in == nil { - return nil - } - out := new(Application) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Application) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationCondition) DeepCopyInto(out *ApplicationCondition) { - *out = *in - if in.LastTransitionTime != nil { - in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCondition. -func (in *ApplicationCondition) DeepCopy() *ApplicationCondition { - if in == nil { - return nil - } - out := new(ApplicationCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationDestination) DeepCopyInto(out *ApplicationDestination) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationDestination. -func (in *ApplicationDestination) DeepCopy() *ApplicationDestination { - if in == nil { - return nil - } - out := new(ApplicationDestination) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationList) DeepCopyInto(out *ApplicationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Application, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationList. -func (in *ApplicationList) DeepCopy() *ApplicationList { - if in == nil { - return nil - } - out := new(ApplicationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ApplicationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationMatchExpression) DeepCopyInto(out *ApplicationMatchExpression) { - *out = *in - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationMatchExpression. -func (in *ApplicationMatchExpression) DeepCopy() *ApplicationMatchExpression { - if in == nil { - return nil - } - out := new(ApplicationMatchExpression) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationPreservedFields) DeepCopyInto(out *ApplicationPreservedFields) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationPreservedFields. -func (in *ApplicationPreservedFields) DeepCopy() *ApplicationPreservedFields { - if in == nil { - return nil - } - out := new(ApplicationPreservedFields) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSet) DeepCopyInto(out *ApplicationSet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSet. -func (in *ApplicationSet) DeepCopy() *ApplicationSet { - if in == nil { - return nil - } - out := new(ApplicationSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ApplicationSet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetApplicationStatus) DeepCopyInto(out *ApplicationSetApplicationStatus) { - *out = *in - if in.LastTransitionTime != nil { - in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = (*in).DeepCopy() - } - if in.TargetRevisions != nil { - in, out := &in.TargetRevisions, &out.TargetRevisions - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetApplicationStatus. -func (in *ApplicationSetApplicationStatus) DeepCopy() *ApplicationSetApplicationStatus { - if in == nil { - return nil - } - out := new(ApplicationSetApplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetCondition) DeepCopyInto(out *ApplicationSetCondition) { - *out = *in - if in.LastTransitionTime != nil { - in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetCondition. -func (in *ApplicationSetCondition) DeepCopy() *ApplicationSetCondition { - if in == nil { - return nil - } - out := new(ApplicationSetCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetGenerator) DeepCopyInto(out *ApplicationSetGenerator) { - *out = *in - if in.List != nil { - in, out := &in.List, &out.List - *out = new(ListGenerator) - (*in).DeepCopyInto(*out) - } - if in.Clusters != nil { - in, out := &in.Clusters, &out.Clusters - *out = new(ClusterGenerator) - (*in).DeepCopyInto(*out) - } - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitGenerator) - (*in).DeepCopyInto(*out) - } - if in.SCMProvider != nil { - in, out := &in.SCMProvider, &out.SCMProvider - *out = new(SCMProviderGenerator) - (*in).DeepCopyInto(*out) - } - if in.ClusterDecisionResource != nil { - in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource - *out = new(DuckTypeGenerator) - (*in).DeepCopyInto(*out) - } - if in.PullRequest != nil { - in, out := &in.PullRequest, &out.PullRequest - *out = new(PullRequestGenerator) - (*in).DeepCopyInto(*out) - } - if in.Matrix != nil { - in, out := &in.Matrix, &out.Matrix - *out = new(MatrixGenerator) - (*in).DeepCopyInto(*out) - } - if in.Merge != nil { - in, out := &in.Merge, &out.Merge - *out = new(MergeGenerator) - (*in).DeepCopyInto(*out) - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - if in.Plugin != nil { - in, out := &in.Plugin, &out.Plugin - *out = new(PluginGenerator) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetGenerator. -func (in *ApplicationSetGenerator) DeepCopy() *ApplicationSetGenerator { - if in == nil { - return nil - } - out := new(ApplicationSetGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ApplicationSetIgnoreDifferences) DeepCopyInto(out *ApplicationSetIgnoreDifferences) { - { - in := &in - *out = make(ApplicationSetIgnoreDifferences, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetIgnoreDifferences. -func (in ApplicationSetIgnoreDifferences) DeepCopy() ApplicationSetIgnoreDifferences { - if in == nil { - return nil - } - out := new(ApplicationSetIgnoreDifferences) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetList) DeepCopyInto(out *ApplicationSetList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ApplicationSet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetList. -func (in *ApplicationSetList) DeepCopy() *ApplicationSetList { - if in == nil { - return nil - } - out := new(ApplicationSetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ApplicationSetList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetNestedGenerator) DeepCopyInto(out *ApplicationSetNestedGenerator) { - *out = *in - if in.List != nil { - in, out := &in.List, &out.List - *out = new(ListGenerator) - (*in).DeepCopyInto(*out) - } - if in.Clusters != nil { - in, out := &in.Clusters, &out.Clusters - *out = new(ClusterGenerator) - (*in).DeepCopyInto(*out) - } - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitGenerator) - (*in).DeepCopyInto(*out) - } - if in.SCMProvider != nil { - in, out := &in.SCMProvider, &out.SCMProvider - *out = new(SCMProviderGenerator) - (*in).DeepCopyInto(*out) - } - if in.ClusterDecisionResource != nil { - in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource - *out = new(DuckTypeGenerator) - (*in).DeepCopyInto(*out) - } - if in.PullRequest != nil { - in, out := &in.PullRequest, &out.PullRequest - *out = new(PullRequestGenerator) - (*in).DeepCopyInto(*out) - } - if in.Matrix != nil { - in, out := &in.Matrix, &out.Matrix - *out = new(apiextensionsv1.JSON) - (*in).DeepCopyInto(*out) - } - if in.Merge != nil { - in, out := &in.Merge, &out.Merge - *out = new(apiextensionsv1.JSON) - (*in).DeepCopyInto(*out) - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - if in.Plugin != nil { - in, out := &in.Plugin, &out.Plugin - *out = new(PluginGenerator) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetNestedGenerator. -func (in *ApplicationSetNestedGenerator) DeepCopy() *ApplicationSetNestedGenerator { - if in == nil { - return nil - } - out := new(ApplicationSetNestedGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ApplicationSetNestedGenerators) DeepCopyInto(out *ApplicationSetNestedGenerators) { - { - in := &in - *out = make(ApplicationSetNestedGenerators, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetNestedGenerators. -func (in ApplicationSetNestedGenerators) DeepCopy() ApplicationSetNestedGenerators { - if in == nil { - return nil - } - out := new(ApplicationSetNestedGenerators) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetResourceIgnoreDifferences) DeepCopyInto(out *ApplicationSetResourceIgnoreDifferences) { - *out = *in - if in.JSONPointers != nil { - in, out := &in.JSONPointers, &out.JSONPointers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.JQPathExpressions != nil { - in, out := &in.JQPathExpressions, &out.JQPathExpressions - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetResourceIgnoreDifferences. -func (in *ApplicationSetResourceIgnoreDifferences) DeepCopy() *ApplicationSetResourceIgnoreDifferences { - if in == nil { - return nil - } - out := new(ApplicationSetResourceIgnoreDifferences) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetRolloutStep) DeepCopyInto(out *ApplicationSetRolloutStep) { - *out = *in - if in.MatchExpressions != nil { - in, out := &in.MatchExpressions, &out.MatchExpressions - *out = make([]ApplicationMatchExpression, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.MaxUpdate != nil { - in, out := &in.MaxUpdate, &out.MaxUpdate - *out = new(intstr.IntOrString) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetRolloutStep. -func (in *ApplicationSetRolloutStep) DeepCopy() *ApplicationSetRolloutStep { - if in == nil { - return nil - } - out := new(ApplicationSetRolloutStep) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetRolloutStrategy) DeepCopyInto(out *ApplicationSetRolloutStrategy) { - *out = *in - if in.Steps != nil { - in, out := &in.Steps, &out.Steps - *out = make([]ApplicationSetRolloutStep, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetRolloutStrategy. -func (in *ApplicationSetRolloutStrategy) DeepCopy() *ApplicationSetRolloutStrategy { - if in == nil { - return nil - } - out := new(ApplicationSetRolloutStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetSpec) DeepCopyInto(out *ApplicationSetSpec) { - *out = *in - if in.Generators != nil { - in, out := &in.Generators, &out.Generators - *out = make([]ApplicationSetGenerator, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.Template.DeepCopyInto(&out.Template) - if in.SyncPolicy != nil { - in, out := &in.SyncPolicy, &out.SyncPolicy - *out = new(ApplicationSetSyncPolicy) - (*in).DeepCopyInto(*out) - } - if in.Strategy != nil { - in, out := &in.Strategy, &out.Strategy - *out = new(ApplicationSetStrategy) - (*in).DeepCopyInto(*out) - } - if in.PreservedFields != nil { - in, out := &in.PreservedFields, &out.PreservedFields - *out = new(ApplicationPreservedFields) - (*in).DeepCopyInto(*out) - } - if in.GoTemplateOptions != nil { - in, out := &in.GoTemplateOptions, &out.GoTemplateOptions - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.IgnoreApplicationDifferences != nil { - in, out := &in.IgnoreApplicationDifferences, &out.IgnoreApplicationDifferences - *out = make(ApplicationSetIgnoreDifferences, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.TemplatePatch != nil { - in, out := &in.TemplatePatch, &out.TemplatePatch - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetSpec. -func (in *ApplicationSetSpec) DeepCopy() *ApplicationSetSpec { - if in == nil { - return nil - } - out := new(ApplicationSetSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetStatus) DeepCopyInto(out *ApplicationSetStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ApplicationSetCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ApplicationStatus != nil { - in, out := &in.ApplicationStatus, &out.ApplicationStatus - *out = make([]ApplicationSetApplicationStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]ResourceStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetStatus. -func (in *ApplicationSetStatus) DeepCopy() *ApplicationSetStatus { - if in == nil { - return nil - } - out := new(ApplicationSetStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetStrategy) DeepCopyInto(out *ApplicationSetStrategy) { - *out = *in - if in.RollingSync != nil { - in, out := &in.RollingSync, &out.RollingSync - *out = new(ApplicationSetRolloutStrategy) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetStrategy. -func (in *ApplicationSetStrategy) DeepCopy() *ApplicationSetStrategy { - if in == nil { - return nil - } - out := new(ApplicationSetStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetSyncPolicy) DeepCopyInto(out *ApplicationSetSyncPolicy) { - *out = *in - if in.ApplicationsSync != nil { - in, out := &in.ApplicationsSync, &out.ApplicationsSync - *out = new(ApplicationsSyncPolicy) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetSyncPolicy. -func (in *ApplicationSetSyncPolicy) DeepCopy() *ApplicationSetSyncPolicy { - if in == nil { - return nil - } - out := new(ApplicationSetSyncPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTemplate) DeepCopyInto(out *ApplicationSetTemplate) { - *out = *in - in.ApplicationSetTemplateMeta.DeepCopyInto(&out.ApplicationSetTemplateMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplate. -func (in *ApplicationSetTemplate) DeepCopy() *ApplicationSetTemplate { - if in == nil { - return nil - } - out := new(ApplicationSetTemplate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTemplateMeta) DeepCopyInto(out *ApplicationSetTemplateMeta) { - *out = *in - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Finalizers != nil { - in, out := &in.Finalizers, &out.Finalizers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplateMeta. -func (in *ApplicationSetTemplateMeta) DeepCopy() *ApplicationSetTemplateMeta { - if in == nil { - return nil - } - out := new(ApplicationSetTemplateMeta) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTerminalGenerator) DeepCopyInto(out *ApplicationSetTerminalGenerator) { - *out = *in - if in.List != nil { - in, out := &in.List, &out.List - *out = new(ListGenerator) - (*in).DeepCopyInto(*out) - } - if in.Clusters != nil { - in, out := &in.Clusters, &out.Clusters - *out = new(ClusterGenerator) - (*in).DeepCopyInto(*out) - } - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitGenerator) - (*in).DeepCopyInto(*out) - } - if in.SCMProvider != nil { - in, out := &in.SCMProvider, &out.SCMProvider - *out = new(SCMProviderGenerator) - (*in).DeepCopyInto(*out) - } - if in.ClusterDecisionResource != nil { - in, out := &in.ClusterDecisionResource, &out.ClusterDecisionResource - *out = new(DuckTypeGenerator) - (*in).DeepCopyInto(*out) - } - if in.PullRequest != nil { - in, out := &in.PullRequest, &out.PullRequest - *out = new(PullRequestGenerator) - (*in).DeepCopyInto(*out) - } - if in.Plugin != nil { - in, out := &in.Plugin, &out.Plugin - *out = new(PluginGenerator) - (*in).DeepCopyInto(*out) - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTerminalGenerator. -func (in *ApplicationSetTerminalGenerator) DeepCopy() *ApplicationSetTerminalGenerator { - if in == nil { - return nil - } - out := new(ApplicationSetTerminalGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ApplicationSetTerminalGenerators) DeepCopyInto(out *ApplicationSetTerminalGenerators) { - { - in := &in - *out = make(ApplicationSetTerminalGenerators, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTerminalGenerators. -func (in ApplicationSetTerminalGenerators) DeepCopy() ApplicationSetTerminalGenerators { - if in == nil { - return nil - } - out := new(ApplicationSetTerminalGenerators) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTree) DeepCopyInto(out *ApplicationSetTree) { - *out = *in - if in.Nodes != nil { - in, out := &in.Nodes, &out.Nodes - *out = make([]ResourceNode, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTree. -func (in *ApplicationSetTree) DeepCopy() *ApplicationSetTree { - if in == nil { - return nil - } - out := new(ApplicationSetTree) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSource) DeepCopyInto(out *ApplicationSource) { - *out = *in - if in.Helm != nil { - in, out := &in.Helm, &out.Helm - *out = new(ApplicationSourceHelm) - (*in).DeepCopyInto(*out) - } - if in.Kustomize != nil { - in, out := &in.Kustomize, &out.Kustomize - *out = new(ApplicationSourceKustomize) - (*in).DeepCopyInto(*out) - } - if in.Directory != nil { - in, out := &in.Directory, &out.Directory - *out = new(ApplicationSourceDirectory) - (*in).DeepCopyInto(*out) - } - if in.Plugin != nil { - in, out := &in.Plugin, &out.Plugin - *out = new(ApplicationSourcePlugin) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSource. -func (in *ApplicationSource) DeepCopy() *ApplicationSource { - if in == nil { - return nil - } - out := new(ApplicationSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourceDirectory) DeepCopyInto(out *ApplicationSourceDirectory) { - *out = *in - in.Jsonnet.DeepCopyInto(&out.Jsonnet) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceDirectory. -func (in *ApplicationSourceDirectory) DeepCopy() *ApplicationSourceDirectory { - if in == nil { - return nil - } - out := new(ApplicationSourceDirectory) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourceHelm) DeepCopyInto(out *ApplicationSourceHelm) { - *out = *in - if in.ValueFiles != nil { - in, out := &in.ValueFiles, &out.ValueFiles - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Parameters != nil { - in, out := &in.Parameters, &out.Parameters - *out = make([]HelmParameter, len(*in)) - copy(*out, *in) - } - if in.FileParameters != nil { - in, out := &in.FileParameters, &out.FileParameters - *out = make([]HelmFileParameter, len(*in)) - copy(*out, *in) - } - if in.ValuesObject != nil { - in, out := &in.ValuesObject, &out.ValuesObject - *out = new(runtime.RawExtension) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceHelm. -func (in *ApplicationSourceHelm) DeepCopy() *ApplicationSourceHelm { - if in == nil { - return nil - } - out := new(ApplicationSourceHelm) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourceJsonnet) DeepCopyInto(out *ApplicationSourceJsonnet) { - *out = *in - if in.ExtVars != nil { - in, out := &in.ExtVars, &out.ExtVars - *out = make([]JsonnetVar, len(*in)) - copy(*out, *in) - } - if in.TLAs != nil { - in, out := &in.TLAs, &out.TLAs - *out = make([]JsonnetVar, len(*in)) - copy(*out, *in) - } - if in.Libs != nil { - in, out := &in.Libs, &out.Libs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceJsonnet. -func (in *ApplicationSourceJsonnet) DeepCopy() *ApplicationSourceJsonnet { - if in == nil { - return nil - } - out := new(ApplicationSourceJsonnet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourceKustomize) DeepCopyInto(out *ApplicationSourceKustomize) { - *out = *in - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make(KustomizeImages, len(*in)) - copy(*out, *in) - } - if in.CommonLabels != nil { - in, out := &in.CommonLabels, &out.CommonLabels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.CommonAnnotations != nil { - in, out := &in.CommonAnnotations, &out.CommonAnnotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = make(KustomizeReplicas, len(*in)) - copy(*out, *in) - } - if in.Patches != nil { - in, out := &in.Patches, &out.Patches - *out = make(KustomizePatches, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Components != nil { - in, out := &in.Components, &out.Components - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceKustomize. -func (in *ApplicationSourceKustomize) DeepCopy() *ApplicationSourceKustomize { - if in == nil { - return nil - } - out := new(ApplicationSourceKustomize) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourcePlugin) DeepCopyInto(out *ApplicationSourcePlugin) { - *out = *in - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make(Env, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(EnvEntry) - **out = **in - } - } - } - if in.Parameters != nil { - in, out := &in.Parameters, &out.Parameters - *out = make(ApplicationSourcePluginParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePlugin. -func (in *ApplicationSourcePlugin) DeepCopy() *ApplicationSourcePlugin { - if in == nil { - return nil - } - out := new(ApplicationSourcePlugin) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSourcePluginParameter) DeepCopyInto(out *ApplicationSourcePluginParameter) { - *out = *in - if in.String_ != nil { - in, out := &in.String_, &out.String_ - *out = new(string) - **out = **in - } - if in.OptionalMap != nil { - in, out := &in.OptionalMap, &out.OptionalMap - *out = new(OptionalMap) - (*in).DeepCopyInto(*out) - } - if in.OptionalArray != nil { - in, out := &in.OptionalArray, &out.OptionalArray - *out = new(OptionalArray) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePluginParameter. -func (in *ApplicationSourcePluginParameter) DeepCopy() *ApplicationSourcePluginParameter { - if in == nil { - return nil - } - out := new(ApplicationSourcePluginParameter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ApplicationSourcePluginParameters) DeepCopyInto(out *ApplicationSourcePluginParameters) { - { - in := &in - *out = make(ApplicationSourcePluginParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourcePluginParameters. -func (in ApplicationSourcePluginParameters) DeepCopy() ApplicationSourcePluginParameters { - if in == nil { - return nil - } - out := new(ApplicationSourcePluginParameters) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ApplicationSources) DeepCopyInto(out *ApplicationSources) { - { - in := &in - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSources. -func (in ApplicationSources) DeepCopy() ApplicationSources { - if in == nil { - return nil - } - out := new(ApplicationSources) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec) { - *out = *in - if in.Source != nil { - in, out := &in.Source, &out.Source - *out = new(ApplicationSource) - (*in).DeepCopyInto(*out) - } - out.Destination = in.Destination - if in.SyncPolicy != nil { - in, out := &in.SyncPolicy, &out.SyncPolicy - *out = new(SyncPolicy) - (*in).DeepCopyInto(*out) - } - if in.IgnoreDifferences != nil { - in, out := &in.IgnoreDifferences, &out.IgnoreDifferences - *out = make(IgnoreDifferences, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Info != nil { - in, out := &in.Info, &out.Info - *out = make([]Info, len(*in)) - copy(*out, *in) - } - if in.RevisionHistoryLimit != nil { - in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - *out = new(int64) - **out = **in - } - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSpec. -func (in *ApplicationSpec) DeepCopy() *ApplicationSpec { - if in == nil { - return nil - } - out := new(ApplicationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationStatus) DeepCopyInto(out *ApplicationStatus) { - *out = *in - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]ResourceStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.Sync.DeepCopyInto(&out.Sync) - out.Health = in.Health - if in.History != nil { - in, out := &in.History, &out.History - *out = make(RevisionHistories, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ApplicationCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ReconciledAt != nil { - in, out := &in.ReconciledAt, &out.ReconciledAt - *out = (*in).DeepCopy() - } - if in.OperationState != nil { - in, out := &in.OperationState, &out.OperationState - *out = new(OperationState) - (*in).DeepCopyInto(*out) - } - if in.ObservedAt != nil { - in, out := &in.ObservedAt, &out.ObservedAt - *out = (*in).DeepCopy() - } - in.Summary.DeepCopyInto(&out.Summary) - if in.SourceTypes != nil { - in, out := &in.SourceTypes, &out.SourceTypes - *out = make([]ApplicationSourceType, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationStatus. -func (in *ApplicationStatus) DeepCopy() *ApplicationStatus { - if in == nil { - return nil - } - out := new(ApplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSummary) DeepCopyInto(out *ApplicationSummary) { - *out = *in - if in.ExternalURLs != nil { - in, out := &in.ExternalURLs, &out.ExternalURLs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSummary. -func (in *ApplicationSummary) DeepCopy() *ApplicationSummary { - if in == nil { - return nil - } - out := new(ApplicationSummary) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationTree) DeepCopyInto(out *ApplicationTree) { - *out = *in - if in.Nodes != nil { - in, out := &in.Nodes, &out.Nodes - *out = make([]ResourceNode, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.OrphanedNodes != nil { - in, out := &in.OrphanedNodes, &out.OrphanedNodes - *out = make([]ResourceNode, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Hosts != nil { - in, out := &in.Hosts, &out.Hosts - *out = make([]HostInfo, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationTree. -func (in *ApplicationTree) DeepCopy() *ApplicationTree { - if in == nil { - return nil - } - out := new(ApplicationTree) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationWatchEvent) DeepCopyInto(out *ApplicationWatchEvent) { - *out = *in - in.Application.DeepCopyInto(&out.Application) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationWatchEvent. -func (in *ApplicationWatchEvent) DeepCopy() *ApplicationWatchEvent { - if in == nil { - return nil - } - out := new(ApplicationWatchEvent) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Backoff) DeepCopyInto(out *Backoff) { - *out = *in - if in.Factor != nil { - in, out := &in.Factor, &out.Factor - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backoff. -func (in *Backoff) DeepCopy() *Backoff { - if in == nil { - return nil - } - out := new(Backoff) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BasicAuthBitbucketServer) DeepCopyInto(out *BasicAuthBitbucketServer) { - *out = *in - if in.PasswordRef != nil { // pragma: allowlist secret - in, out := &in.PasswordRef, &out.PasswordRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthBitbucketServer. -func (in *BasicAuthBitbucketServer) DeepCopy() *BasicAuthBitbucketServer { - if in == nil { - return nil - } - out := new(BasicAuthBitbucketServer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BearerTokenBitbucketCloud) DeepCopyInto(out *BearerTokenBitbucketCloud) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BearerTokenBitbucketCloud. -func (in *BearerTokenBitbucketCloud) DeepCopy() *BearerTokenBitbucketCloud { - if in == nil { - return nil - } - out := new(BearerTokenBitbucketCloud) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ChartDetails) DeepCopyInto(out *ChartDetails) { - *out = *in - if in.Maintainers != nil { - in, out := &in.Maintainers, &out.Maintainers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartDetails. -func (in *ChartDetails) DeepCopy() *ChartDetails { - if in == nil { - return nil - } - out := new(ChartDetails) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Cluster) DeepCopyInto(out *Cluster) { - *out = *in - in.Config.DeepCopyInto(&out.Config) - in.ConnectionState.DeepCopyInto(&out.ConnectionState) - if in.Namespaces != nil { - in, out := &in.Namespaces, &out.Namespaces - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.RefreshRequestedAt != nil { - in, out := &in.RefreshRequestedAt, &out.RefreshRequestedAt - *out = (*in).DeepCopy() - } - in.Info.DeepCopyInto(&out.Info) - if in.Shard != nil { - in, out := &in.Shard, &out.Shard - *out = new(int64) - **out = **in - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster. -func (in *Cluster) DeepCopy() *Cluster { - if in == nil { - return nil - } - out := new(Cluster) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCacheInfo) DeepCopyInto(out *ClusterCacheInfo) { - *out = *in - if in.LastCacheSyncTime != nil { - in, out := &in.LastCacheSyncTime, &out.LastCacheSyncTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCacheInfo. -func (in *ClusterCacheInfo) DeepCopy() *ClusterCacheInfo { - if in == nil { - return nil - } - out := new(ClusterCacheInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig) { - *out = *in - in.TLSClientConfig.DeepCopyInto(&out.TLSClientConfig) - if in.AWSAuthConfig != nil { - in, out := &in.AWSAuthConfig, &out.AWSAuthConfig - *out = new(AWSAuthConfig) - **out = **in - } - if in.ExecProviderConfig != nil { - in, out := &in.ExecProviderConfig, &out.ExecProviderConfig - *out = new(ExecProviderConfig) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfig. -func (in *ClusterConfig) DeepCopy() *ClusterConfig { - if in == nil { - return nil - } - out := new(ClusterConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterGenerator) DeepCopyInto(out *ClusterGenerator) { - *out = *in - in.Selector.DeepCopyInto(&out.Selector) - in.Template.DeepCopyInto(&out.Template) - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterGenerator. -func (in *ClusterGenerator) DeepCopy() *ClusterGenerator { - if in == nil { - return nil - } - out := new(ClusterGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterInfo) DeepCopyInto(out *ClusterInfo) { - *out = *in - in.ConnectionState.DeepCopyInto(&out.ConnectionState) - in.CacheInfo.DeepCopyInto(&out.CacheInfo) - if in.APIVersions != nil { - in, out := &in.APIVersions, &out.APIVersions - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInfo. -func (in *ClusterInfo) DeepCopy() *ClusterInfo { - if in == nil { - return nil - } - out := new(ClusterInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterList) DeepCopyInto(out *ClusterList) { - *out = *in - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Cluster, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. -func (in *ClusterList) DeepCopy() *ClusterList { - if in == nil { - return nil - } - out := new(ClusterList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Command) DeepCopyInto(out *Command) { - *out = *in - if in.Command != nil { - in, out := &in.Command, &out.Command - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Args != nil { - in, out := &in.Args, &out.Args - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Command. -func (in *Command) DeepCopy() *Command { - if in == nil { - return nil - } - out := new(Command) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ComparedTo) DeepCopyInto(out *ComparedTo) { - *out = *in - in.Source.DeepCopyInto(&out.Source) - out.Destination = in.Destination - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.IgnoreDifferences != nil { - in, out := &in.IgnoreDifferences, &out.IgnoreDifferences - *out = make(IgnoreDifferences, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComparedTo. -func (in *ComparedTo) DeepCopy() *ComparedTo { - if in == nil { - return nil - } - out := new(ComparedTo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ComponentParameter) DeepCopyInto(out *ComponentParameter) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameter. -func (in *ComponentParameter) DeepCopy() *ComponentParameter { - if in == nil { - return nil - } - out := new(ComponentParameter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigManagementPlugin) DeepCopyInto(out *ConfigManagementPlugin) { - *out = *in - if in.Init != nil { - in, out := &in.Init, &out.Init - *out = new(Command) - (*in).DeepCopyInto(*out) - } - in.Generate.DeepCopyInto(&out.Generate) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigManagementPlugin. -func (in *ConfigManagementPlugin) DeepCopy() *ConfigManagementPlugin { - if in == nil { - return nil - } - out := new(ConfigManagementPlugin) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConnectionState) DeepCopyInto(out *ConnectionState) { - *out = *in - if in.ModifiedAt != nil { - in, out := &in.ModifiedAt, &out.ModifiedAt - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionState. -func (in *ConnectionState) DeepCopy() *ConnectionState { - if in == nil { - return nil - } - out := new(ConnectionState) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DuckTypeGenerator) DeepCopyInto(out *DuckTypeGenerator) { - *out = *in - if in.RequeueAfterSeconds != nil { - in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds - *out = new(int64) - **out = **in - } - in.LabelSelector.DeepCopyInto(&out.LabelSelector) - in.Template.DeepCopyInto(&out.Template) - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DuckTypeGenerator. -func (in *DuckTypeGenerator) DeepCopy() *DuckTypeGenerator { - if in == nil { - return nil - } - out := new(DuckTypeGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Env) DeepCopyInto(out *Env) { - { - in := &in - *out = make(Env, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(EnvEntry) - **out = **in - } - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Env. -func (in Env) DeepCopy() Env { - if in == nil { - return nil - } - out := new(Env) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EnvEntry) DeepCopyInto(out *EnvEntry) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvEntry. -func (in *EnvEntry) DeepCopy() *EnvEntry { - if in == nil { - return nil - } - out := new(EnvEntry) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExecProviderConfig) DeepCopyInto(out *ExecProviderConfig) { - *out = *in - if in.Args != nil { - in, out := &in.Args, &out.Args - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecProviderConfig. -func (in *ExecProviderConfig) DeepCopy() *ExecProviderConfig { - if in == nil { - return nil - } - out := new(ExecProviderConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitDirectoryGeneratorItem) DeepCopyInto(out *GitDirectoryGeneratorItem) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitDirectoryGeneratorItem. -func (in *GitDirectoryGeneratorItem) DeepCopy() *GitDirectoryGeneratorItem { - if in == nil { - return nil - } - out := new(GitDirectoryGeneratorItem) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitFileGeneratorItem) DeepCopyInto(out *GitFileGeneratorItem) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitFileGeneratorItem. -func (in *GitFileGeneratorItem) DeepCopy() *GitFileGeneratorItem { - if in == nil { - return nil - } - out := new(GitFileGeneratorItem) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitGenerator) DeepCopyInto(out *GitGenerator) { - *out = *in - if in.Directories != nil { - in, out := &in.Directories, &out.Directories - *out = make([]GitDirectoryGeneratorItem, len(*in)) - copy(*out, *in) - } - if in.Files != nil { - in, out := &in.Files, &out.Files - *out = make([]GitFileGeneratorItem, len(*in)) - copy(*out, *in) - } - if in.RequeueAfterSeconds != nil { - in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds - *out = new(int64) - **out = **in - } - in.Template.DeepCopyInto(&out.Template) - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitGenerator. -func (in *GitGenerator) DeepCopy() *GitGenerator { - if in == nil { - return nil - } - out := new(GitGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GnuPGPublicKey) DeepCopyInto(out *GnuPGPublicKey) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GnuPGPublicKey. -func (in *GnuPGPublicKey) DeepCopy() *GnuPGPublicKey { - if in == nil { - return nil - } - out := new(GnuPGPublicKey) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GnuPGPublicKeyList) DeepCopyInto(out *GnuPGPublicKeyList) { - *out = *in - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]GnuPGPublicKey, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GnuPGPublicKeyList. -func (in *GnuPGPublicKeyList) DeepCopy() *GnuPGPublicKeyList { - if in == nil { - return nil - } - out := new(GnuPGPublicKeyList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HealthStatus) DeepCopyInto(out *HealthStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthStatus. -func (in *HealthStatus) DeepCopy() *HealthStatus { - if in == nil { - return nil - } - out := new(HealthStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HelmFileParameter) DeepCopyInto(out *HelmFileParameter) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmFileParameter. -func (in *HelmFileParameter) DeepCopy() *HelmFileParameter { - if in == nil { - return nil - } - out := new(HelmFileParameter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HelmOptions) DeepCopyInto(out *HelmOptions) { - *out = *in - if in.ValuesFileSchemes != nil { - in, out := &in.ValuesFileSchemes, &out.ValuesFileSchemes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmOptions. -func (in *HelmOptions) DeepCopy() *HelmOptions { - if in == nil { - return nil - } - out := new(HelmOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HelmParameter) DeepCopyInto(out *HelmParameter) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmParameter. -func (in *HelmParameter) DeepCopy() *HelmParameter { - if in == nil { - return nil - } - out := new(HelmParameter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HostInfo) DeepCopyInto(out *HostInfo) { - *out = *in - if in.ResourcesInfo != nil { - in, out := &in.ResourcesInfo, &out.ResourcesInfo - *out = make([]HostResourceInfo, len(*in)) - copy(*out, *in) - } - out.SystemInfo = in.SystemInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostInfo. -func (in *HostInfo) DeepCopy() *HostInfo { - if in == nil { - return nil - } - out := new(HostInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HostResourceInfo) DeepCopyInto(out *HostResourceInfo) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostResourceInfo. -func (in *HostResourceInfo) DeepCopy() *HostResourceInfo { - if in == nil { - return nil - } - out := new(HostResourceInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in IgnoreDifferences) DeepCopyInto(out *IgnoreDifferences) { - { - in := &in - *out = make(IgnoreDifferences, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IgnoreDifferences. -func (in IgnoreDifferences) DeepCopy() IgnoreDifferences { - if in == nil { - return nil - } - out := new(IgnoreDifferences) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Info) DeepCopyInto(out *Info) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Info. -func (in *Info) DeepCopy() *Info { - if in == nil { - return nil - } - out := new(Info) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InfoItem) DeepCopyInto(out *InfoItem) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfoItem. -func (in *InfoItem) DeepCopy() *InfoItem { - if in == nil { - return nil - } - out := new(InfoItem) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JWTToken) DeepCopyInto(out *JWTToken) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTToken. -func (in *JWTToken) DeepCopy() *JWTToken { - if in == nil { - return nil - } - out := new(JWTToken) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JWTTokens) DeepCopyInto(out *JWTTokens) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]JWTToken, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTTokens. -func (in *JWTTokens) DeepCopy() *JWTTokens { - if in == nil { - return nil - } - out := new(JWTTokens) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JsonnetVar) DeepCopyInto(out *JsonnetVar) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JsonnetVar. -func (in *JsonnetVar) DeepCopy() *JsonnetVar { - if in == nil { - return nil - } - out := new(JsonnetVar) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KnownTypeField) DeepCopyInto(out *KnownTypeField) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KnownTypeField. -func (in *KnownTypeField) DeepCopy() *KnownTypeField { - if in == nil { - return nil - } - out := new(KnownTypeField) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizeGvk) DeepCopyInto(out *KustomizeGvk) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeGvk. -func (in *KustomizeGvk) DeepCopy() *KustomizeGvk { - if in == nil { - return nil - } - out := new(KustomizeGvk) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in KustomizeImages) DeepCopyInto(out *KustomizeImages) { - { - in := &in - *out = make(KustomizeImages, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeImages. -func (in KustomizeImages) DeepCopy() KustomizeImages { - if in == nil { - return nil - } - out := new(KustomizeImages) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizeOptions) DeepCopyInto(out *KustomizeOptions) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeOptions. -func (in *KustomizeOptions) DeepCopy() *KustomizeOptions { - if in == nil { - return nil - } - out := new(KustomizeOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizePatch) DeepCopyInto(out *KustomizePatch) { - *out = *in - if in.Target != nil { - in, out := &in.Target, &out.Target - *out = new(KustomizeSelector) - **out = **in - } - if in.Options != nil { - in, out := &in.Options, &out.Options - *out = make(map[string]bool, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizePatch. -func (in *KustomizePatch) DeepCopy() *KustomizePatch { - if in == nil { - return nil - } - out := new(KustomizePatch) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in KustomizePatches) DeepCopyInto(out *KustomizePatches) { - { - in := &in - *out = make(KustomizePatches, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizePatches. -func (in KustomizePatches) DeepCopy() KustomizePatches { - if in == nil { - return nil - } - out := new(KustomizePatches) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizeReplica) DeepCopyInto(out *KustomizeReplica) { - *out = *in - out.Count = in.Count - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplica. -func (in *KustomizeReplica) DeepCopy() *KustomizeReplica { - if in == nil { - return nil - } - out := new(KustomizeReplica) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in KustomizeReplicas) DeepCopyInto(out *KustomizeReplicas) { - { - in := &in - *out = make(KustomizeReplicas, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplicas. -func (in KustomizeReplicas) DeepCopy() KustomizeReplicas { - if in == nil { - return nil - } - out := new(KustomizeReplicas) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizeResId) DeepCopyInto(out *KustomizeResId) { - *out = *in - out.KustomizeGvk = in.KustomizeGvk - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeResId. -func (in *KustomizeResId) DeepCopy() *KustomizeResId { - if in == nil { - return nil - } - out := new(KustomizeResId) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KustomizeSelector) DeepCopyInto(out *KustomizeSelector) { - *out = *in - out.KustomizeResId = in.KustomizeResId - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeSelector. -func (in *KustomizeSelector) DeepCopy() *KustomizeSelector { - if in == nil { - return nil - } - out := new(KustomizeSelector) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListGenerator) DeepCopyInto(out *ListGenerator) { - *out = *in - if in.Elements != nil { - in, out := &in.Elements, &out.Elements - *out = make([]apiextensionsv1.JSON, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListGenerator. -func (in *ListGenerator) DeepCopy() *ListGenerator { - if in == nil { - return nil - } - out := new(ListGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManagedNamespaceMetadata) DeepCopyInto(out *ManagedNamespaceMetadata) { - *out = *in - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedNamespaceMetadata. -func (in *ManagedNamespaceMetadata) DeepCopy() *ManagedNamespaceMetadata { - if in == nil { - return nil - } - out := new(ManagedNamespaceMetadata) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MatrixGenerator) DeepCopyInto(out *MatrixGenerator) { - *out = *in - if in.Generators != nil { - in, out := &in.Generators, &out.Generators - *out = make([]ApplicationSetNestedGenerator, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatrixGenerator. -func (in *MatrixGenerator) DeepCopy() *MatrixGenerator { - if in == nil { - return nil - } - out := new(MatrixGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MergeGenerator) DeepCopyInto(out *MergeGenerator) { - *out = *in - if in.Generators != nil { - in, out := &in.Generators, &out.Generators - *out = make([]ApplicationSetNestedGenerator, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.MergeKeys != nil { - in, out := &in.MergeKeys, &out.MergeKeys - *out = make([]string, len(*in)) - copy(*out, *in) - } - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MergeGenerator. -func (in *MergeGenerator) DeepCopy() *MergeGenerator { - if in == nil { - return nil - } - out := new(MergeGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NestedMatrixGenerator) DeepCopyInto(out *NestedMatrixGenerator) { - *out = *in - if in.Generators != nil { - in, out := &in.Generators, &out.Generators - *out = make(ApplicationSetTerminalGenerators, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedMatrixGenerator. -func (in *NestedMatrixGenerator) DeepCopy() *NestedMatrixGenerator { - if in == nil { - return nil - } - out := new(NestedMatrixGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NestedMergeGenerator) DeepCopyInto(out *NestedMergeGenerator) { - *out = *in - if in.Generators != nil { - in, out := &in.Generators, &out.Generators - *out = make(ApplicationSetTerminalGenerators, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.MergeKeys != nil { - in, out := &in.MergeKeys, &out.MergeKeys - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedMergeGenerator. -func (in *NestedMergeGenerator) DeepCopy() *NestedMergeGenerator { - if in == nil { - return nil - } - out := new(NestedMergeGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Operation) DeepCopyInto(out *Operation) { - *out = *in - if in.Sync != nil { - in, out := &in.Sync, &out.Sync - *out = new(SyncOperation) - (*in).DeepCopyInto(*out) - } - out.InitiatedBy = in.InitiatedBy - if in.Info != nil { - in, out := &in.Info, &out.Info - *out = make([]*Info, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(Info) - **out = **in - } - } - } - in.Retry.DeepCopyInto(&out.Retry) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operation. -func (in *Operation) DeepCopy() *Operation { - if in == nil { - return nil - } - out := new(Operation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperationInitiator) DeepCopyInto(out *OperationInitiator) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationInitiator. -func (in *OperationInitiator) DeepCopy() *OperationInitiator { - if in == nil { - return nil - } - out := new(OperationInitiator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperationState) DeepCopyInto(out *OperationState) { - *out = *in - in.Operation.DeepCopyInto(&out.Operation) - if in.SyncResult != nil { - in, out := &in.SyncResult, &out.SyncResult - *out = new(SyncOperationResult) - (*in).DeepCopyInto(*out) - } - in.StartedAt.DeepCopyInto(&out.StartedAt) - if in.FinishedAt != nil { - in, out := &in.FinishedAt, &out.FinishedAt - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationState. -func (in *OperationState) DeepCopy() *OperationState { - if in == nil { - return nil - } - out := new(OperationState) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OptionalArray) DeepCopyInto(out *OptionalArray) { - *out = *in - if in.Array != nil { - in, out := &in.Array, &out.Array - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalArray. -func (in *OptionalArray) DeepCopy() *OptionalArray { - if in == nil { - return nil - } - out := new(OptionalArray) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OptionalMap) DeepCopyInto(out *OptionalMap) { - *out = *in - if in.Map != nil { - in, out := &in.Map, &out.Map - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalMap. -func (in *OptionalMap) DeepCopy() *OptionalMap { - if in == nil { - return nil - } - out := new(OptionalMap) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrphanedResourceKey) DeepCopyInto(out *OrphanedResourceKey) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrphanedResourceKey. -func (in *OrphanedResourceKey) DeepCopy() *OrphanedResourceKey { - if in == nil { - return nil - } - out := new(OrphanedResourceKey) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrphanedResourcesMonitorSettings) DeepCopyInto(out *OrphanedResourcesMonitorSettings) { - *out = *in - if in.Warn != nil { - in, out := &in.Warn, &out.Warn - *out = new(bool) - **out = **in - } - if in.Ignore != nil { - in, out := &in.Ignore, &out.Ignore - *out = make([]OrphanedResourceKey, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrphanedResourcesMonitorSettings. -func (in *OrphanedResourcesMonitorSettings) DeepCopy() *OrphanedResourcesMonitorSettings { - if in == nil { - return nil - } - out := new(OrphanedResourcesMonitorSettings) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OverrideIgnoreDiff) DeepCopyInto(out *OverrideIgnoreDiff) { - *out = *in - if in.JSONPointers != nil { - in, out := &in.JSONPointers, &out.JSONPointers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.JQPathExpressions != nil { - in, out := &in.JQPathExpressions, &out.JQPathExpressions - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ManagedFieldsManagers != nil { - in, out := &in.ManagedFieldsManagers, &out.ManagedFieldsManagers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideIgnoreDiff. -func (in *OverrideIgnoreDiff) DeepCopy() *OverrideIgnoreDiff { - if in == nil { - return nil - } - out := new(OverrideIgnoreDiff) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PluginConfigMapRef) DeepCopyInto(out *PluginConfigMapRef) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigMapRef. -func (in *PluginConfigMapRef) DeepCopy() *PluginConfigMapRef { - if in == nil { - return nil - } - out := new(PluginConfigMapRef) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PluginGenerator) DeepCopyInto(out *PluginGenerator) { - *out = *in - out.ConfigMapRef = in.ConfigMapRef - in.Input.DeepCopyInto(&out.Input) - if in.RequeueAfterSeconds != nil { - in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds - *out = new(int64) - **out = **in - } - in.Template.DeepCopyInto(&out.Template) - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginGenerator. -func (in *PluginGenerator) DeepCopy() *PluginGenerator { - if in == nil { - return nil - } - out := new(PluginGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PluginInput) DeepCopyInto(out *PluginInput) { - *out = *in - if in.Parameters != nil { - in, out := &in.Parameters, &out.Parameters - *out = make(PluginParameters, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInput. -func (in *PluginInput) DeepCopy() *PluginInput { - if in == nil { - return nil - } - out := new(PluginInput) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in PluginParameters) DeepCopyInto(out *PluginParameters) { - { - in := &in - *out = make(PluginParameters, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginParameters. -func (in PluginParameters) DeepCopy() PluginParameters { - if in == nil { - return nil - } - out := new(PluginParameters) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRole) DeepCopyInto(out *ProjectRole) { - *out = *in - if in.Policies != nil { - in, out := &in.Policies, &out.Policies - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.JWTTokens != nil { - in, out := &in.JWTTokens, &out.JWTTokens - *out = make([]JWTToken, len(*in)) - copy(*out, *in) - } - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRole. -func (in *ProjectRole) DeepCopy() *ProjectRole { - if in == nil { - return nil - } - out := new(ProjectRole) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGenerator) DeepCopyInto(out *PullRequestGenerator) { - *out = *in - if in.Github != nil { - in, out := &in.Github, &out.Github - *out = new(PullRequestGeneratorGithub) - (*in).DeepCopyInto(*out) - } - if in.GitLab != nil { - in, out := &in.GitLab, &out.GitLab - *out = new(PullRequestGeneratorGitLab) - (*in).DeepCopyInto(*out) - } - if in.Gitea != nil { - in, out := &in.Gitea, &out.Gitea - *out = new(PullRequestGeneratorGitea) - (*in).DeepCopyInto(*out) - } - if in.BitbucketServer != nil { - in, out := &in.BitbucketServer, &out.BitbucketServer - *out = new(PullRequestGeneratorBitbucketServer) - (*in).DeepCopyInto(*out) - } - if in.Filters != nil { - in, out := &in.Filters, &out.Filters - *out = make([]PullRequestGeneratorFilter, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RequeueAfterSeconds != nil { - in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds - *out = new(int64) - **out = **in - } - in.Template.DeepCopyInto(&out.Template) - if in.Bitbucket != nil { - in, out := &in.Bitbucket, &out.Bitbucket - *out = new(PullRequestGeneratorBitbucket) - (*in).DeepCopyInto(*out) - } - if in.AzureDevOps != nil { - in, out := &in.AzureDevOps, &out.AzureDevOps - *out = new(PullRequestGeneratorAzureDevOps) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGenerator. -func (in *PullRequestGenerator) DeepCopy() *PullRequestGenerator { - if in == nil { - return nil - } - out := new(PullRequestGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorAzureDevOps) DeepCopyInto(out *PullRequestGeneratorAzureDevOps) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorAzureDevOps. -func (in *PullRequestGeneratorAzureDevOps) DeepCopy() *PullRequestGeneratorAzureDevOps { - if in == nil { - return nil - } - out := new(PullRequestGeneratorAzureDevOps) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorBitbucket) DeepCopyInto(out *PullRequestGeneratorBitbucket) { - *out = *in - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(BasicAuthBitbucketServer) - (*in).DeepCopyInto(*out) - } - if in.BearerToken != nil { - in, out := &in.BearerToken, &out.BearerToken - *out = new(BearerTokenBitbucketCloud) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorBitbucket. -func (in *PullRequestGeneratorBitbucket) DeepCopy() *PullRequestGeneratorBitbucket { - if in == nil { - return nil - } - out := new(PullRequestGeneratorBitbucket) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorBitbucketServer) DeepCopyInto(out *PullRequestGeneratorBitbucketServer) { - *out = *in - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(BasicAuthBitbucketServer) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorBitbucketServer. -func (in *PullRequestGeneratorBitbucketServer) DeepCopy() *PullRequestGeneratorBitbucketServer { - if in == nil { - return nil - } - out := new(PullRequestGeneratorBitbucketServer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorFilter) DeepCopyInto(out *PullRequestGeneratorFilter) { - *out = *in - if in.BranchMatch != nil { - in, out := &in.BranchMatch, &out.BranchMatch - *out = new(string) - **out = **in - } - if in.TargetBranchMatch != nil { - in, out := &in.TargetBranchMatch, &out.TargetBranchMatch - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorFilter. -func (in *PullRequestGeneratorFilter) DeepCopy() *PullRequestGeneratorFilter { - if in == nil { - return nil - } - out := new(PullRequestGeneratorFilter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorGitLab) DeepCopyInto(out *PullRequestGeneratorGitLab) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGitLab. -func (in *PullRequestGeneratorGitLab) DeepCopy() *PullRequestGeneratorGitLab { - if in == nil { - return nil - } - out := new(PullRequestGeneratorGitLab) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorGitea) DeepCopyInto(out *PullRequestGeneratorGitea) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGitea. -func (in *PullRequestGeneratorGitea) DeepCopy() *PullRequestGeneratorGitea { - if in == nil { - return nil - } - out := new(PullRequestGeneratorGitea) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PullRequestGeneratorGithub) DeepCopyInto(out *PullRequestGeneratorGithub) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorGithub. -func (in *PullRequestGeneratorGithub) DeepCopy() *PullRequestGeneratorGithub { - if in == nil { - return nil - } - out := new(PullRequestGeneratorGithub) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RefTarget) DeepCopyInto(out *RefTarget) { - *out = *in - in.Repo.DeepCopyInto(&out.Repo) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefTarget. -func (in *RefTarget) DeepCopy() *RefTarget { - if in == nil { - return nil - } - out := new(RefTarget) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in RefTargetRevisionMapping) DeepCopyInto(out *RefTargetRevisionMapping) { - { - in := &in - *out = make(RefTargetRevisionMapping, len(*in)) - for key, val := range *in { - var outVal *RefTarget - if val == nil { - (*out)[key] = nil - } else { - in, out := &val, &outVal - *out = new(RefTarget) - (*in).DeepCopyInto(*out) - } - (*out)[key] = outVal - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefTargetRevisionMapping. -func (in RefTargetRevisionMapping) DeepCopy() RefTargetRevisionMapping { - if in == nil { - return nil - } - out := new(RefTargetRevisionMapping) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepoCreds) DeepCopyInto(out *RepoCreds) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepoCreds. -func (in *RepoCreds) DeepCopy() *RepoCreds { - if in == nil { - return nil - } - out := new(RepoCreds) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepoCredsList) DeepCopyInto(out *RepoCredsList) { - *out = *in - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]RepoCreds, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepoCredsList. -func (in *RepoCredsList) DeepCopy() *RepoCredsList { - if in == nil { - return nil - } - out := new(RepoCredsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Repositories) DeepCopyInto(out *Repositories) { - { - in := &in - *out = make(Repositories, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(Repository) - (*in).DeepCopyInto(*out) - } - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repositories. -func (in Repositories) DeepCopy() Repositories { - if in == nil { - return nil - } - out := new(Repositories) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Repository) DeepCopyInto(out *Repository) { - *out = *in - in.ConnectionState.DeepCopyInto(&out.ConnectionState) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repository. -func (in *Repository) DeepCopy() *Repository { - if in == nil { - return nil - } - out := new(Repository) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepositoryCertificate) DeepCopyInto(out *RepositoryCertificate) { - *out = *in - if in.CertData != nil { - in, out := &in.CertData, &out.CertData - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryCertificate. -func (in *RepositoryCertificate) DeepCopy() *RepositoryCertificate { - if in == nil { - return nil - } - out := new(RepositoryCertificate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepositoryCertificateList) DeepCopyInto(out *RepositoryCertificateList) { - *out = *in - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]RepositoryCertificate, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryCertificateList. -func (in *RepositoryCertificateList) DeepCopy() *RepositoryCertificateList { - if in == nil { - return nil - } - out := new(RepositoryCertificateList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepositoryList) DeepCopyInto(out *RepositoryList) { - *out = *in - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make(Repositories, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(Repository) - (*in).DeepCopyInto(*out) - } - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryList. -func (in *RepositoryList) DeepCopy() *RepositoryList { - if in == nil { - return nil - } - out := new(RepositoryList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceAction) DeepCopyInto(out *ResourceAction) { - *out = *in - if in.Params != nil { - in, out := &in.Params, &out.Params - *out = make([]ResourceActionParam, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAction. -func (in *ResourceAction) DeepCopy() *ResourceAction { - if in == nil { - return nil - } - out := new(ResourceAction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceActionDefinition) DeepCopyInto(out *ResourceActionDefinition) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActionDefinition. -func (in *ResourceActionDefinition) DeepCopy() *ResourceActionDefinition { - if in == nil { - return nil - } - out := new(ResourceActionDefinition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceActionParam) DeepCopyInto(out *ResourceActionParam) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActionParam. -func (in *ResourceActionParam) DeepCopy() *ResourceActionParam { - if in == nil { - return nil - } - out := new(ResourceActionParam) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceActions) DeepCopyInto(out *ResourceActions) { - *out = *in - if in.Definitions != nil { - in, out := &in.Definitions, &out.Definitions - *out = make([]ResourceActionDefinition, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceActions. -func (in *ResourceActions) DeepCopy() *ResourceActions { - if in == nil { - return nil - } - out := new(ResourceActions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceDiff) DeepCopyInto(out *ResourceDiff) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDiff. -func (in *ResourceDiff) DeepCopy() *ResourceDiff { - if in == nil { - return nil - } - out := new(ResourceDiff) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceIgnoreDifferences) DeepCopyInto(out *ResourceIgnoreDifferences) { - *out = *in - if in.JSONPointers != nil { - in, out := &in.JSONPointers, &out.JSONPointers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.JQPathExpressions != nil { - in, out := &in.JQPathExpressions, &out.JQPathExpressions - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ManagedFieldsManagers != nil { - in, out := &in.ManagedFieldsManagers, &out.ManagedFieldsManagers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceIgnoreDifferences. -func (in *ResourceIgnoreDifferences) DeepCopy() *ResourceIgnoreDifferences { - if in == nil { - return nil - } - out := new(ResourceIgnoreDifferences) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceNetworkingInfo) DeepCopyInto(out *ResourceNetworkingInfo) { - *out = *in - if in.TargetLabels != nil { - in, out := &in.TargetLabels, &out.TargetLabels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.TargetRefs != nil { - in, out := &in.TargetRefs, &out.TargetRefs - *out = make([]ResourceRef, len(*in)) - copy(*out, *in) - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make([]corev1.LoadBalancerIngress, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ExternalURLs != nil { - in, out := &in.ExternalURLs, &out.ExternalURLs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceNetworkingInfo. -func (in *ResourceNetworkingInfo) DeepCopy() *ResourceNetworkingInfo { - if in == nil { - return nil - } - out := new(ResourceNetworkingInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceNode) DeepCopyInto(out *ResourceNode) { - *out = *in - out.ResourceRef = in.ResourceRef - if in.ParentRefs != nil { - in, out := &in.ParentRefs, &out.ParentRefs - *out = make([]ResourceRef, len(*in)) - copy(*out, *in) - } - if in.Info != nil { - in, out := &in.Info, &out.Info - *out = make([]InfoItem, len(*in)) - copy(*out, *in) - } - if in.NetworkingInfo != nil { - in, out := &in.NetworkingInfo, &out.NetworkingInfo - *out = new(ResourceNetworkingInfo) - (*in).DeepCopyInto(*out) - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Health != nil { - in, out := &in.Health, &out.Health - *out = new(HealthStatus) - **out = **in - } - if in.CreatedAt != nil { - in, out := &in.CreatedAt, &out.CreatedAt - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceNode. -func (in *ResourceNode) DeepCopy() *ResourceNode { - if in == nil { - return nil - } - out := new(ResourceNode) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceOverride) DeepCopyInto(out *ResourceOverride) { - *out = *in - in.IgnoreDifferences.DeepCopyInto(&out.IgnoreDifferences) - in.IgnoreResourceUpdates.DeepCopyInto(&out.IgnoreResourceUpdates) - if in.KnownTypeFields != nil { - in, out := &in.KnownTypeFields, &out.KnownTypeFields - *out = make([]KnownTypeField, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOverride. -func (in *ResourceOverride) DeepCopy() *ResourceOverride { - if in == nil { - return nil - } - out := new(ResourceOverride) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceRef) DeepCopyInto(out *ResourceRef) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRef. -func (in *ResourceRef) DeepCopy() *ResourceRef { - if in == nil { - return nil - } - out := new(ResourceRef) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceResult) DeepCopyInto(out *ResourceResult) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceResult. -func (in *ResourceResult) DeepCopy() *ResourceResult { - if in == nil { - return nil - } - out := new(ResourceResult) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ResourceResults) DeepCopyInto(out *ResourceResults) { - { - in := &in - *out = make(ResourceResults, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(ResourceResult) - **out = **in - } - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceResults. -func (in ResourceResults) DeepCopy() ResourceResults { - if in == nil { - return nil - } - out := new(ResourceResults) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus) { - *out = *in - if in.Health != nil { - in, out := &in.Health, &out.Health - *out = new(HealthStatus) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceStatus. -func (in *ResourceStatus) DeepCopy() *ResourceStatus { - if in == nil { - return nil - } - out := new(ResourceStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RetryStrategy) DeepCopyInto(out *RetryStrategy) { - *out = *in - if in.Backoff != nil { - in, out := &in.Backoff, &out.Backoff - *out = new(Backoff) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryStrategy. -func (in *RetryStrategy) DeepCopy() *RetryStrategy { - if in == nil { - return nil - } - out := new(RetryStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in RevisionHistories) DeepCopyInto(out *RevisionHistories) { - { - in := &in - *out = make(RevisionHistories, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionHistories. -func (in RevisionHistories) DeepCopy() RevisionHistories { - if in == nil { - return nil - } - out := new(RevisionHistories) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RevisionHistory) DeepCopyInto(out *RevisionHistory) { - *out = *in - in.DeployedAt.DeepCopyInto(&out.DeployedAt) - in.Source.DeepCopyInto(&out.Source) - if in.DeployStartedAt != nil { - in, out := &in.DeployStartedAt, &out.DeployStartedAt - *out = (*in).DeepCopy() - } - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Revisions != nil { - in, out := &in.Revisions, &out.Revisions - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.InitiatedBy = in.InitiatedBy - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionHistory. -func (in *RevisionHistory) DeepCopy() *RevisionHistory { - if in == nil { - return nil - } - out := new(RevisionHistory) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RevisionMetadata) DeepCopyInto(out *RevisionMetadata) { - *out = *in - in.Date.DeepCopyInto(&out.Date) - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevisionMetadata. -func (in *RevisionMetadata) DeepCopy() *RevisionMetadata { - if in == nil { - return nil - } - out := new(RevisionMetadata) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGenerator) DeepCopyInto(out *SCMProviderGenerator) { - *out = *in - if in.Github != nil { - in, out := &in.Github, &out.Github - *out = new(SCMProviderGeneratorGithub) - (*in).DeepCopyInto(*out) - } - if in.Gitlab != nil { - in, out := &in.Gitlab, &out.Gitlab - *out = new(SCMProviderGeneratorGitlab) - (*in).DeepCopyInto(*out) - } - if in.Bitbucket != nil { - in, out := &in.Bitbucket, &out.Bitbucket - *out = new(SCMProviderGeneratorBitbucket) - (*in).DeepCopyInto(*out) - } - if in.BitbucketServer != nil { - in, out := &in.BitbucketServer, &out.BitbucketServer - *out = new(SCMProviderGeneratorBitbucketServer) - (*in).DeepCopyInto(*out) - } - if in.Gitea != nil { - in, out := &in.Gitea, &out.Gitea - *out = new(SCMProviderGeneratorGitea) - (*in).DeepCopyInto(*out) - } - if in.AzureDevOps != nil { - in, out := &in.AzureDevOps, &out.AzureDevOps - *out = new(SCMProviderGeneratorAzureDevOps) - (*in).DeepCopyInto(*out) - } - if in.Filters != nil { - in, out := &in.Filters, &out.Filters - *out = make([]SCMProviderGeneratorFilter, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RequeueAfterSeconds != nil { - in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds - *out = new(int64) - **out = **in - } - in.Template.DeepCopyInto(&out.Template) - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.AWSCodeCommit != nil { - in, out := &in.AWSCodeCommit, &out.AWSCodeCommit - *out = new(SCMProviderGeneratorAWSCodeCommit) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGenerator. -func (in *SCMProviderGenerator) DeepCopy() *SCMProviderGenerator { - if in == nil { - return nil - } - out := new(SCMProviderGenerator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopyInto(out *SCMProviderGeneratorAWSCodeCommit) { - *out = *in - if in.TagFilters != nil { - in, out := &in.TagFilters, &out.TagFilters - *out = make([]*TagFilter, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(TagFilter) - **out = **in - } - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorAWSCodeCommit. -func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopy() *SCMProviderGeneratorAWSCodeCommit { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorAWSCodeCommit) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorAzureDevOps) DeepCopyInto(out *SCMProviderGeneratorAzureDevOps) { - *out = *in - if in.AccessTokenRef != nil { - in, out := &in.AccessTokenRef, &out.AccessTokenRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorAzureDevOps. -func (in *SCMProviderGeneratorAzureDevOps) DeepCopy() *SCMProviderGeneratorAzureDevOps { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorAzureDevOps) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorBitbucket) DeepCopyInto(out *SCMProviderGeneratorBitbucket) { - *out = *in - if in.AppPasswordRef != nil { // pragma: allowlist secret - in, out := &in.AppPasswordRef, &out.AppPasswordRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorBitbucket. -func (in *SCMProviderGeneratorBitbucket) DeepCopy() *SCMProviderGeneratorBitbucket { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorBitbucket) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorBitbucketServer) DeepCopyInto(out *SCMProviderGeneratorBitbucketServer) { - *out = *in - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(BasicAuthBitbucketServer) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorBitbucketServer. -func (in *SCMProviderGeneratorBitbucketServer) DeepCopy() *SCMProviderGeneratorBitbucketServer { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorBitbucketServer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorFilter) DeepCopyInto(out *SCMProviderGeneratorFilter) { - *out = *in - if in.RepositoryMatch != nil { - in, out := &in.RepositoryMatch, &out.RepositoryMatch - *out = new(string) - **out = **in - } - if in.PathsExist != nil { - in, out := &in.PathsExist, &out.PathsExist - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PathsDoNotExist != nil { - in, out := &in.PathsDoNotExist, &out.PathsDoNotExist - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.LabelMatch != nil { - in, out := &in.LabelMatch, &out.LabelMatch - *out = new(string) - **out = **in - } - if in.BranchMatch != nil { - in, out := &in.BranchMatch, &out.BranchMatch - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorFilter. -func (in *SCMProviderGeneratorFilter) DeepCopy() *SCMProviderGeneratorFilter { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorFilter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorGitea) DeepCopyInto(out *SCMProviderGeneratorGitea) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGitea. -func (in *SCMProviderGeneratorGitea) DeepCopy() *SCMProviderGeneratorGitea { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorGitea) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorGithub) DeepCopyInto(out *SCMProviderGeneratorGithub) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGithub. -func (in *SCMProviderGeneratorGithub) DeepCopy() *SCMProviderGeneratorGithub { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorGithub) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SCMProviderGeneratorGitlab) DeepCopyInto(out *SCMProviderGeneratorGitlab) { - *out = *in - if in.TokenRef != nil { - in, out := &in.TokenRef, &out.TokenRef - *out = new(SecretRef) - **out = **in - } - if in.IncludeSharedProjects != nil { - in, out := &in.IncludeSharedProjects, &out.IncludeSharedProjects - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorGitlab. -func (in *SCMProviderGeneratorGitlab) DeepCopy() *SCMProviderGeneratorGitlab { - if in == nil { - return nil - } - out := new(SCMProviderGeneratorGitlab) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretRef) DeepCopyInto(out *SecretRef) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef. -func (in *SecretRef) DeepCopy() *SecretRef { - if in == nil { - return nil - } - out := new(SecretRef) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SignatureKey) DeepCopyInto(out *SignatureKey) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureKey. -func (in *SignatureKey) DeepCopy() *SignatureKey { - if in == nil { - return nil - } - out := new(SignatureKey) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncOperation) DeepCopyInto(out *SyncOperation) { - *out = *in - if in.SyncStrategy != nil { - in, out := &in.SyncStrategy, &out.SyncStrategy - *out = new(SyncStrategy) - (*in).DeepCopyInto(*out) - } - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]SyncOperationResource, len(*in)) - copy(*out, *in) - } - if in.Source != nil { - in, out := &in.Source, &out.Source - *out = new(ApplicationSource) - (*in).DeepCopyInto(*out) - } - if in.Manifests != nil { - in, out := &in.Manifests, &out.Manifests - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SyncOptions != nil { - in, out := &in.SyncOptions, &out.SyncOptions - *out = make(SyncOptions, len(*in)) - copy(*out, *in) - } - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Revisions != nil { - in, out := &in.Revisions, &out.Revisions - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperation. -func (in *SyncOperation) DeepCopy() *SyncOperation { - if in == nil { - return nil - } - out := new(SyncOperation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncOperationResource) DeepCopyInto(out *SyncOperationResource) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperationResource. -func (in *SyncOperationResource) DeepCopy() *SyncOperationResource { - if in == nil { - return nil - } - out := new(SyncOperationResource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncOperationResult) DeepCopyInto(out *SyncOperationResult) { - *out = *in - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make(ResourceResults, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(ResourceResult) - **out = **in - } - } - } - in.Source.DeepCopyInto(&out.Source) - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make(ApplicationSources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Revisions != nil { - in, out := &in.Revisions, &out.Revisions - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ManagedNamespaceMetadata != nil { - in, out := &in.ManagedNamespaceMetadata, &out.ManagedNamespaceMetadata - *out = new(ManagedNamespaceMetadata) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOperationResult. -func (in *SyncOperationResult) DeepCopy() *SyncOperationResult { - if in == nil { - return nil - } - out := new(SyncOperationResult) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in SyncOptions) DeepCopyInto(out *SyncOptions) { - { - in := &in - *out = make(SyncOptions, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncOptions. -func (in SyncOptions) DeepCopy() SyncOptions { - if in == nil { - return nil - } - out := new(SyncOptions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncPolicy) DeepCopyInto(out *SyncPolicy) { - *out = *in - if in.Automated != nil { - in, out := &in.Automated, &out.Automated - *out = new(SyncPolicyAutomated) - **out = **in - } - if in.SyncOptions != nil { - in, out := &in.SyncOptions, &out.SyncOptions - *out = make(SyncOptions, len(*in)) - copy(*out, *in) - } - if in.Retry != nil { - in, out := &in.Retry, &out.Retry - *out = new(RetryStrategy) - (*in).DeepCopyInto(*out) - } - if in.ManagedNamespaceMetadata != nil { - in, out := &in.ManagedNamespaceMetadata, &out.ManagedNamespaceMetadata - *out = new(ManagedNamespaceMetadata) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncPolicy. -func (in *SyncPolicy) DeepCopy() *SyncPolicy { - if in == nil { - return nil - } - out := new(SyncPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncPolicyAutomated) DeepCopyInto(out *SyncPolicyAutomated) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncPolicyAutomated. -func (in *SyncPolicyAutomated) DeepCopy() *SyncPolicyAutomated { - if in == nil { - return nil - } - out := new(SyncPolicyAutomated) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncStatus) DeepCopyInto(out *SyncStatus) { - *out = *in - in.ComparedTo.DeepCopyInto(&out.ComparedTo) - if in.Revisions != nil { - in, out := &in.Revisions, &out.Revisions - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStatus. -func (in *SyncStatus) DeepCopy() *SyncStatus { - if in == nil { - return nil - } - out := new(SyncStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncStrategy) DeepCopyInto(out *SyncStrategy) { - *out = *in - if in.Apply != nil { - in, out := &in.Apply, &out.Apply - *out = new(SyncStrategyApply) - **out = **in - } - if in.Hook != nil { - in, out := &in.Hook, &out.Hook - *out = new(SyncStrategyHook) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategy. -func (in *SyncStrategy) DeepCopy() *SyncStrategy { - if in == nil { - return nil - } - out := new(SyncStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncStrategyApply) DeepCopyInto(out *SyncStrategyApply) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategyApply. -func (in *SyncStrategyApply) DeepCopy() *SyncStrategyApply { - if in == nil { - return nil - } - out := new(SyncStrategyApply) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncStrategyHook) DeepCopyInto(out *SyncStrategyHook) { - *out = *in - out.SyncStrategyApply = in.SyncStrategyApply - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStrategyHook. -func (in *SyncStrategyHook) DeepCopy() *SyncStrategyHook { - if in == nil { - return nil - } - out := new(SyncStrategyHook) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SyncWindow) DeepCopyInto(out *SyncWindow) { - *out = *in - if in.Applications != nil { - in, out := &in.Applications, &out.Applications - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Namespaces != nil { - in, out := &in.Namespaces, &out.Namespaces - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Clusters != nil { - in, out := &in.Clusters, &out.Clusters - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncWindow. -func (in *SyncWindow) DeepCopy() *SyncWindow { - if in == nil { - return nil - } - out := new(SyncWindow) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in SyncWindows) DeepCopyInto(out *SyncWindows) { - { - in := &in - *out = make(SyncWindows, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(SyncWindow) - (*in).DeepCopyInto(*out) - } - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncWindows. -func (in SyncWindows) DeepCopy() SyncWindows { - if in == nil { - return nil - } - out := new(SyncWindows) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) { - *out = *in - if in.CertData != nil { - in, out := &in.CertData, &out.CertData - *out = make([]byte, len(*in)) - copy(*out, *in) - } - if in.KeyData != nil { - in, out := &in.KeyData, &out.KeyData - *out = make([]byte, len(*in)) - copy(*out, *in) - } - if in.CAData != nil { - in, out := &in.CAData, &out.CAData - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSClientConfig. -func (in *TLSClientConfig) DeepCopy() *TLSClientConfig { - if in == nil { - return nil - } - out := new(TLSClientConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagFilter) DeepCopyInto(out *TagFilter) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagFilter. -func (in *TagFilter) DeepCopy() *TagFilter { - if in == nil { - return nil - } - out := new(TagFilter) - in.DeepCopyInto(out) - return out -} diff --git a/fleetshard/pkg/k8s/client.go b/fleetshard/pkg/k8s/client.go index f46c25f9c4..72a9c6c149 100644 --- a/fleetshard/pkg/k8s/client.go +++ b/fleetshard/pkg/k8s/client.go @@ -2,11 +2,11 @@ package k8s import ( + argoCd "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" "github.com/golang/glog" "github.com/openshift/addon-operator/apis/addons" openshiftOperatorV1 "github.com/openshift/api/operator/v1" openshiftRouteV1 "github.com/openshift/api/route/v1" - argocdv1alpha1 "github.com/stackrox/acs-fleet-manager/argocd/v1alpha1" "github.com/stackrox/rox/operator/apis/platform/v1alpha1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -37,7 +37,7 @@ func CreateClientOrDie() ctrlClient.Client { must(openshiftOperatorV1.Install(scheme)) must(addons.AddToScheme(scheme)) must(verticalpodautoscalingv1.AddToScheme(scheme)) - must(argocdv1alpha1.AddToScheme(scheme)) + must(argoCd.AddToScheme(scheme)) config, err := ctrl.GetConfig() if err != nil { diff --git a/go.mod b/go.mod index 7b4a6fb049..a455e46b14 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,13 @@ module github.com/stackrox/acs-fleet-manager -go 1.21 +go 1.21.0 -toolchain go1.21.9 +toolchain go1.22.5 require ( github.com/DATA-DOG/go-sqlmock v1.5.2 github.com/antihax/optional v1.0.0 + github.com/argoproj/argo-cd/v2 v2.12.1 github.com/aws/aws-sdk-go v1.55.5 github.com/aws/aws-sdk-go-v2 v1.30.3 github.com/aws/aws-sdk-go-v2/config v1.27.27 @@ -66,21 +67,28 @@ require ( gorm.io/driver/postgres v1.5.9 gorm.io/gorm v1.25.11 helm.sh/helm/v3 v3.14.3 - k8s.io/api v0.29.2 - k8s.io/apiextensions-apiserver v0.29.2 - k8s.io/apimachinery v0.29.2 + k8s.io/api v0.29.6 + k8s.io/apimachinery v0.29.6 k8s.io/autoscaler/vertical-pod-autoscaler v1.2.0 - k8s.io/client-go v0.29.2 + k8s.io/client-go v11.0.1-0.20190816222228-6d55c1b1f1ca+incompatible k8s.io/utils v0.0.0-20240102154912-e7106e64919e sigs.k8s.io/controller-runtime v0.17.2 sigs.k8s.io/yaml v1.4.0 ) require ( + cloud.google.com/go/compute/metadata v0.3.0 // indirect + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/BurntSushi/toml v1.3.2 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/ProtonMail/go-crypto v1.0.0 // indirect + github.com/argoproj/gitops-engine v0.7.1-0.20240714153147-adb68bcaab73 // indirect + github.com/argoproj/pkg v0.13.7-0.20230626144333-d56162821bd1 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect @@ -95,26 +103,41 @@ require ( github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect + github.com/bmatcuk/doublestar/v4 v4.6.0 // indirect + github.com/bombsimon/logrusr/v2 v2.0.1 // indirect + github.com/boombuler/barcode v1.0.1 // indirect + github.com/bradleyfalzon/ghinstallation/v2 v2.6.0 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/chai2010/gettext-go v1.0.2 // indirect github.com/cloudflare/cfssl v1.6.4 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/containers/storage v1.54.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/cyphar/filepath-securejoin v0.2.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/evanphx/json-patch v5.7.0+incompatible // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.8.0 // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/fatih/camelcase v1.0.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fvbommel/sortorder v1.1.0 // indirect github.com/go-errors/errors v1.4.2 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/go-jose/go-jose/v3 v3.0.3 // indirect github.com/go-jose/go-jose/v4 v4.0.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-redis/cache/v9 v9.0.0 // indirect github.com/go-sql-driver/mysql v1.7.1 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gobwas/glob v0.2.3 // indirect @@ -126,12 +149,18 @@ require ( github.com/gonvenience/text v1.0.7 // indirect github.com/gonvenience/wrap v1.1.2 // indirect github.com/gonvenience/ytbx v1.4.4 // indirect + github.com/google/btree v1.1.2 // indirect github.com/google/certificate-transparency-go v1.1.7 // indirect github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect + github.com/google/go-github/v53 v53.2.0 // indirect + github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gorilla/schema v1.4.1 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/gruntwork-io/go-commons v0.8.0 // indirect @@ -145,18 +174,24 @@ require ( github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect github.com/jackc/pgx/v5 v5.5.5 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmoiron/sqlx v1.3.5 // indirect + github.com/jonboulle/clockwork v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/klauspost/compress v1.17.8 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect - github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 // indirect + github.com/mattn/go-zglob v0.0.4 // indirect github.com/microcosm-cc/bluemonday v1.0.23 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -165,23 +200,31 @@ require ( github.com/mitchellh/hashstructure v1.1.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.2.0 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1 // indirect github.com/pelletier/go-toml v1.9.5 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pquerna/otp v1.2.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect + github.com/redis/go-redis/v9 v9.0.5 // indirect github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.66.0-rhobs1 // indirect github.com/rivo/uniseg v0.4.7 // indirect + github.com/robfig/cron/v3 v3.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/segmentio/analytics-go/v3 v3.3.0 // indirect github.com/segmentio/backo-go v1.0.1 // indirect - github.com/sergi/go-diff v1.3.1 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/stackrox/scanner v0.0.0-20240110222630-351caa1e0024 // indirect @@ -189,11 +232,17 @@ require ( github.com/tkuchiki/go-timezone v0.2.2 // indirect github.com/urfave/cli v1.22.14 // indirect github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect + github.com/vmihailenco/go-tinylfu v0.2.2 // indirect + github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/weppos/publicsuffix-go v0.30.1-0.20230620154423-38c92ad2d5c6 // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xlab/treeprint v1.2.0 // indirect github.com/zmap/zcrypto v0.0.0-20230310154051-c8b263fd8300 // indirect github.com/zmap/zlint/v3 v3.5.0 // indirect + go.starlark.net v0.0.0-20230612165344-9532f5667272 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect @@ -211,12 +260,23 @@ require ( google.golang.org/grpc v1.62.1 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.4.6 // indirect - k8s.io/component-base v0.29.2 // indirect + k8s.io/apiextensions-apiserver v0.29.6 // indirect + k8s.io/apiserver v0.29.6 // indirect + k8s.io/cli-runtime v0.29.6 // indirect + k8s.io/component-base v0.29.6 // indirect + k8s.io/component-helpers v0.29.6 // indirect k8s.io/klog/v2 v2.120.0 // indirect + k8s.io/kube-aggregator v0.29.6 // indirect k8s.io/kube-openapi v0.0.0-20240105020646-a37d4de58910 // indirect + k8s.io/kubectl v0.29.6 // indirect + k8s.io/kubernetes v1.29.6 // indirect + oras.land/oras-go/v2 v2.3.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect + sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) @@ -231,4 +291,52 @@ replace ( go.uber.org/zap => github.com/stackrox/zap v1.15.1-0.20230918235618-2bd149903d0e ) +// ArgoCD replacements +replace ( + // https://github.com/golang/go/issues/33546#issuecomment-519656923 + github.com/go-check/check => github.com/go-check/check v0.0.0-20180628173108-788fd7840127 + + github.com/go-telegram-bot-api/telegram-bot-api/v5 => github.com/OvyFlash/telegram-bot-api/v5 v5.0.0-20240108230938-63e5c59035bf + + github.com/golang/protobuf => github.com/golang/protobuf v1.5.4 + github.com/grpc-ecosystem/grpc-gateway => github.com/grpc-ecosystem/grpc-gateway v1.16.0 + + // Avoid CVE-2022-3064 + gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.4.0 + + // Avoid CVE-2022-28948 + gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 + + k8s.io/api => k8s.io/api v0.29.6 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.6 + k8s.io/apimachinery => k8s.io/apimachinery v0.29.6 + k8s.io/apiserver => k8s.io/apiserver v0.29.6 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.6 + k8s.io/client-go => k8s.io/client-go v0.29.6 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.6 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.6 + k8s.io/code-generator => k8s.io/code-generator v0.29.6 + k8s.io/component-base => k8s.io/component-base v0.29.6 + k8s.io/component-helpers => k8s.io/component-helpers v0.29.6 + k8s.io/controller-manager => k8s.io/controller-manager v0.29.6 + k8s.io/cri-api => k8s.io/cri-api v0.29.6 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.6 + k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.29.6 + k8s.io/endpointslice => k8s.io/endpointslice v0.29.6 + k8s.io/kms => k8s.io/kms v0.29.6 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.6 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.6 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.6 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.6 + k8s.io/kubectl => k8s.io/kubectl v0.29.6 + k8s.io/kubelet => k8s.io/kubelet v0.29.6 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.6 + k8s.io/metrics => k8s.io/metrics v0.29.6 + k8s.io/mount-utils => k8s.io/mount-utils v0.29.6 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.6 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.6 + k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.29.6 + k8s.io/sample-controller => k8s.io/sample-controller v0.29.6 +) + exclude k8s.io/client-go v12.0.0+incompatible diff --git a/go.sum b/go.sum index 28bcc096de..4eb44f95f0 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -15,6 +16,7 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -26,41 +28,590 @@ cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+Y cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -70,12 +621,40 @@ github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0 github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= +github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= +github.com/alicebob/miniredis/v2 v2.30.4 h1:8S4/o1/KoUArAGbGwPxcwf0krlzceva2XVOSchFS7Eo= +github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/argoproj/argo-cd/v2 v2.12.1 h1:UL7jCHZ1GuXdPnbr+RnpbAqtgbCgvZD11MwU6SFwFA8= +github.com/argoproj/argo-cd/v2 v2.12.1/go.mod h1:QbdGVT7f4aqrowJrMlJdoeKknLVcKKr5YDrzm1mVRmI= +github.com/argoproj/gitops-engine v0.7.1-0.20240714153147-adb68bcaab73 h1:7kyTgFsPjvb6noafslp2pr7fBCS9s8OJ759LdLzrOro= +github.com/argoproj/gitops-engine v0.7.1-0.20240714153147-adb68bcaab73/go.mod h1:xMIbuLg9Qj2e0egTy+8NcukbhRaVmWwK9vm3aAQZoi4= +github.com/argoproj/pkg v0.13.7-0.20230626144333-d56162821bd1 h1:qsHwwOJ21K2Ao0xPju1sNuqphyMnMYkyB3ZLoLtxWpo= +github.com/argoproj/pkg v0.13.7-0.20230626144333-d56162821bd1/go.mod h1:CZHlkyAD1/+FbEn6cB2DQTj48IoLGvEYsWEvtzP3238= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.44.289/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= @@ -113,11 +692,24 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/bmatcuk/doublestar/v4 v4.6.0 h1:HTuxyug8GyFbRkrffIpzNCSK4luc0TY3wzXvzIZhEXc= +github.com/bmatcuk/doublestar/v4 v4.6.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= +github.com/bombsimon/logrusr/v2 v2.0.1 h1:1VgxVNQMCvjirZIYaT9JYn6sAVGVEcNtRE0y4mvaOAM= +github.com/bombsimon/logrusr/v2 v2.0.1/go.mod h1:ByVAX+vHdLGAfdroiMg6q0zgq2FODY2lc5YJvzmOJio= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/bradleyfalzon/ghinstallation/v2 v2.6.0 h1:IRY7Xy588KylkoycsUhFpW7cdGpy5Y5BPsz4IfuJtGk= +github.com/bradleyfalzon/ghinstallation/v2 v2.6.0/go.mod h1:oQ3etOwN3TRH4EwgW5/7MxSVMGlMlzG/O8TU7eYdoSk= +github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= +github.com/bsm/ginkgo/v2 v2.7.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= +github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= +github.com/bsm/gomega v1.26.0/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/bxcodec/faker/v3 v3.8.1 h1:qO/Xq19V6uHt2xujwpaetgKhraGCapqY2CRWGD/SqcM= github.com/bxcodec/faker/v3 v3.8.1/go.mod h1:DdSDccxF5msjFo5aO4vrobRQ8nIApg8kq3QWPEQD6+o= github.com/caarlos0/env/v6 v6.10.1 h1:t1mPSxNpei6M5yAeu1qtRdPAK29Nbcf/n3G7x+b3/II= @@ -125,10 +717,14 @@ github.com/caarlos0/env/v6 v6.10.1/go.mod h1:hvp/ryKXKipEkcuYjs9mI4bBCg+UI0Yhgm5 github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= +github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -136,15 +732,22 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cloudflare/cfssl v1.6.4 h1:NMOvfrEjFfC63K3SGXgAnFdsgkmiq4kATme5BfcqrO8= github.com/cloudflare/cfssl v1.6.4/go.mod h1:8b3CQMxfWPAeom3zBnGJ6sd+G1NkL5TXqmDXacb+1J0= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/connorgorman/protobuf v1.2.2-0.20210115205927-b892c1b298f7 h1:YsgEuC8PhmdxkjGb3/l4inKcwVKuPXp1YELVPZkIByA= github.com/connorgorman/protobuf v1.2.2-0.20210115205927-b892c1b298f7/go.mod h1:4n/qquk+A505mqkK9+o7Xth9+UxUWFc4/5faDXkYyyU= github.com/containers/image/v5 v5.31.0 h1:eDFVlz5XaYICxe9dXpf23htEKvyosgkl62mJlIATXE4= @@ -157,18 +760,33 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.5 h1:6iR5tXJ/e6tJZzzdMc1km3Sa7RRIVBKAK32O2s7AYfo= github.com/cyphar/filepath-securejoin v0.2.5/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/go-healthcheck v0.1.0 h1:6ZrRr63F5LLsPwSlbZgjgoxNu+o1VlMIhCQWgbfrgU0= github.com/docker/go-healthcheck v0.1.0/go.mod h1:3v7a0338vhH6WnYFtUd66S+9QK3M6xK4sKr7gGrht6o= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= +github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -178,26 +796,58 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= -github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro= github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= +github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= +github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= +github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= +github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= +github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= +github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= +github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -208,34 +858,59 @@ github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQr github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.0.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-redis/cache/v9 v9.0.0 h1:0thdtFo0xJi0/WXbRVu8B066z8OvVymXTJGaXrVWnN0= +github.com/go-redis/cache/v9 v9.0.0/go.mod h1:cMwi1N8ASBOufbIvk7cdXe2PbPjK/WMRL95FFHWsSgI= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/goava/di v1.11.1 h1:9NBVyaoa0A5fmAfwWEaA8odHGWdgXTLW4EOti4qo72U= github.com/goava/di v1.11.1/go.mod h1:ToepvYlpTdC7DrFggmv/TyKIuezBLvAXlRxJkOvtemo= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -249,27 +924,12 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gonvenience/bunt v1.3.5 h1:wSQquifvwEWtzn27k1ngLfeLaStyt0k1b/K6TrlCNAs= github.com/gonvenience/bunt v1.3.5/go.mod h1:7ApqkVBEWvX04oJ28Q2WeI/BvJM6VtukaJAU/q/pTs8= github.com/gonvenience/neat v1.3.12 h1:xwIyRbJcG9LgcDYys+HHLH9DqqHeQsUpS5CfBUeskbs= @@ -284,8 +944,13 @@ github.com/gonvenience/ytbx v1.4.4 h1:jQopwyaLsVGuwdxSiN4WkXjsEaFNPJ3V4lUj7eyEpz github.com/gonvenience/ytbx v1.4.4/go.mod h1:w37+MKCPcCMY/jpPNmEklD4xKqrOAVBO6kIWW2+uI6M= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/certificate-transparency-go v1.1.7 h1:IASD+NtgSTJLPdzkthwvAG1ZVbF2WtFg4IvoA68XGSw= github.com/google/certificate-transparency-go v1.1.7/go.mod h1:FSSBo8fyMVgqptbfF6j5p/XNdgQftAhSmXcIxV9iphE= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -307,15 +972,20 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-github/v50 v50.2.0/go.mod h1:VBY8FB6yPIjrtKhozXv4FQupxKLS6H4m6xFZlT43q8Q= +github.com/google/go-github/v53 v53.2.0 h1:wvz3FyF53v4BK+AsnvCmeNhf8AkTaeh2SoYu/XUvTtI= +github.com/google/go-github/v53 v53.2.0/go.mod h1:XhFRObz+m/l+UCm9b7KSIC3lT3NWSXGt7mOsAWEloao= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -325,19 +995,31 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -345,7 +1027,15 @@ github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0 github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= @@ -355,10 +1045,17 @@ github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWS github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E= github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/gruntwork-io/go-commons v0.8.0 h1:k/yypwrPqSeYHevLlEDmvmgQzcyTwrlZGRaxEM6G0ro= github.com/gruntwork-io/go-commons v0.8.0/go.mod h1:gtp0yTtIBExIZp7vyIV9I0XQkVwiQZze678hvDXof78= github.com/gruntwork-io/terratest v0.47.0 h1:xIy1pT7NbGVlMLDZEHl3+3iSnvffh8tN2pL6idn448c= @@ -374,11 +1071,14 @@ github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/homeport/dyff v1.6.0 h1:AN+ikld0Fy+qx34YE7655b/bpWuxS6cL9k852pE2GUc= github.com/homeport/dyff v1.6.0/go.mod h1:FlAOFYzeKvxmU5nTrnG+qrlJVWpsFew7pt8L99p5q8k= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= @@ -408,6 +1108,8 @@ github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= @@ -418,6 +1120,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= +github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= +github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -426,11 +1130,31 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -440,8 +1164,13 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 h1:BXxTozrOU8zgC5dkpn3J6NTRdoP+hjok/e+ACr4Hibk= @@ -449,19 +1178,27 @@ github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3/go.mod h1:x1uk6 github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= -github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 h1:ofNAzWCcyTALn2Zv40+8XitdzCgXY6e9qvXwN9W0YXg= -github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/mattn/go-zglob v0.0.4 h1:LQi2iOm0/fGgu80AioIJ/1j9w9Oh+9DZ39J4VAGzHQM= +github.com/mattn/go-zglob v0.0.4/go.mod h1:MxxjyoXXnMxfIpxTK2GAkw1w8glPsQILx3N5wrKakiY= github.com/mendsley/gojwk v0.0.0-20141217222730-4d5ec6e58103 h1:Z/i1e+gTZrmcGeZyWckaLfucYG6KYOXLWo4co8pZYNY= github.com/mendsley/gojwk v0.0.0-20141217222730-4d5ec6e58103/go.mod h1:o9YPB5aGP8ob35Vy6+vyq3P3bWe7NQWzf+JLiXCiMaE= github.com/microcosm-cc/bluemonday v1.0.23 h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY= github.com/microcosm-cc/bluemonday v1.0.23/go.mod h1:mN70sk7UkkF8TUr2IGBpNN0jAgStuPzlK76QuruE/z4= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= +github.com/minio/minio-go/v7 v7.0.58/go.mod h1:NUDy4A4oXPq1l2yK6LTSvCEzAMeIcoz9lcj5dbzSrRE= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -478,32 +1215,79 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= github.com/mreiferson/go-httpclient v0.0.0-20201222173833-5e475fde3a4d/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= +github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= +github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0= +github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= +github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw= +github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= +github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= +github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= +github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= +github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= +github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= +github.com/onsi/ginkgo/v2 v2.9.7/go.mod h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= +github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/ginkgo/v2 v2.19.1 h1:QXgq3Z8Crl5EL1WBAC98A5sEBHARrAJNzAmMxzLcRF0= github.com/onsi/ginkgo/v2 v2.19.1/go.mod h1:O3DtEWQkPa/F7fBMgmZQKKsluAy8pd3rEQdrjkPb9zA= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= +github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM= +github.com/onsi/gomega v1.24.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= +github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM= +github.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= +github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= +github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= +github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= +github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4= +github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/openshift-online/ocm-sdk-go v0.1.433 h1:8i0Si9KrFkMprMBGR1a4ppmgVezMBjjXXkvhv28OVUk= github.com/openshift-online/ocm-sdk-go v0.1.433/go.mod h1:CiAu2jwl3ITKOxkeV0Qnhzv4gs35AmpIzVABQLtcI2Y= github.com/openshift/addon-operator/apis v0.0.0-20231110045543-dd01f2f5c184 h1:P93o33VcHaOTjOTm6/UojtJdr1qLc2U7vPMBno39rdc= @@ -519,11 +1303,22 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -532,6 +1327,8 @@ github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1 github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= @@ -541,13 +1338,22 @@ github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoG github.com/redhat-developer/app-services-sdk-core/app-services-sdk-go v0.1.0/go.mod h1:JPNDOitDoHoHk5ZPRjfOxHQhE4Br0WtiyV8m43E0rso= github.com/redhat-developer/app-services-sdk-core/app-services-sdk-go/serviceaccountmgmt v0.0.0-20230323122535-49460b57cc45 h1:zB7YuR81lby8jPK9CKIvzKQIrbpooR7R2lr5l3aL5KE= github.com/redhat-developer/app-services-sdk-core/app-services-sdk-go/serviceaccountmgmt v0.0.0-20230323122535-49460b57cc45/go.mod h1:9UjE86bWDvSfAwSAqweZPRNEAjAgI0ZvKYMIoz06qd0= +github.com/redis/go-redis/v9 v9.0.0-rc.4/go.mod h1:Vo3EsyWnicKnSKCA7HhgnvnyA74wOA69Cd2Meli5mmA= +github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.66.0-rhobs1 h1:+2dvyv90foYNSUceYWSlE+SfkeJSFRHV9eOqfnhE0Rw= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.66.0-rhobs1/go.mod h1:D7aYXoiteBUNwv3nMQ3NKKNlIEvFA1zS1nKJi7t8/IE= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= @@ -555,6 +1361,8 @@ github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/santhosh-tekuri/jsonschema/v3 v3.1.0 h1:levPcBfnazlA1CyCMC3asL/QLZkq9pa8tQZOH513zQw= github.com/santhosh-tekuri/jsonschema/v3 v3.1.0/go.mod h1:8kzK2TC0k0YjOForaAHdNEa7ik0fokNa2k30BKJ/W7Y= github.com/segmentio/analytics-go/v3 v3.3.0 h1:8VOMaVGBW03pdBrj1CMFfY9o/rnjJC+1wyQHlVxjw5o= @@ -563,8 +1371,8 @@ github.com/segmentio/backo-go v1.0.1 h1:68RQccglxZeyURy93ASB/2kc9QudzgIDexJ927N+ github.com/segmentio/backo-go v1.0.1/go.mod h1:9/Rh6yILuLysoQnZ2oNooD2g7aBnvM7r/fNVxRNWfBc= github.com/selvatico/go-mocket v1.0.7 h1:jbVa7RkoOCzBanQYiYF+VWgySHZogg25fOIKkM38q5k= github.com/selvatico/go-mocket v1.0.7/go.mod h1:7bSWzuNieCdUlanCVu3w0ppS0LvDtPAZmKBIlhoTcp8= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -572,15 +1380,24 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= +github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -608,6 +1425,7 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= @@ -620,12 +1438,21 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= +github.com/vmihailenco/go-tinylfu v0.2.2 h1:H1eiG6HM36iniK6+21n9LLpzx1G9R3DJa2UjUjbynsI= +github.com/vmihailenco/go-tinylfu v0.2.2/go.mod h1:CutYi2Q9puTxfcolkliPq4npPuofg9N9t8JVrjzwa3Q= +github.com/vmihailenco/msgpack/v5 v5.3.4/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/weppos/publicsuffix-go v0.12.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= github.com/weppos/publicsuffix-go v0.13.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= github.com/weppos/publicsuffix-go v0.30.0/go.mod h1:kBi8zwYnR0zrbm8RcuN1o9Fzgpnnn+btVN8uWPMyXAY= github.com/weppos/publicsuffix-go v0.30.1-0.20230620154423-38c92ad2d5c6 h1:kNn7cjQYeNjKUflvFFCxFeyS7ENcDdfPmkhFpgd0G/A= github.com/weppos/publicsuffix-go v0.30.1-0.20230620154423-38c92ad2d5c6/go.mod h1:wdMq89hDN07Zqr0yqYAXIBTJXl4MEELx+HYHOZdf5gM= github.com/weppos/publicsuffix-go/publicsuffix/generator v0.0.0-20220927085643-dc0d00c92642/go.mod h1:GHfoeIdZLdZmLjMlzBftbTDntahTttUMWjxZwQJhULE= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -633,12 +1460,19 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE= +github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zgalor/weberr v0.8.2 h1:rzGP0jQVt8hGSNnzjDAQNHMxNNrf3gUrYhpSgY76+mk= github.com/zgalor/weberr v0.8.2/go.mod h1:cqK89mj84q3PRgqQXQFWJDzCorOd8xOtov/ulOnqDwc= github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE= @@ -659,7 +1493,12 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.starlark.net v0.0.0-20230612165344-9532f5667272 h1:2/wtqS591wZyD2OsClsVBKRPEvBsQt/Js+fsCiYhwu8= +go.starlark.net v0.0.0-20230612165344-9532f5667272/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -675,33 +1514,63 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -726,12 +1595,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -753,6 +1632,7 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -761,25 +1641,46 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -802,8 +1703,18 @@ golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -819,11 +1730,17 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -834,11 +1751,15 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -857,23 +1778,31 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210608053332-aa57babbf139/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -881,31 +1810,60 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -917,21 +1875,32 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -944,6 +1913,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -966,6 +1936,7 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -974,17 +1945,31 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -994,8 +1979,17 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1032,9 +2026,31 @@ google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/S google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1078,7 +2094,9 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1111,20 +2129,84 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1153,31 +2235,39 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20210902184326-c93e472777b9 h1:nuV5/Eu1pLmXFqSuM5yYgg1z+m3f7+HC1HO1xsmCz9I= google.golang.org/grpc/examples v0.0.0-20210902184326-c93e472777b9/go.mod h1:gID3PKrg7pWKntu9Ss6zTLJ0ttC0X9IHgREOCZwbCVU= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1186,19 +2276,18 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/postgres v1.5.9 h1:DkegyItji119OlcaLjqN11kHoUgZ/j13E0jkJZgD6A8= @@ -1214,34 +2303,100 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= honnef.co/go/tools v0.4.6 h1:oFEHCKeID7to/3autwsWfnuv69j3NsfcXbvJKuIcep8= honnef.co/go/tools v0.4.6/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= -k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= -k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= -k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/api v0.29.6 h1:eDxIl8+PeEpwbe2YyS5RXJ9vdn4hnKWMBf4WUJP9DQM= +k8s.io/api v0.29.6/go.mod h1:ZuUPMhJV74DJXapldbg6upaHfiOjrBb+0ffUbBi1jaw= +k8s.io/apiextensions-apiserver v0.29.6 h1:tUu1N6Zt9GT8KVcPF5aGDqfISz1mveM4yFh7eL5bxmE= +k8s.io/apiextensions-apiserver v0.29.6/go.mod h1:iw1EbwZat08I219qrQKoFMHGo7J9KxPqMpVKxCbNbCs= +k8s.io/apimachinery v0.29.6 h1:CLjJ5b0hWW7531n/njRE3rnusw3rhVGCFftPfnG54CI= +k8s.io/apimachinery v0.29.6/go.mod h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y= +k8s.io/apiserver v0.29.6 h1:JxgDbpgahOgqoDOf+zVl2mI+rQcHcLQnK6YhhtsjbNs= +k8s.io/apiserver v0.29.6/go.mod h1:HrQwfPWxhwEa+n8/+5YwSF5yT2WXbeyFjqq6KEXHTX8= k8s.io/autoscaler/vertical-pod-autoscaler v1.2.0 h1:m28+YUWKzXvea3XDyjuIs2hupNdsIYmQiO+JCOsPhV4= k8s.io/autoscaler/vertical-pod-autoscaler v1.2.0/go.mod h1:9ywHbt0kTrLyeNGgTNm7WEns34PmBMEr+9bDKTxW6wQ= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= -k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8= -k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM= +k8s.io/cli-runtime v0.29.6 h1:nPbmS6ICW223S0BWTV+sK5xClWe89QB/n16/c5cJwT8= +k8s.io/cli-runtime v0.29.6/go.mod h1:5BzzwnVhtqVJvatDZmSZ6OtiSGqbdn0hKzpRbV3uf5o= +k8s.io/client-go v0.29.6 h1:5E2ebuB/p0F0THuQatyvhDvPL2SIeqwTPrtnrwKob/8= +k8s.io/client-go v0.29.6/go.mod h1:jHZcrQqDplyv20v7eu+iFM4gTpglZSZoMVcKrh8sRGg= +k8s.io/component-base v0.29.6 h1:XkVJI67FvBgNb/3kKqvaGKokxUrIR0RrksCPNI+JYCs= +k8s.io/component-base v0.29.6/go.mod h1:kIahZm8aw9lV8Vw17LF89REmeBrv5+QEl3v7HsrmITY= +k8s.io/component-helpers v0.29.6 h1:kG/tK0gXPXj6n3Oxn5Eul8nYzer3SejZI3ClwiWkreQ= +k8s.io/component-helpers v0.29.6/go.mod h1:Ltb44cbXci9fy9rytWwYsu8vHfi4fjyQdSwk6UlCR4E= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/klog/v2 v2.120.0 h1:z+q5mfovBj1fKFxiRzsa2DsJLPIVMk/KFL81LMOfK+8= k8s.io/klog/v2 v2.120.0/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-aggregator v0.29.6 h1:jZJjYF58F6kVuGC/kqLfuu7qGHqc2hoVKsDnRj26QRs= +k8s.io/kube-aggregator v0.29.6/go.mod h1:a6z0yORlXVXtGfsVB5PCjh2Soq1S7Wc6fApU6/T2eCE= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/kube-openapi v0.0.0-20240105020646-a37d4de58910 h1:1Rp/XEKP5uxPs6QrsngEHAxBjaAR78iJRiJq5Fi7LSU= k8s.io/kube-openapi v0.0.0-20240105020646-a37d4de58910/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw= +k8s.io/kubectl v0.29.6 h1:hmkOMyH2uSUV16gIB3Qp2dv09fM2+PGEXz5SH1gwp7Y= +k8s.io/kubectl v0.29.6/go.mod h1:IUpyXy2OCbIMuBMAisDHM9shh5/Nseij4w+HIt0aq6A= +k8s.io/kubernetes v1.29.6 h1:jn8kA/oVOAWZOeoorx6xZ4d+KgGp+Evgi90x9bEI/DE= +k8s.io/kubernetes v1.29.6/go.mod h1:28sDhcb87LX5z3GWAKYmLrhrifxi4W9bEWua4DRTIvk= +k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= +oras.land/oras-go/v2 v2.3.0 h1:lqX1aXdN+DAmDTKjiDyvq85cIaI4RkIKp/PghWlAGIU= +oras.land/oras-go/v2 v2.3.0/go.mod h1:GeAwLuC4G/JpNwkd+bSZ6SkDMGaaYglt6YK2WvZP7uQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/controller-runtime v0.17.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0= sigs.k8s.io/controller-runtime v0.17.2/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From b7d78bd6c447f3725c93b9ee4051eddf958e4ead Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:17:42 +0200 Subject: [PATCH 4/9] ROX-25847: add argocd types --- .golangci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.golangci.yml b/.golangci.yml index d475184dd0..365c72bd40 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -4,7 +4,6 @@ run: - internal/dinosaur/pkg/api/private - internal/dinosaur/pkg/api/admin/private - pkg/client/redhatsso/api - - argocd skip-files: - ".*_moq.go" # timeout for analysis, e.g. 30s, 5m, default is 1m From 4e2f742097b6d181059451b55bc906919030d65d Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:18:47 +0200 Subject: [PATCH 5/9] ROX-25847: add argocd types --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index a455e46b14..f6d3d3bf59 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/stackrox/acs-fleet-manager -go 1.21.0 +go 1.21.13 toolchain go1.22.5 From 4c7aabdbc1152a24e184e9d914c232e0472c764b Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:31:13 +0200 Subject: [PATCH 6/9] ROX-25847: add argocd types --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6f8009b6bb..07e32fcf62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi8/go-toolset:1.21 AS build +FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi8/go-toolset:1.22 AS build USER root RUN mkdir /src /rds_ca From 7e67880262b01832a8d141fa9fa4215fc5671cc1 Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:32:03 +0200 Subject: [PATCH 7/9] ROX-25847: add argocd types --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index f6d3d3bf59..a455e46b14 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/stackrox/acs-fleet-manager -go 1.21.13 +go 1.21.0 toolchain go1.22.5 From df41faf6ae28fa09a07b86512a552627f1b0292a Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Mon, 19 Aug 2024 17:32:21 +0200 Subject: [PATCH 8/9] ROX-25847: add argocd types --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 07e32fcf62..6f8009b6bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi8/go-toolset:1.22 AS build +FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi8/go-toolset:1.21 AS build USER root RUN mkdir /src /rds_ca From e795b4d1b59c32451887d0c31d4ca643b434dac6 Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Tue, 20 Aug 2024 11:30:41 +0200 Subject: [PATCH 9/9] ROX-25847: add argocd types --- go.mod | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.mod b/go.mod index a455e46b14..a2df70633d 100644 --- a/go.mod +++ b/go.mod @@ -2,8 +2,6 @@ module github.com/stackrox/acs-fleet-manager go 1.21.0 -toolchain go1.22.5 - require ( github.com/DATA-DOG/go-sqlmock v1.5.2 github.com/antihax/optional v1.0.0