diff --git a/cmd/argocd/commands/app.go b/cmd/argocd/commands/app.go index 04c3c34092bcd..defae6b4d1815 100644 --- a/cmd/argocd/commands/app.go +++ b/cmd/argocd/commands/app.go @@ -702,7 +702,7 @@ func NewApplicationWaitCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co conn, appIf := argocdclient.NewClientOrDie(clientOpts).NewApplicationClientOrDie() defer util.Close(conn) - _, err := waitOnApplicationStatus(appIf, appName, timeout, watchSync, watchHealth, watchOperations) + _, err := waitOnApplicationStatus(appIf, appName, timeout, watchSync, watchHealth, watchOperations, nil) errors.CheckError(err) }, } @@ -823,12 +823,17 @@ func printAppResources(w io.Writer, app *argoappv1.Application, showOperation bo // NewApplicationSyncCommand returns a new instance of an `argocd app sync` command func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( - revision string - prune bool - dryRun bool - timeout uint - strategy string - force bool + revision string + resources *[]string + prune bool + dryRun bool + timeout uint + strategy string + force bool + ) + const ( + resourceFieldDelimiter = ":" + resourceFieldCount = 3 ) var command = &cobra.Command{ Use: "sync APPNAME", @@ -841,11 +846,28 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co conn, appIf := argocdclient.NewClientOrDie(clientOpts).NewApplicationClientOrDie() defer util.Close(conn) appName := args[0] + var syncResources []argoappv1.SyncOperationResource + if resources != nil { + syncResources = []argoappv1.SyncOperationResource{} + for _, r := range *resources { + fields := strings.Split(r, resourceFieldDelimiter) + if len(fields) != resourceFieldCount { + log.Fatalf("Resource should have GROUP%sKIND%sNAME, but instead got: %s", resourceFieldDelimiter, resourceFieldDelimiter, r) + } + rsrc := argoappv1.SyncOperationResource{ + Group: fields[0], + Kind: fields[1], + Name: fields[2], + } + syncResources = append(syncResources, rsrc) + } + } syncReq := application.ApplicationSyncRequest{ - Name: &appName, - DryRun: dryRun, - Revision: revision, - Prune: prune, + Name: &appName, + DryRun: dryRun, + Revision: revision, + Resources: syncResources, + Prune: prune, } switch strategy { case "apply": @@ -861,7 +883,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co _, err := appIf.Sync(ctx, &syncReq) errors.CheckError(err) - app, err := waitOnApplicationStatus(appIf, appName, timeout, false, false, true) + app, err := waitOnApplicationStatus(appIf, appName, timeout, false, false, true, syncResources) errors.CheckError(err) pruningRequired := 0 @@ -882,6 +904,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co command.Flags().BoolVar(&dryRun, "dry-run", false, "Preview apply without affecting cluster") command.Flags().BoolVar(&prune, "prune", false, "Allow deleting unexpected resources") command.Flags().StringVar(&revision, "revision", "", "Sync to a specific revision. Preserves parameter overrides") + resources = command.Flags().StringArray("resource", nil, fmt.Sprintf("Sync only specific resources as GROUP%sKIND%sNAME. Fields may be blank. This option may be specified repeatedly", resourceFieldDelimiter, resourceFieldDelimiter)) command.Flags().UintVar(&timeout, "timeout", defaultCheckTimeoutSeconds, "Time out after this many seconds") command.Flags().StringVar(&strategy, "strategy", "", "Sync strategy (one of: apply|hook)") command.Flags().BoolVar(&force, "force", false, "Use a force apply") @@ -936,7 +959,7 @@ func (rs *resourceState) Merge(newState *resourceState) bool { return updated } -func calculateResourceStates(app *argoappv1.Application) map[string]*resourceState { +func calculateResourceStates(app *argoappv1.Application, syncResources []argoappv1.SyncOperationResource) map[string]*resourceState { resStates := make(map[string]*resourceState) for _, res := range app.Status.ComparisonResult.Resources { obj, err := argoappv1.UnmarshalToUnstructured(res.TargetState) @@ -945,6 +968,9 @@ func calculateResourceStates(app *argoappv1.Application) map[string]*resourceSta obj, err = argoappv1.UnmarshalToUnstructured(res.LiveState) errors.CheckError(err) } + if syncResources != nil && !argo.ContainsSyncResource(obj, syncResources) { + continue + } newState := newResourceState(obj.GetKind(), obj.GetName(), string(res.Status), res.Health.Status, "", "") key := newState.Key() if prev, ok := resStates[key]; ok { @@ -988,7 +1014,7 @@ func calculateResourceStates(app *argoappv1.Application) map[string]*resourceSta return resStates } -func waitOnApplicationStatus(appClient application.ApplicationServiceClient, appName string, timeout uint, watchSync, watchHealth, watchOperation bool) (*argoappv1.Application, error) { +func waitOnApplicationStatus(appClient application.ApplicationServiceClient, appName string, timeout uint, watchSync bool, watchHealth bool, watchOperation bool, syncResources []argoappv1.SyncOperationResource) (*argoappv1.Application, error) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -1045,7 +1071,7 @@ func waitOnApplicationStatus(appClient application.ApplicationServiceClient, app return app, nil } - newStates := calculateResourceStates(app) + newStates := calculateResourceStates(app, syncResources) for _, newState := range newStates { var doPrint bool stateKey := newState.Key() @@ -1212,7 +1238,7 @@ func NewApplicationRollbackCommand(clientOpts *argocdclient.ClientOptions) *cobr }) errors.CheckError(err) - _, err = waitOnApplicationStatus(appIf, appName, timeout, false, false, true) + _, err = waitOnApplicationStatus(appIf, appName, timeout, false, false, true, nil) errors.CheckError(err) }, } diff --git a/controller/sync.go b/controller/sync.go index 2c234fe821a88..3745b38d357b9 100644 --- a/controller/sync.go +++ b/controller/sync.go @@ -39,6 +39,7 @@ type syncContext struct { namespace string syncOp *appv1.SyncOperation syncRes *appv1.SyncOperationResult + syncResources []appv1.SyncOperationResource opState *appv1.OperationState manifestInfo *repository.ManifestResponse log *log.Entry @@ -55,10 +56,12 @@ func (s *appStateManager) SyncAppState(app *appv1.Application, state *appv1.Oper var revision string var syncOp appv1.SyncOperation var syncRes *appv1.SyncOperationResult + var syncResources []appv1.SyncOperationResource var overrides []appv1.ComponentParameter if state.Operation.Sync != nil { syncOp = *state.Operation.Sync + syncResources = syncOp.Resources overrides = []appv1.ComponentParameter(state.Operation.Sync.ParameterOverrides) if state.SyncResult != nil { syncRes = state.SyncResult @@ -107,6 +110,7 @@ func (s *appStateManager) SyncAppState(app *appv1.Application, state *appv1.Oper // Take the value in the requested operation. We will resolve this to a SHA later. revision = syncOp.Revision } + comparison, manifestInfo, conditions, err := s.CompareAppState(app, revision, overrides) if err != nil { state.Phase = appv1.OperationError @@ -162,6 +166,7 @@ func (s *appStateManager) SyncAppState(app *appv1.Application, state *appv1.Oper namespace: app.Spec.Destination.Namespace, syncOp: &syncOp, syncRes: syncRes, + syncResources: syncResources, opState: state, manifestInfo: manifestInfo, log: log.WithFields(log.Fields{"application": app.Name}), @@ -262,13 +267,15 @@ func (sc *syncContext) generateSyncTasks() ([]syncTask, bool) { sc.setOperationPhase(appv1.OperationError, fmt.Sprintf("Failed to unmarshal target object: %v", err)) return nil, false } - syncTask := syncTask{ - liveObj: liveObj, - targetObj: targetObj, + if sc.syncResources == nil || argo.ContainsSyncResource(liveObj, sc.syncResources) || argo.ContainsSyncResource(targetObj, sc.syncResources) { + syncTask := syncTask{ + liveObj: liveObj, + targetObj: targetObj, + } + syncTasks = append(syncTasks, syncTask) } - syncTasks = append(syncTasks, syncTask) } - return syncTasks, true + return syncTasks, len(syncTasks) > 0 } // startedPreSyncPhase detects if we already started the PreSync stage of a sync operation. diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index cb3c758eedf5d..12debe098007c 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -30,7 +30,7 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package func (m *AWSAuthConfig) Reset() { *m = AWSAuthConfig{} } func (*AWSAuthConfig) ProtoMessage() {} func (*AWSAuthConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{0} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{0} } func (m *AWSAuthConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58,7 +58,7 @@ var xxx_messageInfo_AWSAuthConfig proto.InternalMessageInfo func (m *AppProject) Reset() { *m = AppProject{} } func (*AppProject) ProtoMessage() {} func (*AppProject) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{1} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{1} } func (m *AppProject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -86,7 +86,7 @@ var xxx_messageInfo_AppProject proto.InternalMessageInfo func (m *AppProjectList) Reset() { *m = AppProjectList{} } func (*AppProjectList) ProtoMessage() {} func (*AppProjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{2} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{2} } func (m *AppProjectList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -114,7 +114,7 @@ var xxx_messageInfo_AppProjectList proto.InternalMessageInfo func (m *AppProjectSpec) Reset() { *m = AppProjectSpec{} } func (*AppProjectSpec) ProtoMessage() {} func (*AppProjectSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{3} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{3} } func (m *AppProjectSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -142,7 +142,7 @@ var xxx_messageInfo_AppProjectSpec proto.InternalMessageInfo func (m *Application) Reset() { *m = Application{} } func (*Application) ProtoMessage() {} func (*Application) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{4} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{4} } func (m *Application) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -170,7 +170,7 @@ var xxx_messageInfo_Application proto.InternalMessageInfo func (m *ApplicationCondition) Reset() { *m = ApplicationCondition{} } func (*ApplicationCondition) ProtoMessage() {} func (*ApplicationCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{5} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{5} } func (m *ApplicationCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -198,7 +198,7 @@ var xxx_messageInfo_ApplicationCondition proto.InternalMessageInfo func (m *ApplicationDestination) Reset() { *m = ApplicationDestination{} } func (*ApplicationDestination) ProtoMessage() {} func (*ApplicationDestination) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{6} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{6} } func (m *ApplicationDestination) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -226,7 +226,7 @@ var xxx_messageInfo_ApplicationDestination proto.InternalMessageInfo func (m *ApplicationList) Reset() { *m = ApplicationList{} } func (*ApplicationList) ProtoMessage() {} func (*ApplicationList) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{7} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{7} } func (m *ApplicationList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -254,7 +254,7 @@ var xxx_messageInfo_ApplicationList proto.InternalMessageInfo func (m *ApplicationSource) Reset() { *m = ApplicationSource{} } func (*ApplicationSource) ProtoMessage() {} func (*ApplicationSource) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{8} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{8} } func (m *ApplicationSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -282,7 +282,7 @@ var xxx_messageInfo_ApplicationSource proto.InternalMessageInfo func (m *ApplicationSpec) Reset() { *m = ApplicationSpec{} } func (*ApplicationSpec) ProtoMessage() {} func (*ApplicationSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{9} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{9} } func (m *ApplicationSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -310,7 +310,7 @@ var xxx_messageInfo_ApplicationSpec proto.InternalMessageInfo func (m *ApplicationStatus) Reset() { *m = ApplicationStatus{} } func (*ApplicationStatus) ProtoMessage() {} func (*ApplicationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{10} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{10} } func (m *ApplicationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -338,7 +338,7 @@ var xxx_messageInfo_ApplicationStatus proto.InternalMessageInfo func (m *ApplicationWatchEvent) Reset() { *m = ApplicationWatchEvent{} } func (*ApplicationWatchEvent) ProtoMessage() {} func (*ApplicationWatchEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{11} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{11} } func (m *ApplicationWatchEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -366,7 +366,7 @@ var xxx_messageInfo_ApplicationWatchEvent proto.InternalMessageInfo func (m *Cluster) Reset() { *m = Cluster{} } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{12} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{12} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -394,7 +394,7 @@ var xxx_messageInfo_Cluster proto.InternalMessageInfo func (m *ClusterConfig) Reset() { *m = ClusterConfig{} } func (*ClusterConfig) ProtoMessage() {} func (*ClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{13} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{13} } func (m *ClusterConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -422,7 +422,7 @@ var xxx_messageInfo_ClusterConfig proto.InternalMessageInfo func (m *ClusterList) Reset() { *m = ClusterList{} } func (*ClusterList) ProtoMessage() {} func (*ClusterList) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{14} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{14} } func (m *ClusterList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -450,7 +450,7 @@ var xxx_messageInfo_ClusterList proto.InternalMessageInfo func (m *ComparisonResult) Reset() { *m = ComparisonResult{} } func (*ComparisonResult) ProtoMessage() {} func (*ComparisonResult) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{15} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{15} } func (m *ComparisonResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -478,7 +478,7 @@ var xxx_messageInfo_ComparisonResult proto.InternalMessageInfo func (m *ComponentParameter) Reset() { *m = ComponentParameter{} } func (*ComponentParameter) ProtoMessage() {} func (*ComponentParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{16} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{16} } func (m *ComponentParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -506,7 +506,7 @@ var xxx_messageInfo_ComponentParameter proto.InternalMessageInfo func (m *ConnectionState) Reset() { *m = ConnectionState{} } func (*ConnectionState) ProtoMessage() {} func (*ConnectionState) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{17} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{17} } func (m *ConnectionState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -534,7 +534,7 @@ var xxx_messageInfo_ConnectionState proto.InternalMessageInfo func (m *DeploymentInfo) Reset() { *m = DeploymentInfo{} } func (*DeploymentInfo) ProtoMessage() {} func (*DeploymentInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{18} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{18} } func (m *DeploymentInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -562,7 +562,7 @@ var xxx_messageInfo_DeploymentInfo proto.InternalMessageInfo func (m *HealthStatus) Reset() { *m = HealthStatus{} } func (*HealthStatus) ProtoMessage() {} func (*HealthStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{19} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{19} } func (m *HealthStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -590,7 +590,7 @@ var xxx_messageInfo_HealthStatus proto.InternalMessageInfo func (m *HookStatus) Reset() { *m = HookStatus{} } func (*HookStatus) ProtoMessage() {} func (*HookStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{20} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{20} } func (m *HookStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -618,7 +618,7 @@ var xxx_messageInfo_HookStatus proto.InternalMessageInfo func (m *JWTToken) Reset() { *m = JWTToken{} } func (*JWTToken) ProtoMessage() {} func (*JWTToken) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{21} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{21} } func (m *JWTToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -646,7 +646,7 @@ var xxx_messageInfo_JWTToken proto.InternalMessageInfo func (m *Operation) Reset() { *m = Operation{} } func (*Operation) ProtoMessage() {} func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{22} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{22} } func (m *Operation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -674,7 +674,7 @@ var xxx_messageInfo_Operation proto.InternalMessageInfo func (m *OperationState) Reset() { *m = OperationState{} } func (*OperationState) ProtoMessage() {} func (*OperationState) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{23} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{23} } func (m *OperationState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -702,7 +702,7 @@ var xxx_messageInfo_OperationState proto.InternalMessageInfo func (m *ParameterOverrides) Reset() { *m = ParameterOverrides{} } func (*ParameterOverrides) ProtoMessage() {} func (*ParameterOverrides) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{24} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{24} } func (m *ParameterOverrides) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -730,7 +730,7 @@ var xxx_messageInfo_ParameterOverrides proto.InternalMessageInfo func (m *ProjectRole) Reset() { *m = ProjectRole{} } func (*ProjectRole) ProtoMessage() {} func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{25} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{25} } func (m *ProjectRole) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -758,7 +758,7 @@ var xxx_messageInfo_ProjectRole proto.InternalMessageInfo func (m *Repository) Reset() { *m = Repository{} } func (*Repository) ProtoMessage() {} func (*Repository) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{26} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{26} } func (m *Repository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -786,7 +786,7 @@ var xxx_messageInfo_Repository proto.InternalMessageInfo func (m *RepositoryList) Reset() { *m = RepositoryList{} } func (*RepositoryList) ProtoMessage() {} func (*RepositoryList) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{27} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{27} } func (m *RepositoryList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -814,7 +814,7 @@ var xxx_messageInfo_RepositoryList proto.InternalMessageInfo func (m *ResourceDetails) Reset() { *m = ResourceDetails{} } func (*ResourceDetails) ProtoMessage() {} func (*ResourceDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{28} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{28} } func (m *ResourceDetails) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -842,7 +842,7 @@ var xxx_messageInfo_ResourceDetails proto.InternalMessageInfo func (m *ResourceNode) Reset() { *m = ResourceNode{} } func (*ResourceNode) ProtoMessage() {} func (*ResourceNode) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{29} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{29} } func (m *ResourceNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -870,7 +870,7 @@ var xxx_messageInfo_ResourceNode proto.InternalMessageInfo func (m *ResourceState) Reset() { *m = ResourceState{} } func (*ResourceState) ProtoMessage() {} func (*ResourceState) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{30} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{30} } func (m *ResourceState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -898,7 +898,7 @@ var xxx_messageInfo_ResourceState proto.InternalMessageInfo func (m *RollbackOperation) Reset() { *m = RollbackOperation{} } func (*RollbackOperation) ProtoMessage() {} func (*RollbackOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{31} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{31} } func (m *RollbackOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -926,7 +926,7 @@ var xxx_messageInfo_RollbackOperation proto.InternalMessageInfo func (m *SyncOperation) Reset() { *m = SyncOperation{} } func (*SyncOperation) ProtoMessage() {} func (*SyncOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{32} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{32} } func (m *SyncOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -951,10 +951,38 @@ func (m *SyncOperation) XXX_DiscardUnknown() { var xxx_messageInfo_SyncOperation proto.InternalMessageInfo +func (m *SyncOperationResource) Reset() { *m = SyncOperationResource{} } +func (*SyncOperationResource) ProtoMessage() {} +func (*SyncOperationResource) Descriptor() ([]byte, []int) { + return fileDescriptor_generated_a1a901721b8b6bdf, []int{33} +} +func (m *SyncOperationResource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SyncOperationResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (dst *SyncOperationResource) XXX_Merge(src proto.Message) { + xxx_messageInfo_SyncOperationResource.Merge(dst, src) +} +func (m *SyncOperationResource) XXX_Size() int { + return m.Size() +} +func (m *SyncOperationResource) XXX_DiscardUnknown() { + xxx_messageInfo_SyncOperationResource.DiscardUnknown(m) +} + +var xxx_messageInfo_SyncOperationResource proto.InternalMessageInfo + func (m *SyncOperationResult) Reset() { *m = SyncOperationResult{} } func (*SyncOperationResult) ProtoMessage() {} func (*SyncOperationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{33} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{34} } func (m *SyncOperationResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -982,7 +1010,7 @@ var xxx_messageInfo_SyncOperationResult proto.InternalMessageInfo func (m *SyncPolicy) Reset() { *m = SyncPolicy{} } func (*SyncPolicy) ProtoMessage() {} func (*SyncPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{34} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{35} } func (m *SyncPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1010,7 +1038,7 @@ var xxx_messageInfo_SyncPolicy proto.InternalMessageInfo func (m *SyncPolicyAutomated) Reset() { *m = SyncPolicyAutomated{} } func (*SyncPolicyAutomated) ProtoMessage() {} func (*SyncPolicyAutomated) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{35} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{36} } func (m *SyncPolicyAutomated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1038,7 +1066,7 @@ var xxx_messageInfo_SyncPolicyAutomated proto.InternalMessageInfo func (m *SyncStrategy) Reset() { *m = SyncStrategy{} } func (*SyncStrategy) ProtoMessage() {} func (*SyncStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{36} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{37} } func (m *SyncStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1066,7 +1094,7 @@ var xxx_messageInfo_SyncStrategy proto.InternalMessageInfo func (m *SyncStrategyApply) Reset() { *m = SyncStrategyApply{} } func (*SyncStrategyApply) ProtoMessage() {} func (*SyncStrategyApply) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{37} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{38} } func (m *SyncStrategyApply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1094,7 +1122,7 @@ var xxx_messageInfo_SyncStrategyApply proto.InternalMessageInfo func (m *SyncStrategyHook) Reset() { *m = SyncStrategyHook{} } func (*SyncStrategyHook) ProtoMessage() {} func (*SyncStrategyHook) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{38} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{39} } func (m *SyncStrategyHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1122,7 +1150,7 @@ var xxx_messageInfo_SyncStrategyHook proto.InternalMessageInfo func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} } func (*TLSClientConfig) ProtoMessage() {} func (*TLSClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_generated_639498dd9e5881d3, []int{39} + return fileDescriptor_generated_a1a901721b8b6bdf, []int{40} } func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1181,6 +1209,7 @@ func init() { proto.RegisterType((*ResourceState)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.ResourceState") proto.RegisterType((*RollbackOperation)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.RollbackOperation") proto.RegisterType((*SyncOperation)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncOperation") + proto.RegisterType((*SyncOperationResource)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncOperationResource") proto.RegisterType((*SyncOperationResult)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncOperationResult") proto.RegisterType((*SyncPolicy)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncPolicy") proto.RegisterType((*SyncPolicyAutomated)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncPolicyAutomated") @@ -2605,6 +2634,48 @@ func (m *SyncOperation) MarshalTo(dAtA []byte) (int, error) { } i += n36 } + if len(m.Resources) > 0 { + for _, msg := range m.Resources { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *SyncOperationResource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncOperationResource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Group))) + i += copy(dAtA[i:], m.Group) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) return i, nil } @@ -3384,6 +3455,24 @@ func (m *SyncOperation) Size() (n int) { l = m.ParameterOverrides.Size() n += 1 + l + sovGenerated(uint64(l)) } + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SyncOperationResource) Size() (n int) { + var l int + _ = l + l = len(m.Group) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -3887,6 +3976,19 @@ func (this *SyncOperation) String() string { `DryRun:` + fmt.Sprintf("%v", this.DryRun) + `,`, `SyncStrategy:` + strings.Replace(fmt.Sprintf("%v", this.SyncStrategy), "SyncStrategy", "SyncStrategy", 1) + `,`, `ParameterOverrides:` + strings.Replace(fmt.Sprintf("%v", this.ParameterOverrides), "ParameterOverrides", "ParameterOverrides", 1) + `,`, + `Resources:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Resources), "SyncOperationResource", "SyncOperationResource", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SyncOperationResource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SyncOperationResource{`, + `Group:` + fmt.Sprintf("%v", this.Group) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `}`, }, "") return s @@ -9030,6 +9132,174 @@ func (m *SyncOperation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, SyncOperationResource{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SyncOperationResource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncOperationResource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncOperationResource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Group = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -9909,186 +10179,188 @@ var ( ) func init() { - proto.RegisterFile("github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1/generated.proto", fileDescriptor_generated_639498dd9e5881d3) + proto.RegisterFile("github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1/generated.proto", fileDescriptor_generated_a1a901721b8b6bdf) } -var fileDescriptor_generated_639498dd9e5881d3 = []byte{ - // 2817 bytes of a gzipped FileDescriptorProto +var fileDescriptor_generated_a1a901721b8b6bdf = []byte{ + // 2862 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4d, 0x8c, 0x23, 0x47, - 0xf5, 0x9f, 0xf6, 0xc7, 0x8c, 0xe7, 0xcd, 0xc7, 0xee, 0x56, 0x3e, 0xfe, 0xfe, 0x4f, 0xa4, 0x99, - 0x51, 0x87, 0x8f, 0x80, 0x12, 0x9b, 0x5d, 0x08, 0x84, 0x80, 0x90, 0xc6, 0x9e, 0xdd, 0xec, 0x64, - 0x76, 0x67, 0x87, 0xf2, 0x24, 0x2b, 0x85, 0x28, 0xd0, 0xdb, 0xae, 0xb1, 0x7b, 0x6d, 0x77, 0x77, - 0xba, 0xca, 0xde, 0x58, 0x10, 0x14, 0x84, 0x40, 0x7c, 0x4a, 0x40, 0x84, 0x40, 0xe2, 0x12, 0x24, - 0x4e, 0x5c, 0xb8, 0x44, 0x1c, 0xb8, 0xc1, 0x01, 0xe5, 0x98, 0x03, 0x88, 0x28, 0x44, 0x23, 0x32, - 0xb9, 0x20, 0x71, 0x40, 0x5c, 0x73, 0x42, 0xf5, 0xd1, 0x5d, 0xd5, 0x6d, 0x3b, 0x33, 0xbb, 0xf6, - 0x2e, 0x70, 0x73, 0xd7, 0x7b, 0xfd, 0x7e, 0xaf, 0x5f, 0xbd, 0x7a, 0x5f, 0x65, 0xd8, 0x69, 0x79, - 0xac, 0xdd, 0xbf, 0x51, 0x71, 0x83, 0x5e, 0xd5, 0x89, 0x5a, 0x41, 0x18, 0x05, 0x37, 0xc5, 0x8f, - 0xc7, 0xdc, 0x66, 0x35, 0xec, 0xb4, 0xaa, 0x4e, 0xe8, 0xd1, 0xaa, 0x13, 0x86, 0x5d, 0xcf, 0x75, - 0x98, 0x17, 0xf8, 0xd5, 0xc1, 0x79, 0xa7, 0x1b, 0xb6, 0x9d, 0xf3, 0xd5, 0x16, 0xf1, 0x49, 0xe4, - 0x30, 0xd2, 0xac, 0x84, 0x51, 0xc0, 0x02, 0xf4, 0x59, 0x2d, 0xaa, 0x12, 0x8b, 0x12, 0x3f, 0xbe, - 0xec, 0x36, 0x2b, 0x61, 0xa7, 0x55, 0xe1, 0xa2, 0x2a, 0x86, 0xa8, 0x4a, 0x2c, 0x6a, 0xed, 0x31, - 0x43, 0x8b, 0x56, 0xd0, 0x0a, 0xaa, 0x42, 0xe2, 0x8d, 0xfe, 0xa1, 0x78, 0x12, 0x0f, 0xe2, 0x97, - 0x44, 0x5a, 0xfb, 0x54, 0xe7, 0x09, 0x5a, 0xf1, 0x02, 0xae, 0x5b, 0xcf, 0x71, 0xdb, 0x9e, 0x4f, - 0xa2, 0xa1, 0x56, 0xb6, 0x47, 0x98, 0x53, 0x1d, 0x8c, 0xe8, 0xb7, 0x56, 0x9d, 0xf4, 0x56, 0xd4, - 0xf7, 0x99, 0xd7, 0x23, 0x23, 0x2f, 0x7c, 0xfa, 0xa4, 0x17, 0xa8, 0xdb, 0x26, 0x3d, 0x67, 0xe4, - 0xbd, 0x4f, 0x4e, 0x7a, 0xaf, 0xcf, 0xbc, 0x6e, 0xd5, 0xf3, 0x19, 0x65, 0x51, 0xf6, 0x25, 0xfb, - 0x45, 0x58, 0xd9, 0xba, 0xde, 0xd8, 0xea, 0xb3, 0x76, 0x3d, 0xf0, 0x0f, 0xbd, 0x16, 0x7a, 0x1c, - 0x96, 0xdc, 0x6e, 0x9f, 0x32, 0x12, 0xed, 0x39, 0x3d, 0x52, 0xb6, 0x36, 0xad, 0x47, 0x16, 0x6b, - 0xf7, 0xbd, 0x71, 0xb4, 0x31, 0x77, 0x7c, 0xb4, 0xb1, 0x54, 0xd7, 0x24, 0x6c, 0xf2, 0xa1, 0x8f, - 0xc1, 0x42, 0x14, 0x74, 0xc9, 0x16, 0xde, 0x2b, 0xe7, 0xc4, 0x2b, 0x67, 0xd4, 0x2b, 0x0b, 0x58, - 0x2e, 0xe3, 0x98, 0x6e, 0xff, 0xd5, 0x02, 0xd8, 0x0a, 0xc3, 0xfd, 0x28, 0xb8, 0x49, 0x5c, 0x86, - 0xbe, 0x02, 0x25, 0x6e, 0xba, 0xa6, 0xc3, 0x1c, 0x81, 0xb6, 0x74, 0xe1, 0x13, 0x15, 0xf9, 0x25, - 0x15, 0xf3, 0x4b, 0xf4, 0x56, 0x72, 0xee, 0xca, 0xe0, 0x7c, 0xe5, 0xda, 0x0d, 0xfe, 0xfe, 0x55, - 0xc2, 0x9c, 0x1a, 0x52, 0x60, 0xa0, 0xd7, 0x70, 0x22, 0x15, 0x75, 0xa0, 0x40, 0x43, 0xe2, 0x0a, - 0xc5, 0x96, 0x2e, 0xec, 0x54, 0xee, 0xd8, 0x61, 0x2a, 0x5a, 0xed, 0x46, 0x48, 0xdc, 0xda, 0xb2, - 0x82, 0x2d, 0xf0, 0x27, 0x2c, 0x40, 0xec, 0xb7, 0x2d, 0x58, 0xd5, 0x6c, 0x57, 0x3c, 0xca, 0xd0, - 0xf3, 0x23, 0x5f, 0x58, 0x39, 0xdd, 0x17, 0xf2, 0xb7, 0xc5, 0xf7, 0x9d, 0x55, 0x40, 0xa5, 0x78, - 0xc5, 0xf8, 0xba, 0x9b, 0x50, 0xf4, 0x18, 0xe9, 0xd1, 0x72, 0x6e, 0x33, 0xff, 0xc8, 0xd2, 0x85, - 0x8b, 0x33, 0xf9, 0xbc, 0xda, 0x8a, 0x42, 0x2c, 0xee, 0x70, 0xd9, 0x58, 0x42, 0xd8, 0xbf, 0x28, - 0x9a, 0x1f, 0xc7, 0xbf, 0x1a, 0x9d, 0x87, 0x25, 0x1a, 0xf4, 0x23, 0x97, 0x60, 0x12, 0x06, 0xb4, - 0x6c, 0x6d, 0xe6, 0xf9, 0xe6, 0x73, 0x5f, 0x69, 0xe8, 0x65, 0x6c, 0xf2, 0xa0, 0xef, 0x5b, 0xb0, - 0xdc, 0x24, 0x94, 0x79, 0xbe, 0xc0, 0x8f, 0x35, 0xff, 0xe2, 0x74, 0x9a, 0xc7, 0x8b, 0xdb, 0x5a, - 0x72, 0xed, 0x7e, 0xf5, 0x15, 0xcb, 0xc6, 0x22, 0xc5, 0x29, 0x70, 0xee, 0xf0, 0x4d, 0x42, 0xdd, - 0xc8, 0x0b, 0xf9, 0x73, 0x39, 0x9f, 0x76, 0xf8, 0x6d, 0x4d, 0xc2, 0x26, 0x1f, 0xea, 0x40, 0x91, - 0x3b, 0x34, 0x2d, 0x17, 0x84, 0xf2, 0x97, 0xa6, 0x50, 0x5e, 0x99, 0x93, 0x1f, 0x14, 0x6d, 0x77, - 0xfe, 0x44, 0xb1, 0xc4, 0x40, 0x3f, 0xb4, 0xa0, 0xac, 0x4e, 0x1b, 0x26, 0xd2, 0x94, 0xd7, 0xdb, - 0x1e, 0x23, 0x5d, 0x8f, 0xb2, 0x72, 0x51, 0x28, 0x50, 0x3d, 0x9d, 0x4b, 0x3d, 0x15, 0x05, 0xfd, - 0x70, 0xd7, 0xf3, 0x9b, 0xb5, 0x4d, 0x85, 0x54, 0xae, 0x4f, 0x10, 0x8c, 0x27, 0x42, 0xa2, 0x57, - 0x2d, 0x58, 0xf3, 0x9d, 0x1e, 0xa1, 0xa1, 0xc3, 0x37, 0x55, 0x92, 0x6b, 0x5d, 0xc7, 0xed, 0x08, - 0x8d, 0xe6, 0xef, 0x4c, 0x23, 0x5b, 0x69, 0xb4, 0xb6, 0x37, 0x51, 0x34, 0xfe, 0x00, 0x58, 0xfb, - 0x8f, 0x79, 0x58, 0x32, 0x1c, 0xe1, 0x1e, 0x44, 0x96, 0x6e, 0x2a, 0xb2, 0x3c, 0x3d, 0x1b, 0x07, - 0x9e, 0x14, 0x5a, 0x10, 0x83, 0x79, 0xca, 0x1c, 0xd6, 0xa7, 0xc2, 0x49, 0x97, 0x2e, 0x5c, 0x99, - 0x11, 0x9e, 0x90, 0x59, 0x5b, 0x55, 0x88, 0xf3, 0xf2, 0x19, 0x2b, 0x2c, 0xf4, 0x22, 0x2c, 0x06, - 0x21, 0xcf, 0x19, 0xfc, 0x74, 0x14, 0x04, 0xf0, 0xf6, 0x14, 0xc0, 0xd7, 0x62, 0x59, 0xb5, 0x95, - 0xe3, 0xa3, 0x8d, 0xc5, 0xe4, 0x11, 0x6b, 0x14, 0xdb, 0x85, 0xfb, 0x0d, 0xfd, 0xea, 0x81, 0xdf, - 0xf4, 0xc4, 0x86, 0x6e, 0x42, 0x81, 0x0d, 0xc3, 0x38, 0x29, 0x25, 0x26, 0x3a, 0x18, 0x86, 0x04, - 0x0b, 0x0a, 0x4f, 0x43, 0x3d, 0x42, 0xa9, 0xd3, 0x22, 0xd9, 0x34, 0x74, 0x55, 0x2e, 0xe3, 0x98, - 0x6e, 0xbf, 0x08, 0x0f, 0x8e, 0x8f, 0x1a, 0xe8, 0x23, 0x30, 0x4f, 0x49, 0x34, 0x20, 0x91, 0x02, - 0xd2, 0x96, 0x11, 0xab, 0x58, 0x51, 0x51, 0x15, 0x16, 0x13, 0x6f, 0x54, 0x70, 0xe7, 0x14, 0xeb, - 0xa2, 0x76, 0x61, 0xcd, 0x63, 0xbf, 0x63, 0xc1, 0x19, 0x03, 0xf3, 0x1e, 0x24, 0x87, 0x4e, 0x3a, - 0x39, 0x5c, 0x9a, 0x8d, 0xc7, 0x4c, 0xc8, 0x0e, 0xbf, 0xcf, 0xc3, 0x39, 0xd3, 0xaf, 0xc4, 0xf1, - 0x14, 0x95, 0x01, 0x09, 0x83, 0x67, 0xf0, 0x15, 0x65, 0x4e, 0x5d, 0x19, 0xc8, 0x65, 0x1c, 0xd3, - 0xf9, 0xfe, 0x86, 0x0e, 0x6b, 0x2b, 0x5b, 0x26, 0xfb, 0xbb, 0xef, 0xb0, 0x36, 0x16, 0x14, 0x1e, - 0xac, 0x89, 0x3f, 0xf0, 0xa2, 0xc0, 0xef, 0x11, 0x9f, 0x65, 0x83, 0xf5, 0x45, 0x4d, 0xc2, 0x26, - 0x1f, 0xfa, 0x02, 0xac, 0x32, 0x27, 0x6a, 0x11, 0x86, 0xc9, 0xc0, 0xa3, 0xb1, 0x23, 0x2f, 0xd6, - 0x1e, 0x54, 0x6f, 0xae, 0x1e, 0xa4, 0xa8, 0x38, 0xc3, 0x8d, 0x5e, 0xb7, 0xe0, 0x21, 0x37, 0xe8, - 0x85, 0x81, 0x4f, 0x7c, 0xb6, 0xef, 0x44, 0x4e, 0x8f, 0x30, 0x12, 0x5d, 0x1b, 0x90, 0x28, 0xf2, - 0x9a, 0x84, 0xaa, 0x10, 0x7c, 0x75, 0x0a, 0xeb, 0xd6, 0x47, 0xa4, 0xd7, 0x1e, 0x56, 0xca, 0x3d, - 0x54, 0x9f, 0x8c, 0x8c, 0x3f, 0x48, 0x2d, 0x9e, 0x9b, 0x07, 0x4e, 0xb7, 0x4f, 0xe8, 0x25, 0x8f, - 0x67, 0xaa, 0x79, 0x9d, 0x9b, 0x9f, 0xd5, 0xcb, 0xd8, 0xe4, 0xb1, 0x5f, 0xcf, 0xa7, 0x5c, 0xb4, - 0x11, 0xc7, 0x1d, 0xb1, 0x97, 0xca, 0x41, 0x67, 0x15, 0x77, 0x64, 0xf8, 0xd6, 0xa7, 0x4b, 0x96, - 0x08, 0x0a, 0x0b, 0x7d, 0xc7, 0x12, 0x89, 0x39, 0x3e, 0x95, 0x2a, 0xc6, 0xde, 0x85, 0x22, 0xc1, - 0xcc, 0xf5, 0xf1, 0x22, 0x36, 0xa1, 0xb9, 0x0b, 0x87, 0x32, 0x47, 0x2b, 0x8f, 0x4b, 0x5c, 0x38, - 0x4e, 0xdd, 0x31, 0x1d, 0xf5, 0x01, 0xe8, 0xd0, 0x77, 0xf7, 0x83, 0xae, 0xe7, 0x0e, 0x55, 0xb8, - 0x9c, 0xa6, 0x24, 0x6b, 0x24, 0xc2, 0x6a, 0xab, 0x3c, 0x0d, 0xe9, 0x67, 0x6c, 0x00, 0xd9, 0xaf, - 0xcd, 0xa7, 0x8f, 0x9e, 0x0c, 0xdd, 0x3f, 0xb6, 0xe0, 0x2c, 0xf7, 0x0f, 0x27, 0xf2, 0x68, 0xe0, - 0x63, 0x42, 0xfb, 0x5d, 0xa6, 0xf6, 0x70, 0x77, 0x4a, 0x5f, 0x35, 0x45, 0xd6, 0xca, 0xca, 0x1c, - 0x67, 0xb3, 0x14, 0x3c, 0x02, 0x8f, 0x18, 0x2c, 0xb4, 0x3d, 0xca, 0x82, 0x68, 0xa8, 0x62, 0xd2, - 0x34, 0xf5, 0xf8, 0x36, 0x09, 0xbb, 0xc1, 0x90, 0x1f, 0xf1, 0x1d, 0xff, 0x30, 0xd0, 0xdb, 0x72, - 0x59, 0x22, 0xe0, 0x18, 0x0a, 0x7d, 0xc3, 0x02, 0x08, 0xe3, 0x03, 0xc2, 0xf3, 0xe7, 0x5d, 0x38, - 0xaf, 0x49, 0xa9, 0x90, 0x2c, 0x51, 0x6c, 0x80, 0xa2, 0x00, 0xe6, 0xdb, 0xc4, 0xe9, 0xb2, 0xb6, - 0x72, 0x8b, 0xa7, 0xa6, 0x80, 0xbf, 0x2c, 0x04, 0x65, 0x33, 0xb7, 0x5c, 0xc5, 0x0a, 0x06, 0x7d, - 0xcb, 0x82, 0xd5, 0x24, 0xa9, 0x72, 0x5e, 0x52, 0x2e, 0x4e, 0xdd, 0x02, 0x5d, 0x4b, 0x09, 0xac, - 0x21, 0x1e, 0x3d, 0xd3, 0x6b, 0x38, 0x03, 0x8a, 0xbe, 0x69, 0x01, 0xb8, 0x71, 0x12, 0xa7, 0xaa, - 0x3a, 0xbc, 0x36, 0x9b, 0x83, 0x9c, 0x14, 0x07, 0xda, 0xfc, 0xc9, 0x12, 0xc5, 0x06, 0xac, 0xfd, - 0x9e, 0x05, 0x0f, 0x18, 0x2f, 0x5e, 0x77, 0x98, 0xdb, 0xbe, 0x38, 0xe0, 0xd9, 0x61, 0x37, 0x55, - 0x56, 0x7c, 0xc6, 0x2c, 0x2b, 0xde, 0x3f, 0xda, 0xf8, 0xe8, 0xa4, 0xb6, 0xfa, 0x16, 0x97, 0x50, - 0x11, 0x22, 0x8c, 0x0a, 0xe4, 0x65, 0x58, 0x32, 0x74, 0x56, 0x51, 0x6b, 0x56, 0x79, 0x37, 0x09, - 0x55, 0xc6, 0x22, 0x36, 0xf1, 0xec, 0x3f, 0xe7, 0x60, 0x41, 0x15, 0xf4, 0xa7, 0xae, 0x63, 0x36, - 0xa1, 0xc0, 0x6b, 0x94, 0x6c, 0xda, 0x15, 0x4d, 0xbe, 0xa0, 0xa0, 0x10, 0xe6, 0x5d, 0x31, 0x1e, - 0x50, 0x95, 0xe7, 0xe5, 0x69, 0x4e, 0x8e, 0xd4, 0x4e, 0x8e, 0x1b, 0xb4, 0x4e, 0xf2, 0x19, 0x2b, - 0x1c, 0xde, 0xf1, 0x9c, 0x71, 0x03, 0xdf, 0x27, 0xae, 0x76, 0xde, 0xc2, 0xd4, 0x55, 0x76, 0x3d, - 0x2d, 0xb1, 0xf6, 0x7f, 0x0a, 0xfd, 0x4c, 0x86, 0x80, 0xb3, 0xd8, 0xf6, 0x6f, 0xf3, 0xb0, 0x92, - 0xd2, 0x1c, 0x3d, 0x0a, 0xa5, 0x3e, 0x25, 0x91, 0xaf, 0xa7, 0x24, 0x49, 0x21, 0xf6, 0x8c, 0x5a, - 0xc7, 0x09, 0x07, 0xe7, 0x0e, 0x1d, 0x4a, 0x6f, 0x05, 0x51, 0x53, 0xd9, 0x39, 0xe1, 0xde, 0x57, - 0xeb, 0x38, 0xe1, 0xe0, 0x65, 0xce, 0x0d, 0xe2, 0x44, 0x24, 0x3a, 0x08, 0x3a, 0x64, 0xa4, 0x27, - 0xad, 0x69, 0x12, 0x36, 0xf9, 0x84, 0xd1, 0x58, 0x97, 0xd6, 0xbb, 0x1e, 0xf1, 0x99, 0x54, 0x73, - 0x06, 0x46, 0x3b, 0xb8, 0xd2, 0x30, 0x25, 0x6a, 0xa3, 0x65, 0x08, 0x38, 0x8b, 0xcd, 0xa3, 0xee, - 0x8a, 0x73, 0x8b, 0xea, 0xe9, 0x92, 0x8a, 0x3f, 0xd3, 0xb8, 0x4f, 0x6a, 0x5a, 0x55, 0x3b, 0x77, - 0x7c, 0xb4, 0x91, 0x1e, 0x60, 0xe1, 0x34, 0xa2, 0xfd, 0x27, 0x0b, 0xe2, 0xa9, 0xd5, 0x3d, 0xa8, - 0xb7, 0x5b, 0xe9, 0x7a, 0xbb, 0x36, 0xfd, 0x39, 0x99, 0x50, 0x6b, 0xbf, 0x9d, 0x87, 0x91, 0x6c, - 0x8b, 0x5e, 0xe0, 0x71, 0x96, 0xaf, 0x91, 0xe6, 0x56, 0x9c, 0xe8, 0x3f, 0x7e, 0xba, 0xaf, 0x3b, - 0xf0, 0x7a, 0xc4, 0x0c, 0xa1, 0xb1, 0x14, 0x6c, 0x48, 0x44, 0xaf, 0x58, 0x1a, 0xe0, 0x20, 0x50, - 0xb1, 0x6d, 0xb6, 0xd5, 0xe0, 0x88, 0x0a, 0x07, 0x01, 0x36, 0x30, 0xd1, 0x93, 0x49, 0x0f, 0x5c, - 0x14, 0x87, 0xc2, 0x4e, 0x77, 0xad, 0xef, 0xa7, 0x8a, 0x90, 0x4c, 0x27, 0x3b, 0x84, 0xc5, 0x48, - 0x0d, 0x0d, 0xe2, 0x2c, 0x34, 0x8d, 0x27, 0xc6, 0x03, 0x08, 0x19, 0x4a, 0x92, 0xce, 0x2f, 0x5e, - 0xa6, 0x58, 0xa3, 0xf1, 0xe3, 0x1f, 0xc5, 0xad, 0xc7, 0x42, 0xfa, 0xf8, 0x27, 0x4d, 0x47, 0xc2, - 0x61, 0xff, 0xc0, 0x02, 0x34, 0x5a, 0x60, 0xf0, 0x7e, 0x33, 0xa9, 0xf6, 0x55, 0xc8, 0x49, 0x50, - 0x13, 0x76, 0xac, 0x79, 0x4e, 0x11, 0xd8, 0x1f, 0x86, 0xa2, 0xa8, 0xfe, 0x55, 0x88, 0x49, 0x7c, - 0x4d, 0xf4, 0x07, 0x58, 0xd2, 0xec, 0x3f, 0x58, 0x90, 0x0d, 0x90, 0x22, 0xb7, 0xc8, 0x7d, 0xc8, - 0xe6, 0x96, 0xb4, 0xcd, 0x4f, 0xdf, 0x90, 0xa3, 0xe7, 0x61, 0xc9, 0x61, 0x8c, 0xf4, 0x42, 0x26, - 0xdc, 0x37, 0x7f, 0xdb, 0xee, 0x2b, 0x0a, 0xe4, 0xab, 0x41, 0xd3, 0x3b, 0xf4, 0x84, 0xeb, 0x9a, - 0xe2, 0xec, 0x7f, 0xe5, 0x60, 0x35, 0x5d, 0x2e, 0xa6, 0x36, 0x25, 0x77, 0xd2, 0xa6, 0x9c, 0xd8, - 0x03, 0xe6, 0xff, 0x3b, 0x7b, 0xc0, 0x17, 0x00, 0x9a, 0xe2, 0xb3, 0x85, 0x51, 0x0b, 0x77, 0x1e, - 0x13, 0xb6, 0x13, 0x29, 0xd8, 0x90, 0x88, 0xd6, 0x20, 0xe7, 0x35, 0xc5, 0x61, 0xcc, 0xd7, 0x40, - 0xf1, 0xe6, 0x76, 0xb6, 0x71, 0xce, 0x6b, 0xda, 0x14, 0x96, 0xcd, 0x42, 0xf5, 0xd4, 0x4e, 0xf3, - 0x39, 0x58, 0x91, 0xbf, 0xb6, 0x09, 0x73, 0xbc, 0x2e, 0x55, 0xbb, 0xf3, 0x80, 0x62, 0x5f, 0x69, - 0x98, 0x44, 0x9c, 0xe6, 0xb5, 0x7f, 0x96, 0x03, 0xb8, 0x1c, 0x04, 0x1d, 0x85, 0x19, 0x9f, 0x01, - 0x6b, 0xe2, 0x19, 0xd8, 0x84, 0x42, 0xc7, 0xf3, 0x9b, 0xd9, 0x53, 0xb2, 0xeb, 0xf9, 0x4d, 0x2c, - 0x28, 0xe8, 0x02, 0x80, 0x13, 0x7a, 0xcf, 0x92, 0x88, 0xea, 0x09, 0x71, 0x62, 0x97, 0xad, 0xfd, - 0x1d, 0x45, 0xc1, 0x06, 0x17, 0x7a, 0x54, 0x15, 0x95, 0x72, 0xd0, 0x50, 0xce, 0x14, 0x95, 0x25, - 0xae, 0xa1, 0x51, 0x35, 0x3e, 0x91, 0x09, 0x6b, 0x9b, 0x23, 0x61, 0x4d, 0x17, 0xd9, 0xfb, 0x6d, - 0x87, 0x92, 0x71, 0x07, 0x6c, 0xfe, 0x84, 0x89, 0x57, 0x03, 0x4a, 0x4f, 0x5f, 0x3f, 0x90, 0xa5, - 0x82, 0x0d, 0x79, 0xcf, 0x91, 0x51, 0x24, 0xaf, 0xdd, 0x7e, 0x87, 0xd2, 0xbe, 0xd8, 0x61, 0x4e, - 0x44, 0x0f, 0x43, 0x9e, 0xbc, 0x14, 0x0a, 0xbb, 0xe4, 0x75, 0xa4, 0xb9, 0xf8, 0x52, 0xe8, 0x45, - 0x84, 0x72, 0x26, 0xf2, 0x52, 0x68, 0xff, 0xc3, 0x02, 0x3d, 0xc4, 0x43, 0x87, 0x50, 0xe0, 0x5d, - 0xa9, 0xca, 0x3d, 0x97, 0xa7, 0x6c, 0x7c, 0xf5, 0xac, 0xb0, 0x24, 0x46, 0xa1, 0x43, 0xdf, 0xc5, - 0x42, 0x3e, 0x1a, 0x40, 0x29, 0x0a, 0xba, 0xdd, 0x1b, 0x8e, 0xdb, 0x99, 0x41, 0x1a, 0xc2, 0x4a, - 0x94, 0xc6, 0x5b, 0x16, 0x41, 0x40, 0x2d, 0xe3, 0x04, 0xcb, 0xfe, 0x4d, 0x11, 0x32, 0xdd, 0x0e, - 0xea, 0x9b, 0xf3, 0x51, 0x6b, 0x86, 0xf3, 0xd1, 0xc4, 0xe2, 0xe3, 0x66, 0xa4, 0xe8, 0x71, 0x28, - 0x86, 0xdc, 0x11, 0x94, 0xdb, 0x6e, 0xc4, 0x91, 0x5b, 0x78, 0xc7, 0x18, 0x7f, 0x91, 0xdc, 0xa6, - 0xbb, 0xe4, 0x4f, 0x88, 0xc7, 0x5f, 0x97, 0xa3, 0x0c, 0x35, 0x36, 0x90, 0x91, 0x63, 0x6f, 0x56, - 0x3b, 0xaa, 0x26, 0x07, 0xc9, 0x4c, 0x43, 0xcd, 0x0b, 0x0c, 0x44, 0xf4, 0x3d, 0x0b, 0x56, 0x63, - 0xc3, 0x2b, 0x25, 0x8a, 0x77, 0x45, 0x09, 0xd1, 0xc3, 0xe2, 0x14, 0x12, 0xce, 0x20, 0xa3, 0x2f, - 0xc1, 0x22, 0x65, 0x4e, 0x24, 0x53, 0xd3, 0xfc, 0x6d, 0x47, 0xd1, 0x64, 0x2f, 0x1b, 0xb1, 0x10, - 0xac, 0xe5, 0xa1, 0xe7, 0x00, 0x0e, 0x3d, 0xdf, 0xa3, 0x6d, 0x21, 0x7d, 0xe1, 0xce, 0x12, 0xdf, - 0xa5, 0x44, 0x02, 0x36, 0xa4, 0xd9, 0x3f, 0xb1, 0x00, 0x8d, 0x49, 0x0b, 0x51, 0x5c, 0xa8, 0x5a, - 0x77, 0x23, 0x6d, 0x8d, 0xad, 0x59, 0x9f, 0x2c, 0xfd, 0xfc, 0xb5, 0x8d, 0xb9, 0x57, 0xde, 0xd9, - 0x9c, 0xb3, 0xbf, 0x9d, 0x83, 0x25, 0xe3, 0xd6, 0xeb, 0x14, 0x41, 0x3a, 0x73, 0x4b, 0x97, 0x3b, - 0xe5, 0x2d, 0xdd, 0x23, 0x50, 0x0a, 0x83, 0xae, 0xe7, 0x7a, 0x2a, 0x41, 0x2f, 0xca, 0x93, 0xbd, - 0xaf, 0xd6, 0x70, 0x42, 0x45, 0x0c, 0x16, 0x6f, 0xde, 0x62, 0x22, 0x38, 0xc6, 0x77, 0x7a, 0xf5, - 0x29, 0x8c, 0x12, 0x07, 0x5a, 0xbd, 0xf3, 0xf1, 0x0a, 0xc5, 0x1a, 0xc8, 0xfe, 0x4b, 0x0e, 0x40, - 0x5c, 0x8a, 0x7a, 0x62, 0x4c, 0xb5, 0x09, 0x85, 0x88, 0x84, 0x41, 0xd6, 0x0e, 0x9c, 0x03, 0x0b, - 0x4a, 0xaa, 0xeb, 0xcc, 0xdd, 0x56, 0xd7, 0x99, 0x3f, 0xb1, 0xeb, 0xe4, 0x69, 0x97, 0xb6, 0xf7, - 0x23, 0x6f, 0xe0, 0x30, 0xb2, 0x4b, 0x86, 0x2a, 0x77, 0xe9, 0xb4, 0xdb, 0xb8, 0xac, 0x89, 0x38, - 0xcd, 0x3b, 0xb6, 0x61, 0x2f, 0xfe, 0x07, 0x1b, 0xf6, 0xb7, 0x2d, 0x58, 0xd5, 0x96, 0xfd, 0xdf, - 0xba, 0x87, 0xd7, 0x7a, 0x4f, 0xe8, 0xfe, 0xfe, 0x69, 0xc1, 0x99, 0xb8, 0xcf, 0x50, 0x75, 0xcf, - 0x4c, 0x0a, 0x9d, 0xd4, 0x8d, 0x56, 0xfe, 0xe4, 0x1b, 0x2d, 0x33, 0x9d, 0x14, 0x4e, 0x48, 0x27, - 0x9f, 0xcf, 0x94, 0x38, 0x1f, 0x1a, 0x29, 0x71, 0x50, 0xd2, 0x51, 0x0d, 0x7d, 0x37, 0x5d, 0x12, - 0xda, 0xbf, 0xb6, 0x60, 0x39, 0x26, 0xef, 0x05, 0x4d, 0xd1, 0xb9, 0x50, 0xe1, 0x64, 0x56, 0xba, - 0x73, 0x91, 0xee, 0x20, 0x69, 0xa8, 0x0f, 0x25, 0xb7, 0xed, 0x75, 0x9b, 0x11, 0xf1, 0xd5, 0xb6, - 0x3c, 0x35, 0x83, 0x86, 0x8f, 0xe3, 0x6b, 0x57, 0xa8, 0x2b, 0x00, 0x9c, 0x40, 0xd9, 0xbf, 0xcb, - 0xc3, 0x4a, 0xaa, 0x3b, 0xe4, 0xe1, 0x4b, 0x5e, 0x29, 0x35, 0x0c, 0x9d, 0x93, 0xf0, 0x75, 0xa0, - 0x49, 0xd8, 0xe4, 0xe3, 0xfb, 0xd1, 0xf5, 0x06, 0x52, 0x46, 0xf6, 0x86, 0xf1, 0x4a, 0x4c, 0xc0, - 0x9a, 0xc7, 0x68, 0x8f, 0xf3, 0xb7, 0xdd, 0x1e, 0xbf, 0x6a, 0x01, 0x12, 0x9f, 0xc0, 0x25, 0x27, - 0x5d, 0xac, 0x8a, 0x85, 0x33, 0xb3, 0xdb, 0x9a, 0xd2, 0x08, 0xd5, 0x47, 0xa0, 0xf0, 0x18, 0x78, - 0x63, 0x6a, 0x5e, 0xbc, 0x27, 0x53, 0x73, 0xfb, 0x6b, 0x70, 0x6e, 0xa4, 0x1e, 0x54, 0x5d, 0x8e, - 0x35, 0xae, 0xcb, 0xe1, 0x9e, 0x18, 0x46, 0x7d, 0x5f, 0x6e, 0x50, 0x49, 0x7b, 0xe2, 0x3e, 0x5f, - 0xc4, 0x92, 0xc6, 0x5b, 0x9f, 0x66, 0x34, 0xc4, 0x7d, 0xd9, 0x3e, 0x94, 0x34, 0xfa, 0xb6, 0x58, - 0xc5, 0x8a, 0x6a, 0xff, 0x32, 0x0f, 0x2b, 0xa9, 0x1a, 0x25, 0xd5, 0xa5, 0x5a, 0x27, 0x76, 0xa9, - 0xb3, 0x54, 0x06, 0xbd, 0x0c, 0xcb, 0x54, 0x1c, 0xc5, 0xc8, 0x61, 0xa4, 0x35, 0x9c, 0xc1, 0xbd, - 0x45, 0xc3, 0x10, 0x57, 0x3b, 0x7b, 0x7c, 0xb4, 0xb1, 0x6c, 0xae, 0xe0, 0x14, 0x1c, 0xfa, 0xa9, - 0x05, 0x28, 0x1c, 0x77, 0xd9, 0x6a, 0x4d, 0x59, 0xb1, 0x8c, 0xd6, 0x43, 0xb5, 0x07, 0xb9, 0x4b, - 0x8e, 0xe9, 0xad, 0xc7, 0x28, 0x60, 0xff, 0x2a, 0x07, 0xf7, 0x8d, 0xa9, 0x23, 0xd1, 0x2d, 0x73, - 0xbe, 0x24, 0xeb, 0xaa, 0xa7, 0x67, 0x70, 0x6c, 0x54, 0x80, 0x97, 0xff, 0x97, 0x38, 0x71, 0xba, - 0x74, 0xf2, 0x20, 0xe3, 0x10, 0x8a, 0xed, 0x20, 0xe8, 0xc4, 0x13, 0x8b, 0x69, 0x12, 0x95, 0xee, - 0xb3, 0x6b, 0x8b, 0xdc, 0xcb, 0xf8, 0x33, 0xc5, 0x52, 0xbc, 0xfd, 0x5d, 0x0b, 0x8c, 0xeb, 0x4a, - 0xf4, 0x55, 0x58, 0x74, 0xfa, 0x2c, 0xe8, 0x39, 0x8c, 0x34, 0x55, 0xfa, 0xdd, 0x9b, 0xc9, 0xc5, - 0xe8, 0x56, 0x2c, 0x55, 0x5a, 0x28, 0x79, 0xc4, 0x1a, 0xcf, 0x7e, 0x52, 0xee, 0x58, 0xe6, 0x05, - 0x7d, 0x5a, 0xac, 0xc9, 0xa7, 0xc5, 0xfe, 0xbb, 0x05, 0x29, 0x2f, 0x45, 0x3d, 0x28, 0x72, 0x95, - 0x86, 0x33, 0xb8, 0x0e, 0x37, 0xe5, 0x6e, 0x71, 0x99, 0xd2, 0x8e, 0xe2, 0x27, 0x96, 0x28, 0xc8, - 0x83, 0x02, 0x37, 0xa8, 0xea, 0x73, 0x77, 0x67, 0x84, 0xc6, 0xb7, 0x4a, 0xb6, 0xd5, 0xfc, 0x17, - 0x16, 0x10, 0xf6, 0x13, 0x70, 0x6e, 0x44, 0x23, 0x6e, 0xa4, 0xc3, 0x20, 0xbe, 0xfd, 0x37, 0x8c, - 0x74, 0x89, 0x2f, 0x62, 0x49, 0xe3, 0xf9, 0xf9, 0x6c, 0x56, 0x3c, 0x3f, 0xc0, 0xe7, 0x68, 0x56, - 0xde, 0x5d, 0xb1, 0xda, 0xff, 0x2b, 0xa5, 0x46, 0xd5, 0xc7, 0xa3, 0x1a, 0xf0, 0x1d, 0xcd, 0x5e, - 0x5e, 0xf0, 0x33, 0xe4, 0xf9, 0x94, 0xb8, 0xfd, 0x28, 0xfe, 0x50, 0x3d, 0x15, 0x51, 0xeb, 0x38, - 0xe1, 0x40, 0x17, 0x00, 0xe4, 0xe5, 0xd9, 0x9e, 0x2e, 0xc4, 0x93, 0x89, 0x50, 0x23, 0xa1, 0x60, - 0x83, 0x8b, 0xf7, 0x22, 0x2e, 0x89, 0xd8, 0x36, 0x2f, 0x3f, 0x79, 0xdc, 0x5d, 0x96, 0xbd, 0x48, - 0x5d, 0xad, 0xe1, 0x84, 0x8a, 0x3e, 0x0c, 0x0b, 0x1d, 0x32, 0x14, 0x8c, 0x05, 0xc1, 0xb8, 0xc4, - 0x2b, 0xaa, 0x5d, 0xb9, 0x84, 0x63, 0x1a, 0xb2, 0x61, 0xde, 0x75, 0x04, 0x57, 0x51, 0x70, 0x81, - 0xb8, 0x47, 0xdb, 0x12, 0x4c, 0x8a, 0x52, 0xab, 0xbc, 0xf1, 0xee, 0xfa, 0xdc, 0x9b, 0xef, 0xae, - 0xcf, 0xbd, 0xf5, 0xee, 0xfa, 0xdc, 0x2b, 0xc7, 0xeb, 0xd6, 0x1b, 0xc7, 0xeb, 0xd6, 0x9b, 0xc7, - 0xeb, 0xd6, 0x5b, 0xc7, 0xeb, 0xd6, 0xdf, 0x8e, 0xd7, 0xad, 0x1f, 0xbd, 0xb7, 0x3e, 0xf7, 0x5c, - 0x29, 0x36, 0xed, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xda, 0xda, 0x8a, 0x68, 0x99, 0x2d, 0x00, - 0x00, + 0x15, 0x9e, 0xf6, 0xcf, 0x8c, 0xe7, 0xcd, 0xcf, 0xee, 0x56, 0x7e, 0x30, 0x13, 0x69, 0x66, 0xd4, + 0xe1, 0x27, 0xa0, 0xc4, 0x66, 0x17, 0x02, 0x21, 0x20, 0xa4, 0xb1, 0x67, 0x37, 0x3b, 0x99, 0xdd, + 0xd9, 0xa1, 0x3c, 0xc9, 0x4a, 0x21, 0x0a, 0xf4, 0xb6, 0x6b, 0xec, 0x5e, 0xdb, 0xdd, 0x9d, 0xae, + 0xb2, 0x37, 0x16, 0x04, 0x6d, 0x84, 0x40, 0xfc, 0x4a, 0x40, 0x84, 0x40, 0xe2, 0x92, 0x03, 0x5c, + 0xb8, 0x70, 0x89, 0x38, 0x70, 0x83, 0x03, 0xca, 0x31, 0x07, 0x10, 0x51, 0x88, 0x56, 0x64, 0x72, + 0x41, 0xe2, 0x80, 0xb8, 0xe6, 0x84, 0xea, 0xa7, 0xbb, 0xaa, 0xdb, 0x76, 0x66, 0x76, 0xed, 0x5d, + 0xe0, 0xe6, 0xae, 0xf7, 0xfa, 0x7d, 0xaf, 0x5f, 0xbd, 0x7a, 0x7f, 0x65, 0xd8, 0x69, 0x79, 0xac, + 0xdd, 0xbf, 0x56, 0x71, 0x83, 0x5e, 0xd5, 0x89, 0x5a, 0x41, 0x18, 0x05, 0xd7, 0xc5, 0x8f, 0xc7, + 0xdc, 0x66, 0x35, 0xec, 0xb4, 0xaa, 0x4e, 0xe8, 0xd1, 0xaa, 0x13, 0x86, 0x5d, 0xcf, 0x75, 0x98, + 0x17, 0xf8, 0xd5, 0xc1, 0x59, 0xa7, 0x1b, 0xb6, 0x9d, 0xb3, 0xd5, 0x16, 0xf1, 0x49, 0xe4, 0x30, + 0xd2, 0xac, 0x84, 0x51, 0xc0, 0x02, 0xf4, 0x79, 0x2d, 0xaa, 0x12, 0x8b, 0x12, 0x3f, 0xbe, 0xea, + 0x36, 0x2b, 0x61, 0xa7, 0x55, 0xe1, 0xa2, 0x2a, 0x86, 0xa8, 0x4a, 0x2c, 0x6a, 0xed, 0x31, 0x43, + 0x8b, 0x56, 0xd0, 0x0a, 0xaa, 0x42, 0xe2, 0xb5, 0xfe, 0xa1, 0x78, 0x12, 0x0f, 0xe2, 0x97, 0x44, + 0x5a, 0xfb, 0x4c, 0xe7, 0x09, 0x5a, 0xf1, 0x02, 0xae, 0x5b, 0xcf, 0x71, 0xdb, 0x9e, 0x4f, 0xa2, + 0xa1, 0x56, 0xb6, 0x47, 0x98, 0x53, 0x1d, 0x8c, 0xe8, 0xb7, 0x56, 0x9d, 0xf4, 0x56, 0xd4, 0xf7, + 0x99, 0xd7, 0x23, 0x23, 0x2f, 0x7c, 0xf6, 0xb8, 0x17, 0xa8, 0xdb, 0x26, 0x3d, 0x67, 0xe4, 0xbd, + 0x4f, 0x4f, 0x7a, 0xaf, 0xcf, 0xbc, 0x6e, 0xd5, 0xf3, 0x19, 0x65, 0x51, 0xf6, 0x25, 0xfb, 0x45, + 0x58, 0xd9, 0xba, 0xda, 0xd8, 0xea, 0xb3, 0x76, 0x3d, 0xf0, 0x0f, 0xbd, 0x16, 0x7a, 0x1c, 0x96, + 0xdc, 0x6e, 0x9f, 0x32, 0x12, 0xed, 0x39, 0x3d, 0x52, 0xb6, 0x36, 0xad, 0x47, 0x16, 0x6b, 0xf7, + 0xbd, 0x71, 0x6b, 0x63, 0xee, 0xe8, 0xd6, 0xc6, 0x52, 0x5d, 0x93, 0xb0, 0xc9, 0x87, 0x3e, 0x01, + 0x0b, 0x51, 0xd0, 0x25, 0x5b, 0x78, 0xaf, 0x9c, 0x13, 0xaf, 0x9c, 0x52, 0xaf, 0x2c, 0x60, 0xb9, + 0x8c, 0x63, 0xba, 0xfd, 0x37, 0x0b, 0x60, 0x2b, 0x0c, 0xf7, 0xa3, 0xe0, 0x3a, 0x71, 0x19, 0xfa, + 0x1a, 0x94, 0xb8, 0xe9, 0x9a, 0x0e, 0x73, 0x04, 0xda, 0xd2, 0xb9, 0x4f, 0x55, 0xe4, 0x97, 0x54, + 0xcc, 0x2f, 0xd1, 0x5b, 0xc9, 0xb9, 0x2b, 0x83, 0xb3, 0x95, 0x2b, 0xd7, 0xf8, 0xfb, 0x97, 0x09, + 0x73, 0x6a, 0x48, 0x81, 0x81, 0x5e, 0xc3, 0x89, 0x54, 0xd4, 0x81, 0x02, 0x0d, 0x89, 0x2b, 0x14, + 0x5b, 0x3a, 0xb7, 0x53, 0xb9, 0x63, 0x87, 0xa9, 0x68, 0xb5, 0x1b, 0x21, 0x71, 0x6b, 0xcb, 0x0a, + 0xb6, 0xc0, 0x9f, 0xb0, 0x00, 0xb1, 0xdf, 0xb6, 0x60, 0x55, 0xb3, 0x5d, 0xf2, 0x28, 0x43, 0xcf, + 0x8f, 0x7c, 0x61, 0xe5, 0x64, 0x5f, 0xc8, 0xdf, 0x16, 0xdf, 0x77, 0x5a, 0x01, 0x95, 0xe2, 0x15, + 0xe3, 0xeb, 0xae, 0x43, 0xd1, 0x63, 0xa4, 0x47, 0xcb, 0xb9, 0xcd, 0xfc, 0x23, 0x4b, 0xe7, 0xce, + 0xcf, 0xe4, 0xf3, 0x6a, 0x2b, 0x0a, 0xb1, 0xb8, 0xc3, 0x65, 0x63, 0x09, 0x61, 0xff, 0xb2, 0x68, + 0x7e, 0x1c, 0xff, 0x6a, 0x74, 0x16, 0x96, 0x68, 0xd0, 0x8f, 0x5c, 0x82, 0x49, 0x18, 0xd0, 0xb2, + 0xb5, 0x99, 0xe7, 0x9b, 0xcf, 0x7d, 0xa5, 0xa1, 0x97, 0xb1, 0xc9, 0x83, 0x7e, 0x60, 0xc1, 0x72, + 0x93, 0x50, 0xe6, 0xf9, 0x02, 0x3f, 0xd6, 0xfc, 0xcb, 0xd3, 0x69, 0x1e, 0x2f, 0x6e, 0x6b, 0xc9, + 0xb5, 0xfb, 0xd5, 0x57, 0x2c, 0x1b, 0x8b, 0x14, 0xa7, 0xc0, 0xb9, 0xc3, 0x37, 0x09, 0x75, 0x23, + 0x2f, 0xe4, 0xcf, 0xe5, 0x7c, 0xda, 0xe1, 0xb7, 0x35, 0x09, 0x9b, 0x7c, 0xa8, 0x03, 0x45, 0xee, + 0xd0, 0xb4, 0x5c, 0x10, 0xca, 0x5f, 0x98, 0x42, 0x79, 0x65, 0x4e, 0x7e, 0x50, 0xb4, 0xdd, 0xf9, + 0x13, 0xc5, 0x12, 0x03, 0xfd, 0xc8, 0x82, 0xb2, 0x3a, 0x6d, 0x98, 0x48, 0x53, 0x5e, 0x6d, 0x7b, + 0x8c, 0x74, 0x3d, 0xca, 0xca, 0x45, 0xa1, 0x40, 0xf5, 0x64, 0x2e, 0xf5, 0x54, 0x14, 0xf4, 0xc3, + 0x5d, 0xcf, 0x6f, 0xd6, 0x36, 0x15, 0x52, 0xb9, 0x3e, 0x41, 0x30, 0x9e, 0x08, 0x89, 0x5e, 0xb5, + 0x60, 0xcd, 0x77, 0x7a, 0x84, 0x86, 0x0e, 0xdf, 0x54, 0x49, 0xae, 0x75, 0x1d, 0xb7, 0x23, 0x34, + 0x9a, 0xbf, 0x33, 0x8d, 0x6c, 0xa5, 0xd1, 0xda, 0xde, 0x44, 0xd1, 0xf8, 0x03, 0x60, 0xed, 0x3f, + 0xe5, 0x61, 0xc9, 0x70, 0x84, 0x7b, 0x10, 0x59, 0xba, 0xa9, 0xc8, 0xf2, 0xf4, 0x6c, 0x1c, 0x78, + 0x52, 0x68, 0x41, 0x0c, 0xe6, 0x29, 0x73, 0x58, 0x9f, 0x0a, 0x27, 0x5d, 0x3a, 0x77, 0x69, 0x46, + 0x78, 0x42, 0x66, 0x6d, 0x55, 0x21, 0xce, 0xcb, 0x67, 0xac, 0xb0, 0xd0, 0x8b, 0xb0, 0x18, 0x84, + 0x3c, 0x67, 0xf0, 0xd3, 0x51, 0x10, 0xc0, 0xdb, 0x53, 0x00, 0x5f, 0x89, 0x65, 0xd5, 0x56, 0x8e, + 0x6e, 0x6d, 0x2c, 0x26, 0x8f, 0x58, 0xa3, 0xd8, 0x2e, 0xdc, 0x6f, 0xe8, 0x57, 0x0f, 0xfc, 0xa6, + 0x27, 0x36, 0x74, 0x13, 0x0a, 0x6c, 0x18, 0xc6, 0x49, 0x29, 0x31, 0xd1, 0xc1, 0x30, 0x24, 0x58, + 0x50, 0x78, 0x1a, 0xea, 0x11, 0x4a, 0x9d, 0x16, 0xc9, 0xa6, 0xa1, 0xcb, 0x72, 0x19, 0xc7, 0x74, + 0xfb, 0x45, 0x78, 0x70, 0x7c, 0xd4, 0x40, 0x1f, 0x83, 0x79, 0x4a, 0xa2, 0x01, 0x89, 0x14, 0x90, + 0xb6, 0x8c, 0x58, 0xc5, 0x8a, 0x8a, 0xaa, 0xb0, 0x98, 0x78, 0xa3, 0x82, 0x3b, 0xa3, 0x58, 0x17, + 0xb5, 0x0b, 0x6b, 0x1e, 0xfb, 0x1d, 0x0b, 0x4e, 0x19, 0x98, 0xf7, 0x20, 0x39, 0x74, 0xd2, 0xc9, + 0xe1, 0xc2, 0x6c, 0x3c, 0x66, 0x42, 0x76, 0xf8, 0x43, 0x1e, 0xce, 0x98, 0x7e, 0x25, 0x8e, 0xa7, + 0xa8, 0x0c, 0x48, 0x18, 0x3c, 0x83, 0x2f, 0x29, 0x73, 0xea, 0xca, 0x40, 0x2e, 0xe3, 0x98, 0xce, + 0xf7, 0x37, 0x74, 0x58, 0x5b, 0xd9, 0x32, 0xd9, 0xdf, 0x7d, 0x87, 0xb5, 0xb1, 0xa0, 0xf0, 0x60, + 0x4d, 0xfc, 0x81, 0x17, 0x05, 0x7e, 0x8f, 0xf8, 0x2c, 0x1b, 0xac, 0xcf, 0x6b, 0x12, 0x36, 0xf9, + 0xd0, 0x97, 0x60, 0x95, 0x39, 0x51, 0x8b, 0x30, 0x4c, 0x06, 0x1e, 0x8d, 0x1d, 0x79, 0xb1, 0xf6, + 0xa0, 0x7a, 0x73, 0xf5, 0x20, 0x45, 0xc5, 0x19, 0x6e, 0xf4, 0xba, 0x05, 0x0f, 0xb9, 0x41, 0x2f, + 0x0c, 0x7c, 0xe2, 0xb3, 0x7d, 0x27, 0x72, 0x7a, 0x84, 0x91, 0xe8, 0xca, 0x80, 0x44, 0x91, 0xd7, + 0x24, 0x54, 0x85, 0xe0, 0xcb, 0x53, 0x58, 0xb7, 0x3e, 0x22, 0xbd, 0xf6, 0xb0, 0x52, 0xee, 0xa1, + 0xfa, 0x64, 0x64, 0xfc, 0x41, 0x6a, 0xf1, 0xdc, 0x3c, 0x70, 0xba, 0x7d, 0x42, 0x2f, 0x78, 0x3c, + 0x53, 0xcd, 0xeb, 0xdc, 0xfc, 0xac, 0x5e, 0xc6, 0x26, 0x8f, 0xfd, 0x7a, 0x3e, 0xe5, 0xa2, 0x8d, + 0x38, 0xee, 0x88, 0xbd, 0x54, 0x0e, 0x3a, 0xab, 0xb8, 0x23, 0xc3, 0xb7, 0x3e, 0x5d, 0xb2, 0x44, + 0x50, 0x58, 0xe8, 0xbb, 0x96, 0x48, 0xcc, 0xf1, 0xa9, 0x54, 0x31, 0xf6, 0x2e, 0x14, 0x09, 0x66, + 0xae, 0x8f, 0x17, 0xb1, 0x09, 0xcd, 0x5d, 0x38, 0x94, 0x39, 0x5a, 0x79, 0x5c, 0xe2, 0xc2, 0x71, + 0xea, 0x8e, 0xe9, 0xa8, 0x0f, 0x40, 0x87, 0xbe, 0xbb, 0x1f, 0x74, 0x3d, 0x77, 0xa8, 0xc2, 0xe5, + 0x34, 0x25, 0x59, 0x23, 0x11, 0x56, 0x5b, 0xe5, 0x69, 0x48, 0x3f, 0x63, 0x03, 0xc8, 0x7e, 0x6d, + 0x3e, 0x7d, 0xf4, 0x64, 0xe8, 0xfe, 0x89, 0x05, 0xa7, 0xb9, 0x7f, 0x38, 0x91, 0x47, 0x03, 0x1f, + 0x13, 0xda, 0xef, 0x32, 0xb5, 0x87, 0xbb, 0x53, 0xfa, 0xaa, 0x29, 0xb2, 0x56, 0x56, 0xe6, 0x38, + 0x9d, 0xa5, 0xe0, 0x11, 0x78, 0xc4, 0x60, 0xa1, 0xed, 0x51, 0x16, 0x44, 0x43, 0x15, 0x93, 0xa6, + 0xa9, 0xc7, 0xb7, 0x49, 0xd8, 0x0d, 0x86, 0xfc, 0x88, 0xef, 0xf8, 0x87, 0x81, 0xde, 0x96, 0x8b, + 0x12, 0x01, 0xc7, 0x50, 0xe8, 0x15, 0x0b, 0x20, 0x8c, 0x0f, 0x08, 0xcf, 0x9f, 0x77, 0xe1, 0xbc, + 0x26, 0xa5, 0x42, 0xb2, 0x44, 0xb1, 0x01, 0x8a, 0x02, 0x98, 0x6f, 0x13, 0xa7, 0xcb, 0xda, 0xca, + 0x2d, 0x9e, 0x9a, 0x02, 0xfe, 0xa2, 0x10, 0x94, 0xcd, 0xdc, 0x72, 0x15, 0x2b, 0x18, 0xf4, 0x6d, + 0x0b, 0x56, 0x93, 0xa4, 0xca, 0x79, 0x49, 0xb9, 0x38, 0x75, 0x0b, 0x74, 0x25, 0x25, 0xb0, 0x86, + 0x78, 0xf4, 0x4c, 0xaf, 0xe1, 0x0c, 0x28, 0xfa, 0x96, 0x05, 0xe0, 0xc6, 0x49, 0x9c, 0xaa, 0xea, + 0xf0, 0xca, 0x6c, 0x0e, 0x72, 0x52, 0x1c, 0x68, 0xf3, 0x27, 0x4b, 0x14, 0x1b, 0xb0, 0xf6, 0x7b, + 0x16, 0x3c, 0x60, 0xbc, 0x78, 0xd5, 0x61, 0x6e, 0xfb, 0xfc, 0x80, 0x67, 0x87, 0xdd, 0x54, 0x59, + 0xf1, 0x39, 0xb3, 0xac, 0x78, 0xff, 0xd6, 0xc6, 0xc7, 0x27, 0xb5, 0xd5, 0x37, 0xb8, 0x84, 0x8a, + 0x10, 0x61, 0x54, 0x20, 0x2f, 0xc3, 0x92, 0xa1, 0xb3, 0x8a, 0x5a, 0xb3, 0xca, 0xbb, 0x49, 0xa8, + 0x32, 0x16, 0xb1, 0x89, 0x67, 0xff, 0x25, 0x07, 0x0b, 0xaa, 0xa0, 0x3f, 0x71, 0x1d, 0xb3, 0x09, + 0x05, 0x5e, 0xa3, 0x64, 0xd3, 0xae, 0x68, 0xf2, 0x05, 0x05, 0x85, 0x30, 0xef, 0x8a, 0xf1, 0x80, + 0xaa, 0x3c, 0x2f, 0x4e, 0x73, 0x72, 0xa4, 0x76, 0x72, 0xdc, 0xa0, 0x75, 0x92, 0xcf, 0x58, 0xe1, + 0xf0, 0x8e, 0xe7, 0x94, 0x1b, 0xf8, 0x3e, 0x71, 0xb5, 0xf3, 0x16, 0xa6, 0xae, 0xb2, 0xeb, 0x69, + 0x89, 0xb5, 0x0f, 0x29, 0xf4, 0x53, 0x19, 0x02, 0xce, 0x62, 0xdb, 0xbf, 0xcb, 0xc3, 0x4a, 0x4a, + 0x73, 0xf4, 0x28, 0x94, 0xfa, 0x94, 0x44, 0xbe, 0x9e, 0x92, 0x24, 0x85, 0xd8, 0x33, 0x6a, 0x1d, + 0x27, 0x1c, 0x9c, 0x3b, 0x74, 0x28, 0xbd, 0x11, 0x44, 0x4d, 0x65, 0xe7, 0x84, 0x7b, 0x5f, 0xad, + 0xe3, 0x84, 0x83, 0x97, 0x39, 0xd7, 0x88, 0x13, 0x91, 0xe8, 0x20, 0xe8, 0x90, 0x91, 0x9e, 0xb4, + 0xa6, 0x49, 0xd8, 0xe4, 0x13, 0x46, 0x63, 0x5d, 0x5a, 0xef, 0x7a, 0xc4, 0x67, 0x52, 0xcd, 0x19, + 0x18, 0xed, 0xe0, 0x52, 0xc3, 0x94, 0xa8, 0x8d, 0x96, 0x21, 0xe0, 0x2c, 0x36, 0x8f, 0xba, 0x2b, + 0xce, 0x0d, 0xaa, 0xa7, 0x4b, 0x2a, 0xfe, 0x4c, 0xe3, 0x3e, 0xa9, 0x69, 0x55, 0xed, 0xcc, 0xd1, + 0xad, 0x8d, 0xf4, 0x00, 0x0b, 0xa7, 0x11, 0xed, 0x3f, 0x5b, 0x10, 0x4f, 0xad, 0xee, 0x41, 0xbd, + 0xdd, 0x4a, 0xd7, 0xdb, 0xb5, 0xe9, 0xcf, 0xc9, 0x84, 0x5a, 0xfb, 0xed, 0x3c, 0x8c, 0x64, 0x5b, + 0xf4, 0x02, 0x8f, 0xb3, 0x7c, 0x8d, 0x34, 0xb7, 0xe2, 0x44, 0xff, 0xc9, 0x93, 0x7d, 0xdd, 0x81, + 0xd7, 0x23, 0x66, 0x08, 0x8d, 0xa5, 0x60, 0x43, 0x22, 0xba, 0x69, 0x69, 0x80, 0x83, 0x40, 0xc5, + 0xb6, 0xd9, 0x56, 0x83, 0x23, 0x2a, 0x1c, 0x04, 0xd8, 0xc0, 0x44, 0x4f, 0x26, 0x3d, 0x70, 0x51, + 0x1c, 0x0a, 0x3b, 0xdd, 0xb5, 0xbe, 0x9f, 0x2a, 0x42, 0x32, 0x9d, 0xec, 0x10, 0x16, 0x23, 0x35, + 0x34, 0x88, 0xb3, 0xd0, 0x34, 0x9e, 0x18, 0x0f, 0x20, 0x64, 0x28, 0x49, 0x3a, 0xbf, 0x78, 0x99, + 0x62, 0x8d, 0xc6, 0x8f, 0x7f, 0x14, 0xb7, 0x1e, 0x0b, 0xe9, 0xe3, 0x9f, 0x34, 0x1d, 0x09, 0x87, + 0xfd, 0x43, 0x0b, 0xd0, 0x68, 0x81, 0xc1, 0xfb, 0xcd, 0xa4, 0xda, 0x57, 0x21, 0x27, 0x41, 0x4d, + 0xd8, 0xb1, 0xe6, 0x39, 0x41, 0x60, 0x7f, 0x18, 0x8a, 0xa2, 0xfa, 0x57, 0x21, 0x26, 0xf1, 0x35, + 0xd1, 0x1f, 0x60, 0x49, 0xb3, 0xff, 0x68, 0x41, 0x36, 0x40, 0x8a, 0xdc, 0x22, 0xf7, 0x21, 0x9b, + 0x5b, 0xd2, 0x36, 0x3f, 0x79, 0x43, 0x8e, 0x9e, 0x87, 0x25, 0x87, 0x31, 0xd2, 0x0b, 0x99, 0x70, + 0xdf, 0xfc, 0x6d, 0xbb, 0xaf, 0x28, 0x90, 0x2f, 0x07, 0x4d, 0xef, 0xd0, 0x13, 0xae, 0x6b, 0x8a, + 0xb3, 0xff, 0x9d, 0x83, 0xd5, 0x74, 0xb9, 0x98, 0xda, 0x94, 0xdc, 0x71, 0x9b, 0x72, 0x6c, 0x0f, + 0x98, 0xff, 0xdf, 0xec, 0x01, 0x5f, 0x00, 0x68, 0x8a, 0xcf, 0x16, 0x46, 0x2d, 0xdc, 0x79, 0x4c, + 0xd8, 0x4e, 0xa4, 0x60, 0x43, 0x22, 0x5a, 0x83, 0x9c, 0xd7, 0x14, 0x87, 0x31, 0x5f, 0x03, 0xc5, + 0x9b, 0xdb, 0xd9, 0xc6, 0x39, 0xaf, 0x69, 0x53, 0x58, 0x36, 0x0b, 0xd5, 0x13, 0x3b, 0xcd, 0x17, + 0x60, 0x45, 0xfe, 0xda, 0x26, 0xcc, 0xf1, 0xba, 0x54, 0xed, 0xce, 0x03, 0x8a, 0x7d, 0xa5, 0x61, + 0x12, 0x71, 0x9a, 0xd7, 0xfe, 0x79, 0x0e, 0xe0, 0x62, 0x10, 0x74, 0x14, 0x66, 0x7c, 0x06, 0xac, + 0x89, 0x67, 0x60, 0x13, 0x0a, 0x1d, 0xcf, 0x6f, 0x66, 0x4f, 0xc9, 0xae, 0xe7, 0x37, 0xb1, 0xa0, + 0xa0, 0x73, 0x00, 0x4e, 0xe8, 0x3d, 0x4b, 0x22, 0xaa, 0x27, 0xc4, 0x89, 0x5d, 0xb6, 0xf6, 0x77, + 0x14, 0x05, 0x1b, 0x5c, 0xe8, 0x51, 0x55, 0x54, 0xca, 0x41, 0x43, 0x39, 0x53, 0x54, 0x96, 0xb8, + 0x86, 0x46, 0xd5, 0xf8, 0x44, 0x26, 0xac, 0x6d, 0x8e, 0x84, 0x35, 0x5d, 0x64, 0xef, 0xb7, 0x1d, + 0x4a, 0xc6, 0x1d, 0xb0, 0xf9, 0x63, 0x26, 0x5e, 0x0d, 0x28, 0x3d, 0x7d, 0xf5, 0x40, 0x96, 0x0a, + 0x36, 0xe4, 0x3d, 0x47, 0x46, 0x91, 0xbc, 0x76, 0xfb, 0x1d, 0x4a, 0xfb, 0x62, 0x87, 0x39, 0x11, + 0x3d, 0x0c, 0x79, 0xf2, 0x52, 0x28, 0xec, 0x92, 0xd7, 0x91, 0xe6, 0xfc, 0x4b, 0xa1, 0x17, 0x11, + 0xca, 0x99, 0xc8, 0x4b, 0xa1, 0xfd, 0x4f, 0x0b, 0xf4, 0x10, 0x0f, 0x1d, 0x42, 0x81, 0x77, 0xa5, + 0x2a, 0xf7, 0x5c, 0x9c, 0xb2, 0xf1, 0xd5, 0xb3, 0xc2, 0x92, 0x18, 0x85, 0x0e, 0x7d, 0x17, 0x0b, + 0xf9, 0x68, 0x00, 0xa5, 0x28, 0xe8, 0x76, 0xaf, 0x39, 0x6e, 0x67, 0x06, 0x69, 0x08, 0x2b, 0x51, + 0x1a, 0x6f, 0x59, 0x04, 0x01, 0xb5, 0x8c, 0x13, 0x2c, 0xfb, 0xb7, 0x45, 0xc8, 0x74, 0x3b, 0xa8, + 0x6f, 0xce, 0x47, 0xad, 0x19, 0xce, 0x47, 0x13, 0x8b, 0x8f, 0x9b, 0x91, 0xa2, 0xc7, 0xa1, 0x18, + 0x72, 0x47, 0x50, 0x6e, 0xbb, 0x11, 0x47, 0x6e, 0xe1, 0x1d, 0x63, 0xfc, 0x45, 0x72, 0x9b, 0xee, + 0x92, 0x3f, 0x26, 0x1e, 0x7f, 0x53, 0x8e, 0x32, 0xd4, 0xd8, 0x40, 0x46, 0x8e, 0xbd, 0x59, 0xed, + 0xa8, 0x9a, 0x1c, 0x24, 0x33, 0x0d, 0x35, 0x2f, 0x30, 0x10, 0xd1, 0xf7, 0x2d, 0x58, 0x8d, 0x0d, + 0xaf, 0x94, 0x28, 0xde, 0x15, 0x25, 0x44, 0x0f, 0x8b, 0x53, 0x48, 0x38, 0x83, 0x8c, 0xbe, 0x02, + 0x8b, 0x94, 0x39, 0x91, 0x4c, 0x4d, 0xf3, 0xb7, 0x1d, 0x45, 0x93, 0xbd, 0x6c, 0xc4, 0x42, 0xb0, + 0x96, 0x87, 0x9e, 0x03, 0x38, 0xf4, 0x7c, 0x8f, 0xb6, 0x85, 0xf4, 0x85, 0x3b, 0x4b, 0x7c, 0x17, + 0x12, 0x09, 0xd8, 0x90, 0x66, 0xff, 0xd4, 0x02, 0x34, 0x26, 0x2d, 0x44, 0x71, 0xa1, 0x6a, 0xdd, + 0x8d, 0xb4, 0x35, 0xb6, 0x66, 0x7d, 0xb2, 0xf4, 0x8b, 0xd7, 0x36, 0xe6, 0x6e, 0xbe, 0xb3, 0x39, + 0x67, 0x7f, 0x27, 0x07, 0x4b, 0xc6, 0xad, 0xd7, 0x09, 0x82, 0x74, 0xe6, 0x96, 0x2e, 0x77, 0xc2, + 0x5b, 0xba, 0x47, 0xa0, 0x14, 0x06, 0x5d, 0xcf, 0xf5, 0x54, 0x82, 0x5e, 0x94, 0x27, 0x7b, 0x5f, + 0xad, 0xe1, 0x84, 0x8a, 0x18, 0x2c, 0x5e, 0xbf, 0xc1, 0x44, 0x70, 0x8c, 0xef, 0xf4, 0xea, 0x53, + 0x18, 0x25, 0x0e, 0xb4, 0x7a, 0xe7, 0xe3, 0x15, 0x8a, 0x35, 0x90, 0xfd, 0xd7, 0x1c, 0x80, 0xb8, + 0x14, 0xf5, 0xc4, 0x98, 0x6a, 0x13, 0x0a, 0x11, 0x09, 0x83, 0xac, 0x1d, 0x38, 0x07, 0x16, 0x94, + 0x54, 0xd7, 0x99, 0xbb, 0xad, 0xae, 0x33, 0x7f, 0x6c, 0xd7, 0xc9, 0xd3, 0x2e, 0x6d, 0xef, 0x47, + 0xde, 0xc0, 0x61, 0x64, 0x97, 0x0c, 0x55, 0xee, 0xd2, 0x69, 0xb7, 0x71, 0x51, 0x13, 0x71, 0x9a, + 0x77, 0x6c, 0xc3, 0x5e, 0xfc, 0x2f, 0x36, 0xec, 0x6f, 0x5b, 0xb0, 0xaa, 0x2d, 0xfb, 0xff, 0x75, + 0x0f, 0xaf, 0xf5, 0x9e, 0xd0, 0xfd, 0xfd, 0xcb, 0x82, 0x53, 0x71, 0x9f, 0xa1, 0xea, 0x9e, 0x99, + 0x14, 0x3a, 0xa9, 0x1b, 0xad, 0xfc, 0xf1, 0x37, 0x5a, 0x66, 0x3a, 0x29, 0x1c, 0x93, 0x4e, 0xbe, + 0x98, 0x29, 0x71, 0x3e, 0x32, 0x52, 0xe2, 0xa0, 0xa4, 0xa3, 0x1a, 0xfa, 0x6e, 0xba, 0x24, 0xb4, + 0x7f, 0x63, 0xc1, 0x72, 0x4c, 0xde, 0x0b, 0x9a, 0xa2, 0x73, 0xa1, 0xc2, 0xc9, 0xac, 0x74, 0xe7, + 0x22, 0xdd, 0x41, 0xd2, 0x50, 0x1f, 0x4a, 0x6e, 0xdb, 0xeb, 0x36, 0x23, 0xe2, 0xab, 0x6d, 0x79, + 0x6a, 0x06, 0x0d, 0x1f, 0xc7, 0xd7, 0xae, 0x50, 0x57, 0x00, 0x38, 0x81, 0xb2, 0x7f, 0x9f, 0x87, + 0x95, 0x54, 0x77, 0xc8, 0xc3, 0x97, 0xbc, 0x52, 0x6a, 0x18, 0x3a, 0x27, 0xe1, 0xeb, 0x40, 0x93, + 0xb0, 0xc9, 0xc7, 0xf7, 0xa3, 0xeb, 0x0d, 0xa4, 0x8c, 0xec, 0x0d, 0xe3, 0xa5, 0x98, 0x80, 0x35, + 0x8f, 0xd1, 0x1e, 0xe7, 0x6f, 0xbb, 0x3d, 0x7e, 0xd5, 0x02, 0x24, 0x3e, 0x81, 0x4b, 0x4e, 0xba, + 0x58, 0x15, 0x0b, 0x67, 0x66, 0xb7, 0x35, 0xa5, 0x11, 0xaa, 0x8f, 0x40, 0xe1, 0x31, 0xf0, 0xc6, + 0xd4, 0xbc, 0x78, 0x4f, 0xa6, 0xe6, 0xf6, 0x37, 0xe0, 0xcc, 0x48, 0x3d, 0xa8, 0xba, 0x1c, 0x6b, + 0x5c, 0x97, 0xc3, 0x3d, 0x31, 0x8c, 0xfa, 0xbe, 0xdc, 0xa0, 0x92, 0xf6, 0xc4, 0x7d, 0xbe, 0x88, + 0x25, 0x8d, 0xb7, 0x3e, 0xcd, 0x68, 0x88, 0xfb, 0xb2, 0x7d, 0x28, 0x69, 0xf4, 0x6d, 0xb1, 0x8a, + 0x15, 0xd5, 0xfe, 0x75, 0x01, 0x56, 0x52, 0x35, 0x4a, 0xaa, 0x4b, 0xb5, 0x8e, 0xed, 0x52, 0x67, + 0xa9, 0x0c, 0x7a, 0x19, 0x96, 0xa9, 0x38, 0x8a, 0x91, 0xc3, 0x48, 0x6b, 0x38, 0x83, 0x7b, 0x8b, + 0x86, 0x21, 0xae, 0x76, 0xfa, 0xe8, 0xd6, 0xc6, 0xb2, 0xb9, 0x82, 0x53, 0x70, 0xe8, 0x67, 0x16, + 0xa0, 0x70, 0xdc, 0x65, 0xab, 0x35, 0x65, 0xc5, 0x32, 0x5a, 0x0f, 0xd5, 0x1e, 0xe4, 0x2e, 0x39, + 0xa6, 0xb7, 0x1e, 0xa3, 0x00, 0x7a, 0xc5, 0x1a, 0x1d, 0x24, 0xed, 0xcf, 0xb0, 0x26, 0x95, 0x93, + 0xb0, 0x0f, 0x1c, 0x28, 0xd9, 0x37, 0x2d, 0x78, 0x60, 0xec, 0x7b, 0xdc, 0x03, 0x5a, 0x51, 0xd0, + 0x0f, 0xb3, 0x81, 0x51, 0xfc, 0xcf, 0x06, 0x4b, 0xda, 0x09, 0x52, 0x41, 0x9c, 0x4e, 0xf2, 0x93, + 0xd2, 0x89, 0xfd, 0xab, 0x1c, 0xdc, 0x37, 0xa6, 0x9c, 0x46, 0x37, 0x4c, 0xeb, 0xc8, 0xf2, 0xf2, + 0xe9, 0x19, 0x44, 0x0f, 0x95, 0xe7, 0xe4, 0xdf, 0x46, 0x8e, 0x1d, 0xb2, 0x1d, 0x3f, 0xcf, 0x39, + 0x84, 0x62, 0x3b, 0x08, 0x3a, 0xf1, 0xe0, 0x66, 0x9a, 0x7c, 0xad, 0xc7, 0x0d, 0xb5, 0x45, 0x6e, + 0x6a, 0xfe, 0x4c, 0xb1, 0x14, 0x6f, 0x7f, 0xcf, 0x02, 0xe3, 0xd6, 0x16, 0x7d, 0x1d, 0x16, 0x9d, + 0x3e, 0x0b, 0x7a, 0x0e, 0x23, 0x4d, 0x55, 0x85, 0xec, 0xcd, 0xe4, 0x7e, 0x78, 0x2b, 0x96, 0x2a, + 0x2d, 0x94, 0x3c, 0x62, 0x8d, 0x67, 0x3f, 0x29, 0x77, 0x2c, 0xf3, 0x82, 0x0e, 0x1a, 0xd6, 0xe4, + 0xa0, 0x61, 0xff, 0xc3, 0x82, 0xd4, 0x61, 0x45, 0x3d, 0x28, 0x72, 0x95, 0x86, 0x33, 0xf8, 0x57, + 0x80, 0x29, 0x77, 0x8b, 0xcb, 0x94, 0x76, 0x14, 0x3f, 0xb1, 0x44, 0x41, 0x1e, 0x14, 0xb8, 0x41, + 0x55, 0xbb, 0xbf, 0x3b, 0x23, 0x34, 0xbe, 0x55, 0x72, 0xba, 0xc0, 0x7f, 0x61, 0x01, 0x61, 0x3f, + 0x01, 0x67, 0x46, 0x34, 0xe2, 0x46, 0x3a, 0x0c, 0xe2, 0x3f, 0x41, 0x18, 0x46, 0xba, 0xc0, 0x17, + 0xb1, 0xa4, 0xf1, 0x32, 0xe5, 0x74, 0x56, 0x3c, 0x8f, 0x63, 0x67, 0x68, 0x56, 0xde, 0x5d, 0xb1, + 0xda, 0x87, 0x95, 0x52, 0xa3, 0xea, 0xe3, 0x51, 0x0d, 0xf8, 0x8e, 0x66, 0xef, 0x70, 0xf8, 0x19, + 0xf2, 0x7c, 0x4a, 0xdc, 0x7e, 0x14, 0x7f, 0xa8, 0x1e, 0x0e, 0xa9, 0x75, 0x9c, 0x70, 0xa0, 0x73, + 0x00, 0xf2, 0x0e, 0x71, 0x4f, 0xf7, 0x23, 0xc9, 0x60, 0xac, 0x91, 0x50, 0xb0, 0xc1, 0xc5, 0x5b, + 0x32, 0x97, 0x44, 0x6c, 0x9b, 0x57, 0xe1, 0x3c, 0xb8, 0x2c, 0xcb, 0x96, 0xac, 0xae, 0xd6, 0x70, + 0x42, 0x45, 0x1f, 0x85, 0x85, 0x0e, 0x19, 0x0a, 0xc6, 0x82, 0x60, 0x5c, 0xe2, 0x85, 0xe5, 0xae, + 0x5c, 0xc2, 0x31, 0x0d, 0xd9, 0x30, 0xef, 0x3a, 0x82, 0xab, 0x28, 0xb8, 0x40, 0x5c, 0x27, 0x6e, + 0x09, 0x26, 0x45, 0xa9, 0x55, 0xde, 0x78, 0x77, 0x7d, 0xee, 0xcd, 0x77, 0xd7, 0xe7, 0xde, 0x7a, + 0x77, 0x7d, 0xee, 0xe6, 0xd1, 0xba, 0xf5, 0xc6, 0xd1, 0xba, 0xf5, 0xe6, 0xd1, 0xba, 0xf5, 0xd6, + 0xd1, 0xba, 0xf5, 0xf7, 0xa3, 0x75, 0xeb, 0xc7, 0xef, 0xad, 0xcf, 0x3d, 0x57, 0x8a, 0x4d, 0xfb, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xff, 0xa7, 0x75, 0xa0, 0x2e, 0x00, 0x00, } diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index 9a2d01d346190..0b2748432509a 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -413,6 +413,18 @@ message SyncOperation { // If nil, uses the parameter override set in application. // If empty, sets no parameter overrides optional ParameterOverrides parameterOverrides = 5; + + // Resources describes which resources to sync + repeated SyncOperationResource resources = 6; +} + +// SyncOperationResource contains resources to sync. +message SyncOperationResource { + optional string group = 1; + + optional string kind = 2; + + optional string name = 3; } // SyncOperationResult represent result of sync operation diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index 5991512f38c0c..7bf2afdbdb261 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -17,6 +17,22 @@ import ( "github.com/argoproj/argo-cd/util/git" ) +// 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"` +} + +// HasIdentity determines whether a sync operation is identified by a manifest. +func (r SyncOperationResource) HasIdentity(u *unstructured.Unstructured) bool { + gvk := u.GroupVersionKind() + if u.GetName() == r.Name && gvk.Kind == r.Kind && gvk.Group == r.Group { + return true + } + return false +} + // SyncOperation contains sync operation details. type SyncOperation struct { // Revision is the git revision in which to sync the application to. @@ -32,6 +48,8 @@ type SyncOperation struct { // If nil, uses the parameter override set in application. // If empty, sets no parameter overrides ParameterOverrides ParameterOverrides `json:"parameterOverrides" protobuf:"bytes,5,opt,name=parameterOverrides"` + // Resources describes which resources to sync + Resources []SyncOperationResource `json:"resources,omitempty" protobuf:"bytes,6,opt,name=resources"` } // ParameterOverrides masks the value so protobuf can generate diff --git a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go index f155e0c01b6dd..a72f11c4ae48c 100644 --- a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go @@ -790,6 +790,11 @@ func (in *SyncOperation) DeepCopyInto(out *SyncOperation) { *out = make(ParameterOverrides, len(*in)) copy(*out, *in) } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]SyncOperationResource, len(*in)) + copy(*out, *in) + } return } @@ -803,6 +808,22 @@ func (in *SyncOperation) DeepCopy() *SyncOperation { 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 diff --git a/reposerver/repository/repository.pb.go b/reposerver/repository/repository.pb.go index d4c5397d2301c..66d2bcffd6bb2 100644 --- a/reposerver/repository/repository.pb.go +++ b/reposerver/repository/repository.pb.go @@ -46,7 +46,7 @@ func (m *ManifestRequest) Reset() { *m = ManifestRequest{} } func (m *ManifestRequest) String() string { return proto.CompactTextString(m) } func (*ManifestRequest) ProtoMessage() {} func (*ManifestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{0} + return fileDescriptor_repository_49651600e73b0b40, []int{0} } func (m *ManifestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -146,7 +146,7 @@ func (m *ManifestResponse) Reset() { *m = ManifestResponse{} } func (m *ManifestResponse) String() string { return proto.CompactTextString(m) } func (*ManifestResponse) ProtoMessage() {} func (*ManifestResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{1} + return fileDescriptor_repository_49651600e73b0b40, []int{1} } func (m *ManifestResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -224,7 +224,7 @@ func (m *ListDirRequest) Reset() { *m = ListDirRequest{} } func (m *ListDirRequest) String() string { return proto.CompactTextString(m) } func (*ListDirRequest) ProtoMessage() {} func (*ListDirRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{2} + return fileDescriptor_repository_49651600e73b0b40, []int{2} } func (m *ListDirRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -286,7 +286,7 @@ func (m *FileList) Reset() { *m = FileList{} } func (m *FileList) String() string { return proto.CompactTextString(m) } func (*FileList) ProtoMessage() {} func (*FileList) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{3} + return fileDescriptor_repository_49651600e73b0b40, []int{3} } func (m *FileList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -336,7 +336,7 @@ func (m *GetFileRequest) Reset() { *m = GetFileRequest{} } func (m *GetFileRequest) String() string { return proto.CompactTextString(m) } func (*GetFileRequest) ProtoMessage() {} func (*GetFileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{4} + return fileDescriptor_repository_49651600e73b0b40, []int{4} } func (m *GetFileRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -398,7 +398,7 @@ func (m *GetFileResponse) Reset() { *m = GetFileResponse{} } func (m *GetFileResponse) String() string { return proto.CompactTextString(m) } func (*GetFileResponse) ProtoMessage() {} func (*GetFileResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_e1170ea85be6baa9, []int{5} + return fileDescriptor_repository_49651600e73b0b40, []int{5} } func (m *GetFileResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2099,10 +2099,10 @@ var ( ) func init() { - proto.RegisterFile("reposerver/repository/repository.proto", fileDescriptor_repository_e1170ea85be6baa9) + proto.RegisterFile("reposerver/repository/repository.proto", fileDescriptor_repository_49651600e73b0b40) } -var fileDescriptor_repository_e1170ea85be6baa9 = []byte{ +var fileDescriptor_repository_49651600e73b0b40 = []byte{ // 584 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xdd, 0x8a, 0xd3, 0x40, 0x14, 0xde, 0x6c, 0xbb, 0xdd, 0x76, 0x2a, 0xee, 0x3a, 0x14, 0x09, 0x69, 0x29, 0x21, 0xa0, 0xf4, diff --git a/server/account/account.pb.go b/server/account/account.pb.go index ab3e7b80d9bb9..af01a1b26365b 100644 --- a/server/account/account.pb.go +++ b/server/account/account.pb.go @@ -37,7 +37,7 @@ func (m *UpdatePasswordRequest) Reset() { *m = UpdatePasswordRequest{} } func (m *UpdatePasswordRequest) String() string { return proto.CompactTextString(m) } func (*UpdatePasswordRequest) ProtoMessage() {} func (*UpdatePasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_account_c227670d8e34bf5f, []int{0} + return fileDescriptor_account_d27ff2bbd0f6944b, []int{0} } func (m *UpdatePasswordRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -90,7 +90,7 @@ func (m *UpdatePasswordResponse) Reset() { *m = UpdatePasswordResponse{} func (m *UpdatePasswordResponse) String() string { return proto.CompactTextString(m) } func (*UpdatePasswordResponse) ProtoMessage() {} func (*UpdatePasswordResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_account_c227670d8e34bf5f, []int{1} + return fileDescriptor_account_d27ff2bbd0f6944b, []int{1} } func (m *UpdatePasswordResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -566,10 +566,10 @@ var ( ) func init() { - proto.RegisterFile("server/account/account.proto", fileDescriptor_account_c227670d8e34bf5f) + proto.RegisterFile("server/account/account.proto", fileDescriptor_account_d27ff2bbd0f6944b) } -var fileDescriptor_account_c227670d8e34bf5f = []byte{ +var fileDescriptor_account_d27ff2bbd0f6944b = []byte{ // 268 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x29, 0x4e, 0x2d, 0x2a, 0x4b, 0x2d, 0xd2, 0x4f, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x81, 0xd1, 0x7a, 0x05, 0x45, 0xf9, diff --git a/server/application/application.go b/server/application/application.go index fe555de0db960..fc1b0a9841581 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -748,6 +748,7 @@ func (s *Server) Sync(ctx context.Context, syncReq *ApplicationSyncRequest) (*ap DryRun: syncReq.DryRun, SyncStrategy: syncReq.Strategy, ParameterOverrides: parameterOverrides, + Resources: syncReq.Resources, }, } a, err = argo.SetAppOperation(ctx, appIf, s.auditLogger, *syncReq.Name, &op) diff --git a/server/application/application.pb.go b/server/application/application.pb.go index 1a7a2915c55aa..c309eb4fe7645 100644 --- a/server/application/application.pb.go +++ b/server/application/application.pb.go @@ -51,7 +51,7 @@ func (m *ApplicationQuery) Reset() { *m = ApplicationQuery{} } func (m *ApplicationQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationQuery) ProtoMessage() {} func (*ApplicationQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{0} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{0} } func (m *ApplicationQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -115,7 +115,7 @@ func (m *ApplicationResourceEventsQuery) Reset() { *m = ApplicationResou func (m *ApplicationResourceEventsQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationResourceEventsQuery) ProtoMessage() {} func (*ApplicationResourceEventsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{1} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{1} } func (m *ApplicationResourceEventsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -178,7 +178,7 @@ func (m *ApplicationManifestQuery) Reset() { *m = ApplicationManifestQue func (m *ApplicationManifestQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationManifestQuery) ProtoMessage() {} func (*ApplicationManifestQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{2} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{2} } func (m *ApplicationManifestQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -231,7 +231,7 @@ func (m *ApplicationResponse) Reset() { *m = ApplicationResponse{} } func (m *ApplicationResponse) String() string { return proto.CompactTextString(m) } func (*ApplicationResponse) ProtoMessage() {} func (*ApplicationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{3} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{3} } func (m *ApplicationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -272,7 +272,7 @@ func (m *ApplicationCreateRequest) Reset() { *m = ApplicationCreateReque func (m *ApplicationCreateRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationCreateRequest) ProtoMessage() {} func (*ApplicationCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{4} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{4} } func (m *ApplicationCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -326,7 +326,7 @@ func (m *ApplicationUpdateRequest) Reset() { *m = ApplicationUpdateReque func (m *ApplicationUpdateRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationUpdateRequest) ProtoMessage() {} func (*ApplicationUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{5} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{5} } func (m *ApplicationUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -374,7 +374,7 @@ func (m *ApplicationDeleteRequest) Reset() { *m = ApplicationDeleteReque func (m *ApplicationDeleteRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationDeleteRequest) ProtoMessage() {} func (*ApplicationDeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{6} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{6} } func (m *ApplicationDeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -419,22 +419,23 @@ func (m *ApplicationDeleteRequest) GetCascade() bool { // ApplicationSyncRequest is a request to apply the config state to live state type ApplicationSyncRequest struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Revision string `protobuf:"bytes,2,opt,name=revision" json:"revision"` - DryRun bool `protobuf:"varint,3,opt,name=dryRun" json:"dryRun"` - Prune bool `protobuf:"varint,4,opt,name=prune" json:"prune"` - Strategy *v1alpha1.SyncStrategy `protobuf:"bytes,5,opt,name=strategy" json:"strategy,omitempty"` - Parameter *ParameterOverrides `protobuf:"bytes,6,opt,name=parameter" json:"parameter,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Revision string `protobuf:"bytes,2,opt,name=revision" json:"revision"` + DryRun bool `protobuf:"varint,3,opt,name=dryRun" json:"dryRun"` + Prune bool `protobuf:"varint,4,opt,name=prune" json:"prune"` + Strategy *v1alpha1.SyncStrategy `protobuf:"bytes,5,opt,name=strategy" json:"strategy,omitempty"` + Parameter *ParameterOverrides `protobuf:"bytes,6,opt,name=parameter" json:"parameter,omitempty"` + Resources []v1alpha1.SyncOperationResource `protobuf:"bytes,7,rep,name=resources" json:"resources"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ApplicationSyncRequest) Reset() { *m = ApplicationSyncRequest{} } func (m *ApplicationSyncRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationSyncRequest) ProtoMessage() {} func (*ApplicationSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{7} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{7} } func (m *ApplicationSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -505,6 +506,13 @@ func (m *ApplicationSyncRequest) GetParameter() *ParameterOverrides { return nil } +func (m *ApplicationSyncRequest) GetResources() []v1alpha1.SyncOperationResource { + if m != nil { + return m.Resources + } + return nil +} + // ParameterOverrides is a wrapper on a list of parameters. If omitted, the application's overrides // in the spec will be used. If set, will use the supplied list of overrides type ParameterOverrides struct { @@ -518,7 +526,7 @@ func (m *ParameterOverrides) Reset() { *m = ParameterOverrides{} } func (m *ParameterOverrides) String() string { return proto.CompactTextString(m) } func (*ParameterOverrides) ProtoMessage() {} func (*ParameterOverrides) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{8} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{8} } func (m *ParameterOverrides) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -567,7 +575,7 @@ func (m *Parameter) Reset() { *m = Parameter{} } func (m *Parameter) String() string { return proto.CompactTextString(m) } func (*Parameter) ProtoMessage() {} func (*Parameter) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{9} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{9} } func (m *Parameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -630,7 +638,7 @@ func (m *ApplicationUpdateSpecRequest) Reset() { *m = ApplicationUpdateS func (m *ApplicationUpdateSpecRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationUpdateSpecRequest) ProtoMessage() {} func (*ApplicationUpdateSpecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{10} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{10} } func (m *ApplicationUpdateSpecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -687,7 +695,7 @@ func (m *ApplicationRollbackRequest) Reset() { *m = ApplicationRollbackR func (m *ApplicationRollbackRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationRollbackRequest) ProtoMessage() {} func (*ApplicationRollbackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{11} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{11} } func (m *ApplicationRollbackRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -758,7 +766,7 @@ func (m *ApplicationDeleteResourceRequest) Reset() { *m = ApplicationDel func (m *ApplicationDeleteResourceRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationDeleteResourceRequest) ProtoMessage() {} func (*ApplicationDeleteResourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{12} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{12} } func (m *ApplicationDeleteResourceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -832,7 +840,7 @@ func (m *ApplicationPodLogsQuery) Reset() { *m = ApplicationPodLogsQuery func (m *ApplicationPodLogsQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationPodLogsQuery) ProtoMessage() {} func (*ApplicationPodLogsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{13} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{13} } func (m *ApplicationPodLogsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -922,7 +930,7 @@ func (m *LogEntry) Reset() { *m = LogEntry{} } func (m *LogEntry) String() string { return proto.CompactTextString(m) } func (*LogEntry) ProtoMessage() {} func (*LogEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{14} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{14} } func (m *LogEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -976,7 +984,7 @@ func (m *OperationTerminateRequest) Reset() { *m = OperationTerminateReq func (m *OperationTerminateRequest) String() string { return proto.CompactTextString(m) } func (*OperationTerminateRequest) ProtoMessage() {} func (*OperationTerminateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{15} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{15} } func (m *OperationTerminateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1022,7 +1030,7 @@ func (m *OperationTerminateResponse) Reset() { *m = OperationTerminateRe func (m *OperationTerminateResponse) String() string { return proto.CompactTextString(m) } func (*OperationTerminateResponse) ProtoMessage() {} func (*OperationTerminateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_application_7fcd602c2bf997a7, []int{16} + return fileDescriptor_application_a0bd93d5f02bc9d6, []int{16} } func (m *OperationTerminateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1970,6 +1978,18 @@ func (m *ApplicationSyncRequest) MarshalTo(dAtA []byte) (int, error) { } i += n4 } + if len(m.Resources) > 0 { + for _, msg := range m.Resources { + dAtA[i] = 0x3a + i++ + i = encodeVarintApplication(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -2448,6 +2468,12 @@ func (m *ApplicationSyncRequest) Size() (n int) { l = m.Parameter.Size() n += 1 + l + sovApplication(uint64(l)) } + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovApplication(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3555,6 +3581,37 @@ func (m *ApplicationSyncRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, v1alpha1.SyncOperationResource{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApplication(dAtA[iNdEx:]) @@ -4877,97 +4934,99 @@ var ( ) func init() { - proto.RegisterFile("server/application/application.proto", fileDescriptor_application_7fcd602c2bf997a7) -} - -var fileDescriptor_application_7fcd602c2bf997a7 = []byte{ - // 1407 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0x66, 0x76, 0x37, 0x9b, 0xec, 0x4b, 0x85, 0x60, 0x68, 0x83, 0x31, 0x69, 0xb2, 0x9a, 0xa6, - 0xe9, 0x36, 0xa5, 0x76, 0x13, 0x55, 0x02, 0x55, 0x20, 0xd4, 0xd0, 0xd2, 0xa6, 0x0a, 0x6d, 0x70, - 0x5a, 0x90, 0xb8, 0xa0, 0xa9, 0x3d, 0xdd, 0x35, 0xd9, 0xf5, 0x98, 0xb1, 0x77, 0xd1, 0x52, 0xf5, - 0x40, 0x41, 0x9c, 0x90, 0x2a, 0x04, 0x07, 0x6e, 0x40, 0xcf, 0x15, 0x17, 0xee, 0x9c, 0x7b, 0x44, - 0xe2, 0x5e, 0xa1, 0x88, 0x3f, 0x04, 0xcd, 0xd8, 0x5e, 0x8f, 0x9b, 0x5d, 0xa7, 0xc0, 0x72, 0x1b, - 0xbf, 0x79, 0xf3, 0xde, 0xf7, 0x7e, 0xcc, 0xbc, 0x4f, 0x86, 0x95, 0x88, 0x89, 0x01, 0x13, 0x36, - 0x0d, 0xc3, 0xae, 0xef, 0xd2, 0xd8, 0xe7, 0x81, 0xbe, 0xb6, 0x42, 0xc1, 0x63, 0x8e, 0xe7, 0x35, - 0x91, 0x79, 0xb4, 0xcd, 0xdb, 0x5c, 0xc9, 0x6d, 0xb9, 0x4a, 0x54, 0xcc, 0xc5, 0x36, 0xe7, 0xed, - 0x2e, 0xb3, 0x69, 0xe8, 0xdb, 0x34, 0x08, 0x78, 0xac, 0x94, 0xa3, 0x74, 0x97, 0xec, 0xbd, 0x11, - 0x59, 0x3e, 0x57, 0xbb, 0x2e, 0x17, 0xcc, 0x1e, 0xac, 0xdb, 0x6d, 0x16, 0x30, 0x41, 0x63, 0xe6, - 0xa5, 0x3a, 0xe7, 0x73, 0x9d, 0x1e, 0x75, 0x3b, 0x7e, 0xc0, 0xc4, 0xd0, 0x0e, 0xf7, 0xda, 0x52, - 0x10, 0xd9, 0x3d, 0x16, 0xd3, 0x71, 0xa7, 0xb6, 0xda, 0x7e, 0xdc, 0xe9, 0xdf, 0xb6, 0x5c, 0xde, - 0xb3, 0xa9, 0x50, 0xc0, 0x3e, 0x51, 0x8b, 0xb3, 0xae, 0x97, 0x9f, 0xd6, 0xc3, 0x1b, 0xac, 0xd3, - 0x6e, 0xd8, 0xa1, 0x07, 0x4d, 0x6d, 0x96, 0x99, 0x12, 0x2c, 0xe4, 0x69, 0xae, 0xd4, 0xd2, 0x8f, - 0xb9, 0x18, 0x6a, 0xcb, 0xc4, 0x06, 0x09, 0xe0, 0x85, 0x8b, 0xb9, 0xaf, 0xf7, 0xfb, 0x4c, 0x0c, - 0x31, 0x86, 0x5a, 0x40, 0x7b, 0xcc, 0x40, 0x4d, 0xd4, 0x6a, 0x38, 0x6a, 0x8d, 0x97, 0x60, 0x56, - 0xb0, 0x3b, 0x82, 0x45, 0x1d, 0xa3, 0xd2, 0x44, 0xad, 0xb9, 0xcd, 0xda, 0xe3, 0x27, 0xcb, 0xcf, - 0x39, 0x99, 0x10, 0xaf, 0xc2, 0xac, 0x74, 0xcf, 0xdc, 0xd8, 0xa8, 0x36, 0xab, 0xad, 0xc6, 0xe6, - 0x91, 0xfd, 0x27, 0xcb, 0x73, 0x3b, 0x89, 0x28, 0x72, 0xb2, 0x4d, 0xf2, 0x35, 0x82, 0x25, 0xcd, - 0xa1, 0xc3, 0x22, 0xde, 0x17, 0x2e, 0xbb, 0x3c, 0x60, 0x41, 0x1c, 0x3d, 0xed, 0xbe, 0x32, 0x72, - 0xdf, 0x82, 0x23, 0x22, 0x55, 0xbd, 0x2e, 0xf7, 0x2a, 0x72, 0x2f, 0xc5, 0x50, 0xd8, 0xc1, 0xab, - 0x30, 0x9f, 0x7d, 0xdf, 0xda, 0xba, 0x64, 0x54, 0x35, 0x45, 0x7d, 0x83, 0xec, 0x80, 0xa1, 0xe1, - 0x78, 0x8f, 0x06, 0xfe, 0x1d, 0x16, 0xc5, 0x93, 0x11, 0x34, 0x61, 0x4e, 0xb0, 0x81, 0x1f, 0xf9, - 0x3c, 0x50, 0x19, 0xc8, 0x8c, 0x8e, 0xa4, 0xe4, 0x18, 0xbc, 0x54, 0x8c, 0x2c, 0xe4, 0x41, 0xc4, - 0xc8, 0x43, 0x54, 0xf0, 0xf4, 0x8e, 0x60, 0x34, 0x66, 0x0e, 0xfb, 0xb4, 0xcf, 0xa2, 0x18, 0x07, - 0xa0, 0xb7, 0xaa, 0x72, 0x38, 0xbf, 0xf1, 0xae, 0x95, 0x17, 0xd6, 0xca, 0x0a, 0xab, 0x16, 0x1f, - 0xbb, 0x9e, 0x15, 0xee, 0xb5, 0x2d, 0xd9, 0x23, 0x96, 0xde, 0xf6, 0x59, 0x8f, 0x58, 0x9a, 0xa7, - 0x2c, 0x6a, 0x4d, 0x0f, 0x2f, 0x40, 0xbd, 0x1f, 0x46, 0x4c, 0xc4, 0x49, 0x15, 0x9d, 0xf4, 0x8b, - 0x7c, 0x55, 0x04, 0x79, 0x2b, 0xf4, 0x34, 0x90, 0x9d, 0xff, 0x11, 0x64, 0x01, 0x1e, 0xb9, 0x5a, - 0x40, 0x71, 0x89, 0x75, 0x59, 0x8e, 0x62, 0x5c, 0x51, 0x0c, 0x98, 0x75, 0x69, 0xe4, 0x52, 0x8f, - 0xa5, 0xf1, 0x64, 0x9f, 0xe4, 0x51, 0x05, 0x16, 0x34, 0x53, 0xbb, 0xc3, 0xc0, 0x2d, 0x33, 0x74, - 0x68, 0x75, 0xf1, 0x22, 0xd4, 0x3d, 0x31, 0x74, 0xfa, 0x81, 0x51, 0xd5, 0xfa, 0x3f, 0x95, 0x61, - 0x13, 0x66, 0x42, 0xd1, 0x0f, 0x98, 0x51, 0xd3, 0x36, 0x13, 0x11, 0x76, 0x61, 0x2e, 0x8a, 0xe5, - 0xbd, 0x6d, 0x0f, 0x8d, 0x99, 0x26, 0x6a, 0xcd, 0x6f, 0x5c, 0xf9, 0x0f, 0xb9, 0x93, 0x91, 0xec, - 0xa6, 0xe6, 0x9c, 0x91, 0x61, 0xfc, 0x16, 0x34, 0x42, 0x2a, 0x68, 0x8f, 0xc5, 0x4c, 0x18, 0x75, - 0xe5, 0x65, 0xb9, 0x60, 0x60, 0x27, 0xdb, 0xbd, 0x31, 0x60, 0x42, 0xf8, 0x1e, 0x8b, 0x9c, 0xfc, - 0x04, 0xb9, 0x06, 0xf8, 0xa0, 0x02, 0x3e, 0x0f, 0x0d, 0x9e, 0x7d, 0x18, 0xa8, 0x59, 0x6d, 0xcd, - 0x6f, 0x2c, 0x8c, 0x37, 0xea, 0xe4, 0x8a, 0x84, 0x41, 0x63, 0x24, 0xc7, 0x86, 0x9e, 0xec, 0x34, - 0x2f, 0x49, 0xca, 0x4d, 0x98, 0x19, 0xd0, 0x6e, 0x9f, 0x15, 0xf2, 0x9d, 0x88, 0x30, 0x81, 0x86, - 0xcb, 0x7b, 0x21, 0x0f, 0x58, 0x10, 0xab, 0x7c, 0x67, 0xfb, 0xb9, 0x98, 0xfc, 0x80, 0x60, 0xf1, - 0x40, 0xcb, 0xee, 0x86, 0xac, 0xb4, 0xce, 0x1e, 0xd4, 0xa2, 0x90, 0xb9, 0xea, 0xfd, 0x98, 0xdf, - 0xb8, 0x36, 0x9d, 0x1e, 0x96, 0x4e, 0xb3, 0xd0, 0xa4, 0x75, 0xf9, 0xc8, 0x99, 0x7a, 0x8f, 0xf3, - 0x6e, 0xf7, 0x36, 0x75, 0xf7, 0xca, 0x80, 0x99, 0x50, 0xf1, 0x3d, 0x05, 0xab, 0xba, 0x09, 0xd2, - 0xd4, 0xfe, 0x93, 0xe5, 0xca, 0xd6, 0x25, 0xa7, 0xe2, 0x7b, 0xff, 0xbe, 0xf5, 0xc8, 0x2f, 0x08, - 0x9a, 0x63, 0x2e, 0x54, 0xf2, 0x0a, 0x96, 0xc1, 0x79, 0xf6, 0xf7, 0x76, 0x03, 0x80, 0x86, 0xfe, - 0x07, 0x4c, 0xa8, 0xbb, 0x93, 0x3c, 0xb7, 0x38, 0x0d, 0x00, 0x2e, 0xee, 0x6c, 0xa5, 0x3b, 0x8e, - 0xa6, 0x25, 0x9b, 0x62, 0xcf, 0x0f, 0x3c, 0xa3, 0xa6, 0x37, 0x85, 0x94, 0x90, 0x9f, 0x2b, 0xf0, - 0xb2, 0x06, 0x78, 0x87, 0x7b, 0xdb, 0xbc, 0x5d, 0x32, 0x17, 0x0c, 0x98, 0x0d, 0xb9, 0x97, 0x43, - 0x74, 0xb2, 0xcf, 0xa4, 0x85, 0x82, 0x98, 0xca, 0xb1, 0x5c, 0x98, 0x02, 0xb9, 0x58, 0x46, 0x19, - 0xf9, 0x81, 0xcb, 0x76, 0x99, 0xcb, 0x03, 0x2f, 0x52, 0x78, 0xaa, 0x59, 0x94, 0xfa, 0x0e, 0xbe, - 0x0a, 0x0d, 0xf5, 0x7d, 0xd3, 0xef, 0xb1, 0xf4, 0x12, 0xaf, 0x59, 0xc9, 0xfc, 0xb7, 0xf4, 0xf9, - 0x9f, 0x37, 0x8d, 0x9c, 0xff, 0xd6, 0x60, 0xdd, 0x92, 0x27, 0x9c, 0xfc, 0xb0, 0xc4, 0x15, 0x53, - 0xbf, 0xbb, 0xed, 0x07, 0x2c, 0x32, 0xea, 0x9a, 0xc3, 0x5c, 0x2c, 0x0b, 0x7e, 0x87, 0x77, 0xbb, - 0xfc, 0x33, 0x63, 0xb6, 0x59, 0xc9, 0x0b, 0x9e, 0xc8, 0xc8, 0xe7, 0x30, 0xb7, 0xcd, 0xdb, 0x97, - 0x83, 0x58, 0x0c, 0xe5, 0x58, 0x96, 0xe1, 0xc8, 0x6b, 0xa2, 0xdf, 0xb0, 0x4c, 0x88, 0xaf, 0x43, - 0x23, 0xf6, 0x7b, 0x6c, 0x37, 0xa6, 0xbd, 0x30, 0x6d, 0xfa, 0x7f, 0x80, 0x7b, 0x84, 0x2c, 0x33, - 0x41, 0x6c, 0x78, 0xe5, 0x46, 0x28, 0x49, 0x88, 0xcf, 0x83, 0x9b, 0x4c, 0xf4, 0xfc, 0x80, 0x96, - 0xbe, 0xd0, 0x64, 0x11, 0xcc, 0x71, 0x07, 0x92, 0xd9, 0xb8, 0xf1, 0xe5, 0x8b, 0x80, 0xf5, 0x8b, - 0xc4, 0xc4, 0xc0, 0x77, 0x19, 0x7e, 0x80, 0xa0, 0xb6, 0xed, 0x47, 0x31, 0x3e, 0x5e, 0xb8, 0x7b, - 0x4f, 0x13, 0x15, 0x73, 0x4a, 0xf7, 0x57, 0xba, 0x22, 0x8b, 0xf7, 0xff, 0xf8, 0xeb, 0xbb, 0xca, - 0x02, 0x3e, 0xaa, 0x38, 0xdf, 0x60, 0x5d, 0xa7, 0x60, 0x11, 0xfe, 0x06, 0x01, 0x96, 0x6a, 0x45, - 0xbe, 0x82, 0xcf, 0x4c, 0xc2, 0x37, 0x86, 0xd7, 0x98, 0xc7, 0xb5, 0xc4, 0x5b, 0x92, 0x54, 0xca, - 0x34, 0x2b, 0x05, 0x05, 0x60, 0x4d, 0x01, 0x58, 0xc1, 0x64, 0x1c, 0x00, 0xfb, 0xae, 0xcc, 0xe6, - 0x3d, 0x9b, 0x25, 0x7e, 0x7f, 0x44, 0x30, 0xf3, 0x21, 0x8d, 0xdd, 0xce, 0x61, 0x19, 0xda, 0x99, - 0x4e, 0x86, 0x94, 0x2f, 0x05, 0x95, 0x9c, 0x50, 0x30, 0x8f, 0xe3, 0x57, 0x33, 0x98, 0x51, 0x2c, - 0x18, 0xed, 0x15, 0xd0, 0x9e, 0x43, 0xf8, 0x21, 0x82, 0x7a, 0x42, 0x75, 0xf0, 0xc9, 0x49, 0x10, - 0x0b, 0x54, 0xc8, 0x9c, 0x12, 0xa1, 0x20, 0xa7, 0x15, 0xc0, 0x13, 0x64, 0x6c, 0x21, 0x2f, 0x14, - 0xd8, 0xd0, 0xb7, 0x08, 0xaa, 0x57, 0xd8, 0xa1, 0x6d, 0x36, 0x2d, 0x64, 0x07, 0x52, 0x37, 0xa6, - 0xc2, 0xf8, 0x3e, 0x82, 0x23, 0x57, 0x58, 0x9c, 0x11, 0xd2, 0x68, 0x72, 0xfa, 0x0a, 0x9c, 0xd5, - 0x5c, 0xb4, 0x34, 0x6e, 0x9f, 0x6d, 0x8d, 0x48, 0xe8, 0x59, 0xe5, 0xfa, 0x14, 0x3e, 0x59, 0xd6, - 0x5c, 0xbd, 0x91, 0xcf, 0xdf, 0x10, 0xd4, 0x93, 0x81, 0x3a, 0xd9, 0x7d, 0x81, 0x23, 0x4e, 0x2d, - 0x47, 0x97, 0x15, 0xd0, 0xb7, 0xcd, 0x73, 0xe3, 0x81, 0xea, 0xe7, 0xe5, 0x4b, 0xe5, 0xd1, 0x98, - 0x5a, 0x0a, 0x7d, 0xb1, 0xb2, 0xbf, 0x22, 0x80, 0x9c, 0x11, 0xe0, 0xd3, 0xe5, 0x41, 0x68, 0xac, - 0xc1, 0x9c, 0x22, 0x27, 0x20, 0x96, 0x0a, 0xa6, 0x65, 0x36, 0xcb, 0xb2, 0x2e, 0x19, 0xc3, 0x05, - 0xc5, 0x1b, 0xf0, 0x00, 0xea, 0xc9, 0x88, 0x9e, 0x9c, 0xf5, 0x02, 0x27, 0x36, 0x9b, 0x25, 0xef, - 0x4f, 0x52, 0xf8, 0xb4, 0xe7, 0xd6, 0x4a, 0x7b, 0xee, 0x27, 0x04, 0x35, 0xc9, 0x2b, 0xf1, 0x89, - 0x49, 0xf6, 0x34, 0xfe, 0x3c, 0xb5, 0x52, 0x9f, 0x51, 0xd0, 0x4e, 0x92, 0xf2, 0xec, 0x0c, 0x03, - 0xf7, 0x02, 0x5a, 0xc3, 0x8f, 0x10, 0xcc, 0x65, 0x3c, 0x0a, 0x9f, 0x9a, 0x18, 0x76, 0x91, 0x69, - 0x4d, 0x0d, 0xaa, 0xad, 0xa0, 0x9e, 0x26, 0x2b, 0x65, 0x50, 0x45, 0xea, 0x5c, 0xc2, 0xfd, 0x1e, - 0x01, 0x1e, 0x8d, 0xbb, 0xd1, 0x00, 0xc4, 0xab, 0x05, 0x57, 0x13, 0x27, 0xa9, 0x79, 0xea, 0x50, - 0xbd, 0xe2, 0xbd, 0x5e, 0x2b, 0xbd, 0xd7, 0x7c, 0xe4, 0xff, 0x01, 0x82, 0xe7, 0x8b, 0x24, 0x10, - 0x9f, 0x3d, 0xac, 0xd3, 0x0a, 0x64, 0xf1, 0x19, 0x3a, 0xee, 0x35, 0x05, 0x69, 0x75, 0xad, 0x3c, - 0x57, 0x99, 0xfb, 0x2f, 0x10, 0xcc, 0xa6, 0x2c, 0x0f, 0xaf, 0x4c, 0xb2, 0xad, 0xd3, 0x40, 0xf3, - 0x58, 0x41, 0x2b, 0x63, 0x42, 0xe4, 0x75, 0xe5, 0x76, 0x1d, 0xdb, 0x65, 0x6e, 0x43, 0xee, 0x45, - 0xf6, 0xdd, 0x94, 0x22, 0xde, 0xb3, 0xbb, 0xbc, 0x1d, 0x9d, 0x43, 0x9b, 0x6f, 0x3e, 0xde, 0x5f, - 0x42, 0xbf, 0xef, 0x2f, 0xa1, 0x3f, 0xf7, 0x97, 0xd0, 0x47, 0x56, 0xd9, 0x5f, 0x95, 0x83, 0x7f, - 0x9f, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xe7, 0xbe, 0x98, 0x92, 0x12, 0x00, 0x00, + proto.RegisterFile("server/application/application.proto", fileDescriptor_application_a0bd93d5f02bc9d6) +} + +var fileDescriptor_application_a0bd93d5f02bc9d6 = []byte{ + // 1427 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0x66, 0xec, 0xc4, 0x8e, 0x5f, 0x2a, 0x04, 0x43, 0x1b, 0x96, 0x25, 0x4d, 0xac, 0x6d, 0x9a, + 0xba, 0x29, 0xdd, 0x6d, 0xa2, 0x4a, 0xa0, 0x0a, 0x84, 0x1a, 0x5a, 0xda, 0x54, 0xa1, 0x35, 0x9b, + 0x16, 0x24, 0x2e, 0x68, 0xba, 0x3b, 0x75, 0x96, 0xd8, 0x3b, 0xcb, 0xec, 0xd8, 0xc8, 0x54, 0x3d, + 0x50, 0x10, 0x27, 0xa4, 0x0a, 0xc1, 0x81, 0x1b, 0xd0, 0x33, 0xe2, 0xc2, 0x9d, 0x73, 0x8f, 0x48, + 0xdc, 0x2b, 0x14, 0xf1, 0x87, 0xa0, 0x99, 0xdd, 0xf5, 0xce, 0x36, 0xf6, 0xa6, 0x50, 0x73, 0x9b, + 0x7d, 0xf3, 0xe6, 0xbd, 0xef, 0xfd, 0x9a, 0xf9, 0x6c, 0x58, 0x89, 0x29, 0x1f, 0x50, 0xee, 0x90, + 0x28, 0xea, 0x06, 0x1e, 0x11, 0x01, 0x0b, 0xf5, 0xb5, 0x1d, 0x71, 0x26, 0x18, 0x9e, 0xd7, 0x44, + 0xe6, 0xd1, 0x0e, 0xeb, 0x30, 0x25, 0x77, 0xe4, 0x2a, 0x51, 0x31, 0x17, 0x3b, 0x8c, 0x75, 0xba, + 0xd4, 0x21, 0x51, 0xe0, 0x90, 0x30, 0x64, 0x42, 0x29, 0xc7, 0xe9, 0xae, 0xb5, 0xf7, 0x46, 0x6c, + 0x07, 0x4c, 0xed, 0x7a, 0x8c, 0x53, 0x67, 0xb0, 0xee, 0x74, 0x68, 0x48, 0x39, 0x11, 0xd4, 0x4f, + 0x75, 0xce, 0xe7, 0x3a, 0x3d, 0xe2, 0xed, 0x06, 0x21, 0xe5, 0x43, 0x27, 0xda, 0xeb, 0x48, 0x41, + 0xec, 0xf4, 0xa8, 0x20, 0xe3, 0x4e, 0x6d, 0x75, 0x02, 0xb1, 0xdb, 0xbf, 0x6d, 0x7b, 0xac, 0xe7, + 0x10, 0xae, 0x80, 0x7d, 0xa2, 0x16, 0x67, 0x3d, 0x3f, 0x3f, 0xad, 0x87, 0x37, 0x58, 0x27, 0xdd, + 0x68, 0x97, 0x1c, 0x34, 0xb5, 0x59, 0x66, 0x8a, 0xd3, 0x88, 0xa5, 0xb9, 0x52, 0xcb, 0x40, 0x30, + 0x3e, 0xd4, 0x96, 0x89, 0x0d, 0x2b, 0x84, 0x17, 0x2e, 0xe6, 0xbe, 0xde, 0xef, 0x53, 0x3e, 0xc4, + 0x18, 0x66, 0x42, 0xd2, 0xa3, 0x06, 0x6a, 0xa2, 0x56, 0xc3, 0x55, 0x6b, 0xbc, 0x04, 0x75, 0x4e, + 0xef, 0x70, 0x1a, 0xef, 0x1a, 0x95, 0x26, 0x6a, 0xcd, 0x6d, 0xce, 0x3c, 0x7a, 0xbc, 0xfc, 0x9c, + 0x9b, 0x09, 0xf1, 0x2a, 0xd4, 0xa5, 0x7b, 0xea, 0x09, 0xa3, 0xda, 0xac, 0xb6, 0x1a, 0x9b, 0x47, + 0xf6, 0x1f, 0x2f, 0xcf, 0xb5, 0x13, 0x51, 0xec, 0x66, 0x9b, 0xd6, 0xd7, 0x08, 0x96, 0x34, 0x87, + 0x2e, 0x8d, 0x59, 0x9f, 0x7b, 0xf4, 0xf2, 0x80, 0x86, 0x22, 0x7e, 0xd2, 0x7d, 0x65, 0xe4, 0xbe, + 0x05, 0x47, 0x78, 0xaa, 0x7a, 0x5d, 0xee, 0x55, 0xe4, 0x5e, 0x8a, 0xa1, 0xb0, 0x83, 0x57, 0x61, + 0x3e, 0xfb, 0xbe, 0xb5, 0x75, 0xc9, 0xa8, 0x6a, 0x8a, 0xfa, 0x86, 0xd5, 0x06, 0x43, 0xc3, 0xf1, + 0x1e, 0x09, 0x83, 0x3b, 0x34, 0x16, 0x93, 0x11, 0x34, 0x61, 0x8e, 0xd3, 0x41, 0x10, 0x07, 0x2c, + 0x54, 0x19, 0xc8, 0x8c, 0x8e, 0xa4, 0xd6, 0x31, 0x78, 0xa9, 0x18, 0x59, 0xc4, 0xc2, 0x98, 0x5a, + 0x0f, 0x51, 0xc1, 0xd3, 0x3b, 0x9c, 0x12, 0x41, 0x5d, 0xfa, 0x69, 0x9f, 0xc6, 0x02, 0x87, 0xa0, + 0xb7, 0xaa, 0x72, 0x38, 0xbf, 0xf1, 0xae, 0x9d, 0x17, 0xd6, 0xce, 0x0a, 0xab, 0x16, 0x1f, 0x7b, + 0xbe, 0x1d, 0xed, 0x75, 0x6c, 0xd9, 0x23, 0xb6, 0xde, 0xf6, 0x59, 0x8f, 0xd8, 0x9a, 0xa7, 0x2c, + 0x6a, 0x4d, 0x0f, 0x2f, 0x40, 0xad, 0x1f, 0xc5, 0x94, 0x8b, 0xa4, 0x8a, 0x6e, 0xfa, 0x65, 0x7d, + 0x55, 0x04, 0x79, 0x2b, 0xf2, 0x35, 0x90, 0xbb, 0xff, 0x23, 0xc8, 0x02, 0x3c, 0xeb, 0x6a, 0x01, + 0xc5, 0x25, 0xda, 0xa5, 0x39, 0x8a, 0x71, 0x45, 0x31, 0xa0, 0xee, 0x91, 0xd8, 0x23, 0x3e, 0x4d, + 0xe3, 0xc9, 0x3e, 0xad, 0x87, 0x55, 0x58, 0xd0, 0x4c, 0xed, 0x0c, 0x43, 0xaf, 0xcc, 0xd0, 0xa1, + 0xd5, 0xc5, 0x8b, 0x50, 0xf3, 0xf9, 0xd0, 0xed, 0x87, 0x46, 0x55, 0xeb, 0xff, 0x54, 0x86, 0x4d, + 0x98, 0x8d, 0x78, 0x3f, 0xa4, 0xc6, 0x8c, 0xb6, 0x99, 0x88, 0xb0, 0x07, 0x73, 0xb1, 0x90, 0x73, + 0xdb, 0x19, 0x1a, 0xb3, 0x4d, 0xd4, 0x9a, 0xdf, 0xb8, 0xf2, 0x0c, 0xb9, 0x93, 0x91, 0xec, 0xa4, + 0xe6, 0xdc, 0x91, 0x61, 0xfc, 0x16, 0x34, 0x22, 0xc2, 0x49, 0x8f, 0x0a, 0xca, 0x8d, 0x9a, 0xf2, + 0xb2, 0x5c, 0x30, 0xd0, 0xce, 0x76, 0x6f, 0x0c, 0x28, 0xe7, 0x81, 0x4f, 0x63, 0x37, 0x3f, 0x81, + 0x05, 0x34, 0xb2, 0xe1, 0x88, 0x8d, 0x7a, 0xb3, 0xda, 0x9a, 0xdf, 0x68, 0x3f, 0x23, 0xc8, 0x1b, + 0x91, 0xbc, 0xac, 0xb4, 0x19, 0x4f, 0xb3, 0x92, 0x3b, 0xb2, 0xae, 0x01, 0x3e, 0x08, 0x0b, 0x9f, + 0x87, 0x06, 0xcb, 0x3e, 0x0c, 0xa4, 0xb0, 0x2c, 0x8c, 0x0f, 0xc5, 0xcd, 0x15, 0x2d, 0x0a, 0x8d, + 0x91, 0x1c, 0x1b, 0x7a, 0x89, 0x53, 0xbf, 0x49, 0xa1, 0x4d, 0x98, 0x1d, 0x90, 0x6e, 0x9f, 0x16, + 0xaa, 0x9c, 0x88, 0xb0, 0x05, 0x0d, 0x8f, 0xf5, 0x22, 0x16, 0xd2, 0x50, 0xa8, 0x2a, 0x67, 0xfb, + 0xb9, 0xd8, 0xfa, 0x01, 0xc1, 0xe2, 0x81, 0x41, 0xd9, 0x89, 0x68, 0x69, 0x77, 0xf9, 0x30, 0x13, + 0x47, 0xd4, 0x53, 0xb7, 0xd6, 0xfc, 0xc6, 0xb5, 0xe9, 0x4c, 0x8e, 0x74, 0x9a, 0x85, 0x26, 0xad, + 0xcb, 0xab, 0xd5, 0xd4, 0x27, 0x8b, 0x75, 0xbb, 0xb7, 0x89, 0xb7, 0x57, 0x06, 0xcc, 0x84, 0x4a, + 0xe0, 0x2b, 0x58, 0xd5, 0x4d, 0x90, 0xa6, 0xf6, 0x1f, 0x2f, 0x57, 0xb6, 0x2e, 0xb9, 0x95, 0xc0, + 0xff, 0xef, 0x0d, 0x6f, 0xfd, 0x8a, 0xa0, 0x39, 0x66, 0x8c, 0x93, 0xaa, 0x97, 0xc1, 0x79, 0xfa, + 0x5b, 0x7e, 0x03, 0x80, 0x44, 0xc1, 0x07, 0x94, 0xab, 0x89, 0x4d, 0x2e, 0x79, 0x9c, 0x06, 0x00, + 0x17, 0xdb, 0x5b, 0xe9, 0x8e, 0xab, 0x69, 0xc9, 0xa6, 0xd8, 0x0b, 0x42, 0xdf, 0x98, 0xd1, 0x9b, + 0x42, 0x4a, 0xac, 0x9f, 0x2b, 0xf0, 0xb2, 0x06, 0xb8, 0xcd, 0xfc, 0x6d, 0xd6, 0x29, 0x79, 0x8d, + 0x0c, 0xa8, 0x47, 0xcc, 0xcf, 0x21, 0xba, 0xd9, 0x67, 0xd2, 0x42, 0xa1, 0x20, 0x92, 0x0c, 0x14, + 0xde, 0x9e, 0x5c, 0x2c, 0xa3, 0x8c, 0x83, 0xd0, 0xa3, 0x3b, 0xd4, 0x63, 0xa1, 0x1f, 0x2b, 0x3c, + 0xd5, 0x2c, 0x4a, 0x7d, 0x07, 0x5f, 0x85, 0x86, 0xfa, 0xbe, 0x19, 0xf4, 0x68, 0x7a, 0x75, 0xac, + 0xd9, 0x09, 0xeb, 0xb0, 0x75, 0xd6, 0x91, 0x37, 0x8d, 0x64, 0x1d, 0xf6, 0x60, 0xdd, 0x96, 0x27, + 0xdc, 0xfc, 0xb0, 0xc4, 0x25, 0x48, 0xd0, 0xdd, 0x0e, 0x42, 0x1a, 0x1b, 0x35, 0xcd, 0x61, 0x2e, + 0x96, 0x05, 0xbf, 0xc3, 0xba, 0x5d, 0xf6, 0x99, 0x51, 0x6f, 0x56, 0xf2, 0x82, 0x27, 0x32, 0xeb, + 0x73, 0x98, 0xdb, 0x66, 0x9d, 0xcb, 0xa1, 0xe0, 0x43, 0x49, 0x06, 0x64, 0x38, 0x72, 0x4c, 0xf4, + 0x09, 0xcb, 0x84, 0xf8, 0x3a, 0x34, 0x44, 0xd0, 0xa3, 0x3b, 0x82, 0xf4, 0xa2, 0xb4, 0xe9, 0xff, + 0x05, 0xee, 0x11, 0xb2, 0xcc, 0x84, 0xe5, 0xc0, 0x2b, 0xa3, 0xdb, 0xe4, 0x26, 0xe5, 0xbd, 0x20, + 0x24, 0xa5, 0xef, 0x82, 0xb5, 0x08, 0xe6, 0xb8, 0x03, 0xc9, 0x8b, 0xbc, 0xf1, 0xe5, 0x8b, 0x80, + 0xf5, 0x41, 0xa2, 0x7c, 0x10, 0x78, 0x14, 0x3f, 0x40, 0x30, 0xb3, 0x1d, 0xc4, 0x02, 0x1f, 0x2f, + 0xcc, 0xde, 0x93, 0xf4, 0xc8, 0x9c, 0xd2, 0xfc, 0x4a, 0x57, 0xd6, 0xe2, 0xfd, 0x3f, 0xff, 0xfe, + 0xae, 0xb2, 0x80, 0x8f, 0x2a, 0xa6, 0x39, 0x58, 0xd7, 0x89, 0x5f, 0x8c, 0xbf, 0x41, 0x80, 0xa5, + 0x5a, 0x91, 0x25, 0xe1, 0x33, 0x93, 0xf0, 0x8d, 0x61, 0x53, 0xe6, 0x71, 0x2d, 0xf1, 0xb6, 0xa4, + 0xb2, 0x32, 0xcd, 0x4a, 0x41, 0x01, 0x58, 0x53, 0x00, 0x56, 0xb0, 0x35, 0x0e, 0x80, 0x73, 0x57, + 0x66, 0xf3, 0x9e, 0x43, 0x13, 0xbf, 0x3f, 0x22, 0x98, 0xfd, 0x90, 0x08, 0x6f, 0xf7, 0xb0, 0x0c, + 0xb5, 0xa7, 0x93, 0x21, 0xe5, 0x4b, 0x41, 0xb5, 0x4e, 0x28, 0x98, 0xc7, 0xf1, 0xab, 0x19, 0xcc, + 0x58, 0x70, 0x4a, 0x7a, 0x05, 0xb4, 0xe7, 0x10, 0x7e, 0x88, 0xa0, 0x96, 0x10, 0x2c, 0x7c, 0x72, + 0x12, 0xc4, 0x02, 0x01, 0x33, 0xa7, 0x44, 0x63, 0xac, 0xd3, 0x0a, 0xe0, 0x09, 0x6b, 0x6c, 0x21, + 0x2f, 0x14, 0x38, 0xd8, 0xb7, 0x08, 0xaa, 0x57, 0xe8, 0xa1, 0x6d, 0x36, 0x2d, 0x64, 0x07, 0x52, + 0x37, 0xa6, 0xc2, 0xf8, 0x3e, 0x82, 0x23, 0x57, 0xa8, 0xc8, 0x68, 0x70, 0x3c, 0x39, 0x7d, 0x05, + 0xa6, 0x6c, 0x2e, 0xda, 0xda, 0x2f, 0x8a, 0x6c, 0x6b, 0x44, 0x7d, 0xcf, 0x2a, 0xd7, 0xa7, 0xf0, + 0xc9, 0xb2, 0xe6, 0xea, 0x8d, 0x7c, 0xfe, 0x8e, 0xa0, 0x96, 0x3c, 0xa8, 0x93, 0xdd, 0x17, 0x98, + 0xe9, 0xd4, 0x72, 0x74, 0x59, 0x01, 0x7d, 0xdb, 0x3c, 0x37, 0x1e, 0xa8, 0x7e, 0x5e, 0xde, 0x54, + 0x3e, 0x11, 0xc4, 0x56, 0xe8, 0x8b, 0x95, 0xfd, 0x0d, 0x01, 0xe4, 0x8c, 0x00, 0x9f, 0x2e, 0x0f, + 0x42, 0x63, 0x0d, 0xe6, 0x14, 0x39, 0x81, 0x65, 0xab, 0x60, 0x5a, 0x66, 0xb3, 0x2c, 0xeb, 0x92, + 0x31, 0x5c, 0x50, 0xbc, 0x01, 0x0f, 0xa0, 0x96, 0x3c, 0xd1, 0x93, 0xb3, 0x5e, 0x60, 0xe2, 0x66, + 0xb3, 0xe4, 0xfe, 0x49, 0x0a, 0x9f, 0xf6, 0xdc, 0x5a, 0x69, 0xcf, 0xfd, 0x84, 0x60, 0x46, 0x12, + 0x45, 0x7c, 0x62, 0x92, 0x3d, 0x8d, 0xb5, 0x4f, 0xad, 0xd4, 0x67, 0x14, 0xb4, 0x93, 0x56, 0x79, + 0x76, 0x86, 0xa1, 0x77, 0x01, 0xad, 0xe1, 0x5f, 0x10, 0xcc, 0x65, 0x3c, 0x0a, 0x9f, 0x9a, 0x18, + 0x76, 0x91, 0x69, 0x4d, 0x0d, 0xaa, 0xa3, 0xa0, 0x9e, 0xb6, 0x56, 0xca, 0xa0, 0xf2, 0xd4, 0xb9, + 0x84, 0xfb, 0x3d, 0x02, 0x3c, 0x7a, 0xee, 0x46, 0x0f, 0x20, 0x5e, 0x2d, 0xb8, 0x9a, 0xf8, 0x92, + 0x9a, 0xa7, 0x0e, 0xd5, 0x2b, 0xce, 0xf5, 0x5a, 0xe9, 0x5c, 0xb3, 0x91, 0xff, 0x07, 0x08, 0x9e, + 0x2f, 0x92, 0x40, 0x7c, 0xf6, 0xb0, 0x4e, 0x2b, 0x90, 0xc5, 0xa7, 0xe8, 0xb8, 0xd7, 0x14, 0xa4, + 0xd5, 0xb5, 0xf2, 0x5c, 0x65, 0xee, 0xbf, 0x40, 0x50, 0x4f, 0x59, 0x1e, 0x5e, 0x99, 0x64, 0x5b, + 0xa7, 0x81, 0xe6, 0xb1, 0x82, 0x56, 0xc6, 0x84, 0xac, 0xd7, 0x95, 0xdb, 0x75, 0xec, 0x94, 0xb9, + 0x8d, 0x98, 0x1f, 0x3b, 0x77, 0x53, 0x8a, 0x78, 0xcf, 0xe9, 0xb2, 0x4e, 0x7c, 0x0e, 0x6d, 0xbe, + 0xf9, 0x68, 0x7f, 0x09, 0xfd, 0xb1, 0xbf, 0x84, 0xfe, 0xda, 0x5f, 0x42, 0x1f, 0xd9, 0x65, 0xff, + 0xe5, 0x1c, 0xfc, 0xcf, 0xeb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x08, 0x8a, 0xbf, 0x08, + 0x13, 0x00, 0x00, } diff --git a/server/application/application.proto b/server/application/application.proto index 64b88535bc612..7bf7524ed0a91 100644 --- a/server/application/application.proto +++ b/server/application/application.proto @@ -58,6 +58,7 @@ message ApplicationSyncRequest { optional bool prune = 4 [(gogoproto.nullable) = false]; optional github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncStrategy strategy = 5; optional ParameterOverrides parameter = 6; + repeated github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncOperationResource resources = 7 [(gogoproto.nullable) = false]; } // ParameterOverrides is a wrapper on a list of parameters. If omitted, the application's overrides diff --git a/server/cluster/cluster.pb.go b/server/cluster/cluster.pb.go index fa4c2ba9ebf42..3b955688baba4 100644 --- a/server/cluster/cluster.pb.go +++ b/server/cluster/cluster.pb.go @@ -45,7 +45,7 @@ func (m *ClusterQuery) Reset() { *m = ClusterQuery{} } func (m *ClusterQuery) String() string { return proto.CompactTextString(m) } func (*ClusterQuery) ProtoMessage() {} func (*ClusterQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_bf8d7367dfc95a3e, []int{0} + return fileDescriptor_cluster_0875510a34378ea0, []int{0} } func (m *ClusterQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -91,7 +91,7 @@ func (m *ClusterResponse) Reset() { *m = ClusterResponse{} } func (m *ClusterResponse) String() string { return proto.CompactTextString(m) } func (*ClusterResponse) ProtoMessage() {} func (*ClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_bf8d7367dfc95a3e, []int{1} + return fileDescriptor_cluster_0875510a34378ea0, []int{1} } func (m *ClusterResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -132,7 +132,7 @@ func (m *ClusterCreateRequest) Reset() { *m = ClusterCreateRequest{} } func (m *ClusterCreateRequest) String() string { return proto.CompactTextString(m) } func (*ClusterCreateRequest) ProtoMessage() {} func (*ClusterCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_bf8d7367dfc95a3e, []int{2} + return fileDescriptor_cluster_0875510a34378ea0, []int{2} } func (m *ClusterCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -189,7 +189,7 @@ func (m *ClusterCreateFromKubeConfigRequest) Reset() { *m = ClusterCreat func (m *ClusterCreateFromKubeConfigRequest) String() string { return proto.CompactTextString(m) } func (*ClusterCreateFromKubeConfigRequest) ProtoMessage() {} func (*ClusterCreateFromKubeConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_bf8d7367dfc95a3e, []int{3} + return fileDescriptor_cluster_0875510a34378ea0, []int{3} } func (m *ClusterCreateFromKubeConfigRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -257,7 +257,7 @@ func (m *ClusterUpdateRequest) Reset() { *m = ClusterUpdateRequest{} } func (m *ClusterUpdateRequest) String() string { return proto.CompactTextString(m) } func (*ClusterUpdateRequest) ProtoMessage() {} func (*ClusterUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_bf8d7367dfc95a3e, []int{4} + return fileDescriptor_cluster_0875510a34378ea0, []int{4} } func (m *ClusterUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1393,10 +1393,10 @@ var ( ) func init() { - proto.RegisterFile("server/cluster/cluster.proto", fileDescriptor_cluster_bf8d7367dfc95a3e) + proto.RegisterFile("server/cluster/cluster.proto", fileDescriptor_cluster_0875510a34378ea0) } -var fileDescriptor_cluster_bf8d7367dfc95a3e = []byte{ +var fileDescriptor_cluster_0875510a34378ea0 = []byte{ // 564 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0xcd, 0x6e, 0x13, 0x31, 0x10, 0xc7, 0xe5, 0xb6, 0xda, 0x12, 0x83, 0xf8, 0xb0, 0x0a, 0x5a, 0xd2, 0x10, 0xa5, 0x3e, 0x54, diff --git a/server/project/project.pb.go b/server/project/project.pb.go index cb59249682e04..492ce08be4a2c 100644 --- a/server/project/project.pb.go +++ b/server/project/project.pb.go @@ -46,7 +46,7 @@ func (m *ProjectCreateRequest) Reset() { *m = ProjectCreateRequest{} } func (m *ProjectCreateRequest) String() string { return proto.CompactTextString(m) } func (*ProjectCreateRequest) ProtoMessage() {} func (*ProjectCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{0} + return fileDescriptor_project_082822b5d17b8c4e, []int{0} } func (m *ProjectCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -96,7 +96,7 @@ func (m *ProjectTokenDeleteRequest) Reset() { *m = ProjectTokenDeleteReq func (m *ProjectTokenDeleteRequest) String() string { return proto.CompactTextString(m) } func (*ProjectTokenDeleteRequest) ProtoMessage() {} func (*ProjectTokenDeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{1} + return fileDescriptor_project_082822b5d17b8c4e, []int{1} } func (m *ProjectTokenDeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -162,7 +162,7 @@ func (m *ProjectTokenCreateRequest) Reset() { *m = ProjectTokenCreateReq func (m *ProjectTokenCreateRequest) String() string { return proto.CompactTextString(m) } func (*ProjectTokenCreateRequest) ProtoMessage() {} func (*ProjectTokenCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{2} + return fileDescriptor_project_082822b5d17b8c4e, []int{2} } func (m *ProjectTokenCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -231,7 +231,7 @@ func (m *ProjectTokenResponse) Reset() { *m = ProjectTokenResponse{} } func (m *ProjectTokenResponse) String() string { return proto.CompactTextString(m) } func (*ProjectTokenResponse) ProtoMessage() {} func (*ProjectTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{3} + return fileDescriptor_project_082822b5d17b8c4e, []int{3} } func (m *ProjectTokenResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -279,7 +279,7 @@ func (m *ProjectQuery) Reset() { *m = ProjectQuery{} } func (m *ProjectQuery) String() string { return proto.CompactTextString(m) } func (*ProjectQuery) ProtoMessage() {} func (*ProjectQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{4} + return fileDescriptor_project_082822b5d17b8c4e, []int{4} } func (m *ProjectQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -326,7 +326,7 @@ func (m *ProjectUpdateRequest) Reset() { *m = ProjectUpdateRequest{} } func (m *ProjectUpdateRequest) String() string { return proto.CompactTextString(m) } func (*ProjectUpdateRequest) ProtoMessage() {} func (*ProjectUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{5} + return fileDescriptor_project_082822b5d17b8c4e, []int{5} } func (m *ProjectUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -372,7 +372,7 @@ func (m *EmptyResponse) Reset() { *m = EmptyResponse{} } func (m *EmptyResponse) String() string { return proto.CompactTextString(m) } func (*EmptyResponse) ProtoMessage() {} func (*EmptyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_project_8d94583ca767d5b3, []int{6} + return fileDescriptor_project_082822b5d17b8c4e, []int{6} } func (m *EmptyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1846,10 +1846,10 @@ var ( ) func init() { - proto.RegisterFile("server/project/project.proto", fileDescriptor_project_8d94583ca767d5b3) + proto.RegisterFile("server/project/project.proto", fileDescriptor_project_082822b5d17b8c4e) } -var fileDescriptor_project_8d94583ca767d5b3 = []byte{ +var fileDescriptor_project_082822b5d17b8c4e = []byte{ // 697 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x5d, 0x6b, 0x13, 0x4d, 0x14, 0x66, 0x9a, 0xbe, 0x79, 0xdf, 0x4e, 0x5e, 0xb5, 0x0c, 0xad, 0xa6, 0xb1, 0x8d, 0x61, 0x2e, diff --git a/server/repository/repository.pb.go b/server/repository/repository.pb.go index 803c50098f571..aa4eabde84f4b 100644 --- a/server/repository/repository.pb.go +++ b/server/repository/repository.pb.go @@ -46,7 +46,7 @@ func (m *RepoAppsQuery) Reset() { *m = RepoAppsQuery{} } func (m *RepoAppsQuery) String() string { return proto.CompactTextString(m) } func (*RepoAppsQuery) ProtoMessage() {} func (*RepoAppsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{0} + return fileDescriptor_repository_31d36efd186d2b01, []int{0} } func (m *RepoAppsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -102,7 +102,7 @@ func (m *AppInfo) Reset() { *m = AppInfo{} } func (m *AppInfo) String() string { return proto.CompactTextString(m) } func (*AppInfo) ProtoMessage() {} func (*AppInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{1} + return fileDescriptor_repository_31d36efd186d2b01, []int{1} } func (m *AppInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -159,7 +159,7 @@ func (m *RepoAppDetailsQuery) Reset() { *m = RepoAppDetailsQuery{} } func (m *RepoAppDetailsQuery) String() string { return proto.CompactTextString(m) } func (*RepoAppDetailsQuery) ProtoMessage() {} func (*RepoAppDetailsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{2} + return fileDescriptor_repository_31d36efd186d2b01, []int{2} } func (m *RepoAppDetailsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -224,7 +224,7 @@ func (m *RepoAppDetailsResponse) Reset() { *m = RepoAppDetailsResponse{} func (m *RepoAppDetailsResponse) String() string { return proto.CompactTextString(m) } func (*RepoAppDetailsResponse) ProtoMessage() {} func (*RepoAppDetailsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{3} + return fileDescriptor_repository_31d36efd186d2b01, []int{3} } func (m *RepoAppDetailsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -293,7 +293,7 @@ func (m *RepoAppsResponse) Reset() { *m = RepoAppsResponse{} } func (m *RepoAppsResponse) String() string { return proto.CompactTextString(m) } func (*RepoAppsResponse) ProtoMessage() {} func (*RepoAppsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{4} + return fileDescriptor_repository_31d36efd186d2b01, []int{4} } func (m *RepoAppsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -344,7 +344,7 @@ func (m *KsonnetAppSpec) Reset() { *m = KsonnetAppSpec{} } func (m *KsonnetAppSpec) String() string { return proto.CompactTextString(m) } func (*KsonnetAppSpec) ProtoMessage() {} func (*KsonnetAppSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{5} + return fileDescriptor_repository_31d36efd186d2b01, []int{5} } func (m *KsonnetAppSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -408,7 +408,7 @@ func (m *HelmAppSpec) Reset() { *m = HelmAppSpec{} } func (m *HelmAppSpec) String() string { return proto.CompactTextString(m) } func (*HelmAppSpec) ProtoMessage() {} func (*HelmAppSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{6} + return fileDescriptor_repository_31d36efd186d2b01, []int{6} } func (m *HelmAppSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -470,7 +470,7 @@ func (m *KustomizeAppSpec) Reset() { *m = KustomizeAppSpec{} } func (m *KustomizeAppSpec) String() string { return proto.CompactTextString(m) } func (*KustomizeAppSpec) ProtoMessage() {} func (*KustomizeAppSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{7} + return fileDescriptor_repository_31d36efd186d2b01, []int{7} } func (m *KustomizeAppSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -524,7 +524,7 @@ func (m *KsonnetEnvironment) Reset() { *m = KsonnetEnvironment{} } func (m *KsonnetEnvironment) String() string { return proto.CompactTextString(m) } func (*KsonnetEnvironment) ProtoMessage() {} func (*KsonnetEnvironment) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{8} + return fileDescriptor_repository_31d36efd186d2b01, []int{8} } func (m *KsonnetEnvironment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -595,7 +595,7 @@ func (m *KsonnetEnvironmentDestination) Reset() { *m = KsonnetEnvironmen func (m *KsonnetEnvironmentDestination) String() string { return proto.CompactTextString(m) } func (*KsonnetEnvironmentDestination) ProtoMessage() {} func (*KsonnetEnvironmentDestination) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{9} + return fileDescriptor_repository_31d36efd186d2b01, []int{9} } func (m *KsonnetEnvironmentDestination) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -650,7 +650,7 @@ func (m *RepoQuery) Reset() { *m = RepoQuery{} } func (m *RepoQuery) String() string { return proto.CompactTextString(m) } func (*RepoQuery) ProtoMessage() {} func (*RepoQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{10} + return fileDescriptor_repository_31d36efd186d2b01, []int{10} } func (m *RepoQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -696,7 +696,7 @@ func (m *RepoResponse) Reset() { *m = RepoResponse{} } func (m *RepoResponse) String() string { return proto.CompactTextString(m) } func (*RepoResponse) ProtoMessage() {} func (*RepoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{11} + return fileDescriptor_repository_31d36efd186d2b01, []int{11} } func (m *RepoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -737,7 +737,7 @@ func (m *RepoCreateRequest) Reset() { *m = RepoCreateRequest{} } func (m *RepoCreateRequest) String() string { return proto.CompactTextString(m) } func (*RepoCreateRequest) ProtoMessage() {} func (*RepoCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{12} + return fileDescriptor_repository_31d36efd186d2b01, []int{12} } func (m *RepoCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -791,7 +791,7 @@ func (m *RepoUpdateRequest) Reset() { *m = RepoUpdateRequest{} } func (m *RepoUpdateRequest) String() string { return proto.CompactTextString(m) } func (*RepoUpdateRequest) ProtoMessage() {} func (*RepoUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_6cfdcc280f230e64, []int{13} + return fileDescriptor_repository_31d36efd186d2b01, []int{13} } func (m *RepoUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3710,10 +3710,10 @@ var ( ) func init() { - proto.RegisterFile("server/repository/repository.proto", fileDescriptor_repository_6cfdcc280f230e64) + proto.RegisterFile("server/repository/repository.proto", fileDescriptor_repository_31d36efd186d2b01) } -var fileDescriptor_repository_6cfdcc280f230e64 = []byte{ +var fileDescriptor_repository_31d36efd186d2b01 = []byte{ // 911 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0x5b, 0x45, 0x10, 0xd7, 0xc6, 0xa9, 0x13, 0x8f, 0xdb, 0x2a, 0xdd, 0x96, 0x60, 0x1e, 0x8e, 0x1b, 0x2d, 0x12, diff --git a/server/session/session.pb.go b/server/session/session.pb.go index f594a9a3f7362..e3db19fa810ae 100644 --- a/server/session/session.pb.go +++ b/server/session/session.pb.go @@ -47,7 +47,7 @@ func (m *SessionCreateRequest) Reset() { *m = SessionCreateRequest{} } func (m *SessionCreateRequest) String() string { return proto.CompactTextString(m) } func (*SessionCreateRequest) ProtoMessage() {} func (*SessionCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_session_217b926c109d1cc2, []int{0} + return fileDescriptor_session_8e535ce77fc5e082, []int{0} } func (m *SessionCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -108,7 +108,7 @@ func (m *SessionDeleteRequest) Reset() { *m = SessionDeleteRequest{} } func (m *SessionDeleteRequest) String() string { return proto.CompactTextString(m) } func (*SessionDeleteRequest) ProtoMessage() {} func (*SessionDeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_session_217b926c109d1cc2, []int{1} + return fileDescriptor_session_8e535ce77fc5e082, []int{1} } func (m *SessionDeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -149,7 +149,7 @@ func (m *SessionResponse) Reset() { *m = SessionResponse{} } func (m *SessionResponse) String() string { return proto.CompactTextString(m) } func (*SessionResponse) ProtoMessage() {} func (*SessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_session_217b926c109d1cc2, []int{2} + return fileDescriptor_session_8e535ce77fc5e082, []int{2} } func (m *SessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -827,10 +827,10 @@ var ( ) func init() { - proto.RegisterFile("server/session/session.proto", fileDescriptor_session_217b926c109d1cc2) + proto.RegisterFile("server/session/session.proto", fileDescriptor_session_8e535ce77fc5e082) } -var fileDescriptor_session_217b926c109d1cc2 = []byte{ +var fileDescriptor_session_8e535ce77fc5e082 = []byte{ // 356 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xb1, 0x4e, 0xeb, 0x30, 0x14, 0x86, 0xe5, 0x5e, 0xdd, 0xde, 0x7b, 0x3d, 0xdc, 0x8a, 0x28, 0x82, 0x28, 0x2a, 0x15, 0xca, diff --git a/server/settings/settings.pb.go b/server/settings/settings.pb.go index 00fb78fb6608b..4d870a30d4abd 100644 --- a/server/settings/settings.pb.go +++ b/server/settings/settings.pb.go @@ -42,7 +42,7 @@ func (m *SettingsQuery) Reset() { *m = SettingsQuery{} } func (m *SettingsQuery) String() string { return proto.CompactTextString(m) } func (*SettingsQuery) ProtoMessage() {} func (*SettingsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_settings_0a30d430c5f54e91, []int{0} + return fileDescriptor_settings_71506a99e4ff7448, []int{0} } func (m *SettingsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -83,7 +83,7 @@ func (m *Settings) Reset() { *m = Settings{} } func (m *Settings) String() string { return proto.CompactTextString(m) } func (*Settings) ProtoMessage() {} func (*Settings) Descriptor() ([]byte, []int) { - return fileDescriptor_settings_0a30d430c5f54e91, []int{1} + return fileDescriptor_settings_71506a99e4ff7448, []int{1} } func (m *Settings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -137,7 +137,7 @@ func (m *DexConfig) Reset() { *m = DexConfig{} } func (m *DexConfig) String() string { return proto.CompactTextString(m) } func (*DexConfig) ProtoMessage() {} func (*DexConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_settings_0a30d430c5f54e91, []int{2} + return fileDescriptor_settings_71506a99e4ff7448, []int{2} } func (m *DexConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -185,7 +185,7 @@ func (m *Connector) Reset() { *m = Connector{} } func (m *Connector) String() string { return proto.CompactTextString(m) } func (*Connector) ProtoMessage() {} func (*Connector) Descriptor() ([]byte, []int) { - return fileDescriptor_settings_0a30d430c5f54e91, []int{3} + return fileDescriptor_settings_71506a99e4ff7448, []int{3} } func (m *Connector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -974,10 +974,10 @@ var ( ) func init() { - proto.RegisterFile("server/settings/settings.proto", fileDescriptor_settings_0a30d430c5f54e91) + proto.RegisterFile("server/settings/settings.proto", fileDescriptor_settings_71506a99e4ff7448) } -var fileDescriptor_settings_0a30d430c5f54e91 = []byte{ +var fileDescriptor_settings_71506a99e4ff7448 = []byte{ // 322 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0x41, 0x4b, 0xc3, 0x40, 0x10, 0x85, 0xd9, 0x46, 0xac, 0x19, 0x91, 0xea, 0x22, 0x12, 0x8b, 0xc4, 0x92, 0x53, 0x41, 0x4c, diff --git a/server/swagger.json b/server/swagger.json index 85a4fadc12e5f..30ab7b048943f 100644 --- a/server/swagger.json +++ b/server/swagger.json @@ -1320,6 +1320,12 @@ "type": "boolean", "format": "boolean" }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/v1alpha1SyncOperationResource" + } + }, "revision": { "type": "string" }, @@ -2630,6 +2636,13 @@ "format": "boolean", "title": "Prune deletes resources that are no longer tracked in git" }, + "resources": { + "type": "array", + "title": "Resources describes which resources to sync", + "items": { + "$ref": "#/definitions/v1alpha1SyncOperationResource" + } + }, "revision": { "description": "Revision is the git revision in which to sync the application to.\nIf omitted, will use the revision specified in app spec.", "type": "string" @@ -2639,6 +2652,21 @@ } } }, + "v1alpha1SyncOperationResource": { + "description": "SyncOperationResource contains resources to sync.", + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, "v1alpha1SyncOperationResult": { "type": "object", "title": "SyncOperationResult represent result of sync operation", diff --git a/server/version/version.pb.go b/server/version/version.pb.go index a6bd3d2c48771..ae8734accdafb 100644 --- a/server/version/version.pb.go +++ b/server/version/version.pb.go @@ -51,7 +51,7 @@ func (m *VersionMessage) Reset() { *m = VersionMessage{} } func (m *VersionMessage) String() string { return proto.CompactTextString(m) } func (*VersionMessage) ProtoMessage() {} func (*VersionMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_version_6f54499c257f90e5, []int{0} + return fileDescriptor_version_cdcdf9fc14514c9b, []int{0} } func (m *VersionMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -781,10 +781,10 @@ var ( ) func init() { - proto.RegisterFile("server/version/version.proto", fileDescriptor_version_6f54499c257f90e5) + proto.RegisterFile("server/version/version.proto", fileDescriptor_version_cdcdf9fc14514c9b) } -var fileDescriptor_version_6f54499c257f90e5 = []byte{ +var fileDescriptor_version_cdcdf9fc14514c9b = []byte{ // 343 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0xcf, 0x4a, 0xc3, 0x40, 0x10, 0xc6, 0x49, 0xd5, 0xfe, 0x59, 0x4a, 0x0f, 0x8b, 0xd4, 0x25, 0x96, 0x22, 0x3d, 0x88, 0x08, diff --git a/util/argo/argo.go b/util/argo/argo.go index 0d1a6db04c813..75085fe88d0ed 100644 --- a/util/argo/argo.go +++ b/util/argo/argo.go @@ -14,6 +14,7 @@ import ( "google.golang.org/grpc/status" apierr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" @@ -457,3 +458,18 @@ func SetAppOperation(ctx context.Context, appIf v1alpha1.ApplicationInterface, a log.Warnf("Failed to set operation for app '%s' due to update conflict. Retrying again...", appName) } } + +// ContainsSyncResource determines if the given resource exists in the provided slice of sync operation resources. +// ContainsSyncResource returns false if either argument is nil. +func ContainsSyncResource(u *unstructured.Unstructured, rr []argoappv1.SyncOperationResource) bool { + if u == nil || rr == nil { + return false + } + + for _, r := range rr { + if r.HasIdentity(u) { + return true + } + } + return false +} diff --git a/util/argo/argo_test.go b/util/argo/argo_test.go index efc115e5fc9f4..3241cb954c73f 100644 --- a/util/argo/argo_test.go +++ b/util/argo/argo_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/watch" "github.com/argoproj/argo-cd/common" @@ -94,3 +95,28 @@ func TestWaitForRefresh(t *testing.T) { assert.Nil(t, err) assert.NotNil(t, app) } + +func TestContainsSyncResource(t *testing.T) { + var ( + blankUnstructured unstructured.Unstructured + blankResource argoappv1.SyncOperationResource + helloResource argoappv1.SyncOperationResource = argoappv1.SyncOperationResource{Name: "hello"} + ) + tables := []struct { + u *unstructured.Unstructured + rr []argoappv1.SyncOperationResource + expected bool + }{ + {nil, nil, false}, + {nil, []argoappv1.SyncOperationResource{}, false}, + {&blankUnstructured, []argoappv1.SyncOperationResource{}, false}, + {&blankUnstructured, []argoappv1.SyncOperationResource{blankResource}, true}, + {&blankUnstructured, []argoappv1.SyncOperationResource{helloResource}, false}, + } + + for _, table := range tables { + if out := ContainsSyncResource(table.u, table.rr); out != table.expected { + t.Errorf("Expected %t for slice %+v conains resource %+v; instead got %t", table.expected, table.rr, table.u, out) + } + } +}