blob: 7ab960bf994e17e14d6080799be115cfa8b8b7ff [file] [log] [blame]
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v4.25.3
// source: google/cloud/gkebackup/v1/backup_plan.proto
package gkebackuppb
import (
reflect "reflect"
sync "sync"
_ "google.golang.org/genproto/googleapis/api/annotations"
date "google.golang.org/genproto/googleapis/type/date"
dayofweek "google.golang.org/genproto/googleapis/type/dayofweek"
timeofday "google.golang.org/genproto/googleapis/type/timeofday"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// State
type BackupPlan_State int32
const (
// Default first value for Enums.
BackupPlan_STATE_UNSPECIFIED BackupPlan_State = 0
// Waiting for cluster state to be RUNNING.
BackupPlan_CLUSTER_PENDING BackupPlan_State = 1
// The BackupPlan is in the process of being created.
BackupPlan_PROVISIONING BackupPlan_State = 2
// The BackupPlan has successfully been created and is ready for Backups.
BackupPlan_READY BackupPlan_State = 3
// BackupPlan creation has failed.
BackupPlan_FAILED BackupPlan_State = 4
// The BackupPlan has been deactivated.
BackupPlan_DEACTIVATED BackupPlan_State = 5
// The BackupPlan is in the process of being deleted.
BackupPlan_DELETING BackupPlan_State = 6
)
// Enum value maps for BackupPlan_State.
var (
BackupPlan_State_name = map[int32]string{
0: "STATE_UNSPECIFIED",
1: "CLUSTER_PENDING",
2: "PROVISIONING",
3: "READY",
4: "FAILED",
5: "DEACTIVATED",
6: "DELETING",
}
BackupPlan_State_value = map[string]int32{
"STATE_UNSPECIFIED": 0,
"CLUSTER_PENDING": 1,
"PROVISIONING": 2,
"READY": 3,
"FAILED": 4,
"DEACTIVATED": 5,
"DELETING": 6,
}
)
func (x BackupPlan_State) Enum() *BackupPlan_State {
p := new(BackupPlan_State)
*p = x
return p
}
func (x BackupPlan_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BackupPlan_State) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_gkebackup_v1_backup_plan_proto_enumTypes[0].Descriptor()
}
func (BackupPlan_State) Type() protoreflect.EnumType {
return &file_google_cloud_gkebackup_v1_backup_plan_proto_enumTypes[0]
}
func (x BackupPlan_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BackupPlan_State.Descriptor instead.
func (BackupPlan_State) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{0, 0}
}
// Defines the configuration and scheduling for a "line" of Backups.
type BackupPlan struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The full name of the BackupPlan resource.
// Format: `projects/*/locations/*/backupPlans/*`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. Server generated global unique identifier of
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"`
// Output only. The timestamp when this BackupPlan resource was created.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. The timestamp when this BackupPlan resource was last
// updated.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Optional. User specified descriptive string for this BackupPlan.
Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
// Required. Immutable. The source cluster from which Backups will be created
// via this BackupPlan. Valid formats:
//
// - `projects/*/locations/*/clusters/*`
// - `projects/*/zones/*/clusters/*`
Cluster string `protobuf:"bytes,6,opt,name=cluster,proto3" json:"cluster,omitempty"`
// Optional. RetentionPolicy governs lifecycle of Backups created under this
// plan.
RetentionPolicy *BackupPlan_RetentionPolicy `protobuf:"bytes,7,opt,name=retention_policy,json=retentionPolicy,proto3" json:"retention_policy,omitempty"`
// Optional. A set of custom labels supplied by user.
Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Optional. Defines a schedule for automatic Backup creation via this
// BackupPlan.
BackupSchedule *BackupPlan_Schedule `protobuf:"bytes,9,opt,name=backup_schedule,json=backupSchedule,proto3" json:"backup_schedule,omitempty"`
// Output only. `etag` is used for optimistic concurrency control as a way to
// help prevent simultaneous updates of a backup plan from overwriting each
// other. It is strongly suggested that systems make use of the 'etag' in the
// read-modify-write cycle to perform BackupPlan updates in order to avoid
// race conditions: An `etag` is returned in the response to `GetBackupPlan`,
// and systems are expected to put that etag in the request to
// `UpdateBackupPlan` or `DeleteBackupPlan` to ensure that their change
// will be applied to the same version of the resource.
Etag string `protobuf:"bytes,10,opt,name=etag,proto3" json:"etag,omitempty"`
// Optional. This flag indicates whether this BackupPlan has been deactivated.
// Setting this field to True locks the BackupPlan such that no further
// updates will be allowed (except deletes), including the deactivated field
// itself. It also prevents any new Backups from being created via this
// BackupPlan (including scheduled Backups).
//
// Default: False
Deactivated bool `protobuf:"varint,11,opt,name=deactivated,proto3" json:"deactivated,omitempty"`
// Optional. Defines the configuration of Backups created via this BackupPlan.
BackupConfig *BackupPlan_BackupConfig `protobuf:"bytes,12,opt,name=backup_config,json=backupConfig,proto3" json:"backup_config,omitempty"`
// Output only. The number of Kubernetes Pods backed up in the
// last successful Backup created via this BackupPlan.
ProtectedPodCount int32 `protobuf:"varint,13,opt,name=protected_pod_count,json=protectedPodCount,proto3" json:"protected_pod_count,omitempty"`
// Output only. State of the BackupPlan. This State field reflects the
// various stages a BackupPlan can be in
// during the Create operation. It will be set to "DEACTIVATED"
// if the BackupPlan is deactivated on an Update
State BackupPlan_State `protobuf:"varint,14,opt,name=state,proto3,enum=google.cloud.gkebackup.v1.BackupPlan_State" json:"state,omitempty"`
// Output only. Human-readable description of why BackupPlan is in the current
// `state`
StateReason string `protobuf:"bytes,15,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"`
// Output only. A number that represents the current risk level of this
// BackupPlan from RPO perspective with 1 being no risk and 5 being highest
// risk.
RpoRiskLevel int32 `protobuf:"varint,16,opt,name=rpo_risk_level,json=rpoRiskLevel,proto3" json:"rpo_risk_level,omitempty"`
// Output only. Human-readable description of why the BackupPlan is in the
// current rpo_risk_level and action items if any.
RpoRiskReason string `protobuf:"bytes,17,opt,name=rpo_risk_reason,json=rpoRiskReason,proto3" json:"rpo_risk_reason,omitempty"`
}
func (x *BackupPlan) Reset() {
*x = BackupPlan{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupPlan) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupPlan) ProtoMessage() {}
func (x *BackupPlan) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupPlan.ProtoReflect.Descriptor instead.
func (*BackupPlan) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{0}
}
func (x *BackupPlan) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BackupPlan) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *BackupPlan) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *BackupPlan) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *BackupPlan) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *BackupPlan) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *BackupPlan) GetRetentionPolicy() *BackupPlan_RetentionPolicy {
if x != nil {
return x.RetentionPolicy
}
return nil
}
func (x *BackupPlan) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
func (x *BackupPlan) GetBackupSchedule() *BackupPlan_Schedule {
if x != nil {
return x.BackupSchedule
}
return nil
}
func (x *BackupPlan) GetEtag() string {
if x != nil {
return x.Etag
}
return ""
}
func (x *BackupPlan) GetDeactivated() bool {
if x != nil {
return x.Deactivated
}
return false
}
func (x *BackupPlan) GetBackupConfig() *BackupPlan_BackupConfig {
if x != nil {
return x.BackupConfig
}
return nil
}
func (x *BackupPlan) GetProtectedPodCount() int32 {
if x != nil {
return x.ProtectedPodCount
}
return 0
}
func (x *BackupPlan) GetState() BackupPlan_State {
if x != nil {
return x.State
}
return BackupPlan_STATE_UNSPECIFIED
}
func (x *BackupPlan) GetStateReason() string {
if x != nil {
return x.StateReason
}
return ""
}
func (x *BackupPlan) GetRpoRiskLevel() int32 {
if x != nil {
return x.RpoRiskLevel
}
return 0
}
func (x *BackupPlan) GetRpoRiskReason() string {
if x != nil {
return x.RpoRiskReason
}
return ""
}
// Defines RPO scheduling configuration for automatically creating
// Backups via this BackupPlan.
type RpoConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Defines the target RPO for the BackupPlan in minutes, which means
// the target maximum data loss in time that is acceptable for this
// BackupPlan. This must be at least 60, i.e., 1 hour, and at most 86400,
// i.e., 60 days.
TargetRpoMinutes int32 `protobuf:"varint,1,opt,name=target_rpo_minutes,json=targetRpoMinutes,proto3" json:"target_rpo_minutes,omitempty"`
// Optional. User specified time windows during which backup can NOT happen
// for this BackupPlan - backups should start and finish outside of any given
// exclusion window. Note: backup jobs will be scheduled to start and
// finish outside the duration of the window as much as possible, but
// running jobs will not get canceled when it runs into the window.
// All the time and date values in exclusion_windows entry in the API are in
// UTC.
// We only allow <=1 recurrence (daily or weekly) exclusion window for a
// BackupPlan while no restriction on number of single occurrence
// windows.
ExclusionWindows []*ExclusionWindow `protobuf:"bytes,2,rep,name=exclusion_windows,json=exclusionWindows,proto3" json:"exclusion_windows,omitempty"`
}
func (x *RpoConfig) Reset() {
*x = RpoConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RpoConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RpoConfig) ProtoMessage() {}
func (x *RpoConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RpoConfig.ProtoReflect.Descriptor instead.
func (*RpoConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{1}
}
func (x *RpoConfig) GetTargetRpoMinutes() int32 {
if x != nil {
return x.TargetRpoMinutes
}
return 0
}
func (x *RpoConfig) GetExclusionWindows() []*ExclusionWindow {
if x != nil {
return x.ExclusionWindows
}
return nil
}
// Defines a time window during which no backup should
// happen. All time and date are in UTC.
type ExclusionWindow struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Specifies the start time of the window using time of the day in
// UTC.
StartTime *timeofday.TimeOfDay `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Required. Specifies duration of the window. Restrictions for duration based
// on the recurrence type to allow some time for backup to happen:
// - single_occurrence_date: no restriction, but UI may warn about this when
// duration >= target RPO
// - daily window: duration < 24 hours
// - weekly window:
// - days of week includes all seven days of a week: duration < 24 hours
// - all other weekly window: duration < 168 hours (i.e., 24 * 7 hours)
Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
// Required. Specifies the day(s) on which the exclusion window takes
// effect. Exactly one of the fields MUST be specified.
//
// Types that are assignable to Recurrence:
//
// *ExclusionWindow_SingleOccurrenceDate
// *ExclusionWindow_Daily
// *ExclusionWindow_DaysOfWeek
Recurrence isExclusionWindow_Recurrence `protobuf_oneof:"recurrence"`
}
func (x *ExclusionWindow) Reset() {
*x = ExclusionWindow{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExclusionWindow) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExclusionWindow) ProtoMessage() {}
func (x *ExclusionWindow) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExclusionWindow.ProtoReflect.Descriptor instead.
func (*ExclusionWindow) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{2}
}
func (x *ExclusionWindow) GetStartTime() *timeofday.TimeOfDay {
if x != nil {
return x.StartTime
}
return nil
}
func (x *ExclusionWindow) GetDuration() *durationpb.Duration {
if x != nil {
return x.Duration
}
return nil
}
func (m *ExclusionWindow) GetRecurrence() isExclusionWindow_Recurrence {
if m != nil {
return m.Recurrence
}
return nil
}
func (x *ExclusionWindow) GetSingleOccurrenceDate() *date.Date {
if x, ok := x.GetRecurrence().(*ExclusionWindow_SingleOccurrenceDate); ok {
return x.SingleOccurrenceDate
}
return nil
}
func (x *ExclusionWindow) GetDaily() bool {
if x, ok := x.GetRecurrence().(*ExclusionWindow_Daily); ok {
return x.Daily
}
return false
}
func (x *ExclusionWindow) GetDaysOfWeek() *ExclusionWindow_DayOfWeekList {
if x, ok := x.GetRecurrence().(*ExclusionWindow_DaysOfWeek); ok {
return x.DaysOfWeek
}
return nil
}
type isExclusionWindow_Recurrence interface {
isExclusionWindow_Recurrence()
}
type ExclusionWindow_SingleOccurrenceDate struct {
// No recurrence. The exclusion window occurs only once and on this
// date in UTC.
SingleOccurrenceDate *date.Date `protobuf:"bytes,3,opt,name=single_occurrence_date,json=singleOccurrenceDate,proto3,oneof"`
}
type ExclusionWindow_Daily struct {
// The exclusion window occurs every day if set to "True".
// Specifying this field to "False" is an error.
Daily bool `protobuf:"varint,4,opt,name=daily,proto3,oneof"`
}
type ExclusionWindow_DaysOfWeek struct {
// The exclusion window occurs on these days of each week in UTC.
DaysOfWeek *ExclusionWindow_DayOfWeekList `protobuf:"bytes,5,opt,name=days_of_week,json=daysOfWeek,proto3,oneof"`
}
func (*ExclusionWindow_SingleOccurrenceDate) isExclusionWindow_Recurrence() {}
func (*ExclusionWindow_Daily) isExclusionWindow_Recurrence() {}
func (*ExclusionWindow_DaysOfWeek) isExclusionWindow_Recurrence() {}
// RetentionPolicy defines a Backup retention policy for a BackupPlan.
type BackupPlan_RetentionPolicy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional. Minimum age for Backups created via this BackupPlan (in days).
// This field MUST be an integer value between 0-90 (inclusive).
// A Backup created under this BackupPlan will NOT be deletable until it
// reaches Backup's (create_time + backup_delete_lock_days).
// Updating this field of a BackupPlan does NOT affect existing Backups
// under it. Backups created AFTER a successful update will inherit
// the new value.
//
// Default: 0 (no delete blocking)
BackupDeleteLockDays int32 `protobuf:"varint,1,opt,name=backup_delete_lock_days,json=backupDeleteLockDays,proto3" json:"backup_delete_lock_days,omitempty"`
// Optional. The default maximum age of a Backup created via this
// BackupPlan. This field MUST be an integer value >= 0 and <= 365. If
// specified, a Backup created under this BackupPlan will be automatically
// deleted after its age reaches (create_time + backup_retain_days). If not
// specified, Backups created under this BackupPlan will NOT be subject to
// automatic deletion. Updating this field does NOT affect existing Backups
// under it. Backups created AFTER a successful update will automatically
// pick up the new value. NOTE: backup_retain_days must be >=
// [backup_delete_lock_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_delete_lock_days].
// If
// [cron_schedule][google.cloud.gkebackup.v1.BackupPlan.Schedule.cron_schedule]
// is defined, then this must be
// <= 360 * the creation interval. If
// [rpo_config][google.cloud.gkebackup.v1.BackupPlan.Schedule.rpo_config] is
// defined, then this must be
// <= 360 * [target_rpo_minutes][Schedule.rpo_config.target_rpo_minutes] /
// (1440minutes/day).
//
// Default: 0 (no automatic deletion)
BackupRetainDays int32 `protobuf:"varint,2,opt,name=backup_retain_days,json=backupRetainDays,proto3" json:"backup_retain_days,omitempty"`
// Optional. This flag denotes whether the retention policy of this
// BackupPlan is locked. If set to True, no further update is allowed on
// this policy, including the `locked` field itself.
//
// Default: False
Locked bool `protobuf:"varint,3,opt,name=locked,proto3" json:"locked,omitempty"`
}
func (x *BackupPlan_RetentionPolicy) Reset() {
*x = BackupPlan_RetentionPolicy{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupPlan_RetentionPolicy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupPlan_RetentionPolicy) ProtoMessage() {}
func (x *BackupPlan_RetentionPolicy) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupPlan_RetentionPolicy.ProtoReflect.Descriptor instead.
func (*BackupPlan_RetentionPolicy) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{0, 0}
}
func (x *BackupPlan_RetentionPolicy) GetBackupDeleteLockDays() int32 {
if x != nil {
return x.BackupDeleteLockDays
}
return 0
}
func (x *BackupPlan_RetentionPolicy) GetBackupRetainDays() int32 {
if x != nil {
return x.BackupRetainDays
}
return 0
}
func (x *BackupPlan_RetentionPolicy) GetLocked() bool {
if x != nil {
return x.Locked
}
return false
}
// Defines scheduling parameters for automatically creating Backups
// via this BackupPlan.
type BackupPlan_Schedule struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional. A standard [cron](https://wikipedia.com/wiki/cron) string that
// defines a repeating schedule for creating Backups via this BackupPlan.
// This is mutually exclusive with the
// [rpo_config][google.cloud.gkebackup.v1.BackupPlan.Schedule.rpo_config]
// field since at most one schedule can be defined for a BackupPlan. If this
// is defined, then
// [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days]
// must also be defined.
//
// Default (empty): no automatic backup creation will occur.
CronSchedule string `protobuf:"bytes,1,opt,name=cron_schedule,json=cronSchedule,proto3" json:"cron_schedule,omitempty"`
// Optional. This flag denotes whether automatic Backup creation is paused
// for this BackupPlan.
//
// Default: False
Paused bool `protobuf:"varint,2,opt,name=paused,proto3" json:"paused,omitempty"`
// Optional. Defines the RPO schedule configuration for this BackupPlan.
// This is mutually exclusive with the
// [cron_schedule][google.cloud.gkebackup.v1.BackupPlan.Schedule.cron_schedule]
// field since at most one schedule can be defined for a BackupPLan. If this
// is defined, then
// [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days]
// must also be defined.
//
// Default (empty): no automatic backup creation will occur.
RpoConfig *RpoConfig `protobuf:"bytes,3,opt,name=rpo_config,json=rpoConfig,proto3" json:"rpo_config,omitempty"`
// Output only. Start time of next scheduled backup under this BackupPlan by
// either cron_schedule or rpo config.
NextScheduledBackupTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=next_scheduled_backup_time,json=nextScheduledBackupTime,proto3" json:"next_scheduled_backup_time,omitempty"`
}
func (x *BackupPlan_Schedule) Reset() {
*x = BackupPlan_Schedule{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupPlan_Schedule) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupPlan_Schedule) ProtoMessage() {}
func (x *BackupPlan_Schedule) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupPlan_Schedule.ProtoReflect.Descriptor instead.
func (*BackupPlan_Schedule) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{0, 1}
}
func (x *BackupPlan_Schedule) GetCronSchedule() string {
if x != nil {
return x.CronSchedule
}
return ""
}
func (x *BackupPlan_Schedule) GetPaused() bool {
if x != nil {
return x.Paused
}
return false
}
func (x *BackupPlan_Schedule) GetRpoConfig() *RpoConfig {
if x != nil {
return x.RpoConfig
}
return nil
}
func (x *BackupPlan_Schedule) GetNextScheduledBackupTime() *timestamppb.Timestamp {
if x != nil {
return x.NextScheduledBackupTime
}
return nil
}
// BackupConfig defines the configuration of Backups created via this
// BackupPlan.
type BackupPlan_BackupConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// This defines the "scope" of the Backup - which namespaced
// resources in the cluster will be included in a Backup.
// Exactly one of the fields of backup_scope MUST be specified.
//
// Types that are assignable to BackupScope:
//
// *BackupPlan_BackupConfig_AllNamespaces
// *BackupPlan_BackupConfig_SelectedNamespaces
// *BackupPlan_BackupConfig_SelectedApplications
BackupScope isBackupPlan_BackupConfig_BackupScope `protobuf_oneof:"backup_scope"`
// Optional. This flag specifies whether volume data should be backed up
// when PVCs are included in the scope of a Backup.
//
// Default: False
IncludeVolumeData bool `protobuf:"varint,4,opt,name=include_volume_data,json=includeVolumeData,proto3" json:"include_volume_data,omitempty"`
// Optional. This flag specifies whether Kubernetes Secret resources should
// be included when they fall into the scope of Backups.
//
// Default: False
IncludeSecrets bool `protobuf:"varint,5,opt,name=include_secrets,json=includeSecrets,proto3" json:"include_secrets,omitempty"`
// Optional. This defines a customer managed encryption key that will be
// used to encrypt the "config" portion (the Kubernetes resources) of
// Backups created via this plan.
//
// Default (empty): Config backup artifacts will not be encrypted.
EncryptionKey *EncryptionKey `protobuf:"bytes,6,opt,name=encryption_key,json=encryptionKey,proto3" json:"encryption_key,omitempty"`
}
func (x *BackupPlan_BackupConfig) Reset() {
*x = BackupPlan_BackupConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupPlan_BackupConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupPlan_BackupConfig) ProtoMessage() {}
func (x *BackupPlan_BackupConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupPlan_BackupConfig.ProtoReflect.Descriptor instead.
func (*BackupPlan_BackupConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{0, 2}
}
func (m *BackupPlan_BackupConfig) GetBackupScope() isBackupPlan_BackupConfig_BackupScope {
if m != nil {
return m.BackupScope
}
return nil
}
func (x *BackupPlan_BackupConfig) GetAllNamespaces() bool {
if x, ok := x.GetBackupScope().(*BackupPlan_BackupConfig_AllNamespaces); ok {
return x.AllNamespaces
}
return false
}
func (x *BackupPlan_BackupConfig) GetSelectedNamespaces() *Namespaces {
if x, ok := x.GetBackupScope().(*BackupPlan_BackupConfig_SelectedNamespaces); ok {
return x.SelectedNamespaces
}
return nil
}
func (x *BackupPlan_BackupConfig) GetSelectedApplications() *NamespacedNames {
if x, ok := x.GetBackupScope().(*BackupPlan_BackupConfig_SelectedApplications); ok {
return x.SelectedApplications
}
return nil
}
func (x *BackupPlan_BackupConfig) GetIncludeVolumeData() bool {
if x != nil {
return x.IncludeVolumeData
}
return false
}
func (x *BackupPlan_BackupConfig) GetIncludeSecrets() bool {
if x != nil {
return x.IncludeSecrets
}
return false
}
func (x *BackupPlan_BackupConfig) GetEncryptionKey() *EncryptionKey {
if x != nil {
return x.EncryptionKey
}
return nil
}
type isBackupPlan_BackupConfig_BackupScope interface {
isBackupPlan_BackupConfig_BackupScope()
}
type BackupPlan_BackupConfig_AllNamespaces struct {
// If True, include all namespaced resources
AllNamespaces bool `protobuf:"varint,1,opt,name=all_namespaces,json=allNamespaces,proto3,oneof"`
}
type BackupPlan_BackupConfig_SelectedNamespaces struct {
// If set, include just the resources in the listed namespaces.
SelectedNamespaces *Namespaces `protobuf:"bytes,2,opt,name=selected_namespaces,json=selectedNamespaces,proto3,oneof"`
}
type BackupPlan_BackupConfig_SelectedApplications struct {
// If set, include just the resources referenced by the listed
// ProtectedApplications.
SelectedApplications *NamespacedNames `protobuf:"bytes,3,opt,name=selected_applications,json=selectedApplications,proto3,oneof"`
}
func (*BackupPlan_BackupConfig_AllNamespaces) isBackupPlan_BackupConfig_BackupScope() {}
func (*BackupPlan_BackupConfig_SelectedNamespaces) isBackupPlan_BackupConfig_BackupScope() {}
func (*BackupPlan_BackupConfig_SelectedApplications) isBackupPlan_BackupConfig_BackupScope() {}
// Holds repeated DaysOfWeek values as a container.
type ExclusionWindow_DayOfWeekList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional. A list of days of week.
DaysOfWeek []dayofweek.DayOfWeek `protobuf:"varint,1,rep,packed,name=days_of_week,json=daysOfWeek,proto3,enum=google.type.DayOfWeek" json:"days_of_week,omitempty"`
}
func (x *ExclusionWindow_DayOfWeekList) Reset() {
*x = ExclusionWindow_DayOfWeekList{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExclusionWindow_DayOfWeekList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExclusionWindow_DayOfWeekList) ProtoMessage() {}
func (x *ExclusionWindow_DayOfWeekList) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExclusionWindow_DayOfWeekList.ProtoReflect.Descriptor instead.
func (*ExclusionWindow_DayOfWeekList) Descriptor() ([]byte, []int) {
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP(), []int{2, 0}
}
func (x *ExclusionWindow_DayOfWeekList) GetDaysOfWeek() []dayofweek.DayOfWeek {
if x != nil {
return x.DaysOfWeek
}
return nil
}
var File_google_cloud_gkebackup_v1_backup_plan_proto protoreflect.FileDescriptor
var file_google_cloud_gkebackup_v1_backup_plan_proto_rawDesc = []byte{
0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x63, 0x6b,
0x75, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62,
0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x2f,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79,
0x70, 0x65, 0x2f, 0x64, 0x61, 0x79, 0x6f, 0x66, 0x77, 0x65, 0x65, 0x6b, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f,
0x74, 0x69, 0x6d, 0x65, 0x6f, 0x66, 0x64, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
0xdf, 0x10, 0x0a, 0x0a, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x17,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x40,
0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42,
0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x05, 0xe0,
0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
0x12, 0x65, 0x0a, 0x10, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63,
0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61,
0x6e, 0x2e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f,
0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x2e, 0x4c,
0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75,
0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63,
0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68,
0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x25,
0x0a, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69,
0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62,
0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50,
0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
0x50, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61,
0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x70, 0x6f, 0x5f,
0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x70, 0x6f, 0x52, 0x69, 0x73, 0x6b, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x70, 0x6f, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x5f,
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x0d, 0x72, 0x70, 0x6f, 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x1a, 0x9d, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x12, 0x3a, 0x0a, 0x17, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x62, 0x61, 0x63, 0x6b,
0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x79, 0x73,
0x12, 0x31, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x74, 0x61, 0x69,
0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41,
0x01, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x44,
0x61, 0x79, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
0x1a, 0xf9, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x28, 0x0a,
0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53,
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x70, 0x61,
0x75, 0x73, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x70, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75,
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x70, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03,
0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x70, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5c,
0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64,
0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
0xe0, 0x41, 0x03, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xbd, 0x03, 0x0a,
0x0c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a,
0x0e, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e,
0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
0x12, 0x61, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65,
0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x14, 0x73,
0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76,
0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x56, 0x6f,
0x6c, 0x75, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c,
0x75, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53,
0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b,
0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x65,
0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c,
0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x39, 0x0a, 0x0b,
0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65,
0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4c, 0x55, 0x53, 0x54,
0x45, 0x52, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c,
0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09,
0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49,
0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56,
0x41, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49,
0x4e, 0x47, 0x10, 0x06, 0x3a, 0x6b, 0xea, 0x41, 0x68, 0x0a, 0x23, 0x67, 0x6b, 0x65, 0x62, 0x61,
0x63, 0x6b, 0x75, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x41,
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c,
0x61, 0x6e, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x6e,
0x7d, 0x22, 0x9c, 0x01, 0x0a, 0x09, 0x52, 0x70, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x31, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x70, 0x6f, 0x5f, 0x6d, 0x69,
0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x70, 0x6f, 0x4d, 0x69, 0x6e, 0x75, 0x74,
0x65, 0x73, 0x12, 0x5c, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65,
0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73,
0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10,
0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73,
0x22, 0xa8, 0x03, 0x0a, 0x0f, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69,
0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79,
0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x16,
0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48,
0x00, 0x52, 0x14, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x64, 0x61, 0x69, 0x6c, 0x79,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x12,
0x5c, 0x0a, 0x0c, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x2e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f,
0x77, 0x2e, 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x48,
0x00, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x73, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x1a, 0x4e, 0x0a,
0x0d, 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d,
0x0a, 0x0c, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x2e, 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x42, 0x03, 0xe0, 0x41,
0x01, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x73, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x42, 0x0c, 0x0a,
0x0a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0xc6, 0x01, 0x0a, 0x1d,
0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x42,
0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x3b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f,
0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x70,
0x62, 0x3b, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x70, 0x62, 0xaa, 0x02, 0x19,
0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x47, 0x6b, 0x65,
0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x47, 0x6b, 0x65, 0x42, 0x61, 0x63, 0x6b,
0x75, 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x47, 0x6b, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70,
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescOnce sync.Once
file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescData = file_google_cloud_gkebackup_v1_backup_plan_proto_rawDesc
)
func file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescGZIP() []byte {
file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescOnce.Do(func() {
file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescData)
})
return file_google_cloud_gkebackup_v1_backup_plan_proto_rawDescData
}
var file_google_cloud_gkebackup_v1_backup_plan_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_google_cloud_gkebackup_v1_backup_plan_proto_goTypes = []interface{}{
(BackupPlan_State)(0), // 0: google.cloud.gkebackup.v1.BackupPlan.State
(*BackupPlan)(nil), // 1: google.cloud.gkebackup.v1.BackupPlan
(*RpoConfig)(nil), // 2: google.cloud.gkebackup.v1.RpoConfig
(*ExclusionWindow)(nil), // 3: google.cloud.gkebackup.v1.ExclusionWindow
(*BackupPlan_RetentionPolicy)(nil), // 4: google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy
(*BackupPlan_Schedule)(nil), // 5: google.cloud.gkebackup.v1.BackupPlan.Schedule
(*BackupPlan_BackupConfig)(nil), // 6: google.cloud.gkebackup.v1.BackupPlan.BackupConfig
nil, // 7: google.cloud.gkebackup.v1.BackupPlan.LabelsEntry
(*ExclusionWindow_DayOfWeekList)(nil), // 8: google.cloud.gkebackup.v1.ExclusionWindow.DayOfWeekList
(*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp
(*timeofday.TimeOfDay)(nil), // 10: google.type.TimeOfDay
(*durationpb.Duration)(nil), // 11: google.protobuf.Duration
(*date.Date)(nil), // 12: google.type.Date
(*Namespaces)(nil), // 13: google.cloud.gkebackup.v1.Namespaces
(*NamespacedNames)(nil), // 14: google.cloud.gkebackup.v1.NamespacedNames
(*EncryptionKey)(nil), // 15: google.cloud.gkebackup.v1.EncryptionKey
(dayofweek.DayOfWeek)(0), // 16: google.type.DayOfWeek
}
var file_google_cloud_gkebackup_v1_backup_plan_proto_depIdxs = []int32{
9, // 0: google.cloud.gkebackup.v1.BackupPlan.create_time:type_name -> google.protobuf.Timestamp
9, // 1: google.cloud.gkebackup.v1.BackupPlan.update_time:type_name -> google.protobuf.Timestamp
4, // 2: google.cloud.gkebackup.v1.BackupPlan.retention_policy:type_name -> google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy
7, // 3: google.cloud.gkebackup.v1.BackupPlan.labels:type_name -> google.cloud.gkebackup.v1.BackupPlan.LabelsEntry
5, // 4: google.cloud.gkebackup.v1.BackupPlan.backup_schedule:type_name -> google.cloud.gkebackup.v1.BackupPlan.Schedule
6, // 5: google.cloud.gkebackup.v1.BackupPlan.backup_config:type_name -> google.cloud.gkebackup.v1.BackupPlan.BackupConfig
0, // 6: google.cloud.gkebackup.v1.BackupPlan.state:type_name -> google.cloud.gkebackup.v1.BackupPlan.State
3, // 7: google.cloud.gkebackup.v1.RpoConfig.exclusion_windows:type_name -> google.cloud.gkebackup.v1.ExclusionWindow
10, // 8: google.cloud.gkebackup.v1.ExclusionWindow.start_time:type_name -> google.type.TimeOfDay
11, // 9: google.cloud.gkebackup.v1.ExclusionWindow.duration:type_name -> google.protobuf.Duration
12, // 10: google.cloud.gkebackup.v1.ExclusionWindow.single_occurrence_date:type_name -> google.type.Date
8, // 11: google.cloud.gkebackup.v1.ExclusionWindow.days_of_week:type_name -> google.cloud.gkebackup.v1.ExclusionWindow.DayOfWeekList
2, // 12: google.cloud.gkebackup.v1.BackupPlan.Schedule.rpo_config:type_name -> google.cloud.gkebackup.v1.RpoConfig
9, // 13: google.cloud.gkebackup.v1.BackupPlan.Schedule.next_scheduled_backup_time:type_name -> google.protobuf.Timestamp
13, // 14: google.cloud.gkebackup.v1.BackupPlan.BackupConfig.selected_namespaces:type_name -> google.cloud.gkebackup.v1.Namespaces
14, // 15: google.cloud.gkebackup.v1.BackupPlan.BackupConfig.selected_applications:type_name -> google.cloud.gkebackup.v1.NamespacedNames
15, // 16: google.cloud.gkebackup.v1.BackupPlan.BackupConfig.encryption_key:type_name -> google.cloud.gkebackup.v1.EncryptionKey
16, // 17: google.cloud.gkebackup.v1.ExclusionWindow.DayOfWeekList.days_of_week:type_name -> google.type.DayOfWeek
18, // [18:18] is the sub-list for method output_type
18, // [18:18] is the sub-list for method input_type
18, // [18:18] is the sub-list for extension type_name
18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
}
func init() { file_google_cloud_gkebackup_v1_backup_plan_proto_init() }
func file_google_cloud_gkebackup_v1_backup_plan_proto_init() {
if File_google_cloud_gkebackup_v1_backup_plan_proto != nil {
return
}
file_google_cloud_gkebackup_v1_common_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupPlan); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RpoConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExclusionWindow); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupPlan_RetentionPolicy); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupPlan_Schedule); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupPlan_BackupConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExclusionWindow_DayOfWeekList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[2].OneofWrappers = []interface{}{
(*ExclusionWindow_SingleOccurrenceDate)(nil),
(*ExclusionWindow_Daily)(nil),
(*ExclusionWindow_DaysOfWeek)(nil),
}
file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes[5].OneofWrappers = []interface{}{
(*BackupPlan_BackupConfig_AllNamespaces)(nil),
(*BackupPlan_BackupConfig_SelectedNamespaces)(nil),
(*BackupPlan_BackupConfig_SelectedApplications)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_gkebackup_v1_backup_plan_proto_rawDesc,
NumEnums: 1,
NumMessages: 8,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_gkebackup_v1_backup_plan_proto_goTypes,
DependencyIndexes: file_google_cloud_gkebackup_v1_backup_plan_proto_depIdxs,
EnumInfos: file_google_cloud_gkebackup_v1_backup_plan_proto_enumTypes,
MessageInfos: file_google_cloud_gkebackup_v1_backup_plan_proto_msgTypes,
}.Build()
File_google_cloud_gkebackup_v1_backup_plan_proto = out.File
file_google_cloud_gkebackup_v1_backup_plan_proto_rawDesc = nil
file_google_cloud_gkebackup_v1_backup_plan_proto_goTypes = nil
file_google_cloud_gkebackup_v1_backup_plan_proto_depIdxs = nil
}