diff --git a/pkg/kubelet/api/v1alpha1/runtime/api.pb.go b/pkg/kubelet/api/v1alpha1/runtime/api.pb.go index 6f824ed884a..755d000bc42 100644 --- a/pkg/kubelet/api/v1alpha1/runtime/api.pb.go +++ b/pkg/kubelet/api/v1alpha1/runtime/api.pb.go @@ -31,6 +31,7 @@ It has these top-level messages: PortMapping Mount NamespaceOption + Int64Value LinuxSandboxSecurityContext LinuxPodSandboxConfig PodSandboxMetadata @@ -47,6 +48,7 @@ It has these top-level messages: LinuxPodSandboxStatus PodSandboxStatus PodSandboxStatusResponse + PodSandboxStateValue PodSandboxFilter ListPodSandboxRequest PodSandbox @@ -69,6 +71,7 @@ It has these top-level messages: StopContainerResponse RemoveContainerRequest RemoveContainerResponse + ContainerStateValue ContainerFilter ListContainersRequest Container @@ -140,22 +143,9 @@ var Protocol_value = map[string]int32{ "UDP": 1, } -func (x Protocol) Enum() *Protocol { - p := new(Protocol) - *p = x - return p -} func (x Protocol) String() string { return proto.EnumName(Protocol_name, int32(x)) } -func (x *Protocol) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Protocol_value, data, "Protocol") - if err != nil { - return err - } - *x = Protocol(value) - return nil -} func (Protocol) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{0} } type PodSandboxState int32 @@ -174,22 +164,9 @@ var PodSandboxState_value = map[string]int32{ "SANDBOX_NOTREADY": 1, } -func (x PodSandboxState) Enum() *PodSandboxState { - p := new(PodSandboxState) - *p = x - return p -} func (x PodSandboxState) String() string { return proto.EnumName(PodSandboxState_name, int32(x)) } -func (x *PodSandboxState) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(PodSandboxState_value, data, "PodSandboxState") - if err != nil { - return err - } - *x = PodSandboxState(value) - return nil -} func (PodSandboxState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{1} } type ContainerState int32 @@ -214,28 +191,14 @@ var ContainerState_value = map[string]int32{ "CONTAINER_UNKNOWN": 3, } -func (x ContainerState) Enum() *ContainerState { - p := new(ContainerState) - *p = x - return p -} func (x ContainerState) String() string { return proto.EnumName(ContainerState_name, int32(x)) } -func (x *ContainerState) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(ContainerState_value, data, "ContainerState") - if err != nil { - return err - } - *x = ContainerState(value) - return nil -} func (ContainerState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{2} } type VersionRequest struct { // Version of the kubelet runtime API. - Version *string `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` - XXX_unrecognized []byte `json:"-"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } func (m *VersionRequest) Reset() { *m = VersionRequest{} } @@ -243,25 +206,17 @@ func (m *VersionRequest) String() string { return proto.CompactTextSt func (*VersionRequest) ProtoMessage() {} func (*VersionRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{0} } -func (m *VersionRequest) GetVersion() string { - if m != nil && m.Version != nil { - return *m.Version - } - return "" -} - type VersionResponse struct { // Version of the kubelet runtime API. - Version *string `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Name of the container runtime. - RuntimeName *string `protobuf:"bytes,2,opt,name=runtime_name,json=runtimeName" json:"runtime_name,omitempty"` + RuntimeName string `protobuf:"bytes,2,opt,name=runtime_name,json=runtimeName,proto3" json:"runtime_name,omitempty"` // Version of the container runtime. The string must be // semver-compatible. - RuntimeVersion *string `protobuf:"bytes,3,opt,name=runtime_version,json=runtimeVersion" json:"runtime_version,omitempty"` + RuntimeVersion string `protobuf:"bytes,3,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"` // API version of the container runtime. The string must be // semver-compatible. - RuntimeApiVersion *string `protobuf:"bytes,4,opt,name=runtime_api_version,json=runtimeApiVersion" json:"runtime_api_version,omitempty"` - XXX_unrecognized []byte `json:"-"` + RuntimeApiVersion string `protobuf:"bytes,4,opt,name=runtime_api_version,json=runtimeApiVersion,proto3" json:"runtime_api_version,omitempty"` } func (m *VersionResponse) Reset() { *m = VersionResponse{} } @@ -269,34 +224,6 @@ func (m *VersionResponse) String() string { return proto.CompactTextS func (*VersionResponse) ProtoMessage() {} func (*VersionResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{1} } -func (m *VersionResponse) GetVersion() string { - if m != nil && m.Version != nil { - return *m.Version - } - return "" -} - -func (m *VersionResponse) GetRuntimeName() string { - if m != nil && m.RuntimeName != nil { - return *m.RuntimeName - } - return "" -} - -func (m *VersionResponse) GetRuntimeVersion() string { - if m != nil && m.RuntimeVersion != nil { - return *m.RuntimeVersion - } - return "" -} - -func (m *VersionResponse) GetRuntimeApiVersion() string { - if m != nil && m.RuntimeApiVersion != nil { - return *m.RuntimeApiVersion - } - return "" -} - // DNSConfig specifies the DNS servers and search domains of a sandbox. type DNSConfig struct { // List of DNS servers of the cluster. @@ -305,8 +232,7 @@ type DNSConfig struct { Searches []string `protobuf:"bytes,2,rep,name=searches" json:"searches,omitempty"` // List of DNS options. See https://linux.die.net/man/5/resolv.conf // for all available options. - Options []string `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` + Options []string `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"` } func (m *DNSConfig) Reset() { *m = DNSConfig{} } @@ -314,38 +240,16 @@ func (m *DNSConfig) String() string { return proto.CompactTextString( func (*DNSConfig) ProtoMessage() {} func (*DNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{2} } -func (m *DNSConfig) GetServers() []string { - if m != nil { - return m.Servers - } - return nil -} - -func (m *DNSConfig) GetSearches() []string { - if m != nil { - return m.Searches - } - return nil -} - -func (m *DNSConfig) GetOptions() []string { - if m != nil { - return m.Options - } - return nil -} - // PortMapping specifies the port mapping configurations of a sandbox. type PortMapping struct { // Protocol of the port mapping. - Protocol *Protocol `protobuf:"varint,1,opt,name=protocol,enum=runtime.Protocol" json:"protocol,omitempty"` - // Port number within the container. - ContainerPort *int32 `protobuf:"varint,2,opt,name=container_port,json=containerPort" json:"container_port,omitempty"` - // Port number on the host. - HostPort *int32 `protobuf:"varint,3,opt,name=host_port,json=hostPort" json:"host_port,omitempty"` + Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=runtime.Protocol" json:"protocol,omitempty"` + // Port number within the container. Default: 0 (not specified). + ContainerPort int32 `protobuf:"varint,2,opt,name=container_port,json=containerPort,proto3" json:"container_port,omitempty"` + // Port number on the host. Default: 0 (not specified). + HostPort int32 `protobuf:"varint,3,opt,name=host_port,json=hostPort,proto3" json:"host_port,omitempty"` // Host IP. - HostIp *string `protobuf:"bytes,4,opt,name=host_ip,json=hostIp" json:"host_ip,omitempty"` - XXX_unrecognized []byte `json:"-"` + HostIp string `protobuf:"bytes,4,opt,name=host_ip,json=hostIp,proto3" json:"host_ip,omitempty"` } func (m *PortMapping) Reset() { *m = PortMapping{} } @@ -353,45 +257,16 @@ func (m *PortMapping) String() string { return proto.CompactTextStrin func (*PortMapping) ProtoMessage() {} func (*PortMapping) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{3} } -func (m *PortMapping) GetProtocol() Protocol { - if m != nil && m.Protocol != nil { - return *m.Protocol - } - return Protocol_TCP -} - -func (m *PortMapping) GetContainerPort() int32 { - if m != nil && m.ContainerPort != nil { - return *m.ContainerPort - } - return 0 -} - -func (m *PortMapping) GetHostPort() int32 { - if m != nil && m.HostPort != nil { - return *m.HostPort - } - return 0 -} - -func (m *PortMapping) GetHostIp() string { - if m != nil && m.HostIp != nil { - return *m.HostIp - } - return "" -} - // Mount specifies a host volume to mount into a container. type Mount struct { // Path of the mount within the container. - ContainerPath *string `protobuf:"bytes,1,opt,name=container_path,json=containerPath" json:"container_path,omitempty"` + ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"` // Path of the mount on the host. - HostPath *string `protobuf:"bytes,2,opt,name=host_path,json=hostPath" json:"host_path,omitempty"` + HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` // If set, the mount is read-only. - Readonly *bool `protobuf:"varint,3,opt,name=readonly" json:"readonly,omitempty"` + Readonly bool `protobuf:"varint,3,opt,name=readonly,proto3" json:"readonly,omitempty"` // If set, the mount needs SELinux relabeling. - SelinuxRelabel *bool `protobuf:"varint,4,opt,name=selinux_relabel,json=selinuxRelabel" json:"selinux_relabel,omitempty"` - XXX_unrecognized []byte `json:"-"` + SelinuxRelabel bool `protobuf:"varint,4,opt,name=selinux_relabel,json=selinuxRelabel,proto3" json:"selinux_relabel,omitempty"` } func (m *Mount) Reset() { *m = Mount{} } @@ -399,43 +274,14 @@ func (m *Mount) String() string { return proto.CompactTextString(m) } func (*Mount) ProtoMessage() {} func (*Mount) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{4} } -func (m *Mount) GetContainerPath() string { - if m != nil && m.ContainerPath != nil { - return *m.ContainerPath - } - return "" -} - -func (m *Mount) GetHostPath() string { - if m != nil && m.HostPath != nil { - return *m.HostPath - } - return "" -} - -func (m *Mount) GetReadonly() bool { - if m != nil && m.Readonly != nil { - return *m.Readonly - } - return false -} - -func (m *Mount) GetSelinuxRelabel() bool { - if m != nil && m.SelinuxRelabel != nil { - return *m.SelinuxRelabel - } - return false -} - // NamespaceOption provides options for Linux namespaces. type NamespaceOption struct { // If set, use the host's network namespace. - HostNetwork *bool `protobuf:"varint,1,opt,name=host_network,json=hostNetwork" json:"host_network,omitempty"` + HostNetwork bool `protobuf:"varint,1,opt,name=host_network,json=hostNetwork,proto3" json:"host_network,omitempty"` // If set, use the host's PID namespace. - HostPid *bool `protobuf:"varint,2,opt,name=host_pid,json=hostPid" json:"host_pid,omitempty"` + HostPid bool `protobuf:"varint,2,opt,name=host_pid,json=hostPid,proto3" json:"host_pid,omitempty"` // If set, use the host's IPC namespace. - HostIpc *bool `protobuf:"varint,3,opt,name=host_ipc,json=hostIpc" json:"host_ipc,omitempty"` - XXX_unrecognized []byte `json:"-"` + HostIpc bool `protobuf:"varint,3,opt,name=host_ipc,json=hostIpc,proto3" json:"host_ipc,omitempty"` } func (m *NamespaceOption) Reset() { *m = NamespaceOption{} } @@ -443,26 +289,16 @@ func (m *NamespaceOption) String() string { return proto.CompactTextS func (*NamespaceOption) ProtoMessage() {} func (*NamespaceOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} } -func (m *NamespaceOption) GetHostNetwork() bool { - if m != nil && m.HostNetwork != nil { - return *m.HostNetwork - } - return false +// Int64Value is the wrapper of int64. +type Int64Value struct { + // The value. + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } -func (m *NamespaceOption) GetHostPid() bool { - if m != nil && m.HostPid != nil { - return *m.HostPid - } - return false -} - -func (m *NamespaceOption) GetHostIpc() bool { - if m != nil && m.HostIpc != nil { - return *m.HostIpc - } - return false -} +func (m *Int64Value) Reset() { *m = Int64Value{} } +func (m *Int64Value) String() string { return proto.CompactTextString(m) } +func (*Int64Value) ProtoMessage() {} +func (*Int64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} } // LinuxSandboxSecurityContext holds linux security configuration that will be // applied to a sandbox. Note that: @@ -476,9 +312,9 @@ type LinuxSandboxSecurityContext struct { // Optional SELinux context to be applied. SelinuxOptions *SELinuxOption `protobuf:"bytes,2,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"` // UID to run sandbox processes as, when applicable. - RunAsUser *int64 `protobuf:"varint,3,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"` + RunAsUser *Int64Value `protobuf:"bytes,3,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"` // If set, the root filesystem of the sandbox is read-only. - ReadonlyRootfs *bool `protobuf:"varint,4,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"` + ReadonlyRootfs bool `protobuf:"varint,4,opt,name=readonly_rootfs,json=readonlyRootfs,proto3" json:"readonly_rootfs,omitempty"` // List of groups applied to the first process run in the sandbox, in // addition to the sandbox's primary GID. SupplementalGroups []int64 `protobuf:"varint,5,rep,name=supplemental_groups,json=supplementalGroups" json:"supplemental_groups,omitempty"` @@ -487,14 +323,13 @@ type LinuxSandboxSecurityContext struct { // MUST be true. // This allows a sandbox to take additional security precautions if no // privileged containers are expected to be run. - Privileged *bool `protobuf:"varint,6,opt,name=privileged" json:"privileged,omitempty"` - XXX_unrecognized []byte `json:"-"` + Privileged bool `protobuf:"varint,6,opt,name=privileged,proto3" json:"privileged,omitempty"` } func (m *LinuxSandboxSecurityContext) Reset() { *m = LinuxSandboxSecurityContext{} } func (m *LinuxSandboxSecurityContext) String() string { return proto.CompactTextString(m) } func (*LinuxSandboxSecurityContext) ProtoMessage() {} -func (*LinuxSandboxSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} } +func (*LinuxSandboxSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} } func (m *LinuxSandboxSecurityContext) GetNamespaceOptions() *NamespaceOption { if m != nil { @@ -510,57 +345,28 @@ func (m *LinuxSandboxSecurityContext) GetSelinuxOptions() *SELinuxOption { return nil } -func (m *LinuxSandboxSecurityContext) GetRunAsUser() int64 { - if m != nil && m.RunAsUser != nil { - return *m.RunAsUser - } - return 0 -} - -func (m *LinuxSandboxSecurityContext) GetReadonlyRootfs() bool { - if m != nil && m.ReadonlyRootfs != nil { - return *m.ReadonlyRootfs - } - return false -} - -func (m *LinuxSandboxSecurityContext) GetSupplementalGroups() []int64 { +func (m *LinuxSandboxSecurityContext) GetRunAsUser() *Int64Value { if m != nil { - return m.SupplementalGroups + return m.RunAsUser } return nil } -func (m *LinuxSandboxSecurityContext) GetPrivileged() bool { - if m != nil && m.Privileged != nil { - return *m.Privileged - } - return false -} - // LinuxPodSandboxConfig holds platform-specific configurations for Linux // host platforms and Linux-based containers. type LinuxPodSandboxConfig struct { // Parent cgroup of the PodSandbox. // The cgroupfs style syntax will be used, but the container runtime can // convert it to systemd semantics if needed. - CgroupParent *string `protobuf:"bytes,1,opt,name=cgroup_parent,json=cgroupParent" json:"cgroup_parent,omitempty"` + CgroupParent string `protobuf:"bytes,1,opt,name=cgroup_parent,json=cgroupParent,proto3" json:"cgroup_parent,omitempty"` // LinuxSandboxSecurityContext holds sandbox security attributes. - SecurityContext *LinuxSandboxSecurityContext `protobuf:"bytes,2,opt,name=security_context,json=securityContext" json:"security_context,omitempty"` - XXX_unrecognized []byte `json:"-"` + SecurityContext *LinuxSandboxSecurityContext `protobuf:"bytes,2,opt,name=security_context,json=securityContext" json:"security_context,omitempty"` } func (m *LinuxPodSandboxConfig) Reset() { *m = LinuxPodSandboxConfig{} } func (m *LinuxPodSandboxConfig) String() string { return proto.CompactTextString(m) } func (*LinuxPodSandboxConfig) ProtoMessage() {} -func (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} } - -func (m *LinuxPodSandboxConfig) GetCgroupParent() string { - if m != nil && m.CgroupParent != nil { - return *m.CgroupParent - } - return "" -} +func (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} } func (m *LinuxPodSandboxConfig) GetSecurityContext() *LinuxSandboxSecurityContext { if m != nil { @@ -575,48 +381,19 @@ func (m *LinuxPodSandboxConfig) GetSecurityContext() *LinuxSandboxSecurityContex // the runtime can construct a unique PodSandboxName based on the metadata. type PodSandboxMetadata struct { // Pod name of the sandbox. Same as the pod name in the PodSpec. - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Pod UID of the sandbox. Same as the pod UID in the PodSpec. - Uid *string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` // Pod namespace of the sandbox. Same as the pod namespace in the PodSpec. - Namespace *string `protobuf:"bytes,3,opt,name=namespace" json:"namespace,omitempty"` - // Attempt number of creating the sandbox. - Attempt *uint32 `protobuf:"varint,4,opt,name=attempt" json:"attempt,omitempty"` - XXX_unrecognized []byte `json:"-"` + Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` + // Attempt number of creating the sandbox. Default: 0. + Attempt uint32 `protobuf:"varint,4,opt,name=attempt,proto3" json:"attempt,omitempty"` } func (m *PodSandboxMetadata) Reset() { *m = PodSandboxMetadata{} } func (m *PodSandboxMetadata) String() string { return proto.CompactTextString(m) } func (*PodSandboxMetadata) ProtoMessage() {} -func (*PodSandboxMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} } - -func (m *PodSandboxMetadata) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *PodSandboxMetadata) GetUid() string { - if m != nil && m.Uid != nil { - return *m.Uid - } - return "" -} - -func (m *PodSandboxMetadata) GetNamespace() string { - if m != nil && m.Namespace != nil { - return *m.Namespace - } - return "" -} - -func (m *PodSandboxMetadata) GetAttempt() uint32 { - if m != nil && m.Attempt != nil { - return *m.Attempt - } - return 0 -} +func (*PodSandboxMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{9} } // PodSandboxConfig holds all the required and optional fields for creating a // sandbox. @@ -627,7 +404,7 @@ type PodSandboxConfig struct { // as by constructing a readable name. Metadata *PodSandboxMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"` // Hostname of the sandbox. - Hostname *string `protobuf:"bytes,2,opt,name=hostname" json:"hostname,omitempty"` + Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` // Path to the directory on the host in which container log files are // stored. // By default the log of a container going into the LogDirectory will be @@ -643,13 +420,13 @@ type PodSandboxConfig struct { // container logs are under active discussion in // https://issues.k8s.io/24677. There *may* be future change of direction // for logging as the discussion carries on. - LogDirectory *string `protobuf:"bytes,3,opt,name=log_directory,json=logDirectory" json:"log_directory,omitempty"` + LogDirectory string `protobuf:"bytes,3,opt,name=log_directory,json=logDirectory,proto3" json:"log_directory,omitempty"` // DNS config for the sandbox. DnsConfig *DNSConfig `protobuf:"bytes,4,opt,name=dns_config,json=dnsConfig" json:"dns_config,omitempty"` // Port mappings for the sandbox. PortMappings []*PortMapping `protobuf:"bytes,5,rep,name=port_mappings,json=portMappings" json:"port_mappings,omitempty"` // Key-value pairs that may be used to scope and select individual resources. - Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map that may be set by the kubelet to store and // retrieve arbitrary metadata. This will include any annotations set on a // pod through the Kubernetes API. @@ -706,16 +483,15 @@ type PodSandboxConfig struct { // description: list of unsafe sysctls which are set for the sandbox. // value: comma separated list of sysctl_name=value key-value pairs. // - Annotations map[string]string `protobuf:"bytes,7,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Annotations map[string]string `protobuf:"bytes,7,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional configurations specific to Linux hosts. - Linux *LinuxPodSandboxConfig `protobuf:"bytes,8,opt,name=linux" json:"linux,omitempty"` - XXX_unrecognized []byte `json:"-"` + Linux *LinuxPodSandboxConfig `protobuf:"bytes,8,opt,name=linux" json:"linux,omitempty"` } func (m *PodSandboxConfig) Reset() { *m = PodSandboxConfig{} } func (m *PodSandboxConfig) String() string { return proto.CompactTextString(m) } func (*PodSandboxConfig) ProtoMessage() {} -func (*PodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{9} } +func (*PodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{10} } func (m *PodSandboxConfig) GetMetadata() *PodSandboxMetadata { if m != nil { @@ -724,20 +500,6 @@ func (m *PodSandboxConfig) GetMetadata() *PodSandboxMetadata { return nil } -func (m *PodSandboxConfig) GetHostname() string { - if m != nil && m.Hostname != nil { - return *m.Hostname - } - return "" -} - -func (m *PodSandboxConfig) GetLogDirectory() string { - if m != nil && m.LogDirectory != nil { - return *m.LogDirectory - } - return "" -} - func (m *PodSandboxConfig) GetDnsConfig() *DNSConfig { if m != nil { return m.DnsConfig @@ -775,14 +537,13 @@ func (m *PodSandboxConfig) GetLinux() *LinuxPodSandboxConfig { type RunPodSandboxRequest struct { // Configuration for creating a PodSandbox. - Config *PodSandboxConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"` - XXX_unrecognized []byte `json:"-"` + Config *PodSandboxConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"` } func (m *RunPodSandboxRequest) Reset() { *m = RunPodSandboxRequest{} } func (m *RunPodSandboxRequest) String() string { return proto.CompactTextString(m) } func (*RunPodSandboxRequest) ProtoMessage() {} -func (*RunPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{10} } +func (*RunPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{11} } func (m *RunPodSandboxRequest) GetConfig() *PodSandboxConfig { if m != nil { @@ -793,133 +554,83 @@ func (m *RunPodSandboxRequest) GetConfig() *PodSandboxConfig { type RunPodSandboxResponse struct { // ID of the PodSandbox to run. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` } func (m *RunPodSandboxResponse) Reset() { *m = RunPodSandboxResponse{} } func (m *RunPodSandboxResponse) String() string { return proto.CompactTextString(m) } func (*RunPodSandboxResponse) ProtoMessage() {} -func (*RunPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{11} } - -func (m *RunPodSandboxResponse) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*RunPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{12} } type StopPodSandboxRequest struct { // ID of the PodSandbox to stop. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` } func (m *StopPodSandboxRequest) Reset() { *m = StopPodSandboxRequest{} } func (m *StopPodSandboxRequest) String() string { return proto.CompactTextString(m) } func (*StopPodSandboxRequest) ProtoMessage() {} -func (*StopPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{12} } - -func (m *StopPodSandboxRequest) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*StopPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{13} } type StopPodSandboxResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *StopPodSandboxResponse) Reset() { *m = StopPodSandboxResponse{} } func (m *StopPodSandboxResponse) String() string { return proto.CompactTextString(m) } func (*StopPodSandboxResponse) ProtoMessage() {} -func (*StopPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{13} } +func (*StopPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{14} } type RemovePodSandboxRequest struct { // ID of the PodSandbox to remove. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` } func (m *RemovePodSandboxRequest) Reset() { *m = RemovePodSandboxRequest{} } func (m *RemovePodSandboxRequest) String() string { return proto.CompactTextString(m) } func (*RemovePodSandboxRequest) ProtoMessage() {} -func (*RemovePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{14} } - -func (m *RemovePodSandboxRequest) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*RemovePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{15} } type RemovePodSandboxResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *RemovePodSandboxResponse) Reset() { *m = RemovePodSandboxResponse{} } func (m *RemovePodSandboxResponse) String() string { return proto.CompactTextString(m) } func (*RemovePodSandboxResponse) ProtoMessage() {} -func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{15} } +func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{16} } type PodSandboxStatusRequest struct { // ID of the PodSandbox for which to retrieve status. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` } func (m *PodSandboxStatusRequest) Reset() { *m = PodSandboxStatusRequest{} } func (m *PodSandboxStatusRequest) String() string { return proto.CompactTextString(m) } func (*PodSandboxStatusRequest) ProtoMessage() {} -func (*PodSandboxStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{16} } - -func (m *PodSandboxStatusRequest) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*PodSandboxStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{17} } // PodSandboxNetworkStatus is the status of the network for a PodSandbox. type PodSandboxNetworkStatus struct { // IP address of the PodSandbox. - Ip *string `protobuf:"bytes,1,opt,name=ip" json:"ip,omitempty"` - XXX_unrecognized []byte `json:"-"` + Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"` } func (m *PodSandboxNetworkStatus) Reset() { *m = PodSandboxNetworkStatus{} } func (m *PodSandboxNetworkStatus) String() string { return proto.CompactTextString(m) } func (*PodSandboxNetworkStatus) ProtoMessage() {} -func (*PodSandboxNetworkStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{17} } - -func (m *PodSandboxNetworkStatus) GetIp() string { - if m != nil && m.Ip != nil { - return *m.Ip - } - return "" -} +func (*PodSandboxNetworkStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{18} } // Namespace contains paths to the namespaces. type Namespace struct { // Path to the network namespace. - Network *string `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"` + Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // Namespace options for Linux namespaces. - Options *NamespaceOption `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` + Options *NamespaceOption `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` } func (m *Namespace) Reset() { *m = Namespace{} } func (m *Namespace) String() string { return proto.CompactTextString(m) } func (*Namespace) ProtoMessage() {} -func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{18} } - -func (m *Namespace) GetNetwork() string { - if m != nil && m.Network != nil { - return *m.Network - } - return "" -} +func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{19} } func (m *Namespace) GetOptions() *NamespaceOption { if m != nil { @@ -931,14 +642,13 @@ func (m *Namespace) GetOptions() *NamespaceOption { // LinuxSandboxStatus contains status specific to Linux sandboxes. type LinuxPodSandboxStatus struct { // Paths to the sandbox's namespaces. - Namespaces *Namespace `protobuf:"bytes,1,opt,name=namespaces" json:"namespaces,omitempty"` - XXX_unrecognized []byte `json:"-"` + Namespaces *Namespace `protobuf:"bytes,1,opt,name=namespaces" json:"namespaces,omitempty"` } func (m *LinuxPodSandboxStatus) Reset() { *m = LinuxPodSandboxStatus{} } func (m *LinuxPodSandboxStatus) String() string { return proto.CompactTextString(m) } func (*LinuxPodSandboxStatus) ProtoMessage() {} -func (*LinuxPodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{19} } +func (*LinuxPodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{20} } func (m *LinuxPodSandboxStatus) GetNamespaces() *Namespace { if m != nil { @@ -950,38 +660,30 @@ func (m *LinuxPodSandboxStatus) GetNamespaces() *Namespace { // PodSandboxStatus contains the status of the PodSandbox. type PodSandboxStatus struct { // ID of the sandbox. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Metadata of the sandbox. Metadata *PodSandboxMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // State of the sandbox. - State *PodSandboxState `protobuf:"varint,3,opt,name=state,enum=runtime.PodSandboxState" json:"state,omitempty"` - // Creation timestamp of the sandbox in nanoseconds. - CreatedAt *int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` + // Creation timestamp of the sandbox in nanoseconds. Must be > 0. + CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Network contains network status if network is handled by the runtime. Network *PodSandboxNetworkStatus `protobuf:"bytes,5,opt,name=network" json:"network,omitempty"` // Linux-specific status to a pod sandbox. Linux *LinuxPodSandboxStatus `protobuf:"bytes,6,opt,name=linux" json:"linux,omitempty"` // Labels are key-value pairs that may be used to scope and select individual resources. - Labels map[string]string `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map holding arbitrary metadata. // Annotations MUST NOT be altered by the runtime; the value of this field // MUST be identical to that of the corresponding PodSandboxConfig used to // instantiate the pod sandbox this status represents. - Annotations map[string]string `protobuf:"bytes,8,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` + Annotations map[string]string `protobuf:"bytes,8,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *PodSandboxStatus) Reset() { *m = PodSandboxStatus{} } func (m *PodSandboxStatus) String() string { return proto.CompactTextString(m) } func (*PodSandboxStatus) ProtoMessage() {} -func (*PodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{20} } - -func (m *PodSandboxStatus) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" -} +func (*PodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{21} } func (m *PodSandboxStatus) GetMetadata() *PodSandboxMetadata { if m != nil { @@ -990,20 +692,6 @@ func (m *PodSandboxStatus) GetMetadata() *PodSandboxMetadata { return nil } -func (m *PodSandboxStatus) GetState() PodSandboxState { - if m != nil && m.State != nil { - return *m.State - } - return PodSandboxState_SANDBOX_READY -} - -func (m *PodSandboxStatus) GetCreatedAt() int64 { - if m != nil && m.CreatedAt != nil { - return *m.CreatedAt - } - return 0 -} - func (m *PodSandboxStatus) GetNetwork() *PodSandboxNetworkStatus { if m != nil { return m.Network @@ -1034,14 +722,13 @@ func (m *PodSandboxStatus) GetAnnotations() map[string]string { type PodSandboxStatusResponse struct { // Status of the PodSandbox. - Status *PodSandboxStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` - XXX_unrecognized []byte `json:"-"` + Status *PodSandboxStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` } func (m *PodSandboxStatusResponse) Reset() { *m = PodSandboxStatusResponse{} } func (m *PodSandboxStatusResponse) String() string { return proto.CompactTextString(m) } func (*PodSandboxStatusResponse) ProtoMessage() {} -func (*PodSandboxStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{21} } +func (*PodSandboxStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{22} } func (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus { if m != nil { @@ -1050,37 +737,40 @@ func (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus { return nil } +// PodSandboxStateValue is the wrapper of PodSandboxState. +type PodSandboxStateValue struct { + // State of the sandbox. + State PodSandboxState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` +} + +func (m *PodSandboxStateValue) Reset() { *m = PodSandboxStateValue{} } +func (m *PodSandboxStateValue) String() string { return proto.CompactTextString(m) } +func (*PodSandboxStateValue) ProtoMessage() {} +func (*PodSandboxStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{23} } + // PodSandboxFilter is used to filter a list of PodSandboxes. // All those fields are combined with 'AND' type PodSandboxFilter struct { // ID of the sandbox. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // State of the sandbox. - State *PodSandboxState `protobuf:"varint,2,opt,name=state,enum=runtime.PodSandboxState" json:"state,omitempty"` + State *PodSandboxStateValue `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"` // LabelSelector to select matches. // Only api.MatchLabels is supported for now and the requirements // are ANDed. MatchExpressions is not supported yet. - LabelSelector map[string]string `protobuf:"bytes,3,rep,name=label_selector,json=labelSelector" json:"label_selector,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` + LabelSelector map[string]string `protobuf:"bytes,3,rep,name=label_selector,json=labelSelector" json:"label_selector,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *PodSandboxFilter) Reset() { *m = PodSandboxFilter{} } func (m *PodSandboxFilter) String() string { return proto.CompactTextString(m) } func (*PodSandboxFilter) ProtoMessage() {} -func (*PodSandboxFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{22} } +func (*PodSandboxFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{24} } -func (m *PodSandboxFilter) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +func (m *PodSandboxFilter) GetState() *PodSandboxStateValue { + if m != nil { + return m.State } - return "" -} - -func (m *PodSandboxFilter) GetState() PodSandboxState { - if m != nil && m.State != nil { - return *m.State - } - return PodSandboxState_SANDBOX_READY + return nil } func (m *PodSandboxFilter) GetLabelSelector() map[string]string { @@ -1092,14 +782,13 @@ func (m *PodSandboxFilter) GetLabelSelector() map[string]string { type ListPodSandboxRequest struct { // PodSandboxFilter to filter a list of PodSandboxes. - Filter *PodSandboxFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` - XXX_unrecognized []byte `json:"-"` + Filter *PodSandboxFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` } func (m *ListPodSandboxRequest) Reset() { *m = ListPodSandboxRequest{} } func (m *ListPodSandboxRequest) String() string { return proto.CompactTextString(m) } func (*ListPodSandboxRequest) ProtoMessage() {} -func (*ListPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{23} } +func (*ListPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{25} } func (m *ListPodSandboxRequest) GetFilter() *PodSandboxFilter { if m != nil { @@ -1111,34 +800,26 @@ func (m *ListPodSandboxRequest) GetFilter() *PodSandboxFilter { // PodSandbox contains minimal information about a sandbox. type PodSandbox struct { // ID of the PodSandbox. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Metadata of the PodSandbox. Metadata *PodSandboxMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // State of the PodSandbox. - State *PodSandboxState `protobuf:"varint,3,opt,name=state,enum=runtime.PodSandboxState" json:"state,omitempty"` - // Creation timestamps of the PodSandbox in nanoseconds. - CreatedAt *int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` + // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0. + CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Labels of the PodSandbox. - Labels map[string]string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map holding arbitrary metadata. // Annotations MUST NOT be altered by the runtime; the value of this field // MUST be identical to that of the corresponding PodSandboxConfig used to // instantiate this PodSandbox. - Annotations map[string]string `protobuf:"bytes,6,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` + Annotations map[string]string `protobuf:"bytes,6,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *PodSandbox) Reset() { *m = PodSandbox{} } func (m *PodSandbox) String() string { return proto.CompactTextString(m) } func (*PodSandbox) ProtoMessage() {} -func (*PodSandbox) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{24} } - -func (m *PodSandbox) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" -} +func (*PodSandbox) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{26} } func (m *PodSandbox) GetMetadata() *PodSandboxMetadata { if m != nil { @@ -1147,20 +828,6 @@ func (m *PodSandbox) GetMetadata() *PodSandboxMetadata { return nil } -func (m *PodSandbox) GetState() PodSandboxState { - if m != nil && m.State != nil { - return *m.State - } - return PodSandboxState_SANDBOX_READY -} - -func (m *PodSandbox) GetCreatedAt() int64 { - if m != nil && m.CreatedAt != nil { - return *m.CreatedAt - } - return 0 -} - func (m *PodSandbox) GetLabels() map[string]string { if m != nil { return m.Labels @@ -1177,14 +844,13 @@ func (m *PodSandbox) GetAnnotations() map[string]string { type ListPodSandboxResponse struct { // List of PodSandboxes. - Items []*PodSandbox `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"` - XXX_unrecognized []byte `json:"-"` + Items []*PodSandbox `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"` } func (m *ListPodSandboxResponse) Reset() { *m = ListPodSandboxResponse{} } func (m *ListPodSandboxResponse) String() string { return proto.CompactTextString(m) } func (*ListPodSandboxResponse) ProtoMessage() {} -func (*ListPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{25} } +func (*ListPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{27} } func (m *ListPodSandboxResponse) GetItems() []*PodSandbox { if m != nil { @@ -1197,146 +863,58 @@ func (m *ListPodSandboxResponse) GetItems() []*PodSandbox { // value of a Container's Image field (e.g. imageID or imageDigest), but in the // future it will include more detailed information about the different image types. type ImageSpec struct { - Image *string `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` - XXX_unrecognized []byte `json:"-"` + Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` } func (m *ImageSpec) Reset() { *m = ImageSpec{} } func (m *ImageSpec) String() string { return proto.CompactTextString(m) } func (*ImageSpec) ProtoMessage() {} -func (*ImageSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{26} } - -func (m *ImageSpec) GetImage() string { - if m != nil && m.Image != nil { - return *m.Image - } - return "" -} +func (*ImageSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{28} } type KeyValue struct { - Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - XXX_unrecognized []byte `json:"-"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (m *KeyValue) Reset() { *m = KeyValue{} } func (m *KeyValue) String() string { return proto.CompactTextString(m) } func (*KeyValue) ProtoMessage() {} -func (*KeyValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{27} } - -func (m *KeyValue) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *KeyValue) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} +func (*KeyValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{29} } // LinuxContainerResources specifies Linux specific configuration for // resources. // TODO: Consider using Resources from opencontainers/runtime-spec/specs-go // directly. type LinuxContainerResources struct { - // CPU CFS (Completely Fair Scheduler) period. - CpuPeriod *int64 `protobuf:"varint,1,opt,name=cpu_period,json=cpuPeriod" json:"cpu_period,omitempty"` - // CPU CFS (Completely Fair Scheduler) quota. - CpuQuota *int64 `protobuf:"varint,2,opt,name=cpu_quota,json=cpuQuota" json:"cpu_quota,omitempty"` - // CPU shares (relative weight vs. other containers). - CpuShares *int64 `protobuf:"varint,3,opt,name=cpu_shares,json=cpuShares" json:"cpu_shares,omitempty"` - // Memory limit in bytes. - MemoryLimitInBytes *int64 `protobuf:"varint,4,opt,name=memory_limit_in_bytes,json=memoryLimitInBytes" json:"memory_limit_in_bytes,omitempty"` - // OOMScoreAdj adjusts the oom-killer score. - OomScoreAdj *int64 `protobuf:"varint,5,opt,name=oom_score_adj,json=oomScoreAdj" json:"oom_score_adj,omitempty"` - XXX_unrecognized []byte `json:"-"` + // CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified). + CpuPeriod int64 `protobuf:"varint,1,opt,name=cpu_period,json=cpuPeriod,proto3" json:"cpu_period,omitempty"` + // CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified). + CpuQuota int64 `protobuf:"varint,2,opt,name=cpu_quota,json=cpuQuota,proto3" json:"cpu_quota,omitempty"` + // CPU shares (relative weight vs. other containers). Default: 0 (not specified). + CpuShares int64 `protobuf:"varint,3,opt,name=cpu_shares,json=cpuShares,proto3" json:"cpu_shares,omitempty"` + // Memory limit in bytes. Default: 0 (not specified). + MemoryLimitInBytes int64 `protobuf:"varint,4,opt,name=memory_limit_in_bytes,json=memoryLimitInBytes,proto3" json:"memory_limit_in_bytes,omitempty"` + // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). + OomScoreAdj int64 `protobuf:"varint,5,opt,name=oom_score_adj,json=oomScoreAdj,proto3" json:"oom_score_adj,omitempty"` } func (m *LinuxContainerResources) Reset() { *m = LinuxContainerResources{} } func (m *LinuxContainerResources) String() string { return proto.CompactTextString(m) } func (*LinuxContainerResources) ProtoMessage() {} -func (*LinuxContainerResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{28} } - -func (m *LinuxContainerResources) GetCpuPeriod() int64 { - if m != nil && m.CpuPeriod != nil { - return *m.CpuPeriod - } - return 0 -} - -func (m *LinuxContainerResources) GetCpuQuota() int64 { - if m != nil && m.CpuQuota != nil { - return *m.CpuQuota - } - return 0 -} - -func (m *LinuxContainerResources) GetCpuShares() int64 { - if m != nil && m.CpuShares != nil { - return *m.CpuShares - } - return 0 -} - -func (m *LinuxContainerResources) GetMemoryLimitInBytes() int64 { - if m != nil && m.MemoryLimitInBytes != nil { - return *m.MemoryLimitInBytes - } - return 0 -} - -func (m *LinuxContainerResources) GetOomScoreAdj() int64 { - if m != nil && m.OomScoreAdj != nil { - return *m.OomScoreAdj - } - return 0 -} +func (*LinuxContainerResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{30} } // SELinuxOption are the labels to be applied to the container. type SELinuxOption struct { - User *string `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` - Role *string `protobuf:"bytes,2,opt,name=role" json:"role,omitempty"` - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` - Level *string `protobuf:"bytes,4,opt,name=level" json:"level,omitempty"` - XXX_unrecognized []byte `json:"-"` + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Level string `protobuf:"bytes,4,opt,name=level,proto3" json:"level,omitempty"` } func (m *SELinuxOption) Reset() { *m = SELinuxOption{} } func (m *SELinuxOption) String() string { return proto.CompactTextString(m) } func (*SELinuxOption) ProtoMessage() {} -func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{29} } - -func (m *SELinuxOption) GetUser() string { - if m != nil && m.User != nil { - return *m.User - } - return "" -} - -func (m *SELinuxOption) GetRole() string { - if m != nil && m.Role != nil { - return *m.Role - } - return "" -} - -func (m *SELinuxOption) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -func (m *SELinuxOption) GetLevel() string { - if m != nil && m.Level != nil { - return *m.Level - } - return "" -} +func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{31} } // Capability contains the container capabilities to add or drop type Capability struct { @@ -1344,27 +922,12 @@ type Capability struct { AddCapabilities []string `protobuf:"bytes,1,rep,name=add_capabilities,json=addCapabilities" json:"add_capabilities,omitempty"` // List of capabilities to drop. DropCapabilities []string `protobuf:"bytes,2,rep,name=drop_capabilities,json=dropCapabilities" json:"drop_capabilities,omitempty"` - XXX_unrecognized []byte `json:"-"` } func (m *Capability) Reset() { *m = Capability{} } func (m *Capability) String() string { return proto.CompactTextString(m) } func (*Capability) ProtoMessage() {} -func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{30} } - -func (m *Capability) GetAddCapabilities() []string { - if m != nil { - return m.AddCapabilities - } - return nil -} - -func (m *Capability) GetDropCapabilities() []string { - if m != nil { - return m.DropCapabilities - } - return nil -} +func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} } // LinuxContainerSecurityContext holds linux security configuration that will be applied to a container. type LinuxContainerSecurityContext struct { @@ -1387,7 +950,7 @@ type LinuxContainerSecurityContext struct { // 6. The device cgroup does not restrict access to any devices. // 7. All devices from the host's /dev are available within the container. // 8. SELinux restrictions are not applied (e.g. label=disabled). - Privileged *bool `protobuf:"varint,2,opt,name=privileged" json:"privileged,omitempty"` + Privileged bool `protobuf:"varint,2,opt,name=privileged,proto3" json:"privileged,omitempty"` // Configurations for the container's namespaces. // Only used if the container uses namespace for isolation. NamespaceOptions *NamespaceOption `protobuf:"bytes,3,opt,name=namespace_options,json=namespaceOptions" json:"namespace_options,omitempty"` @@ -1395,24 +958,23 @@ type LinuxContainerSecurityContext struct { SelinuxOptions *SELinuxOption `protobuf:"bytes,4,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"` // UID to run the container process as. Only one of run_as_user and // run_as_username can be specified at a time. - RunAsUser *int64 `protobuf:"varint,5,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"` + RunAsUser *Int64Value `protobuf:"bytes,5,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"` // User name to run the container process as. If specified, the user MUST // exist in the container image (i.e. in the /etc/passwd inside the image), // and be resolved there by the runtime; otherwise, the runtime MUST error. - RunAsUsername *string `protobuf:"bytes,6,opt,name=run_as_username,json=runAsUsername" json:"run_as_username,omitempty"` + RunAsUsername string `protobuf:"bytes,6,opt,name=run_as_username,json=runAsUsername,proto3" json:"run_as_username,omitempty"` // If set, the root filesystem of the container is read-only. - ReadonlyRootfs *bool `protobuf:"varint,7,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"` + ReadonlyRootfs bool `protobuf:"varint,7,opt,name=readonly_rootfs,json=readonlyRootfs,proto3" json:"readonly_rootfs,omitempty"` // List of groups applied to the first process run in the container, in // addition to the container's primary GID. SupplementalGroups []int64 `protobuf:"varint,8,rep,name=supplemental_groups,json=supplementalGroups" json:"supplemental_groups,omitempty"` - XXX_unrecognized []byte `json:"-"` } func (m *LinuxContainerSecurityContext) Reset() { *m = LinuxContainerSecurityContext{} } func (m *LinuxContainerSecurityContext) String() string { return proto.CompactTextString(m) } func (*LinuxContainerSecurityContext) ProtoMessage() {} func (*LinuxContainerSecurityContext) Descriptor() ([]byte, []int) { - return fileDescriptorApi, []int{31} + return fileDescriptorApi, []int{33} } func (m *LinuxContainerSecurityContext) GetCapabilities() *Capability { @@ -1422,13 +984,6 @@ func (m *LinuxContainerSecurityContext) GetCapabilities() *Capability { return nil } -func (m *LinuxContainerSecurityContext) GetPrivileged() bool { - if m != nil && m.Privileged != nil { - return *m.Privileged - } - return false -} - func (m *LinuxContainerSecurityContext) GetNamespaceOptions() *NamespaceOption { if m != nil { return m.NamespaceOptions @@ -1443,30 +998,9 @@ func (m *LinuxContainerSecurityContext) GetSelinuxOptions() *SELinuxOption { return nil } -func (m *LinuxContainerSecurityContext) GetRunAsUser() int64 { - if m != nil && m.RunAsUser != nil { - return *m.RunAsUser - } - return 0 -} - -func (m *LinuxContainerSecurityContext) GetRunAsUsername() string { - if m != nil && m.RunAsUsername != nil { - return *m.RunAsUsername - } - return "" -} - -func (m *LinuxContainerSecurityContext) GetReadonlyRootfs() bool { - if m != nil && m.ReadonlyRootfs != nil { - return *m.ReadonlyRootfs - } - return false -} - -func (m *LinuxContainerSecurityContext) GetSupplementalGroups() []int64 { +func (m *LinuxContainerSecurityContext) GetRunAsUser() *Int64Value { if m != nil { - return m.SupplementalGroups + return m.RunAsUser } return nil } @@ -1477,14 +1011,13 @@ type LinuxContainerConfig struct { // Resources specification for the container. Resources *LinuxContainerResources `protobuf:"bytes,1,opt,name=resources" json:"resources,omitempty"` // LinuxContainerSecurityContext configuration for the container. - SecurityContext *LinuxContainerSecurityContext `protobuf:"bytes,2,opt,name=security_context,json=securityContext" json:"security_context,omitempty"` - XXX_unrecognized []byte `json:"-"` + SecurityContext *LinuxContainerSecurityContext `protobuf:"bytes,2,opt,name=security_context,json=securityContext" json:"security_context,omitempty"` } func (m *LinuxContainerConfig) Reset() { *m = LinuxContainerConfig{} } func (m *LinuxContainerConfig) String() string { return proto.CompactTextString(m) } func (*LinuxContainerConfig) ProtoMessage() {} -func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} } +func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} } func (m *LinuxContainerConfig) GetResources() *LinuxContainerResources { if m != nil { @@ -1507,70 +1040,33 @@ func (m *LinuxContainerConfig) GetSecurityContext() *LinuxContainerSecurityConte // within a sandbox for the entire lifetime of the sandbox. type ContainerMetadata struct { // Name of the container. Same as the container name in the PodSpec. - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - // Attempt number of creating the container. - Attempt *uint32 `protobuf:"varint,2,opt,name=attempt" json:"attempt,omitempty"` - XXX_unrecognized []byte `json:"-"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Attempt number of creating the container. Default: 0. + Attempt uint32 `protobuf:"varint,2,opt,name=attempt,proto3" json:"attempt,omitempty"` } func (m *ContainerMetadata) Reset() { *m = ContainerMetadata{} } func (m *ContainerMetadata) String() string { return proto.CompactTextString(m) } func (*ContainerMetadata) ProtoMessage() {} -func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{33} } - -func (m *ContainerMetadata) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *ContainerMetadata) GetAttempt() uint32 { - if m != nil && m.Attempt != nil { - return *m.Attempt - } - return 0 -} +func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } // Device specifies a host device to mount into a container. type Device struct { // Path of the device within the container. - ContainerPath *string `protobuf:"bytes,1,opt,name=container_path,json=containerPath" json:"container_path,omitempty"` + ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"` // Path of the device on the host. - HostPath *string `protobuf:"bytes,2,opt,name=host_path,json=hostPath" json:"host_path,omitempty"` + HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` // Cgroups permissions of the device, candidates are one or more of // * r - allows container to read from the specified device. // * w - allows container to write to the specified device. // * m - allows container to create device files that do not yet exist. - Permissions *string `protobuf:"bytes,3,opt,name=permissions" json:"permissions,omitempty"` - XXX_unrecognized []byte `json:"-"` + Permissions string `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } func (m *Device) Reset() { *m = Device{} } func (m *Device) String() string { return proto.CompactTextString(m) } func (*Device) ProtoMessage() {} -func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} } - -func (m *Device) GetContainerPath() string { - if m != nil && m.ContainerPath != nil { - return *m.ContainerPath - } - return "" -} - -func (m *Device) GetHostPath() string { - if m != nil && m.HostPath != nil { - return *m.HostPath - } - return "" -} - -func (m *Device) GetPermissions() string { - if m != nil && m.Permissions != nil { - return *m.Permissions - } - return "" -} +func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} } // ContainerConfig holds all the required and optional fields for creating a // container. @@ -1587,7 +1083,7 @@ type ContainerConfig struct { // Args for the Command (i.e., command for docker) Args []string `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"` // Current working directory of the command. - WorkingDir *string `protobuf:"bytes,5,opt,name=working_dir,json=workingDir" json:"working_dir,omitempty"` + WorkingDir string `protobuf:"bytes,5,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"` // List of environment variable to set in the container. Envs []*KeyValue `protobuf:"bytes,6,rep,name=envs" json:"envs,omitempty"` // Mounts for the container. @@ -1600,7 +1096,7 @@ type ContainerConfig struct { // prefixed-name ::= prefix '/' name // prefix ::= DNS_SUBDOMAIN // name ::= DNS_LABEL - Labels map[string]string `protobuf:"bytes,9,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,9,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map that may be used by the kubelet to store and // retrieve arbitrary metadata. // @@ -1611,7 +1107,7 @@ type ContainerConfig struct { // In general, in order to preserve a well-defined interface between the // kubelet and the container runtime, annotations SHOULD NOT influence // runtime behaviour. - Annotations map[string]string `protobuf:"bytes,10,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Annotations map[string]string `protobuf:"bytes,10,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Path relative to PodSandboxConfig.LogDirectory for container to store // the log (STDOUT and STDERR) on the host. // E.g., @@ -1622,23 +1118,22 @@ type ContainerConfig struct { // container logs are under active discussion in // https://issues.k8s.io/24677. There *may* be future change of direction // for logging as the discussion carries on. - LogPath *string `protobuf:"bytes,11,opt,name=log_path,json=logPath" json:"log_path,omitempty"` + LogPath string `protobuf:"bytes,11,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` // Variables for interactive containers, these have very specialized // use-cases (e.g. debugging). // TODO: Determine if we need to continue supporting these fields that are // part of Kubernetes's Container Spec. - Stdin *bool `protobuf:"varint,12,opt,name=stdin" json:"stdin,omitempty"` - StdinOnce *bool `protobuf:"varint,13,opt,name=stdin_once,json=stdinOnce" json:"stdin_once,omitempty"` - Tty *bool `protobuf:"varint,14,opt,name=tty" json:"tty,omitempty"` + Stdin bool `protobuf:"varint,12,opt,name=stdin,proto3" json:"stdin,omitempty"` + StdinOnce bool `protobuf:"varint,13,opt,name=stdin_once,json=stdinOnce,proto3" json:"stdin_once,omitempty"` + Tty bool `protobuf:"varint,14,opt,name=tty,proto3" json:"tty,omitempty"` // Configuration specific to Linux containers. - Linux *LinuxContainerConfig `protobuf:"bytes,15,opt,name=linux" json:"linux,omitempty"` - XXX_unrecognized []byte `json:"-"` + Linux *LinuxContainerConfig `protobuf:"bytes,15,opt,name=linux" json:"linux,omitempty"` } func (m *ContainerConfig) Reset() { *m = ContainerConfig{} } func (m *ContainerConfig) String() string { return proto.CompactTextString(m) } func (*ContainerConfig) ProtoMessage() {} -func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } +func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } func (m *ContainerConfig) GetMetadata() *ContainerMetadata { if m != nil { @@ -1654,27 +1149,6 @@ func (m *ContainerConfig) GetImage() *ImageSpec { return nil } -func (m *ContainerConfig) GetCommand() []string { - if m != nil { - return m.Command - } - return nil -} - -func (m *ContainerConfig) GetArgs() []string { - if m != nil { - return m.Args - } - return nil -} - -func (m *ContainerConfig) GetWorkingDir() string { - if m != nil && m.WorkingDir != nil { - return *m.WorkingDir - } - return "" -} - func (m *ContainerConfig) GetEnvs() []*KeyValue { if m != nil { return m.Envs @@ -1710,34 +1184,6 @@ func (m *ContainerConfig) GetAnnotations() map[string]string { return nil } -func (m *ContainerConfig) GetLogPath() string { - if m != nil && m.LogPath != nil { - return *m.LogPath - } - return "" -} - -func (m *ContainerConfig) GetStdin() bool { - if m != nil && m.Stdin != nil { - return *m.Stdin - } - return false -} - -func (m *ContainerConfig) GetStdinOnce() bool { - if m != nil && m.StdinOnce != nil { - return *m.StdinOnce - } - return false -} - -func (m *ContainerConfig) GetTty() bool { - if m != nil && m.Tty != nil { - return *m.Tty - } - return false -} - func (m *ContainerConfig) GetLinux() *LinuxContainerConfig { if m != nil { return m.Linux @@ -1747,28 +1193,20 @@ func (m *ContainerConfig) GetLinux() *LinuxContainerConfig { type CreateContainerRequest struct { // ID of the PodSandbox in which the container should be created. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` // Config of the container. Config *ContainerConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"` // Config of the PodSandbox. This is the same config that was passed // to RunPodSandboxRequest to create the PodSandbox. It is passed again // here just for easy reference. The PodSandboxConfig is immutable and // remains the same throughout the lifetime of the pod. - SandboxConfig *PodSandboxConfig `protobuf:"bytes,3,opt,name=sandbox_config,json=sandboxConfig" json:"sandbox_config,omitempty"` - XXX_unrecognized []byte `json:"-"` + SandboxConfig *PodSandboxConfig `protobuf:"bytes,3,opt,name=sandbox_config,json=sandboxConfig" json:"sandbox_config,omitempty"` } func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} } func (m *CreateContainerRequest) String() string { return proto.CompactTextString(m) } func (*CreateContainerRequest) ProtoMessage() {} -func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} } - -func (m *CreateContainerRequest) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } func (m *CreateContainerRequest) GetConfig() *ContainerConfig { if m != nil { @@ -1786,152 +1224,107 @@ func (m *CreateContainerRequest) GetSandboxConfig() *PodSandboxConfig { type CreateContainerResponse struct { // ID of the created container. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` } func (m *CreateContainerResponse) Reset() { *m = CreateContainerResponse{} } func (m *CreateContainerResponse) String() string { return proto.CompactTextString(m) } func (*CreateContainerResponse) ProtoMessage() {} -func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } - -func (m *CreateContainerResponse) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} +func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } type StartContainerRequest struct { // ID of the container to start. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` } func (m *StartContainerRequest) Reset() { *m = StartContainerRequest{} } func (m *StartContainerRequest) String() string { return proto.CompactTextString(m) } func (*StartContainerRequest) ProtoMessage() {} -func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } - -func (m *StartContainerRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} +func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } type StartContainerResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *StartContainerResponse) Reset() { *m = StartContainerResponse{} } func (m *StartContainerResponse) String() string { return proto.CompactTextString(m) } func (*StartContainerResponse) ProtoMessage() {} -func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } +func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } type StopContainerRequest struct { // ID of the container to stop. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` - // Timeout, in seconds, to stop the container. - Timeout *int64 `protobuf:"varint,2,opt,name=timeout" json:"timeout,omitempty"` - XXX_unrecognized []byte `json:"-"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Timeout in seconds to wait for the container to stop before forcibly + // terminating it. Default: 0 (forcibly terminate the container immediately) + Timeout int64 `protobuf:"varint,2,opt,name=timeout,proto3" json:"timeout,omitempty"` } func (m *StopContainerRequest) Reset() { *m = StopContainerRequest{} } func (m *StopContainerRequest) String() string { return proto.CompactTextString(m) } func (*StopContainerRequest) ProtoMessage() {} -func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } - -func (m *StopContainerRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} - -func (m *StopContainerRequest) GetTimeout() int64 { - if m != nil && m.Timeout != nil { - return *m.Timeout - } - return 0 -} +func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } type StopContainerResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *StopContainerResponse) Reset() { *m = StopContainerResponse{} } func (m *StopContainerResponse) String() string { return proto.CompactTextString(m) } func (*StopContainerResponse) ProtoMessage() {} -func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } +func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } type RemoveContainerRequest struct { // ID of the container to remove. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` } func (m *RemoveContainerRequest) Reset() { *m = RemoveContainerRequest{} } func (m *RemoveContainerRequest) String() string { return proto.CompactTextString(m) } func (*RemoveContainerRequest) ProtoMessage() {} -func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } - -func (m *RemoveContainerRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} +func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } type RemoveContainerResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *RemoveContainerResponse) Reset() { *m = RemoveContainerResponse{} } func (m *RemoveContainerResponse) String() string { return proto.CompactTextString(m) } func (*RemoveContainerResponse) ProtoMessage() {} -func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } +func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } + +// ContainerStateValue is the wrapper of ContainerState. +type ContainerStateValue struct { + // State of the container. + State ContainerState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` +} + +func (m *ContainerStateValue) Reset() { *m = ContainerStateValue{} } +func (m *ContainerStateValue) String() string { return proto.CompactTextString(m) } +func (*ContainerStateValue) ProtoMessage() {} +func (*ContainerStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } // ContainerFilter is used to filter containers. // All those fields are combined with 'AND' type ContainerFilter struct { // ID of the container. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // State of the container. - State *ContainerState `protobuf:"varint,2,opt,name=state,enum=runtime.ContainerState" json:"state,omitempty"` + State *ContainerStateValue `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"` // ID of the PodSandbox. - PodSandboxId *string `protobuf:"bytes,3,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` + PodSandboxId string `protobuf:"bytes,3,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` // LabelSelector to select matches. // Only api.MatchLabels is supported for now and the requirements // are ANDed. MatchExpressions is not supported yet. - LabelSelector map[string]string `protobuf:"bytes,4,rep,name=label_selector,json=labelSelector" json:"label_selector,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` + LabelSelector map[string]string `protobuf:"bytes,4,rep,name=label_selector,json=labelSelector" json:"label_selector,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *ContainerFilter) Reset() { *m = ContainerFilter{} } func (m *ContainerFilter) String() string { return proto.CompactTextString(m) } func (*ContainerFilter) ProtoMessage() {} -func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } +func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } -func (m *ContainerFilter) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +func (m *ContainerFilter) GetState() *ContainerStateValue { + if m != nil { + return m.State } - return "" -} - -func (m *ContainerFilter) GetState() ContainerState { - if m != nil && m.State != nil { - return *m.State - } - return ContainerState_CONTAINER_CREATED -} - -func (m *ContainerFilter) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" + return nil } func (m *ContainerFilter) GetLabelSelector() map[string]string { @@ -1942,14 +1335,13 @@ func (m *ContainerFilter) GetLabelSelector() map[string]string { } type ListContainersRequest struct { - Filter *ContainerFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` - XXX_unrecognized []byte `json:"-"` + Filter *ContainerFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` } func (m *ListContainersRequest) Reset() { *m = ListContainersRequest{} } func (m *ListContainersRequest) String() string { return proto.CompactTextString(m) } func (*ListContainersRequest) ProtoMessage() {} -func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } +func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } func (m *ListContainersRequest) GetFilter() *ContainerFilter { if m != nil { @@ -1963,48 +1355,33 @@ func (m *ListContainersRequest) GetFilter() *ContainerFilter { type Container struct { // ID of the container, used by the container runtime to identify // a container. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // ID of the sandbox to which this container belongs. - PodSandboxId *string `protobuf:"bytes,2,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` + PodSandboxId string `protobuf:"bytes,2,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` // Metadata of the container. Metadata *ContainerMetadata `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"` // Spec of the image. Image *ImageSpec `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"` // Reference to the image in use. For most runtimes, this should be an // image ID. - ImageRef *string `protobuf:"bytes,5,opt,name=image_ref,json=imageRef" json:"image_ref,omitempty"` + ImageRef string `protobuf:"bytes,5,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"` // State of the container. - State *ContainerState `protobuf:"varint,6,opt,name=state,enum=runtime.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,6,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. - CreatedAt *int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` + CreatedAt int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Key-value pairs that may be used to scope and select individual resources. - Labels map[string]string `protobuf:"bytes,8,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,8,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map holding arbitrary metadata. // Annotations MUST NOT be altered by the runtime; the value of this field // MUST be identical to that of the corresponding ContainerConfig used to // instantiate this Container. - Annotations map[string]string `protobuf:"bytes,9,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` + Annotations map[string]string `protobuf:"bytes,9,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *Container) Reset() { *m = Container{} } func (m *Container) String() string { return proto.CompactTextString(m) } func (*Container) ProtoMessage() {} -func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } - -func (m *Container) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" -} - -func (m *Container) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} +func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } func (m *Container) GetMetadata() *ContainerMetadata { if m != nil { @@ -2020,27 +1397,6 @@ func (m *Container) GetImage() *ImageSpec { return nil } -func (m *Container) GetImageRef() string { - if m != nil && m.ImageRef != nil { - return *m.ImageRef - } - return "" -} - -func (m *Container) GetState() ContainerState { - if m != nil && m.State != nil { - return *m.State - } - return ContainerState_CONTAINER_CREATED -} - -func (m *Container) GetCreatedAt() int64 { - if m != nil && m.CreatedAt != nil { - return *m.CreatedAt - } - return 0 -} - func (m *Container) GetLabels() map[string]string { if m != nil { return m.Labels @@ -2057,14 +1413,13 @@ func (m *Container) GetAnnotations() map[string]string { type ListContainersResponse struct { // List of containers. - Containers []*Container `protobuf:"bytes,1,rep,name=containers" json:"containers,omitempty"` - XXX_unrecognized []byte `json:"-"` + Containers []*Container `protobuf:"bytes,1,rep,name=containers" json:"containers,omitempty"` } func (m *ListContainersResponse) Reset() { *m = ListContainersResponse{} } func (m *ListContainersResponse) String() string { return proto.CompactTextString(m) } func (*ListContainersResponse) ProtoMessage() {} -func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } +func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } func (m *ListContainersResponse) GetContainers() []*Container { if m != nil { @@ -2075,71 +1430,55 @@ func (m *ListContainersResponse) GetContainers() []*Container { type ContainerStatusRequest struct { // ID of the container for which to retrieve status. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` } func (m *ContainerStatusRequest) Reset() { *m = ContainerStatusRequest{} } func (m *ContainerStatusRequest) String() string { return proto.CompactTextString(m) } func (*ContainerStatusRequest) ProtoMessage() {} -func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } - -func (m *ContainerStatusRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} +func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } // ContainerStatus represents the status of a container. type ContainerStatus struct { // ID of the container. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Metadata of the container. Metadata *ContainerMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // Status of the container. - State *ContainerState `protobuf:"varint,3,opt,name=state,enum=runtime.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. - CreatedAt *int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` - // Start time of the container in nanoseconds. - StartedAt *int64 `protobuf:"varint,5,opt,name=started_at,json=startedAt" json:"started_at,omitempty"` - // Finish time of the container in nanoseconds. - FinishedAt *int64 `protobuf:"varint,6,opt,name=finished_at,json=finishedAt" json:"finished_at,omitempty"` - // Exit code of the container. - ExitCode *int32 `protobuf:"varint,7,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"` + CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Start time of the container in nanoseconds. Default: 0 (not specified). + StartedAt int64 `protobuf:"varint,5,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` + // Finish time of the container in nanoseconds. Default: 0 (not specified). + FinishedAt int64 `protobuf:"varint,6,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"` + // Exit code of the container. Only required when finished_at != 0. Default: 0. + ExitCode int32 `protobuf:"varint,7,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // Spec of the image. Image *ImageSpec `protobuf:"bytes,8,opt,name=image" json:"image,omitempty"` // Reference to the image in use. For most runtimes, this should be an // image ID - ImageRef *string `protobuf:"bytes,9,opt,name=image_ref,json=imageRef" json:"image_ref,omitempty"` + ImageRef string `protobuf:"bytes,9,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"` // Brief CamelCase string explaining why container is in its current state. - Reason *string `protobuf:"bytes,10,opt,name=reason" json:"reason,omitempty"` + Reason string `protobuf:"bytes,10,opt,name=reason,proto3" json:"reason,omitempty"` // Human-readable message indicating details about why container is in its // current state. - Message *string `protobuf:"bytes,11,opt,name=message" json:"message,omitempty"` + Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"` // Key-value pairs that may be used to scope and select individual resources. - Labels map[string]string `protobuf:"bytes,12,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Labels map[string]string `protobuf:"bytes,12,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map holding arbitrary metadata. // Annotations MUST NOT be altered by the runtime; the value of this field // MUST be identical to that of the corresponding ContainerConfig used to // instantiate the Container this status represents. - Annotations map[string]string `protobuf:"bytes,13,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Annotations map[string]string `protobuf:"bytes,13,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Mounts for the container. - Mounts []*Mount `protobuf:"bytes,14,rep,name=mounts" json:"mounts,omitempty"` - XXX_unrecognized []byte `json:"-"` + Mounts []*Mount `protobuf:"bytes,14,rep,name=mounts" json:"mounts,omitempty"` } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } func (m *ContainerStatus) String() string { return proto.CompactTextString(m) } func (*ContainerStatus) ProtoMessage() {} -func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } - -func (m *ContainerStatus) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" -} +func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } func (m *ContainerStatus) GetMetadata() *ContainerMetadata { if m != nil { @@ -2148,41 +1487,6 @@ func (m *ContainerStatus) GetMetadata() *ContainerMetadata { return nil } -func (m *ContainerStatus) GetState() ContainerState { - if m != nil && m.State != nil { - return *m.State - } - return ContainerState_CONTAINER_CREATED -} - -func (m *ContainerStatus) GetCreatedAt() int64 { - if m != nil && m.CreatedAt != nil { - return *m.CreatedAt - } - return 0 -} - -func (m *ContainerStatus) GetStartedAt() int64 { - if m != nil && m.StartedAt != nil { - return *m.StartedAt - } - return 0 -} - -func (m *ContainerStatus) GetFinishedAt() int64 { - if m != nil && m.FinishedAt != nil { - return *m.FinishedAt - } - return 0 -} - -func (m *ContainerStatus) GetExitCode() int32 { - if m != nil && m.ExitCode != nil { - return *m.ExitCode - } - return 0 -} - func (m *ContainerStatus) GetImage() *ImageSpec { if m != nil { return m.Image @@ -2190,27 +1494,6 @@ func (m *ContainerStatus) GetImage() *ImageSpec { return nil } -func (m *ContainerStatus) GetImageRef() string { - if m != nil && m.ImageRef != nil { - return *m.ImageRef - } - return "" -} - -func (m *ContainerStatus) GetReason() string { - if m != nil && m.Reason != nil { - return *m.Reason - } - return "" -} - -func (m *ContainerStatus) GetMessage() string { - if m != nil && m.Message != nil { - return *m.Message - } - return "" -} - func (m *ContainerStatus) GetLabels() map[string]string { if m != nil { return m.Labels @@ -2234,14 +1517,13 @@ func (m *ContainerStatus) GetMounts() []*Mount { type ContainerStatusResponse struct { // Status of the container. - Status *ContainerStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` - XXX_unrecognized []byte `json:"-"` + Status *ContainerStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` } func (m *ContainerStatusResponse) Reset() { *m = ContainerStatusResponse{} } func (m *ContainerStatusResponse) String() string { return proto.CompactTextString(m) } func (*ContainerStatusResponse) ProtoMessage() {} -func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } +func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { if m != nil { @@ -2252,249 +1534,114 @@ func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { type ExecSyncRequest struct { // ID of the container. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` // Command to execute. Cmd []string `protobuf:"bytes,2,rep,name=cmd" json:"cmd,omitempty"` - // Timeout in seconds to stop the command. Default: run forever. - Timeout *int64 `protobuf:"varint,3,opt,name=timeout" json:"timeout,omitempty"` - XXX_unrecognized []byte `json:"-"` + // Timeout in seconds to stop the command. Default: 0 (run forever). + Timeout int64 `protobuf:"varint,3,opt,name=timeout,proto3" json:"timeout,omitempty"` } func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (m *ExecSyncRequest) String() string { return proto.CompactTextString(m) } func (*ExecSyncRequest) ProtoMessage() {} -func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } - -func (m *ExecSyncRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} - -func (m *ExecSyncRequest) GetCmd() []string { - if m != nil { - return m.Cmd - } - return nil -} - -func (m *ExecSyncRequest) GetTimeout() int64 { - if m != nil && m.Timeout != nil { - return *m.Timeout - } - return 0 -} +func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } type ExecSyncResponse struct { // Captured command stdout output. - Stdout []byte `protobuf:"bytes,1,opt,name=stdout" json:"stdout,omitempty"` + Stdout []byte `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"` // Captured command stderr output. - Stderr []byte `protobuf:"bytes,2,opt,name=stderr" json:"stderr,omitempty"` - // Exit code the command finished with. - ExitCode *int32 `protobuf:"varint,3,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"` - XXX_unrecognized []byte `json:"-"` + Stderr []byte `protobuf:"bytes,2,opt,name=stderr,proto3" json:"stderr,omitempty"` + // Exit code the command finished with. Default: 0 (success). + ExitCode int32 `protobuf:"varint,3,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` } func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (m *ExecSyncResponse) String() string { return proto.CompactTextString(m) } func (*ExecSyncResponse) ProtoMessage() {} -func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } - -func (m *ExecSyncResponse) GetStdout() []byte { - if m != nil { - return m.Stdout - } - return nil -} - -func (m *ExecSyncResponse) GetStderr() []byte { - if m != nil { - return m.Stderr - } - return nil -} - -func (m *ExecSyncResponse) GetExitCode() int32 { - if m != nil && m.ExitCode != nil { - return *m.ExitCode - } - return 0 -} +func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } type ExecRequest struct { // ID of the container in which to execute the command. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` // Command to execute. Cmd []string `protobuf:"bytes,2,rep,name=cmd" json:"cmd,omitempty"` // Whether to exec the command in a TTY. - Tty *bool `protobuf:"varint,3,opt,name=tty" json:"tty,omitempty"` + Tty bool `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"` // Whether to stream stdin. - Stdin *bool `protobuf:"varint,4,opt,name=stdin" json:"stdin,omitempty"` - XXX_unrecognized []byte `json:"-"` + Stdin bool `protobuf:"varint,4,opt,name=stdin,proto3" json:"stdin,omitempty"` } func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (m *ExecRequest) String() string { return proto.CompactTextString(m) } func (*ExecRequest) ProtoMessage() {} -func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } - -func (m *ExecRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} - -func (m *ExecRequest) GetCmd() []string { - if m != nil { - return m.Cmd - } - return nil -} - -func (m *ExecRequest) GetTty() bool { - if m != nil && m.Tty != nil { - return *m.Tty - } - return false -} - -func (m *ExecRequest) GetStdin() bool { - if m != nil && m.Stdin != nil { - return *m.Stdin - } - return false -} +func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } type ExecResponse struct { // Fully qualified URL of the exec streaming server. - Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - XXX_unrecognized []byte `json:"-"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (m *ExecResponse) String() string { return proto.CompactTextString(m) } func (*ExecResponse) ProtoMessage() {} -func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } - -func (m *ExecResponse) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" -} +func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } type AttachRequest struct { // ID of the container to which to attach. - ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"` + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` // Whether to stream stdin. - Stdin *bool `protobuf:"varint,2,opt,name=stdin" json:"stdin,omitempty"` + Stdin bool `protobuf:"varint,2,opt,name=stdin,proto3" json:"stdin,omitempty"` // Whether the process being attached is running in a TTY. // This must match the TTY setting in the ContainerConfig. - Tty *bool `protobuf:"varint,3,opt,name=tty" json:"tty,omitempty"` - XXX_unrecognized []byte `json:"-"` + Tty bool `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"` } func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (m *AttachRequest) String() string { return proto.CompactTextString(m) } func (*AttachRequest) ProtoMessage() {} -func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } - -func (m *AttachRequest) GetContainerId() string { - if m != nil && m.ContainerId != nil { - return *m.ContainerId - } - return "" -} - -func (m *AttachRequest) GetStdin() bool { - if m != nil && m.Stdin != nil { - return *m.Stdin - } - return false -} - -func (m *AttachRequest) GetTty() bool { - if m != nil && m.Tty != nil { - return *m.Tty - } - return false -} +func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } type AttachResponse struct { // Fully qualified URL of the attach streaming server. - Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - XXX_unrecognized []byte `json:"-"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (m *AttachResponse) String() string { return proto.CompactTextString(m) } func (*AttachResponse) ProtoMessage() {} -func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } - -func (m *AttachResponse) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" -} +func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } type PortForwardRequest struct { // ID of the container to which to forward the port. - PodSandboxId *string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId" json:"pod_sandbox_id,omitempty"` + PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` // Port to forward. - Port []int32 `protobuf:"varint,2,rep,name=port" json:"port,omitempty"` - XXX_unrecognized []byte `json:"-"` + Port []int32 `protobuf:"varint,2,rep,name=port" json:"port,omitempty"` } func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (m *PortForwardRequest) String() string { return proto.CompactTextString(m) } func (*PortForwardRequest) ProtoMessage() {} -func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } - -func (m *PortForwardRequest) GetPodSandboxId() string { - if m != nil && m.PodSandboxId != nil { - return *m.PodSandboxId - } - return "" -} - -func (m *PortForwardRequest) GetPort() []int32 { - if m != nil { - return m.Port - } - return nil -} +func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } type PortForwardResponse struct { // Fully qualified URL of the port-forward streaming server. - Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - XXX_unrecognized []byte `json:"-"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (m *PortForwardResponse) String() string { return proto.CompactTextString(m) } func (*PortForwardResponse) ProtoMessage() {} -func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } - -func (m *PortForwardResponse) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" -} +func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } type ImageFilter struct { // Spec of the image. - Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` - XXX_unrecognized []byte `json:"-"` + Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` } func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (m *ImageFilter) String() string { return proto.CompactTextString(m) } func (*ImageFilter) ProtoMessage() {} -func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } +func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } func (m *ImageFilter) GetImage() *ImageSpec { if m != nil { @@ -2505,14 +1652,13 @@ func (m *ImageFilter) GetImage() *ImageSpec { type ListImagesRequest struct { // Filter to list images. - Filter *ImageFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` - XXX_unrecognized []byte `json:"-"` + Filter *ImageFilter `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` } func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (m *ListImagesRequest) String() string { return proto.CompactTextString(m) } func (*ListImagesRequest) ProtoMessage() {} -func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } +func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } func (m *ListImagesRequest) GetFilter() *ImageFilter { if m != nil { @@ -2524,80 +1670,43 @@ func (m *ListImagesRequest) GetFilter() *ImageFilter { // Basic information about a container image. type Image struct { // ID of the image. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Other names by which this image is known. RepoTags []string `protobuf:"bytes,2,rep,name=repo_tags,json=repoTags" json:"repo_tags,omitempty"` // Digests by which this image is known. RepoDigests []string `protobuf:"bytes,3,rep,name=repo_digests,json=repoDigests" json:"repo_digests,omitempty"` - // Size of the image in bytes. - Size_ *uint64 `protobuf:"varint,4,opt,name=size" json:"size,omitempty"` + // Size of the image in bytes. Must be > 0. + Size_ uint64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` // UID that will run the command(s). This is used as a default if no user is // specified when creating the container. UID and the following user name // are mutually exclusive. - Uid *int64 `protobuf:"varint,5,opt,name=uid" json:"uid,omitempty"` + Uid *Int64Value `protobuf:"bytes,5,opt,name=uid" json:"uid,omitempty"` // User name that will run the command(s). This is used if UID is not set // and no user is specified when creating container. - Username *string `protobuf:"bytes,6,opt,name=username" json:"username,omitempty"` - XXX_unrecognized []byte `json:"-"` + Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"` } func (m *Image) Reset() { *m = Image{} } func (m *Image) String() string { return proto.CompactTextString(m) } func (*Image) ProtoMessage() {} -func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } +func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } -func (m *Image) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" -} - -func (m *Image) GetRepoTags() []string { +func (m *Image) GetUid() *Int64Value { if m != nil { - return m.RepoTags + return m.Uid } return nil } -func (m *Image) GetRepoDigests() []string { - if m != nil { - return m.RepoDigests - } - return nil -} - -func (m *Image) GetSize_() uint64 { - if m != nil && m.Size_ != nil { - return *m.Size_ - } - return 0 -} - -func (m *Image) GetUid() int64 { - if m != nil && m.Uid != nil { - return *m.Uid - } - return 0 -} - -func (m *Image) GetUsername() string { - if m != nil && m.Username != nil { - return *m.Username - } - return "" -} - type ListImagesResponse struct { // List of images. - Images []*Image `protobuf:"bytes,1,rep,name=images" json:"images,omitempty"` - XXX_unrecognized []byte `json:"-"` + Images []*Image `protobuf:"bytes,1,rep,name=images" json:"images,omitempty"` } func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (m *ListImagesResponse) String() string { return proto.CompactTextString(m) } func (*ListImagesResponse) ProtoMessage() {} -func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } +func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } func (m *ListImagesResponse) GetImages() []*Image { if m != nil { @@ -2608,14 +1717,13 @@ func (m *ListImagesResponse) GetImages() []*Image { type ImageStatusRequest struct { // Spec of the image. - Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` - XXX_unrecognized []byte `json:"-"` + Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` } func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (m *ImageStatusRequest) String() string { return proto.CompactTextString(m) } func (*ImageStatusRequest) ProtoMessage() {} -func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } +func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } func (m *ImageStatusRequest) GetImage() *ImageSpec { if m != nil { @@ -2626,14 +1734,13 @@ func (m *ImageStatusRequest) GetImage() *ImageSpec { type ImageStatusResponse struct { // Status of the image. - Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` - XXX_unrecognized []byte `json:"-"` + Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` } func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (m *ImageStatusResponse) String() string { return proto.CompactTextString(m) } func (*ImageStatusResponse) ProtoMessage() {} -func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } +func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } func (m *ImageStatusResponse) GetImage() *Image { if m != nil { @@ -2644,64 +1751,21 @@ func (m *ImageStatusResponse) GetImage() *Image { // AuthConfig contains authorization information for connecting to a registry. type AuthConfig struct { - Username *string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"` - Password *string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"` - Auth *string `protobuf:"bytes,3,opt,name=auth" json:"auth,omitempty"` - ServerAddress *string `protobuf:"bytes,4,opt,name=server_address,json=serverAddress" json:"server_address,omitempty"` + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` + Auth string `protobuf:"bytes,3,opt,name=auth,proto3" json:"auth,omitempty"` + ServerAddress string `protobuf:"bytes,4,opt,name=server_address,json=serverAddress,proto3" json:"server_address,omitempty"` // IdentityToken is used to authenticate the user and get // an access token for the registry. - IdentityToken *string `protobuf:"bytes,5,opt,name=identity_token,json=identityToken" json:"identity_token,omitempty"` + IdentityToken string `protobuf:"bytes,5,opt,name=identity_token,json=identityToken,proto3" json:"identity_token,omitempty"` // RegistryToken is a bearer token to be sent to a registry - RegistryToken *string `protobuf:"bytes,6,opt,name=registry_token,json=registryToken" json:"registry_token,omitempty"` - XXX_unrecognized []byte `json:"-"` + RegistryToken string `protobuf:"bytes,6,opt,name=registry_token,json=registryToken,proto3" json:"registry_token,omitempty"` } func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (m *AuthConfig) String() string { return proto.CompactTextString(m) } func (*AuthConfig) ProtoMessage() {} -func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } - -func (m *AuthConfig) GetUsername() string { - if m != nil && m.Username != nil { - return *m.Username - } - return "" -} - -func (m *AuthConfig) GetPassword() string { - if m != nil && m.Password != nil { - return *m.Password - } - return "" -} - -func (m *AuthConfig) GetAuth() string { - if m != nil && m.Auth != nil { - return *m.Auth - } - return "" -} - -func (m *AuthConfig) GetServerAddress() string { - if m != nil && m.ServerAddress != nil { - return *m.ServerAddress - } - return "" -} - -func (m *AuthConfig) GetIdentityToken() string { - if m != nil && m.IdentityToken != nil { - return *m.IdentityToken - } - return "" -} - -func (m *AuthConfig) GetRegistryToken() string { - if m != nil && m.RegistryToken != nil { - return *m.RegistryToken - } - return "" -} +func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } type PullImageRequest struct { // Spec of the image. @@ -2709,14 +1773,13 @@ type PullImageRequest struct { // Authentication configuration for pulling the image. Auth *AuthConfig `protobuf:"bytes,2,opt,name=auth" json:"auth,omitempty"` // Config of the PodSandbox, which is used to pull image in PodSandbox context. - SandboxConfig *PodSandboxConfig `protobuf:"bytes,3,opt,name=sandbox_config,json=sandboxConfig" json:"sandbox_config,omitempty"` - XXX_unrecognized []byte `json:"-"` + SandboxConfig *PodSandboxConfig `protobuf:"bytes,3,opt,name=sandbox_config,json=sandboxConfig" json:"sandbox_config,omitempty"` } func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (m *PullImageRequest) String() string { return proto.CompactTextString(m) } func (*PullImageRequest) ProtoMessage() {} -func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } +func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } func (m *PullImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2742,32 +1805,23 @@ func (m *PullImageRequest) GetSandboxConfig() *PodSandboxConfig { type PullImageResponse struct { // Reference to the image in use. For most runtimes, this should be an // image ID or digest. - ImageRef *string `protobuf:"bytes,1,opt,name=image_ref,json=imageRef" json:"image_ref,omitempty"` - XXX_unrecognized []byte `json:"-"` + ImageRef string `protobuf:"bytes,1,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"` } func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (m *PullImageResponse) String() string { return proto.CompactTextString(m) } func (*PullImageResponse) ProtoMessage() {} -func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } - -func (m *PullImageResponse) GetImageRef() string { - if m != nil && m.ImageRef != nil { - return *m.ImageRef - } - return "" -} +func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } type RemoveImageRequest struct { // Spec of the image to remove. - Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` - XXX_unrecognized []byte `json:"-"` + Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` } func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (m *RemoveImageRequest) String() string { return proto.CompactTextString(m) } func (*RemoveImageRequest) ProtoMessage() {} -func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } +func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } func (m *RemoveImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2777,41 +1831,31 @@ func (m *RemoveImageRequest) GetImage() *ImageSpec { } type RemoveImageResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (m *RemoveImageResponse) String() string { return proto.CompactTextString(m) } func (*RemoveImageResponse) ProtoMessage() {} -func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } +func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } type NetworkConfig struct { // CIDR to use for pod IP addresses. - PodCidr *string `protobuf:"bytes,1,opt,name=pod_cidr,json=podCidr" json:"pod_cidr,omitempty"` - XXX_unrecognized []byte `json:"-"` + PodCidr string `protobuf:"bytes,1,opt,name=pod_cidr,json=podCidr,proto3" json:"pod_cidr,omitempty"` } func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (m *NetworkConfig) String() string { return proto.CompactTextString(m) } func (*NetworkConfig) ProtoMessage() {} -func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } - -func (m *NetworkConfig) GetPodCidr() string { - if m != nil && m.PodCidr != nil { - return *m.PodCidr - } - return "" -} +func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } type RuntimeConfig struct { - NetworkConfig *NetworkConfig `protobuf:"bytes,1,opt,name=network_config,json=networkConfig" json:"network_config,omitempty"` - XXX_unrecognized []byte `json:"-"` + NetworkConfig *NetworkConfig `protobuf:"bytes,1,opt,name=network_config,json=networkConfig" json:"network_config,omitempty"` } func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (m *RuntimeConfig) String() string { return proto.CompactTextString(m) } func (*RuntimeConfig) ProtoMessage() {} -func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } +func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } func (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig { if m != nil { @@ -2821,14 +1865,13 @@ func (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig { } type UpdateRuntimeConfigRequest struct { - RuntimeConfig *RuntimeConfig `protobuf:"bytes,1,opt,name=runtime_config,json=runtimeConfig" json:"runtime_config,omitempty"` - XXX_unrecognized []byte `json:"-"` + RuntimeConfig *RuntimeConfig `protobuf:"bytes,1,opt,name=runtime_config,json=runtimeConfig" json:"runtime_config,omitempty"` } func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (m *UpdateRuntimeConfigRequest) String() string { return proto.CompactTextString(m) } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} -func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } +func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } func (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig { if m != nil { @@ -2838,17 +1881,16 @@ func (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig { } type UpdateRuntimeConfigResponse struct { - XXX_unrecognized []byte `json:"-"` } func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (m *UpdateRuntimeConfigResponse) String() string { return proto.CompactTextString(m) } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} -func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } +func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } // RuntimeCondition contains condition information for the runtime. // There are 2 kinds of runtime conditions: -// 1. Required condtitions: Conditions are required for kubelet to work +// 1. Required conditions: Conditions are required for kubelet to work // properly. If any required condition is unmet, the node will be not ready. // The required conditions include: // * RuntimeReady: RuntimeReady means the runtime is up and ready to accept @@ -2861,60 +1903,30 @@ func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDe // them understand the status of the system. type RuntimeCondition struct { // Type of runtime condition. - Type *string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"` - // Status of the condition, one of true/false. - Status *bool `protobuf:"varint,2,opt,name=status" json:"status,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // Status of the condition, one of true/false. Default: false. + Status bool `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` // Brief CamelCase string containing reason for the condition's last transition. - Reason *string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` // Human-readable message indicating details about last transition. - Message *string `protobuf:"bytes,4,opt,name=message" json:"message,omitempty"` - XXX_unrecognized []byte `json:"-"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` } func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (m *RuntimeCondition) String() string { return proto.CompactTextString(m) } func (*RuntimeCondition) ProtoMessage() {} -func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } - -func (m *RuntimeCondition) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -func (m *RuntimeCondition) GetStatus() bool { - if m != nil && m.Status != nil { - return *m.Status - } - return false -} - -func (m *RuntimeCondition) GetReason() string { - if m != nil && m.Reason != nil { - return *m.Reason - } - return "" -} - -func (m *RuntimeCondition) GetMessage() string { - if m != nil && m.Message != nil { - return *m.Message - } - return "" -} +func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } // RuntimeStatus is information about the current status of the runtime. type RuntimeStatus struct { // List of current observed runtime conditions. - Conditions []*RuntimeCondition `protobuf:"bytes,1,rep,name=conditions" json:"conditions,omitempty"` - XXX_unrecognized []byte `json:"-"` + Conditions []*RuntimeCondition `protobuf:"bytes,1,rep,name=conditions" json:"conditions,omitempty"` } func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (m *RuntimeStatus) String() string { return proto.CompactTextString(m) } func (*RuntimeStatus) ProtoMessage() {} -func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } +func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { if m != nil { @@ -2924,24 +1936,22 @@ func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { } type StatusRequest struct { - XXX_unrecognized []byte `json:"-"` } func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (m *StatusRequest) String() string { return proto.CompactTextString(m) } func (*StatusRequest) ProtoMessage() {} -func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } +func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } type StatusResponse struct { // Status of the Runtime. - Status *RuntimeStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` - XXX_unrecognized []byte `json:"-"` + Status *RuntimeStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` } func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (m *StatusResponse) String() string { return proto.CompactTextString(m) } func (*StatusResponse) ProtoMessage() {} -func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } +func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } func (m *StatusResponse) GetStatus() *RuntimeStatus { if m != nil { @@ -2957,6 +1967,7 @@ func init() { proto.RegisterType((*PortMapping)(nil), "runtime.PortMapping") proto.RegisterType((*Mount)(nil), "runtime.Mount") proto.RegisterType((*NamespaceOption)(nil), "runtime.NamespaceOption") + proto.RegisterType((*Int64Value)(nil), "runtime.Int64Value") proto.RegisterType((*LinuxSandboxSecurityContext)(nil), "runtime.LinuxSandboxSecurityContext") proto.RegisterType((*LinuxPodSandboxConfig)(nil), "runtime.LinuxPodSandboxConfig") proto.RegisterType((*PodSandboxMetadata)(nil), "runtime.PodSandboxMetadata") @@ -2973,6 +1984,7 @@ func init() { proto.RegisterType((*LinuxPodSandboxStatus)(nil), "runtime.LinuxPodSandboxStatus") proto.RegisterType((*PodSandboxStatus)(nil), "runtime.PodSandboxStatus") proto.RegisterType((*PodSandboxStatusResponse)(nil), "runtime.PodSandboxStatusResponse") + proto.RegisterType((*PodSandboxStateValue)(nil), "runtime.PodSandboxStateValue") proto.RegisterType((*PodSandboxFilter)(nil), "runtime.PodSandboxFilter") proto.RegisterType((*ListPodSandboxRequest)(nil), "runtime.ListPodSandboxRequest") proto.RegisterType((*PodSandbox)(nil), "runtime.PodSandbox") @@ -2995,6 +2007,7 @@ func init() { proto.RegisterType((*StopContainerResponse)(nil), "runtime.StopContainerResponse") proto.RegisterType((*RemoveContainerRequest)(nil), "runtime.RemoveContainerRequest") proto.RegisterType((*RemoveContainerResponse)(nil), "runtime.RemoveContainerResponse") + proto.RegisterType((*ContainerStateValue)(nil), "runtime.ContainerStateValue") proto.RegisterType((*ContainerFilter)(nil), "runtime.ContainerFilter") proto.RegisterType((*ListContainersRequest)(nil), "runtime.ListContainersRequest") proto.RegisterType((*Container)(nil), "runtime.Container") @@ -3919,217 +2932,222 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{ } var fileDescriptorApi = []byte{ - // 3385 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x3a, 0x5f, 0x73, 0xdb, 0xc6, - 0xf1, 0x22, 0x29, 0x51, 0xe4, 0x52, 0xa4, 0xa8, 0xb3, 0x2c, 0xd1, 0x54, 0x6c, 0xcb, 0x88, 0xed, - 0xd8, 0x4e, 0xe2, 0x9f, 0xad, 0x5f, 0x1b, 0x37, 0x4e, 0xec, 0x84, 0x91, 0x94, 0x8c, 0x62, 0x9b, - 0x56, 0x40, 0x3b, 0x4d, 0x9a, 0x07, 0x14, 0x26, 0x4e, 0x14, 0x6c, 0x12, 0x40, 0x80, 0xa3, 0x62, - 0xf5, 0x13, 0xf4, 0xa1, 0x9d, 0xe9, 0x6b, 0xde, 0x3a, 0x9d, 0xce, 0x64, 0xda, 0xbe, 0x75, 0xa6, - 0x33, 0x7d, 0xeb, 0x07, 0xe8, 0xf4, 0x03, 0xf4, 0x23, 0xf4, 0x5b, 0x74, 0xee, 0x1f, 0x70, 0x87, - 0x3f, 0xb2, 0xe4, 0x64, 0x1a, 0xbf, 0xe1, 0x76, 0xf7, 0xf6, 0xf6, 0x76, 0xf7, 0xf6, 0x76, 0x17, - 0x07, 0x75, 0x3b, 0x70, 0xaf, 0x07, 0xa1, 0x4f, 0x7c, 0x34, 0x1f, 0x4e, 0x3d, 0xe2, 0x4e, 0xb0, - 0x71, 0x0d, 0x5a, 0x9f, 0xe3, 0x30, 0x72, 0x7d, 0xcf, 0xc4, 0x5f, 0x4f, 0x71, 0x44, 0x50, 0x07, - 0xe6, 0x0f, 0x38, 0xa4, 0x53, 0x5a, 0x2f, 0x5d, 0xa9, 0x9b, 0x72, 0x68, 0x7c, 0x57, 0x82, 0xc5, - 0x98, 0x38, 0x0a, 0x7c, 0x2f, 0xc2, 0xc5, 0xd4, 0xe8, 0x02, 0x2c, 0x88, 0x45, 0x2c, 0xcf, 0x9e, - 0xe0, 0x4e, 0x99, 0xa1, 0x1b, 0x02, 0xd6, 0xb7, 0x27, 0x18, 0xbd, 0x01, 0x8b, 0x92, 0x44, 0x32, - 0xa9, 0x30, 0xaa, 0x96, 0x00, 0x8b, 0xd5, 0xd0, 0x75, 0x38, 0x25, 0x09, 0xed, 0xc0, 0x8d, 0x89, - 0x67, 0x19, 0xf1, 0x92, 0x40, 0xf5, 0x02, 0x57, 0xd0, 0x1b, 0x5f, 0x41, 0x7d, 0xab, 0x3f, 0xd8, - 0xf4, 0xbd, 0x3d, 0x77, 0x44, 0x45, 0x8c, 0x70, 0x48, 0xe7, 0x74, 0x4a, 0xeb, 0x15, 0x2a, 0xa2, - 0x18, 0xa2, 0x2e, 0xd4, 0x22, 0x6c, 0x87, 0xc3, 0x7d, 0x1c, 0x75, 0xca, 0x0c, 0x15, 0x8f, 0xe9, - 0x2c, 0x3f, 0x20, 0xae, 0xef, 0x45, 0x9d, 0x0a, 0x9f, 0x25, 0x86, 0xc6, 0xb7, 0x25, 0x68, 0xec, - 0xfa, 0x21, 0x79, 0x60, 0x07, 0x81, 0xeb, 0x8d, 0xd0, 0xdb, 0x50, 0x63, 0x4a, 0x1d, 0xfa, 0x63, - 0xa6, 0x83, 0xd6, 0xc6, 0xd2, 0x75, 0x21, 0xd2, 0xf5, 0x5d, 0x81, 0x30, 0x63, 0x12, 0x74, 0x09, - 0x5a, 0x43, 0xdf, 0x23, 0xb6, 0xeb, 0xe1, 0xd0, 0x0a, 0xfc, 0x90, 0x30, 0xcd, 0xcc, 0x99, 0xcd, - 0x18, 0x4a, 0x99, 0xa3, 0x35, 0xa8, 0xef, 0xfb, 0x11, 0xe1, 0x14, 0x15, 0x46, 0x51, 0xa3, 0x00, - 0x86, 0x5c, 0x85, 0x79, 0x86, 0x74, 0x03, 0xa1, 0x83, 0x2a, 0x1d, 0xee, 0x04, 0xc6, 0xef, 0x4a, - 0x30, 0xf7, 0xc0, 0x9f, 0x7a, 0x24, 0xb5, 0x8c, 0x4d, 0xf6, 0x85, 0x7d, 0x94, 0x65, 0x6c, 0xb2, - 0x9f, 0x2c, 0x43, 0x29, 0xb8, 0x89, 0xf8, 0x32, 0x14, 0xd9, 0x85, 0x5a, 0x88, 0x6d, 0xc7, 0xf7, - 0xc6, 0x87, 0x4c, 0x84, 0x9a, 0x19, 0x8f, 0xa9, 0xed, 0x22, 0x3c, 0x76, 0xbd, 0xe9, 0x73, 0x2b, - 0xc4, 0x63, 0xfb, 0x09, 0x1e, 0x33, 0x51, 0x6a, 0x66, 0x4b, 0x80, 0x4d, 0x0e, 0x35, 0x9e, 0xc2, - 0x22, 0x35, 0x76, 0x14, 0xd8, 0x43, 0xfc, 0x90, 0xa9, 0x90, 0xba, 0x06, 0x5b, 0xd4, 0xc3, 0xe4, - 0x1b, 0x3f, 0x7c, 0xc6, 0x24, 0xab, 0x99, 0x0d, 0x0a, 0xeb, 0x73, 0x10, 0x3a, 0x03, 0x35, 0x2e, - 0x97, 0xeb, 0x30, 0xb1, 0x6a, 0x26, 0xdb, 0xf1, 0xae, 0xeb, 0xc4, 0x28, 0x37, 0x18, 0x0a, 0xa9, - 0xe6, 0xf9, 0xee, 0x87, 0xc6, 0x3f, 0xca, 0xb0, 0x76, 0x9f, 0x2e, 0x3e, 0xb0, 0x3d, 0xe7, 0x89, - 0xff, 0x7c, 0x80, 0x87, 0xd3, 0xd0, 0x25, 0x87, 0x9b, 0xbe, 0x47, 0xf0, 0x73, 0x82, 0xb6, 0x61, - 0xc9, 0x93, 0xb2, 0x58, 0xd2, 0xbc, 0x74, 0xf5, 0xc6, 0x46, 0x27, 0xb6, 0x59, 0x4a, 0x5a, 0xb3, - 0xed, 0xe9, 0x80, 0x08, 0x7d, 0x90, 0xec, 0x5d, 0x32, 0x29, 0x33, 0x26, 0x2b, 0x31, 0x93, 0xc1, - 0x36, 0x93, 0x43, 0xb0, 0x90, 0x3a, 0x91, 0x0c, 0xce, 0x01, 0x3d, 0x07, 0x96, 0x1d, 0x59, 0xd3, - 0x08, 0x87, 0x6c, 0x17, 0x15, 0xb3, 0x1e, 0x4e, 0xbd, 0x5e, 0xf4, 0x38, 0xc2, 0x21, 0x3b, 0x18, - 0x42, 0xd1, 0x56, 0xe8, 0xfb, 0x64, 0x2f, 0x92, 0xca, 0x95, 0x60, 0x93, 0x41, 0xd1, 0xff, 0xc1, - 0xa9, 0x68, 0x1a, 0x04, 0x63, 0x3c, 0xc1, 0x1e, 0xb1, 0xc7, 0xd6, 0x28, 0xf4, 0xa7, 0x41, 0xd4, - 0x99, 0x5b, 0xaf, 0x5c, 0xa9, 0x98, 0x48, 0x45, 0x7d, 0xc2, 0x30, 0xe8, 0x1c, 0x40, 0x10, 0xba, - 0x07, 0xee, 0x18, 0x8f, 0xb0, 0xd3, 0xa9, 0x32, 0xa6, 0x0a, 0xc4, 0xf8, 0x6d, 0x09, 0x4e, 0x33, - 0xc9, 0x77, 0x7d, 0x47, 0x28, 0x51, 0x1c, 0xa3, 0xd7, 0xa1, 0x39, 0x64, 0xec, 0xad, 0xc0, 0x0e, - 0xb1, 0x47, 0x84, 0x3f, 0x2d, 0x70, 0xe0, 0x2e, 0x83, 0xa1, 0x87, 0xd0, 0x8e, 0x84, 0xce, 0xad, - 0x21, 0x57, 0xba, 0x50, 0xcd, 0xc5, 0x58, 0x35, 0x47, 0x18, 0xc8, 0x5c, 0x8c, 0x74, 0x80, 0x11, - 0x02, 0x4a, 0x24, 0x79, 0x80, 0x89, 0xed, 0xd8, 0xc4, 0x46, 0x08, 0x66, 0x59, 0x4c, 0xe1, 0x22, - 0xb0, 0x6f, 0xd4, 0x86, 0xca, 0x54, 0x38, 0x4b, 0xdd, 0xa4, 0x9f, 0xe8, 0x35, 0xa8, 0xc7, 0xa6, - 0x13, 0x81, 0x25, 0x01, 0xd0, 0x03, 0x6e, 0x13, 0x82, 0x27, 0x01, 0x61, 0xba, 0x6d, 0x9a, 0x72, - 0x68, 0xfc, 0x7d, 0x16, 0xda, 0x99, 0xed, 0xdf, 0x82, 0xda, 0x44, 0x2c, 0x2f, 0x3c, 0x66, 0x2d, - 0x39, 0xe5, 0x19, 0x09, 0xcd, 0x98, 0x98, 0x1e, 0x22, 0xea, 0x9e, 0x4a, 0x0c, 0x8c, 0xc7, 0x54, - 0xa7, 0x63, 0x7f, 0x64, 0x39, 0x6e, 0x88, 0x87, 0xc4, 0x0f, 0x0f, 0x85, 0x94, 0x0b, 0x63, 0x7f, - 0xb4, 0x25, 0x61, 0xe8, 0x26, 0x80, 0xe3, 0x45, 0x54, 0x9d, 0x7b, 0xee, 0x88, 0xc9, 0xda, 0xd8, - 0x40, 0xf1, 0xda, 0x71, 0x9c, 0x33, 0xeb, 0x8e, 0x17, 0x09, 0x61, 0xdf, 0x85, 0x26, 0x8d, 0x1b, - 0xd6, 0x84, 0x87, 0x28, 0xee, 0x10, 0x8d, 0x8d, 0x65, 0x45, 0xe2, 0x38, 0x7e, 0x99, 0x0b, 0x41, - 0x32, 0x88, 0xd0, 0x1d, 0xa8, 0xb2, 0x73, 0x1b, 0x75, 0xaa, 0x6c, 0xce, 0xa5, 0x9c, 0x5d, 0xf2, - 0x55, 0xae, 0xdf, 0x67, 0x74, 0xdb, 0x1e, 0x09, 0x0f, 0x4d, 0x31, 0x09, 0xdd, 0x87, 0x86, 0xed, - 0x79, 0x3e, 0xb1, 0xf9, 0xb1, 0x98, 0x67, 0x3c, 0xae, 0x15, 0xf3, 0xe8, 0x25, 0xc4, 0x9c, 0x91, - 0x3a, 0x1d, 0xfd, 0x04, 0xe6, 0xd8, 0xb9, 0xe9, 0xd4, 0xd8, 0xae, 0xcf, 0xe9, 0x3e, 0x94, 0x66, - 0x66, 0x72, 0xe2, 0xee, 0xbb, 0xd0, 0x50, 0x44, 0xa3, 0x8e, 0xf1, 0x0c, 0x1f, 0x0a, 0x5f, 0xa1, - 0x9f, 0x68, 0x19, 0xe6, 0x0e, 0xec, 0xf1, 0x54, 0xda, 0x83, 0x0f, 0x6e, 0x97, 0x7f, 0x56, 0xea, - 0xde, 0x85, 0x76, 0x5a, 0xa2, 0x93, 0xcc, 0x37, 0x76, 0x60, 0xd9, 0x9c, 0x7a, 0x89, 0x60, 0xf2, - 0x52, 0xbd, 0x09, 0x55, 0x61, 0x3f, 0xee, 0x3b, 0x67, 0x0a, 0x35, 0x62, 0x0a, 0x42, 0xe3, 0x0e, - 0x9c, 0x4e, 0xb1, 0x12, 0x57, 0xee, 0x45, 0x68, 0x05, 0xbe, 0x63, 0x45, 0x1c, 0x6c, 0xb9, 0x8e, - 0x3c, 0x89, 0x41, 0x4c, 0xbb, 0xe3, 0xd0, 0xe9, 0x03, 0xe2, 0x07, 0x59, 0x51, 0x8e, 0x37, 0xbd, - 0x03, 0x2b, 0xe9, 0xe9, 0x7c, 0x79, 0xe3, 0x03, 0x58, 0x35, 0xf1, 0xc4, 0x3f, 0xc0, 0x2f, 0xcb, - 0xba, 0x0b, 0x9d, 0x2c, 0x83, 0x84, 0x79, 0x02, 0x1d, 0x10, 0x9b, 0x4c, 0xa3, 0x93, 0x31, 0xbf, - 0xaa, 0x32, 0x10, 0x97, 0x09, 0xe7, 0x83, 0x5a, 0x50, 0x76, 0x03, 0x31, 0xa9, 0xec, 0x06, 0xc6, - 0x97, 0x50, 0xef, 0xab, 0xd1, 0x40, 0xbd, 0x8d, 0xea, 0xa6, 0x1c, 0xa2, 0x8d, 0x24, 0x11, 0x28, - 0xbf, 0xe0, 0xa6, 0x88, 0x53, 0x84, 0x7b, 0x99, 0x20, 0x2a, 0x64, 0xd8, 0x00, 0x88, 0x23, 0x90, - 0xbc, 0x79, 0x50, 0x96, 0x9f, 0xa9, 0x50, 0x19, 0x7f, 0xd4, 0xc2, 0x91, 0xb2, 0x19, 0x27, 0xde, - 0x8c, 0xa3, 0x85, 0xa7, 0xf2, 0x49, 0xc2, 0xd3, 0x75, 0x98, 0x8b, 0x88, 0x4d, 0x78, 0x80, 0x6c, - 0x29, 0x9b, 0xd3, 0x97, 0xc4, 0x26, 0x27, 0x43, 0x67, 0x01, 0x86, 0x21, 0xb6, 0x09, 0x76, 0x2c, - 0x9b, 0x47, 0xce, 0x8a, 0x59, 0x17, 0x90, 0x1e, 0x41, 0xb7, 0x13, 0x3d, 0xce, 0x31, 0x31, 0xd6, - 0x73, 0x18, 0x6a, 0x76, 0x49, 0x34, 0x1d, 0x9f, 0xf6, 0xea, 0xd1, 0xa7, 0x5d, 0xcc, 0xe3, 0xc4, - 0x4a, 0xc0, 0x9a, 0x2f, 0x0c, 0x58, 0x7c, 0xc6, 0x71, 0x02, 0x56, 0xad, 0x30, 0x60, 0x09, 0x1e, - 0x47, 0x06, 0xac, 0x1f, 0x33, 0xf4, 0x3c, 0x80, 0x4e, 0xf6, 0xe8, 0x88, 0x90, 0x71, 0x13, 0xaa, - 0x11, 0x83, 0x1c, 0x11, 0x7e, 0xc4, 0x14, 0x41, 0x68, 0xfc, 0xa7, 0xa4, 0x7a, 0xdd, 0xc7, 0xee, - 0x98, 0xe0, 0x30, 0xe3, 0x75, 0xb1, 0xf3, 0x94, 0x8f, 0xe7, 0x3c, 0x03, 0x68, 0x31, 0xb5, 0x5b, - 0x11, 0x1e, 0xb3, 0xdb, 0x8d, 0xe5, 0xd6, 0x8d, 0x8d, 0xb7, 0x72, 0x26, 0xf2, 0x25, 0xb9, 0xcd, - 0x06, 0x82, 0x9c, 0x6b, 0xbc, 0x39, 0x56, 0x61, 0xdd, 0x0f, 0x01, 0x65, 0x89, 0x4e, 0xa4, 0xba, - 0x4f, 0xe9, 0x71, 0xa5, 0xa9, 0x75, 0x4e, 0xd8, 0xde, 0x63, 0x62, 0x1c, 0xa1, 0x37, 0x2e, 0xa7, - 0x29, 0x08, 0x8d, 0xdf, 0x57, 0x00, 0x12, 0xe4, 0x2b, 0x7b, 0x4e, 0x6f, 0xc5, 0xa7, 0x86, 0xa7, - 0x06, 0xe7, 0x73, 0xf8, 0xe5, 0x9e, 0x97, 0x8f, 0xf5, 0xf3, 0xc2, 0x93, 0x84, 0x8b, 0x79, 0xb3, - 0x5f, 0xd9, 0x93, 0xb2, 0x09, 0x2b, 0x69, 0x73, 0x8b, 0x73, 0x72, 0x15, 0xe6, 0x5c, 0x82, 0x27, - 0xbc, 0x50, 0x6c, 0x6c, 0x9c, 0xca, 0xd9, 0x96, 0xc9, 0x29, 0x8c, 0x0b, 0x50, 0xdf, 0x99, 0xd8, - 0x23, 0x3c, 0x08, 0xf0, 0x90, 0xae, 0xe5, 0xd2, 0x81, 0x58, 0x9f, 0x0f, 0x8c, 0x0d, 0xa8, 0xdd, - 0xc3, 0x87, 0x9f, 0xd3, 0x75, 0x8f, 0x2b, 0x9f, 0xf1, 0xcf, 0x12, 0xac, 0xb2, 0x70, 0xb7, 0x29, - 0xcb, 0x34, 0x13, 0x47, 0xfe, 0x34, 0x1c, 0xe2, 0x88, 0x99, 0x34, 0x98, 0x5a, 0x01, 0x0e, 0x5d, - 0x9f, 0xfb, 0x14, 0x35, 0x69, 0x30, 0xdd, 0x65, 0x00, 0x5a, 0xca, 0x51, 0xf4, 0xd7, 0x53, 0x5f, - 0xf8, 0x56, 0xc5, 0xac, 0x0d, 0x83, 0xe9, 0x67, 0x74, 0x2c, 0xe7, 0x46, 0xfb, 0x76, 0x88, 0x23, - 0x59, 0x70, 0x0c, 0x83, 0xe9, 0x80, 0x01, 0xd0, 0x4d, 0x38, 0x3d, 0xc1, 0x13, 0x3f, 0x3c, 0xb4, - 0xc6, 0xee, 0xc4, 0x25, 0x96, 0xeb, 0x59, 0x4f, 0x0e, 0x09, 0x8e, 0x84, 0xe3, 0x20, 0x8e, 0xbc, - 0x4f, 0x71, 0x3b, 0xde, 0x47, 0x14, 0x83, 0x0c, 0x68, 0xfa, 0xfe, 0xc4, 0x8a, 0x86, 0x7e, 0x88, - 0x2d, 0xdb, 0x79, 0xca, 0xe2, 0x7d, 0xc5, 0x6c, 0xf8, 0xfe, 0x64, 0x40, 0x61, 0x3d, 0xe7, 0xa9, - 0x61, 0x43, 0x53, 0x2b, 0x84, 0x68, 0xe2, 0xce, 0x2a, 0x1e, 0x91, 0xb8, 0xd3, 0x6f, 0x0a, 0x0b, - 0xfd, 0xb1, 0xd4, 0x03, 0xfb, 0xa6, 0x30, 0x72, 0x18, 0xc8, 0xac, 0x9d, 0x7d, 0x53, 0x85, 0x8d, - 0xf1, 0x81, 0xa8, 0x33, 0xeb, 0x26, 0x1f, 0x18, 0x0e, 0xc0, 0xa6, 0x1d, 0xd8, 0x4f, 0xdc, 0xb1, - 0x4b, 0x0e, 0xd1, 0x55, 0x68, 0xdb, 0x8e, 0x63, 0x0d, 0x25, 0xc4, 0xc5, 0xb2, 0xe8, 0x5f, 0xb4, - 0x1d, 0x67, 0x53, 0x01, 0xa3, 0x37, 0x61, 0xc9, 0x09, 0xfd, 0x40, 0xa7, 0xe5, 0x5d, 0x80, 0x36, - 0x45, 0xa8, 0xc4, 0xc6, 0x1f, 0x2a, 0x70, 0x56, 0x37, 0x4b, 0xba, 0xb4, 0xbc, 0x05, 0x0b, 0xa9, - 0x55, 0x4b, 0x9a, 0x07, 0x25, 0x42, 0x9a, 0x1a, 0x61, 0xaa, 0x22, 0x2b, 0xa7, 0x2b, 0xb2, 0xfc, - 0x9a, 0xb5, 0xf2, 0x43, 0xd4, 0xac, 0xb3, 0xdf, 0xa7, 0x66, 0x9d, 0x4b, 0xd7, 0xac, 0x97, 0x59, - 0x33, 0x47, 0xe2, 0x59, 0xb9, 0x53, 0xe5, 0x1d, 0x87, 0x98, 0xc6, 0x93, 0x4d, 0x9f, 0x54, 0x6d, - 0x3b, 0x7f, 0x92, 0xda, 0xb6, 0x56, 0x54, 0xdb, 0x1a, 0x7f, 0x2a, 0xc1, 0xb2, 0x6e, 0x24, 0x51, - 0x0e, 0xdd, 0x85, 0x7a, 0x28, 0x4f, 0x91, 0x30, 0xcc, 0xba, 0x9e, 0x5c, 0x64, 0x4f, 0x9b, 0x99, - 0x4c, 0x41, 0x9f, 0x15, 0x56, 0xb5, 0x97, 0x0b, 0xd8, 0xbc, 0xb0, 0xae, 0xed, 0xc1, 0x52, 0x4c, - 0x7c, 0x64, 0x59, 0xab, 0x94, 0xa9, 0x65, 0xbd, 0x4c, 0xf5, 0xa0, 0xba, 0x85, 0x0f, 0xdc, 0x21, - 0xfe, 0x41, 0x7a, 0x3d, 0xeb, 0xd0, 0x08, 0x70, 0x38, 0x71, 0xa3, 0x28, 0x76, 0xb0, 0xba, 0xa9, - 0x82, 0x8c, 0x7f, 0xcf, 0xc1, 0x62, 0x5a, 0xb3, 0xef, 0x64, 0xaa, 0xe2, 0x6e, 0xe2, 0xf1, 0xe9, - 0xfd, 0x29, 0xb7, 0xd9, 0x15, 0x19, 0x30, 0xcb, 0xa9, 0x14, 0x38, 0x8e, 0xa9, 0x22, 0x88, 0xd2, - 0xfd, 0x0f, 0xfd, 0xc9, 0xc4, 0xf6, 0x1c, 0xd9, 0x87, 0x13, 0x43, 0xaa, 0x2d, 0x3b, 0x1c, 0x51, - 0x37, 0xa6, 0x60, 0xf6, 0x8d, 0xce, 0x43, 0x83, 0xa6, 0x92, 0xae, 0xc7, 0x8a, 0x6a, 0xe6, 0xa4, - 0x75, 0x13, 0x04, 0x68, 0xcb, 0x0d, 0xd1, 0x25, 0x98, 0xc5, 0xde, 0x81, 0xbc, 0xb7, 0x92, 0x46, - 0x9d, 0x0c, 0xd4, 0x26, 0x43, 0xa3, 0xcb, 0x50, 0x9d, 0xf8, 0x53, 0x8f, 0xc8, 0xa4, 0xb2, 0x15, - 0x13, 0xb2, 0xee, 0x9a, 0x29, 0xb0, 0xe8, 0x2a, 0xcc, 0x3b, 0xcc, 0x06, 0x32, 0x73, 0x5c, 0x4c, - 0x0a, 0x73, 0x06, 0x37, 0x25, 0x1e, 0xbd, 0x1f, 0xdf, 0xb8, 0xf5, 0xd4, 0x9d, 0x99, 0x52, 0x6a, - 0xee, 0xb5, 0x7b, 0x4f, 0xbf, 0x76, 0x81, 0xb1, 0xb8, 0x5a, 0xc8, 0xe2, 0xe8, 0xb2, 0xfa, 0x0c, - 0xd4, 0xc6, 0xfe, 0x88, 0xfb, 0x41, 0x83, 0x57, 0x3b, 0x63, 0x7f, 0xc4, 0xdc, 0x60, 0x99, 0xa6, - 0x19, 0x8e, 0xeb, 0x75, 0x16, 0xd8, 0x99, 0xe4, 0x03, 0x7a, 0x7b, 0xb0, 0x0f, 0xcb, 0xf7, 0x86, - 0xb8, 0xd3, 0x64, 0xa8, 0x3a, 0x83, 0x3c, 0xf4, 0x86, 0xec, 0x72, 0x23, 0xe4, 0xb0, 0xd3, 0x62, - 0x70, 0xfa, 0x89, 0xfe, 0x5f, 0xa6, 0xf2, 0x8b, 0xcc, 0xbe, 0x67, 0x0b, 0x8e, 0xc9, 0x2b, 0x53, - 0xb7, 0xff, 0xb5, 0x04, 0x2b, 0x9b, 0x2c, 0x39, 0x52, 0x22, 0xc1, 0x09, 0xea, 0x4e, 0x74, 0x23, - 0x2e, 0xf0, 0xd3, 0x45, 0x62, 0x7a, 0xb3, 0x82, 0x0e, 0x7d, 0x08, 0x2d, 0xc9, 0x53, 0xcc, 0xac, - 0xbc, 0xa8, 0x35, 0xd0, 0x8c, 0xd4, 0xa1, 0xf1, 0x3e, 0xac, 0x66, 0x64, 0x16, 0x89, 0xcc, 0x05, - 0x58, 0x48, 0x22, 0x42, 0x2c, 0x72, 0x23, 0x86, 0xed, 0x38, 0xc6, 0x6d, 0x38, 0x3d, 0x20, 0x76, - 0x48, 0x32, 0x1b, 0x3e, 0xc6, 0x5c, 0xd6, 0x1d, 0xd0, 0xe7, 0x8a, 0x02, 0x7e, 0x00, 0xcb, 0x03, - 0xe2, 0x07, 0x2f, 0xc1, 0x94, 0x9e, 0x74, 0xba, 0x6d, 0x7f, 0x4a, 0x44, 0xf6, 0x22, 0x87, 0xc6, - 0x2a, 0xef, 0x65, 0x64, 0x57, 0x7b, 0x0f, 0x56, 0x78, 0x2b, 0xe1, 0x65, 0x36, 0x71, 0x46, 0x36, - 0x32, 0xb2, 0x7c, 0x7f, 0x53, 0x56, 0x42, 0x5d, 0x41, 0xed, 0xf3, 0xb6, 0x5e, 0xfb, 0xac, 0x66, - 0x0d, 0xae, 0xe5, 0xe3, 0x59, 0x37, 0xaa, 0xe4, 0xb8, 0x91, 0x99, 0x29, 0x90, 0x66, 0xd9, 0x49, - 0x7f, 0x33, 0xcb, 0xfd, 0x7f, 0x58, 0x1f, 0xed, 0xf0, 0xfa, 0x28, 0x5e, 0x3a, 0xee, 0xc9, 0xdc, - 0x48, 0xd5, 0x47, 0x9d, 0x22, 0x31, 0xe3, 0xf2, 0xe8, 0xd7, 0xb3, 0x50, 0x8f, 0x71, 0x19, 0x9d, - 0x66, 0x95, 0x54, 0xce, 0x51, 0x92, 0x7a, 0xe9, 0x54, 0x5e, 0xe6, 0xd2, 0x99, 0x7d, 0xd1, 0xa5, - 0xb3, 0x06, 0x75, 0xf6, 0x61, 0x85, 0x78, 0x4f, 0x5c, 0x22, 0x35, 0x06, 0x30, 0xf1, 0x5e, 0x62, - 0xf8, 0xea, 0xb1, 0x0c, 0xaf, 0x17, 0x62, 0xf3, 0xe9, 0x42, 0xec, 0x9d, 0xf8, 0x5a, 0xe0, 0x17, - 0xc8, 0xb9, 0x2c, 0xbb, 0xdc, 0x0b, 0x61, 0x5b, 0xbf, 0x10, 0xf8, 0x9d, 0xf2, 0x7a, 0xce, 0xe4, - 0x57, 0xb6, 0x0c, 0xbb, 0xcf, 0xcb, 0x30, 0xd5, 0xab, 0x44, 0xf4, 0xda, 0x00, 0x88, 0x0f, 0xaa, - 0xac, 0xc5, 0x50, 0x76, 0x6b, 0xa6, 0x42, 0x45, 0x43, 0x81, 0xa6, 0xff, 0xa4, 0x71, 0x78, 0x8c, - 0x50, 0xf0, 0x17, 0x35, 0xb5, 0x29, 0xe8, 0xb0, 0xbd, 0x93, 0xa9, 0xdc, 0x8f, 0xe7, 0x75, 0x6f, - 0xeb, 0x85, 0xfb, 0xc9, 0xdc, 0x25, 0x53, 0xb7, 0xb3, 0x9b, 0xd8, 0x0e, 0x05, 0x5a, 0x24, 0xe1, - 0x02, 0xd2, 0x23, 0x34, 0xff, 0xd9, 0x73, 0x3d, 0x37, 0xda, 0xe7, 0xf8, 0x2a, 0xc3, 0x83, 0x04, - 0xf5, 0xd8, 0x6f, 0x45, 0xfc, 0xdc, 0x25, 0xd6, 0xd0, 0x77, 0x30, 0x73, 0xc6, 0x39, 0xb3, 0x46, - 0x01, 0x9b, 0xbe, 0x83, 0x93, 0x03, 0x52, 0x3b, 0xd1, 0x01, 0xa9, 0xa7, 0x0e, 0xc8, 0x0a, 0x54, - 0x43, 0x6c, 0x47, 0xbe, 0xd7, 0x01, 0xfe, 0x73, 0x92, 0x8f, 0x68, 0x80, 0x9f, 0xe0, 0x28, 0xa2, - 0x0b, 0x88, 0xac, 0x43, 0x0c, 0x95, 0xdc, 0x68, 0xa1, 0x28, 0x37, 0x3a, 0xa2, 0x85, 0x97, 0xca, - 0x8d, 0x9a, 0x45, 0xb9, 0xd1, 0x71, 0x3a, 0x78, 0x4a, 0xe6, 0xd7, 0x3a, 0x2a, 0xf3, 0xfb, 0x31, - 0x0f, 0xce, 0x3d, 0x58, 0xcd, 0xb8, 0xba, 0x38, 0x39, 0x37, 0x52, 0x8d, 0xbe, 0x4e, 0x91, 0x16, - 0xe2, 0x3e, 0xdf, 0x2f, 0x61, 0x71, 0xfb, 0x39, 0x1e, 0x0e, 0x0e, 0xbd, 0xe1, 0x09, 0xee, 0xea, - 0x36, 0x54, 0x86, 0x13, 0x47, 0x94, 0xcb, 0xf4, 0x53, 0xbd, 0xbd, 0x2b, 0xfa, 0xed, 0x6d, 0x41, - 0x3b, 0x59, 0x41, 0xc8, 0xb9, 0x42, 0xe5, 0x74, 0x28, 0x31, 0x65, 0xbe, 0x60, 0x8a, 0x91, 0x80, - 0xe3, 0x30, 0x64, 0xbb, 0xe6, 0x70, 0x1c, 0x86, 0xba, 0xdb, 0x56, 0x74, 0xb7, 0x35, 0x9e, 0x42, - 0x83, 0x2e, 0xf0, 0xbd, 0xc4, 0x17, 0x29, 0x6c, 0x25, 0x49, 0x61, 0xe3, 0x4c, 0x78, 0x56, 0xc9, - 0x84, 0x8d, 0x75, 0x58, 0xe0, 0x6b, 0x89, 0x8d, 0xb4, 0xa1, 0x32, 0x0d, 0xc7, 0xd2, 0x6e, 0xd3, - 0x70, 0x6c, 0xfc, 0x02, 0x9a, 0x3d, 0x42, 0xec, 0xe1, 0xfe, 0x09, 0xe4, 0x89, 0xd7, 0x2a, 0xab, - 0x59, 0x77, 0x46, 0x26, 0xc3, 0x80, 0x96, 0xe4, 0x5d, 0xb8, 0x7e, 0x1f, 0xd0, 0xae, 0x1f, 0x92, - 0x8f, 0xfd, 0xf0, 0x1b, 0x3b, 0x74, 0x4e, 0x96, 0xc5, 0x22, 0x98, 0x15, 0x2f, 0x12, 0x2a, 0x57, - 0xe6, 0x4c, 0xf6, 0x6d, 0xbc, 0x01, 0xa7, 0x34, 0x7e, 0x85, 0x0b, 0xdf, 0x82, 0x06, 0x8b, 0x13, - 0x22, 0x5f, 0xba, 0xa2, 0xf6, 0xc4, 0x8e, 0x0a, 0x26, 0xb4, 0x16, 0xa6, 0x17, 0x01, 0x83, 0xc7, - 0x51, 0xfb, 0xad, 0x54, 0x6a, 0xb1, 0xac, 0xcf, 0x4f, 0xa5, 0x15, 0xdf, 0x96, 0x60, 0x8e, 0xc1, - 0x33, 0x61, 0x7b, 0x8d, 0xd6, 0xfe, 0x81, 0x6f, 0x11, 0x7b, 0x14, 0x3f, 0xf2, 0xa0, 0x80, 0x47, - 0xf6, 0x28, 0x62, 0x6f, 0x54, 0x28, 0xd2, 0x71, 0x47, 0x38, 0x22, 0xf2, 0xa5, 0x47, 0x83, 0xc2, - 0xb6, 0x38, 0x88, 0xaa, 0x24, 0x72, 0x7f, 0xc5, 0x73, 0x86, 0x59, 0x93, 0x7d, 0xcb, 0x5f, 0xcd, - 0x3c, 0xfa, 0xb2, 0x5f, 0xcd, 0x5d, 0xa8, 0xa5, 0xba, 0x1e, 0xf1, 0xd8, 0x78, 0x1f, 0x90, 0xba, - 0x3d, 0xa1, 0xbf, 0xcb, 0x50, 0x65, 0xbb, 0x97, 0xf7, 0x5b, 0x4b, 0xdf, 0x9f, 0x29, 0xb0, 0xc6, - 0x5d, 0x40, 0x5c, 0x61, 0xda, 0x9d, 0x76, 0x7c, 0xe5, 0xbe, 0x07, 0xa7, 0xb4, 0xf9, 0xf1, 0x4f, - 0x44, 0x8d, 0x41, 0x7a, 0x75, 0x31, 0xf9, 0x5f, 0x25, 0x80, 0xde, 0x94, 0xec, 0x8b, 0x6a, 0x5f, - 0xdd, 0x65, 0x49, 0xdf, 0x25, 0xc5, 0x05, 0x76, 0x14, 0x7d, 0xe3, 0x87, 0x32, 0x69, 0x8b, 0xc7, - 0xac, 0x52, 0x9f, 0x92, 0x7d, 0xd9, 0xcd, 0xa3, 0xdf, 0xe8, 0x12, 0xb4, 0xf8, 0x33, 0x1c, 0xcb, - 0x76, 0x9c, 0x10, 0x47, 0x91, 0x68, 0xeb, 0x35, 0x39, 0xb4, 0xc7, 0x81, 0x94, 0xcc, 0x75, 0xb0, - 0x47, 0x5c, 0x72, 0x68, 0x11, 0xff, 0x19, 0xf6, 0x44, 0x3a, 0xd6, 0x94, 0xd0, 0x47, 0x14, 0x48, - 0xc9, 0x42, 0x3c, 0x72, 0x23, 0x12, 0x4a, 0x32, 0xd9, 0x7b, 0x12, 0x50, 0x46, 0x66, 0x7c, 0x57, - 0x82, 0xf6, 0xee, 0x74, 0x3c, 0xe6, 0x9b, 0x3c, 0xa9, 0x2e, 0xd1, 0x1b, 0x62, 0x1f, 0xe5, 0x54, - 0x6f, 0x2f, 0x51, 0x91, 0xd8, 0xdc, 0xf7, 0xaf, 0xed, 0x6e, 0xc0, 0x92, 0x22, 0xa8, 0x30, 0x9a, - 0x76, 0xeb, 0x96, 0xf4, 0x5b, 0x97, 0x3a, 0x0a, 0x2f, 0x67, 0x5e, 0x6e, 0x73, 0xc6, 0x69, 0x38, - 0xa5, 0xcd, 0x17, 0xa5, 0xd0, 0x35, 0x68, 0x8a, 0xdf, 0x75, 0xc2, 0x09, 0xce, 0x40, 0x8d, 0x46, - 0x92, 0xa1, 0xeb, 0xc8, 0x36, 0xee, 0x7c, 0xe0, 0x3b, 0x9b, 0xae, 0x13, 0x1a, 0x7d, 0x68, 0x9a, - 0x9c, 0xbd, 0xa0, 0xbd, 0x03, 0x2d, 0xf1, 0x73, 0xcf, 0xd2, 0x7e, 0x7f, 0x27, 0x3d, 0x47, 0x8d, - 0xb7, 0xd9, 0xf4, 0xd4, 0xa1, 0xf1, 0x15, 0x74, 0x1f, 0x07, 0x0e, 0x4d, 0x8e, 0x54, 0xae, 0x72, - 0x6b, 0x77, 0x40, 0x3e, 0x13, 0x2b, 0x62, 0xae, 0x4f, 0x6b, 0x86, 0xea, 0xd0, 0x38, 0x0b, 0x6b, - 0xb9, 0xcc, 0xc5, 0xbe, 0x03, 0x68, 0x27, 0x08, 0xc7, 0x95, 0xdd, 0x6b, 0xd6, 0x95, 0x2e, 0x29, - 0x5d, 0xe9, 0x95, 0xf8, 0xc6, 0xe5, 0xb1, 0x5b, 0x8c, 0x94, 0x24, 0xa8, 0x52, 0x94, 0x04, 0xcd, - 0x6a, 0x49, 0x90, 0xf1, 0x69, 0xac, 0x3d, 0x91, 0x81, 0xbe, 0xcb, 0xd2, 0x60, 0xbe, 0xb6, 0x0c, - 0x13, 0x67, 0x72, 0x36, 0xc7, 0x29, 0x4c, 0x85, 0xd8, 0x58, 0x84, 0xa6, 0x16, 0x30, 0x8c, 0x0f, - 0xa1, 0x95, 0x8a, 0x00, 0xd7, 0x53, 0xa9, 0x42, 0x46, 0x6d, 0x7a, 0xa2, 0x70, 0xed, 0x35, 0xa8, - 0xc9, 0xd7, 0x6c, 0x68, 0x1e, 0x2a, 0x8f, 0x36, 0x77, 0xdb, 0x33, 0xf4, 0xe3, 0xf1, 0xd6, 0x6e, - 0xbb, 0x74, 0xed, 0x36, 0x2c, 0xa6, 0x7e, 0x44, 0xa1, 0x25, 0x68, 0x0e, 0x7a, 0xfd, 0xad, 0x8f, - 0x1e, 0x7e, 0x61, 0x99, 0xdb, 0xbd, 0xad, 0x2f, 0xdb, 0x33, 0x68, 0x19, 0xda, 0x12, 0xd4, 0x7f, - 0xf8, 0x88, 0x43, 0x4b, 0xd7, 0x9e, 0x41, 0x4b, 0xcf, 0x85, 0xd1, 0x69, 0x58, 0xda, 0x7c, 0xd8, - 0x7f, 0xd4, 0xdb, 0xe9, 0x6f, 0x9b, 0xd6, 0xa6, 0xb9, 0xdd, 0x7b, 0xb4, 0xbd, 0xd5, 0x9e, 0xd1, - 0xc1, 0xe6, 0xe3, 0x7e, 0x7f, 0xa7, 0xff, 0x49, 0xbb, 0x44, 0xb9, 0x26, 0xe0, 0xed, 0x2f, 0x76, - 0x28, 0x71, 0x59, 0x27, 0x7e, 0xdc, 0xbf, 0xd7, 0x7f, 0xf8, 0xf3, 0x7e, 0xbb, 0xb2, 0xf1, 0xe7, - 0x06, 0xb4, 0xe4, 0x06, 0x71, 0xc8, 0xda, 0xa7, 0x77, 0x61, 0x5e, 0x3e, 0x34, 0x4c, 0xb2, 0x73, - 0xfd, 0x55, 0x64, 0xb7, 0x93, 0x45, 0x08, 0x47, 0x99, 0x41, 0xbb, 0xcc, 0x70, 0xca, 0x4f, 0xbf, - 0xb3, 0xaa, 0x2a, 0x33, 0x7f, 0x15, 0xbb, 0xe7, 0x8a, 0xd0, 0x31, 0xc7, 0x01, 0xb5, 0x96, 0xfa, - 0xfa, 0x02, 0x25, 0x73, 0x72, 0x5f, 0x75, 0x74, 0xcf, 0x17, 0xe2, 0x63, 0xa6, 0x5f, 0x42, 0x3b, - 0xfd, 0xee, 0x02, 0x25, 0x6d, 0xf0, 0x82, 0x37, 0x1d, 0xdd, 0x0b, 0x47, 0x50, 0xa8, 0xac, 0x33, - 0x2f, 0x14, 0xd6, 0x8b, 0xff, 0x31, 0x67, 0x58, 0x17, 0xfd, 0xb8, 0xe6, 0xaa, 0xd0, 0x7f, 0xd6, - 0x21, 0xf5, 0x5d, 0x40, 0xce, 0x4f, 0x5b, 0x45, 0x15, 0xf9, 0x7f, 0xf9, 0x8c, 0x19, 0xf4, 0x39, - 0x2c, 0xa6, 0x3a, 0x67, 0x28, 0x99, 0x95, 0xdf, 0x07, 0xec, 0xae, 0x17, 0x13, 0xe8, 0x76, 0x53, - 0xfb, 0x62, 0x9a, 0xdd, 0x72, 0x9a, 0x6d, 0x9a, 0xdd, 0x72, 0x1b, 0x6a, 0xcc, 0xbd, 0xb4, 0xee, - 0x97, 0xe2, 0x5e, 0x79, 0xad, 0xb6, 0xee, 0xb9, 0x22, 0xb4, 0xba, 0xfd, 0x54, 0xe7, 0x4b, 0xd9, - 0x7e, 0x7e, 0x43, 0xad, 0xbb, 0x5e, 0x4c, 0x90, 0xb6, 0x55, 0x52, 0xd1, 0xa7, 0x6c, 0x95, 0x69, - 0x20, 0xa5, 0x6c, 0x95, 0x6d, 0x05, 0x08, 0x5b, 0xa5, 0x4a, 0xf3, 0xf3, 0x85, 0x55, 0x4d, 0xd6, - 0x56, 0xf9, 0x85, 0x92, 0x31, 0x83, 0x7a, 0x50, 0x93, 0x65, 0x09, 0x4a, 0x4e, 0x77, 0xaa, 0x16, - 0xea, 0x9e, 0xc9, 0xc1, 0xc4, 0x2c, 0x7e, 0x0a, 0xb3, 0x14, 0x8a, 0x96, 0x35, 0x22, 0x39, 0xf5, - 0x74, 0x0a, 0x1a, 0x4f, 0x7b, 0x0f, 0xaa, 0x3c, 0x8b, 0x47, 0x49, 0xcc, 0xd5, 0x4a, 0x86, 0xee, - 0x6a, 0x06, 0x1e, 0x4f, 0xfe, 0x94, 0x3f, 0x3e, 0x16, 0xe9, 0x38, 0x5a, 0xd3, 0x9e, 0xf4, 0xe9, - 0x49, 0x7f, 0xf7, 0xb5, 0x7c, 0x64, 0xcc, 0xeb, 0x09, 0x9c, 0xca, 0xb9, 0x02, 0x51, 0xd2, 0x45, - 0x2a, 0xbe, 0x7d, 0xbb, 0x17, 0x8f, 0x26, 0x52, 0x37, 0x2b, 0xac, 0xb6, 0xa2, 0xba, 0xba, 0x62, - 0xac, 0xd5, 0x0c, 0x5c, 0x4e, 0xde, 0xf8, 0x5b, 0x19, 0x16, 0x78, 0xa2, 0x22, 0x42, 0xf5, 0x27, - 0x00, 0x49, 0x2e, 0x8d, 0xba, 0x9a, 0xf7, 0x68, 0xf5, 0x43, 0x77, 0x2d, 0x17, 0xa7, 0xaa, 0x51, - 0x49, 0x8b, 0x15, 0x35, 0x66, 0x93, 0x6d, 0x45, 0x8d, 0x39, 0x99, 0xb4, 0x31, 0x83, 0xb6, 0xa0, - 0x1e, 0xe7, 0x6a, 0x48, 0x49, 0xf1, 0x52, 0x89, 0x66, 0xb7, 0x9b, 0x87, 0x52, 0x25, 0x52, 0xf2, - 0x2f, 0x45, 0xa2, 0x6c, 0x56, 0xa7, 0x48, 0x94, 0x97, 0xb2, 0xcd, 0xfc, 0x37, 0x00, 0x00, 0xff, - 0xff, 0xf6, 0x41, 0x28, 0x8c, 0xea, 0x2f, 0x00, 0x00, + // 3458 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x3a, 0x4d, 0x73, 0x1b, 0xc7, + 0x95, 0x04, 0x40, 0x82, 0xc0, 0x03, 0x01, 0x82, 0x4d, 0x8a, 0x84, 0x40, 0x7d, 0x50, 0x63, 0x49, + 0x96, 0x64, 0x5b, 0x2b, 0xd1, 0x5e, 0x69, 0x2d, 0x5b, 0xb2, 0x61, 0x92, 0x72, 0xd1, 0x92, 0x20, + 0x7a, 0x20, 0x79, 0xed, 0xf5, 0x61, 0x76, 0x84, 0x69, 0x81, 0x23, 0x01, 0x33, 0xe3, 0x99, 0x86, + 0x2c, 0xee, 0x2f, 0xd8, 0xcb, 0x56, 0x6d, 0x8e, 0xb9, 0xe5, 0x90, 0x2a, 0x57, 0x92, 0xaa, 0x1c, + 0x52, 0x95, 0x4a, 0xfe, 0x43, 0x2a, 0xb7, 0x5c, 0xf2, 0x27, 0xf2, 0x1b, 0x52, 0xfd, 0x35, 0xd3, + 0x3d, 0x1f, 0x14, 0x29, 0xbb, 0x62, 0xdd, 0xa6, 0x5f, 0xbf, 0x7e, 0xfd, 0xfa, 0xbd, 0xd7, 0xef, + 0x6b, 0x1a, 0xea, 0x76, 0xe0, 0x5e, 0x0d, 0x42, 0x9f, 0xf8, 0x68, 0x3e, 0x9c, 0x7a, 0xc4, 0x9d, + 0x60, 0xe3, 0x0a, 0xb4, 0xbe, 0xc2, 0x61, 0xe4, 0xfa, 0x9e, 0x89, 0xbf, 0x9b, 0xe2, 0x88, 0xa0, + 0x0e, 0xcc, 0xbf, 0xe0, 0x90, 0x4e, 0x69, 0xa3, 0x74, 0xa9, 0x6e, 0xca, 0xa1, 0xf1, 0x43, 0x09, + 0x16, 0x63, 0xe4, 0x28, 0xf0, 0xbd, 0x08, 0x17, 0x63, 0xa3, 0x73, 0xb0, 0x20, 0x36, 0xb1, 0x3c, + 0x7b, 0x82, 0x3b, 0x65, 0x36, 0xdd, 0x10, 0xb0, 0xbe, 0x3d, 0xc1, 0xe8, 0x6d, 0x58, 0x94, 0x28, + 0x92, 0x48, 0x85, 0x61, 0xb5, 0x04, 0x58, 0xec, 0x86, 0xae, 0xc2, 0xb2, 0x44, 0xb4, 0x03, 0x37, + 0x46, 0x9e, 0x65, 0xc8, 0x4b, 0x62, 0xaa, 0x17, 0xb8, 0x02, 0xdf, 0xf8, 0x16, 0xea, 0xdb, 0xfd, + 0xc1, 0x96, 0xef, 0x3d, 0x75, 0x47, 0x94, 0xc5, 0x08, 0x87, 0x74, 0x4d, 0xa7, 0xb4, 0x51, 0xa1, + 0x2c, 0x8a, 0x21, 0xea, 0x42, 0x2d, 0xc2, 0x76, 0x38, 0xdc, 0xc7, 0x51, 0xa7, 0xcc, 0xa6, 0xe2, + 0x31, 0x5d, 0xe5, 0x07, 0xc4, 0xf5, 0xbd, 0xa8, 0x53, 0xe1, 0xab, 0xc4, 0xd0, 0xf8, 0x65, 0x09, + 0x1a, 0x7b, 0x7e, 0x48, 0x1e, 0xd8, 0x41, 0xe0, 0x7a, 0x23, 0xf4, 0x1e, 0xd4, 0x98, 0x50, 0x87, + 0xfe, 0x98, 0xc9, 0xa0, 0xb5, 0xb9, 0x74, 0x55, 0xb0, 0x74, 0x75, 0x4f, 0x4c, 0x98, 0x31, 0x0a, + 0xba, 0x00, 0xad, 0xa1, 0xef, 0x11, 0xdb, 0xf5, 0x70, 0x68, 0x05, 0x7e, 0x48, 0x98, 0x64, 0xe6, + 0xcc, 0x66, 0x0c, 0xa5, 0xc4, 0xd1, 0x3a, 0xd4, 0xf7, 0xfd, 0x88, 0x70, 0x8c, 0x0a, 0xc3, 0xa8, + 0x51, 0x00, 0x9b, 0x5c, 0x83, 0x79, 0x36, 0xe9, 0x06, 0x42, 0x06, 0x55, 0x3a, 0xdc, 0x0d, 0x8c, + 0xff, 0x2f, 0xc1, 0xdc, 0x03, 0x7f, 0xea, 0x91, 0xd4, 0x36, 0x36, 0xd9, 0x17, 0xfa, 0x51, 0xb6, + 0xb1, 0xc9, 0x7e, 0xb2, 0x0d, 0xc5, 0xe0, 0x2a, 0xe2, 0xdb, 0xd0, 0xc9, 0x2e, 0xd4, 0x42, 0x6c, + 0x3b, 0xbe, 0x37, 0x3e, 0x60, 0x2c, 0xd4, 0xcc, 0x78, 0x4c, 0x75, 0x17, 0xe1, 0xb1, 0xeb, 0x4d, + 0x5f, 0x5a, 0x21, 0x1e, 0xdb, 0x4f, 0xf0, 0x98, 0xb1, 0x52, 0x33, 0x5b, 0x02, 0x6c, 0x72, 0xa8, + 0xf1, 0x0c, 0x16, 0xa9, 0xb2, 0xa3, 0xc0, 0x1e, 0xe2, 0x87, 0x4c, 0x84, 0xd4, 0x34, 0xd8, 0xa6, + 0x1e, 0x26, 0xdf, 0xfb, 0xe1, 0x73, 0xc6, 0x59, 0xcd, 0x6c, 0x50, 0x58, 0x9f, 0x83, 0xd0, 0x49, + 0xa8, 0x71, 0xbe, 0x5c, 0x87, 0xb1, 0x55, 0x33, 0xd9, 0x89, 0xf7, 0x5c, 0x27, 0x9e, 0x72, 0x83, + 0xa1, 0xe0, 0x6a, 0x9e, 0x9f, 0x7e, 0x68, 0x18, 0x00, 0xbb, 0x1e, 0xb9, 0xf1, 0xc1, 0x57, 0xf6, + 0x78, 0x8a, 0xd1, 0x0a, 0xcc, 0xbd, 0xa0, 0x1f, 0x8c, 0x7e, 0xc5, 0xe4, 0x03, 0xe3, 0x6f, 0x65, + 0x58, 0xbf, 0x4f, 0x19, 0x1c, 0xd8, 0x9e, 0xf3, 0xc4, 0x7f, 0x39, 0xc0, 0xc3, 0x69, 0xe8, 0x92, + 0x83, 0x2d, 0xdf, 0x23, 0xf8, 0x25, 0x41, 0x3b, 0xb0, 0xe4, 0x49, 0x7e, 0x2d, 0x69, 0x02, 0x94, + 0x42, 0x63, 0xb3, 0x13, 0xeb, 0x35, 0x75, 0x22, 0xb3, 0xed, 0xe9, 0x80, 0x08, 0x7d, 0x92, 0xc8, + 0x47, 0x12, 0x29, 0x33, 0x22, 0xab, 0x31, 0x91, 0xc1, 0x0e, 0xe3, 0x43, 0x90, 0x90, 0x72, 0x93, + 0x04, 0xde, 0x07, 0x7a, 0x57, 0x2c, 0x3b, 0xb2, 0xa6, 0x11, 0x0e, 0xd9, 0x49, 0x1b, 0x9b, 0xcb, + 0xf1, 0xe2, 0xe4, 0x9c, 0x66, 0x3d, 0x9c, 0x7a, 0xbd, 0xe8, 0x71, 0x84, 0x43, 0x76, 0xa3, 0x84, + 0x86, 0xac, 0xd0, 0xf7, 0xc9, 0xd3, 0x48, 0x6a, 0x45, 0x82, 0x4d, 0x06, 0x45, 0xff, 0x06, 0xcb, + 0xd1, 0x34, 0x08, 0xc6, 0x78, 0x82, 0x3d, 0x62, 0x8f, 0xad, 0x51, 0xe8, 0x4f, 0x83, 0xa8, 0x33, + 0xb7, 0x51, 0xb9, 0x54, 0x31, 0x91, 0x3a, 0xf5, 0x39, 0x9b, 0x41, 0x67, 0x00, 0x82, 0xd0, 0x7d, + 0xe1, 0x8e, 0xf1, 0x08, 0x3b, 0x9d, 0x2a, 0x23, 0xaa, 0x40, 0x8c, 0xff, 0x2b, 0xc1, 0x09, 0x76, + 0x9c, 0x3d, 0xdf, 0x11, 0x92, 0x15, 0xf7, 0xef, 0x2d, 0x68, 0x0e, 0x19, 0x79, 0x2b, 0xb0, 0x43, + 0xec, 0x11, 0x61, 0x88, 0x0b, 0x1c, 0xb8, 0xc7, 0x60, 0xe8, 0x21, 0xb4, 0x23, 0xa1, 0x08, 0x6b, + 0xc8, 0x35, 0x21, 0xe4, 0x75, 0x3e, 0x3e, 0xf2, 0x21, 0x5a, 0x33, 0x17, 0x23, 0x1d, 0x60, 0x84, + 0x80, 0x12, 0x4e, 0x1e, 0x60, 0x62, 0x3b, 0x36, 0xb1, 0x11, 0x82, 0x59, 0xe6, 0x8c, 0x38, 0x0b, + 0xec, 0x1b, 0xb5, 0xa1, 0x32, 0x15, 0x56, 0x56, 0x37, 0xe9, 0x27, 0x3a, 0x05, 0xf5, 0x58, 0x9f, + 0xc2, 0x23, 0x25, 0x00, 0xea, 0x19, 0x6c, 0x42, 0xf0, 0x24, 0x20, 0x4c, 0xb6, 0x4d, 0x53, 0x0e, + 0x8d, 0x3f, 0xcf, 0x42, 0x3b, 0x73, 0xfc, 0x9b, 0x50, 0x9b, 0x88, 0xed, 0x85, 0x19, 0xad, 0x27, + 0xee, 0x21, 0xc3, 0xa1, 0x19, 0x23, 0xd3, 0xdb, 0x47, 0xed, 0x5a, 0x71, 0x9e, 0xf1, 0x98, 0xca, + 0x74, 0xec, 0x8f, 0x2c, 0xc7, 0x0d, 0xf1, 0x90, 0xf8, 0xe1, 0x81, 0xe0, 0x72, 0x61, 0xec, 0x8f, + 0xb6, 0x25, 0x0c, 0x5d, 0x07, 0x70, 0xbc, 0x88, 0x8a, 0xf3, 0xa9, 0x3b, 0x62, 0xbc, 0x36, 0x36, + 0x51, 0xbc, 0x77, 0xec, 0x20, 0xcd, 0xba, 0xe3, 0x45, 0x82, 0xd9, 0x0f, 0xa1, 0x49, 0x1d, 0x8e, + 0x35, 0xe1, 0xbe, 0x8d, 0x1b, 0x44, 0x63, 0x73, 0x45, 0xe1, 0x38, 0x76, 0x7c, 0xe6, 0x42, 0x90, + 0x0c, 0x22, 0x74, 0x1b, 0xaa, 0xec, 0xc2, 0x47, 0x9d, 0x2a, 0x5b, 0x73, 0x21, 0xe7, 0x94, 0x7c, + 0x97, 0xab, 0xf7, 0x19, 0xde, 0x8e, 0x47, 0xc2, 0x03, 0x53, 0x2c, 0x42, 0xf7, 0xa1, 0x61, 0x7b, + 0x9e, 0x4f, 0x6c, 0x7e, 0x57, 0xe6, 0x19, 0x8d, 0x2b, 0xc5, 0x34, 0x7a, 0x09, 0x32, 0x27, 0xa4, + 0x2e, 0x47, 0x1f, 0xc0, 0x1c, 0xbb, 0x4c, 0x9d, 0x1a, 0x3b, 0xf5, 0x19, 0xdd, 0x86, 0xd2, 0xc4, + 0x4c, 0x8e, 0xdc, 0xfd, 0x10, 0x1a, 0x0a, 0x6b, 0xd4, 0x30, 0x9e, 0xe3, 0x03, 0x61, 0x2b, 0xf4, + 0x33, 0xf1, 0x28, 0x5c, 0x1f, 0x7c, 0x70, 0xab, 0xfc, 0x1f, 0xa5, 0xee, 0x1d, 0x68, 0xa7, 0x39, + 0x3a, 0xce, 0x7a, 0x63, 0x17, 0x56, 0xcc, 0xa9, 0x97, 0x30, 0x26, 0xa3, 0xf1, 0x75, 0xa8, 0x0a, + 0xfd, 0x71, 0xdb, 0x39, 0x59, 0x28, 0x11, 0x53, 0x20, 0x1a, 0xb7, 0xe1, 0x44, 0x8a, 0x94, 0x88, + 0xd5, 0xe7, 0xa1, 0x15, 0xf8, 0x8e, 0x15, 0x71, 0xb0, 0xe5, 0x3a, 0xf2, 0x26, 0x06, 0x31, 0xee, + 0xae, 0x43, 0x97, 0x0f, 0x88, 0x1f, 0x64, 0x59, 0x39, 0xda, 0xf2, 0x0e, 0xac, 0xa6, 0x97, 0xf3, + 0xed, 0x8d, 0x4f, 0x60, 0xcd, 0xc4, 0x13, 0xff, 0x05, 0x7e, 0x5d, 0xd2, 0x5d, 0xe8, 0x64, 0x09, + 0x24, 0xc4, 0x13, 0xe8, 0x80, 0xd8, 0x64, 0x1a, 0x1d, 0x8f, 0xf8, 0x65, 0x95, 0x80, 0x88, 0x42, + 0x9c, 0x0e, 0x6a, 0x41, 0xd9, 0x0d, 0xc4, 0xa2, 0xb2, 0x1b, 0x18, 0xdf, 0x40, 0xbd, 0xaf, 0x7a, + 0x03, 0x35, 0x8c, 0xd5, 0x4d, 0x39, 0x44, 0x9b, 0x49, 0x06, 0x51, 0x7e, 0x45, 0xf8, 0x88, 0x73, + 0x8b, 0x7b, 0x19, 0x27, 0x2a, 0x78, 0xd8, 0x04, 0x88, 0x3d, 0x90, 0x0c, 0x47, 0x28, 0x4b, 0xcf, + 0x54, 0xb0, 0x8c, 0x5f, 0x6b, 0xee, 0x48, 0x39, 0x8c, 0x13, 0x1f, 0xc6, 0xd1, 0xdc, 0x53, 0xf9, + 0x38, 0xee, 0xe9, 0x2a, 0xcc, 0x45, 0xc4, 0x26, 0xdc, 0x41, 0xb6, 0x94, 0xc3, 0xe9, 0x5b, 0x62, + 0x93, 0xa3, 0xa1, 0xd3, 0x00, 0xc3, 0x10, 0xdb, 0x04, 0x3b, 0x96, 0xcd, 0x3d, 0x67, 0xc5, 0xac, + 0x0b, 0x48, 0x8f, 0xa0, 0x5b, 0x89, 0x1c, 0xe7, 0x18, 0x1b, 0x1b, 0x39, 0x04, 0x35, 0xbd, 0x24, + 0x92, 0x8e, 0x6f, 0x7b, 0xf5, 0xf0, 0xdb, 0x2e, 0xd6, 0x71, 0x64, 0xc5, 0x61, 0xcd, 0x17, 0x3a, + 0x2c, 0xbe, 0xe2, 0x28, 0x0e, 0xab, 0x56, 0xe8, 0xb0, 0x04, 0x8d, 0x43, 0x1d, 0xd6, 0xcf, 0xe9, + 0x7a, 0x1e, 0x40, 0x27, 0x7b, 0x75, 0x84, 0xcb, 0xb8, 0x0e, 0xd5, 0x88, 0x41, 0x0e, 0x71, 0x3f, + 0x62, 0x89, 0x40, 0x34, 0xee, 0xc2, 0x4a, 0xca, 0x02, 0x78, 0x36, 0x16, 0xdb, 0x4b, 0xe9, 0x48, + 0xf6, 0x62, 0xfc, 0xa3, 0xa4, 0x5a, 0xef, 0x5d, 0x77, 0x4c, 0x70, 0x98, 0xb1, 0xde, 0xf7, 0x25, + 0x51, 0x6e, 0xba, 0xa7, 0x8b, 0x88, 0xf2, 0x44, 0x49, 0x58, 0xe2, 0x00, 0x5a, 0x4c, 0x87, 0x56, + 0x84, 0xc7, 0x2c, 0x54, 0xb2, 0x0c, 0xbf, 0xb1, 0xf9, 0x6e, 0xce, 0x6a, 0xbe, 0x2f, 0x37, 0x80, + 0x81, 0x40, 0xe7, 0xea, 0x6b, 0x8e, 0x55, 0x58, 0xf7, 0x53, 0x40, 0x59, 0xa4, 0x63, 0xe9, 0xe1, + 0x0b, 0x7a, 0xf7, 0x69, 0x82, 0x9f, 0x13, 0x03, 0x9e, 0x32, 0x36, 0x0e, 0x51, 0x02, 0xe7, 0xd3, + 0x14, 0x88, 0xc6, 0xaf, 0x2a, 0x00, 0xc9, 0xe4, 0x1b, 0x7b, 0xe9, 0x6f, 0xc6, 0x57, 0x90, 0xe7, + 0x19, 0x67, 0x73, 0xe8, 0xe5, 0x5e, 0xbe, 0xbb, 0xfa, 0xe5, 0xe3, 0x19, 0xc7, 0xf9, 0xbc, 0xd5, + 0x6f, 0xec, 0xb5, 0xdb, 0x82, 0xd5, 0xb4, 0xba, 0xc5, 0xa5, 0xbb, 0x0c, 0x73, 0x2e, 0xc1, 0x13, + 0x5e, 0xae, 0xaa, 0x39, 0xbf, 0x82, 0xcb, 0x31, 0x8c, 0x73, 0x50, 0xdf, 0x9d, 0xd8, 0x23, 0x3c, + 0x08, 0xf0, 0x90, 0xee, 0xe5, 0xd2, 0x81, 0xd8, 0x9f, 0x0f, 0x8c, 0x4d, 0xa8, 0xdd, 0xc3, 0x07, + 0xfc, 0x0e, 0x1e, 0x91, 0x3f, 0xe3, 0x2f, 0x25, 0x58, 0x63, 0xbe, 0x73, 0x4b, 0x16, 0x8b, 0x26, + 0x8e, 0xfc, 0x69, 0x38, 0xc4, 0x11, 0x53, 0x69, 0x30, 0xb5, 0x02, 0x1c, 0xba, 0xbe, 0x23, 0x4a, + 0xab, 0xfa, 0x30, 0x98, 0xee, 0x31, 0x00, 0x2d, 0x28, 0xe9, 0xf4, 0x77, 0x53, 0x5f, 0xd8, 0x56, + 0xc5, 0xac, 0x0d, 0x83, 0xe9, 0x97, 0x74, 0x2c, 0xd7, 0x46, 0xfb, 0x76, 0x88, 0x23, 0x66, 0x43, + 0x7c, 0xed, 0x80, 0x01, 0xd0, 0x75, 0x38, 0x31, 0xc1, 0x13, 0x3f, 0x3c, 0xb0, 0xc6, 0xee, 0xc4, + 0x25, 0x96, 0xeb, 0x59, 0x4f, 0x0e, 0x08, 0x8e, 0x84, 0xe1, 0x20, 0x3e, 0x79, 0x9f, 0xce, 0xed, + 0x7a, 0x9f, 0xd1, 0x19, 0x64, 0x40, 0xd3, 0xf7, 0x27, 0x56, 0x34, 0xf4, 0x43, 0x6c, 0xd9, 0xce, + 0x33, 0x16, 0x3c, 0x2a, 0x66, 0xc3, 0xf7, 0x27, 0x03, 0x0a, 0xeb, 0x39, 0xcf, 0x0c, 0x1b, 0x9a, + 0x5a, 0xa9, 0x45, 0xab, 0x00, 0x56, 0x53, 0x89, 0x2a, 0x80, 0x7e, 0x53, 0x58, 0xe8, 0x8f, 0xa5, + 0x1c, 0xd8, 0x37, 0x85, 0x91, 0x83, 0x40, 0x96, 0x00, 0xec, 0x9b, 0x0a, 0x6c, 0x8c, 0x5f, 0x88, + 0x6a, 0xb7, 0x6e, 0xf2, 0x81, 0xe1, 0x00, 0x6c, 0xd9, 0x81, 0xfd, 0xc4, 0x1d, 0xbb, 0xe4, 0x00, + 0x5d, 0x86, 0xb6, 0xed, 0x38, 0xd6, 0x50, 0x42, 0x5c, 0x2c, 0x5b, 0x0f, 0x8b, 0xb6, 0xe3, 0x6c, + 0x29, 0x60, 0xf4, 0x0e, 0x2c, 0x39, 0xa1, 0x1f, 0xe8, 0xb8, 0xbc, 0x17, 0xd1, 0xa6, 0x13, 0x2a, + 0xb2, 0xf1, 0xa7, 0x0a, 0x9c, 0xd6, 0xd5, 0x92, 0x2e, 0x5e, 0x6f, 0xc2, 0x42, 0x6a, 0x57, 0xbd, + 0x6a, 0x4c, 0x98, 0x34, 0x35, 0xc4, 0x54, 0x79, 0x57, 0x4e, 0x97, 0x77, 0xf9, 0x55, 0x71, 0xe5, + 0xa7, 0xa8, 0x8a, 0x67, 0x7f, 0x4c, 0x55, 0x3c, 0x77, 0xa4, 0xaa, 0xf8, 0x22, 0xeb, 0x33, 0xc9, + 0x45, 0xac, 0xa0, 0xaa, 0xf2, 0x66, 0x48, 0x8c, 0xe3, 0xc9, 0x7e, 0x54, 0xaa, 0x7a, 0x9e, 0x3f, + 0x4e, 0xf5, 0x5c, 0x2b, 0xaa, 0x9e, 0x8d, 0xdf, 0x94, 0x60, 0x45, 0xd7, 0x9c, 0x28, 0xb8, 0xee, + 0x40, 0x3d, 0x94, 0x57, 0x4b, 0x68, 0x6b, 0x43, 0x4f, 0x5f, 0xb2, 0x57, 0xd0, 0x4c, 0x96, 0xa0, + 0x2f, 0x0b, 0xeb, 0xe6, 0x8b, 0x05, 0x64, 0x5e, 0x59, 0x39, 0xf7, 0x60, 0x29, 0x46, 0x3e, 0xb4, + 0x70, 0x56, 0x0a, 0xe1, 0xb2, 0x5e, 0x08, 0x7b, 0x50, 0xdd, 0xc6, 0x2f, 0xdc, 0x21, 0xfe, 0x49, + 0xda, 0x50, 0x1b, 0xd0, 0x08, 0x70, 0x38, 0x71, 0xa3, 0x28, 0xb6, 0xba, 0xba, 0xa9, 0x82, 0x8c, + 0xbf, 0xcf, 0xc1, 0x62, 0x5a, 0xb2, 0x37, 0x32, 0x75, 0x77, 0x37, 0xb9, 0x06, 0xe9, 0xf3, 0x29, + 0x21, 0xee, 0x92, 0xf4, 0xa2, 0xe5, 0x54, 0x92, 0x1d, 0x3b, 0x5a, 0xe1, 0x59, 0xe9, 0xf9, 0x87, + 0xfe, 0x64, 0x62, 0x7b, 0x8e, 0x6c, 0x11, 0x8a, 0x21, 0x95, 0x96, 0x1d, 0x8e, 0xa8, 0x6d, 0x53, + 0x30, 0xfb, 0x46, 0x67, 0xa1, 0x41, 0x93, 0x55, 0xd7, 0x63, 0x65, 0x3b, 0xb3, 0xdc, 0xba, 0x09, + 0x02, 0xb4, 0xed, 0x86, 0xe8, 0x02, 0xcc, 0x62, 0xef, 0x85, 0x0c, 0x66, 0x49, 0x0f, 0x51, 0x7a, + 0x6f, 0x93, 0x4d, 0xa3, 0x8b, 0x50, 0x9d, 0xf8, 0x53, 0x8f, 0xc8, 0xb4, 0xb5, 0x15, 0x23, 0xb2, + 0xc6, 0x9f, 0x29, 0x66, 0xd1, 0x65, 0x98, 0x77, 0x98, 0x0e, 0x64, 0x6e, 0xba, 0x98, 0x94, 0xfe, + 0x0c, 0x6e, 0xca, 0x79, 0xf4, 0x71, 0x1c, 0x86, 0xeb, 0xa9, 0x40, 0x9a, 0x12, 0x6a, 0x6e, 0x2c, + 0xbe, 0xa7, 0xc7, 0x62, 0x60, 0x24, 0x2e, 0x17, 0x92, 0x38, 0xbc, 0x70, 0x3f, 0x09, 0xb5, 0xb1, + 0x3f, 0xe2, 0x76, 0xd0, 0xe0, 0xf5, 0xd4, 0xd8, 0x1f, 0x31, 0x33, 0x58, 0xa1, 0xb9, 0x87, 0xe3, + 0x7a, 0x9d, 0x05, 0x76, 0x27, 0xf9, 0x80, 0x86, 0x14, 0xf6, 0x61, 0xf9, 0xde, 0x10, 0x77, 0x9a, + 0x6c, 0xaa, 0xce, 0x20, 0x0f, 0xbd, 0x21, 0x8b, 0x78, 0x84, 0x1c, 0x74, 0x5a, 0x0c, 0x4e, 0x3f, + 0x69, 0xca, 0xc8, 0x8b, 0x85, 0xc5, 0x54, 0xca, 0x98, 0x77, 0x3f, 0xdf, 0x80, 0xce, 0xc0, 0x1f, + 0x4a, 0xb0, 0xba, 0xc5, 0x32, 0x26, 0xc5, 0x13, 0x1c, 0xa3, 0xb2, 0x45, 0xd7, 0xe2, 0x16, 0x42, + 0xba, 0x0c, 0x4d, 0x1f, 0x56, 0xe0, 0xa1, 0x4f, 0xa1, 0x25, 0x69, 0x8a, 0x95, 0x95, 0x57, 0x35, + 0x1f, 0x9a, 0x91, 0x3a, 0x34, 0x3e, 0x86, 0xb5, 0x0c, 0xcf, 0x22, 0xbb, 0x39, 0x07, 0x0b, 0x89, + 0x47, 0x88, 0x59, 0x6e, 0xc4, 0xb0, 0x5d, 0xc7, 0xb8, 0x05, 0x27, 0x06, 0xc4, 0x0e, 0x49, 0xe6, + 0xc0, 0x47, 0x58, 0xcb, 0xfa, 0x0f, 0xfa, 0x5a, 0xd1, 0x22, 0x18, 0xc0, 0xca, 0x80, 0xf8, 0xc1, + 0x6b, 0x10, 0xa5, 0x37, 0x9d, 0x1e, 0xdb, 0x9f, 0x12, 0x91, 0xd2, 0xc8, 0xa1, 0xb1, 0xc6, 0xbb, + 0x25, 0xd9, 0xdd, 0x3e, 0x82, 0x55, 0xde, 0xac, 0x78, 0x9d, 0x43, 0x9c, 0x94, 0xad, 0x92, 0x2c, + 0xdd, 0x6d, 0x58, 0x4e, 0x5c, 0x79, 0x52, 0x5d, 0xbd, 0xa7, 0x57, 0x57, 0x6b, 0x59, 0x1d, 0x6b, + 0xc5, 0xd5, 0x2f, 0xca, 0x8a, 0xc3, 0x2c, 0xa8, 0xad, 0x36, 0xf5, 0xda, 0xea, 0x54, 0x01, 0x49, + 0xad, 0xb4, 0xca, 0x5a, 0x64, 0x25, 0xc7, 0x22, 0xcd, 0x4c, 0x01, 0x36, 0xcb, 0x9c, 0xc6, 0x3b, + 0xd9, 0x2d, 0xfe, 0x85, 0xf5, 0xd7, 0x2e, 0xaf, 0xbf, 0xe2, 0xad, 0xe3, 0x06, 0xd2, 0xb5, 0x54, + 0xfd, 0xd5, 0x29, 0x62, 0x33, 0x2e, 0xbf, 0xfe, 0x77, 0x16, 0xea, 0xf1, 0x5c, 0x46, 0xb0, 0x59, + 0x21, 0x95, 0x73, 0x84, 0xa4, 0xc6, 0xaf, 0xca, 0xeb, 0xc4, 0xaf, 0xd9, 0x57, 0xc5, 0xaf, 0x75, + 0xa8, 0xb3, 0x0f, 0x2b, 0xc4, 0x4f, 0x45, 0x3c, 0xaa, 0x31, 0x80, 0x89, 0x9f, 0x26, 0x06, 0x55, + 0x3d, 0x8a, 0x41, 0xa5, 0x0a, 0xbd, 0xf9, 0x74, 0xa1, 0x77, 0x23, 0x8e, 0x30, 0x3c, 0x16, 0x9d, + 0xc9, 0x92, 0xcb, 0x8d, 0x2d, 0x3b, 0x7a, 0x6c, 0xe1, 0xe1, 0xe9, 0xad, 0x9c, 0xc5, 0x6f, 0x6c, + 0x99, 0x77, 0x9f, 0x97, 0x79, 0xaa, 0x55, 0x09, 0x47, 0xb8, 0x09, 0x10, 0xdf, 0x79, 0x59, 0xeb, + 0xa1, 0xec, 0xd1, 0x4c, 0x05, 0x8b, 0x7a, 0x15, 0x4d, 0xfe, 0x49, 0x97, 0xf3, 0x08, 0x5e, 0xe5, + 0x77, 0x6a, 0x96, 0x54, 0xd0, 0x0e, 0xbc, 0x91, 0xe9, 0x0c, 0x1c, 0xcd, 0xea, 0xde, 0xd3, 0x1b, + 0x03, 0xc7, 0x33, 0x97, 0x4c, 0x5f, 0x80, 0x05, 0x75, 0x3b, 0x14, 0xd3, 0xbc, 0xa4, 0xab, 0x0b, + 0x48, 0x8f, 0xd0, 0x54, 0xea, 0xa9, 0xeb, 0xb9, 0xd1, 0x3e, 0x9f, 0xaf, 0xb2, 0x79, 0x90, 0xa0, + 0x1e, 0xfb, 0x79, 0x8a, 0x5f, 0xba, 0xc4, 0x1a, 0xfa, 0x0e, 0x66, 0xc6, 0x38, 0x67, 0xd6, 0x28, + 0x60, 0xcb, 0x77, 0x70, 0x72, 0x41, 0x6a, 0xc7, 0xba, 0x20, 0xf5, 0xd4, 0x05, 0x59, 0x85, 0x6a, + 0x88, 0xed, 0xc8, 0xf7, 0x3a, 0xc0, 0x7f, 0xc1, 0xf2, 0x11, 0x8d, 0x15, 0x13, 0x1c, 0x45, 0x74, + 0x03, 0x91, 0xc0, 0x88, 0xa1, 0x92, 0x66, 0x2d, 0x14, 0xa5, 0x59, 0x87, 0xf4, 0x1b, 0x53, 0x69, + 0x56, 0xb3, 0x28, 0xcd, 0x3a, 0x4a, 0xbb, 0x51, 0x49, 0x22, 0x5b, 0x87, 0x25, 0x91, 0x3f, 0xe7, + 0xc5, 0xb9, 0x07, 0x6b, 0x19, 0x53, 0x17, 0x37, 0xe7, 0x5a, 0xaa, 0x2b, 0xd9, 0x29, 0x92, 0x42, + 0xdc, 0x94, 0xfc, 0x6f, 0x58, 0xdc, 0x79, 0x89, 0x87, 0x83, 0x03, 0x6f, 0x78, 0x8c, 0xb0, 0xdf, + 0x86, 0xca, 0x70, 0xe2, 0x88, 0x72, 0x9c, 0x7e, 0xaa, 0x89, 0x40, 0x45, 0x4f, 0x04, 0x2c, 0x68, + 0x27, 0x3b, 0x08, 0x3e, 0x57, 0x29, 0x9f, 0x0e, 0x45, 0xa6, 0xc4, 0x17, 0x4c, 0x31, 0x12, 0x70, + 0x1c, 0x86, 0xec, 0xd4, 0x1c, 0x8e, 0xc3, 0x50, 0x37, 0xdb, 0x8a, 0x6e, 0xb6, 0xc6, 0x33, 0x68, + 0xd0, 0x0d, 0x7e, 0x14, 0xfb, 0x22, 0x1b, 0xae, 0x24, 0xd9, 0x70, 0x9c, 0x54, 0xcf, 0x2a, 0x49, + 0xb5, 0xb1, 0x01, 0x0b, 0x7c, 0x2f, 0x71, 0x90, 0x36, 0x54, 0xa6, 0xe1, 0x58, 0xea, 0x6d, 0x1a, + 0x8e, 0x8d, 0xff, 0x82, 0x66, 0x8f, 0x10, 0x7b, 0xb8, 0x7f, 0x0c, 0x7e, 0xe2, 0xbd, 0xca, 0x6a, + 0x02, 0x9f, 0xe1, 0xc9, 0x30, 0xa0, 0x25, 0x69, 0x17, 0xee, 0xdf, 0x07, 0xb4, 0xe7, 0x87, 0xe4, + 0xae, 0x1f, 0x7e, 0x6f, 0x87, 0xce, 0xf1, 0x12, 0x62, 0x04, 0xb3, 0xe2, 0xdd, 0x45, 0xe5, 0xd2, + 0x9c, 0xc9, 0xbe, 0x8d, 0xb7, 0x61, 0x59, 0xa3, 0x57, 0xb8, 0xf1, 0x4d, 0x68, 0x30, 0x3f, 0x21, + 0x92, 0xa6, 0x4b, 0x6a, 0xcf, 0xed, 0x30, 0x67, 0x42, 0xcb, 0x6a, 0x1a, 0x08, 0x18, 0x3c, 0xf6, + 0xda, 0xef, 0xa6, 0x52, 0x8b, 0x15, 0x7d, 0x7d, 0x2a, 0xad, 0xf8, 0x7d, 0x09, 0xe6, 0x18, 0x3c, + 0xe3, 0xb6, 0xd7, 0xa1, 0x1e, 0xe2, 0xc0, 0xb7, 0x88, 0x3d, 0x8a, 0x9f, 0xb2, 0x50, 0xc0, 0x23, + 0x7b, 0x14, 0xb1, 0x97, 0x38, 0x74, 0xd2, 0x71, 0x47, 0x38, 0x22, 0xf2, 0x3d, 0x4b, 0x83, 0xc2, + 0xb6, 0x39, 0x88, 0x8a, 0x24, 0x72, 0xff, 0x87, 0xe7, 0x0c, 0xb3, 0x26, 0xfb, 0x46, 0x17, 0xf8, + 0x7f, 0xf1, 0x43, 0x5a, 0x2c, 0xec, 0x67, 0x79, 0x17, 0x6a, 0xa9, 0xae, 0x4a, 0x3c, 0x36, 0x3e, + 0x06, 0xa4, 0x9e, 0x59, 0x08, 0xf5, 0x22, 0x54, 0x99, 0x48, 0x64, 0xd0, 0x6b, 0xe9, 0x87, 0x36, + 0xc5, 0xac, 0x71, 0x07, 0x10, 0x97, 0xa2, 0x16, 0xe8, 0x8e, 0x2e, 0xf1, 0x8f, 0x60, 0x59, 0x5b, + 0x1f, 0xff, 0x06, 0xd5, 0x08, 0xa4, 0x77, 0x17, 0x8b, 0xff, 0x5a, 0x02, 0xe8, 0x4d, 0xc9, 0xbe, + 0xe8, 0x26, 0xa8, 0xa7, 0x2c, 0xe9, 0xa7, 0xa4, 0x73, 0x81, 0x1d, 0x45, 0xdf, 0xfb, 0xa1, 0xcc, + 0xe4, 0xe2, 0x31, 0xeb, 0x04, 0x4c, 0xc9, 0xbe, 0x6c, 0x21, 0xd2, 0x6f, 0x74, 0x01, 0x5a, 0xfc, + 0x05, 0x92, 0x65, 0x3b, 0x4e, 0x88, 0xa3, 0x48, 0xf4, 0x12, 0x9b, 0x1c, 0xda, 0xe3, 0x40, 0x8a, + 0xe6, 0x3a, 0xd8, 0x23, 0x2e, 0x39, 0xb0, 0x88, 0xff, 0x1c, 0x7b, 0x22, 0x47, 0x6b, 0x4a, 0xe8, + 0x23, 0x0a, 0xa4, 0x68, 0x21, 0x1e, 0xb9, 0x11, 0x09, 0x25, 0x9a, 0xec, 0x6d, 0x09, 0x28, 0x43, + 0x33, 0x7e, 0x28, 0x41, 0x7b, 0x6f, 0x3a, 0x1e, 0xf3, 0x43, 0x1e, 0x57, 0x96, 0xe8, 0x6d, 0x71, + 0x8e, 0x72, 0xca, 0x1a, 0x12, 0x11, 0x89, 0xc3, 0xfd, 0xf8, 0xda, 0xf1, 0x1a, 0x2c, 0x29, 0x8c, + 0x0a, 0xa5, 0x69, 0xa1, 0xb8, 0xa4, 0x87, 0x62, 0x6a, 0x28, 0xbc, 0x5c, 0x7a, 0xbd, 0xc3, 0x19, + 0x27, 0x60, 0x59, 0x5b, 0x2f, 0x4a, 0xad, 0x2b, 0xd0, 0x14, 0x3f, 0x1c, 0x85, 0x11, 0x9c, 0x84, + 0x1a, 0x75, 0x2f, 0x43, 0xd7, 0x91, 0xbd, 0xe3, 0xf9, 0xc0, 0x77, 0xb6, 0x5c, 0x27, 0x34, 0xfa, + 0xd0, 0x34, 0x39, 0x79, 0x81, 0x7b, 0x1b, 0x5a, 0xe2, 0xf7, 0xa4, 0xa5, 0xfd, 0xc0, 0x4f, 0x1a, + 0x9d, 0x1a, 0x6d, 0xb3, 0xe9, 0xa9, 0x43, 0xe3, 0x5b, 0xe8, 0x3e, 0x0e, 0x1c, 0x9a, 0x31, 0xa9, + 0x54, 0xe5, 0xd1, 0x6e, 0x83, 0x7c, 0x21, 0x57, 0x44, 0x5c, 0x5f, 0xd6, 0x0c, 0xd5, 0xa1, 0x71, + 0x1a, 0xd6, 0x73, 0x89, 0x8b, 0x73, 0x07, 0xd0, 0x4e, 0x26, 0x1c, 0x57, 0xb6, 0xcc, 0x59, 0x2b, + 0xbc, 0xa4, 0xb4, 0xc2, 0x57, 0xe3, 0x30, 0xcc, 0x1d, 0xba, 0x18, 0x29, 0x99, 0x51, 0xa5, 0x28, + 0x33, 0x9a, 0xd5, 0x32, 0x23, 0xe3, 0x8b, 0x58, 0x7a, 0x22, 0x2d, 0xfd, 0x90, 0xe5, 0xc6, 0x7c, + 0x6f, 0xe9, 0x26, 0x4e, 0xe6, 0x1c, 0x8e, 0x63, 0x98, 0x0a, 0xb2, 0xb1, 0x08, 0x4d, 0xcd, 0x61, + 0x18, 0x9f, 0x42, 0x2b, 0xe5, 0x01, 0xae, 0xa6, 0xf2, 0x87, 0x8c, 0xd8, 0xf4, 0xec, 0xe1, 0xca, + 0x29, 0xa8, 0xc9, 0x87, 0x7c, 0x68, 0x1e, 0x2a, 0x8f, 0xb6, 0xf6, 0xda, 0x33, 0xf4, 0xe3, 0xf1, + 0xf6, 0x5e, 0xbb, 0x74, 0xe5, 0x16, 0x2c, 0xa6, 0xfe, 0x7e, 0xa1, 0x25, 0x68, 0x0e, 0x7a, 0xfd, + 0xed, 0xcf, 0x1e, 0x7e, 0x6d, 0x99, 0x3b, 0xbd, 0xed, 0x6f, 0xda, 0x33, 0x68, 0x05, 0xda, 0x12, + 0xd4, 0x7f, 0xf8, 0x88, 0x43, 0x4b, 0x57, 0x9e, 0x43, 0x4b, 0x4f, 0x90, 0xd1, 0x09, 0x58, 0xda, + 0x7a, 0xd8, 0x7f, 0xd4, 0xdb, 0xed, 0xef, 0x98, 0xd6, 0x96, 0xb9, 0xd3, 0x7b, 0xb4, 0xb3, 0xdd, + 0x9e, 0xd1, 0xc1, 0xe6, 0xe3, 0x7e, 0x7f, 0xb7, 0xff, 0x79, 0xbb, 0x44, 0xa9, 0x26, 0xe0, 0x9d, + 0xaf, 0x77, 0x29, 0x72, 0x59, 0x47, 0x7e, 0xdc, 0xbf, 0xd7, 0x7f, 0xf8, 0x9f, 0xfd, 0x76, 0x65, + 0xf3, 0xb7, 0x0d, 0x68, 0xc9, 0x03, 0xe2, 0x90, 0xb5, 0x67, 0xef, 0xc0, 0xbc, 0x7c, 0x63, 0x99, + 0xa4, 0xec, 0xfa, 0x83, 0xd0, 0x6e, 0x27, 0x3b, 0x21, 0x0c, 0x65, 0x06, 0xed, 0x31, 0xc5, 0x29, + 0x7f, 0x1a, 0x4f, 0xab, 0xa2, 0xcc, 0xfc, 0xca, 0xec, 0x9e, 0x29, 0x9a, 0x8e, 0x29, 0x0e, 0xa8, + 0xb6, 0xd4, 0xf7, 0x23, 0x28, 0x59, 0x93, 0xfb, 0x2e, 0xa5, 0x7b, 0xb6, 0x70, 0x3e, 0x26, 0xfa, + 0x0d, 0xb4, 0xd3, 0x2f, 0x47, 0x50, 0xd2, 0x66, 0x2f, 0x78, 0x95, 0xd2, 0x3d, 0x77, 0x08, 0x86, + 0x4a, 0x3a, 0xf3, 0xc6, 0x62, 0xa3, 0xf8, 0x2f, 0x79, 0x86, 0x74, 0xd1, 0xaf, 0x77, 0x2e, 0x0a, + 0xfd, 0x0f, 0x21, 0x52, 0x5f, 0x36, 0xe4, 0xfc, 0x29, 0x56, 0x44, 0x91, 0xff, 0x6b, 0xd1, 0x98, + 0x41, 0x5f, 0xc1, 0x62, 0xaa, 0x33, 0x87, 0x92, 0x55, 0xf9, 0x7d, 0xc6, 0xee, 0x46, 0x31, 0x82, + 0xae, 0x37, 0xb5, 0xef, 0xa6, 0xe9, 0x2d, 0xa7, 0x99, 0xa7, 0xe9, 0x2d, 0xb7, 0x61, 0xc7, 0xcc, + 0x4b, 0xeb, 0xae, 0x29, 0xe6, 0x95, 0xd7, 0xca, 0xeb, 0x9e, 0x29, 0x9a, 0x56, 0x8f, 0x9f, 0xea, + 0xac, 0x29, 0xc7, 0xcf, 0x6f, 0xd8, 0x75, 0x37, 0x8a, 0x11, 0xd2, 0xba, 0x4a, 0xca, 0xfc, 0x94, + 0xae, 0x32, 0x5d, 0xa5, 0x94, 0xae, 0xb2, 0xfd, 0x01, 0xa1, 0xab, 0x54, 0xbd, 0x7e, 0xb6, 0xb0, + 0xd4, 0xc9, 0xea, 0x2a, 0xbf, 0x7a, 0x32, 0x66, 0x50, 0x0f, 0x6a, 0xb2, 0x56, 0x41, 0xc9, 0xed, + 0x4e, 0x15, 0x48, 0xdd, 0x93, 0x39, 0x33, 0x31, 0x89, 0x7f, 0x87, 0x59, 0x0a, 0x45, 0x2b, 0x1a, + 0x92, 0x5c, 0x7a, 0x22, 0x05, 0x8d, 0x97, 0x7d, 0x04, 0x55, 0x9e, 0xda, 0xa3, 0xc4, 0xe7, 0x6a, + 0x75, 0x44, 0x77, 0x2d, 0x03, 0x8f, 0x17, 0x7f, 0xc1, 0xdf, 0x5d, 0x8b, 0x1c, 0x1d, 0xad, 0x6b, + 0x8f, 0x12, 0xf5, 0x4a, 0xa0, 0x7b, 0x2a, 0x7f, 0x32, 0xa6, 0xf5, 0x04, 0x96, 0x73, 0x42, 0x20, + 0x4a, 0x5a, 0x4b, 0xc5, 0xd1, 0xb7, 0x7b, 0xfe, 0x70, 0x24, 0xf5, 0xb0, 0x42, 0x6b, 0xab, 0xaa, + 0xa9, 0x2b, 0xca, 0x5a, 0xcb, 0xc0, 0xe5, 0xe2, 0xcd, 0x3f, 0x96, 0x61, 0x81, 0x27, 0x2a, 0xc2, + 0x55, 0x7f, 0x0e, 0x90, 0xe4, 0xd2, 0xa8, 0xab, 0x59, 0x8f, 0x56, 0x54, 0x74, 0xd7, 0x73, 0xe7, + 0x54, 0x31, 0x2a, 0x69, 0xb1, 0x22, 0xc6, 0x6c, 0xb2, 0xad, 0x88, 0x31, 0x27, 0x93, 0x36, 0x66, + 0xd0, 0x36, 0xd4, 0xe3, 0x5c, 0x0d, 0x29, 0x29, 0x5e, 0x2a, 0xd1, 0xec, 0x76, 0xf3, 0xa6, 0x54, + 0x8e, 0x94, 0xfc, 0x4b, 0xe1, 0x28, 0x9b, 0xd5, 0x29, 0x1c, 0xe5, 0xa5, 0x6c, 0x33, 0x4f, 0xaa, + 0xec, 0xa1, 0xfd, 0xfb, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xf3, 0xe3, 0x8a, 0x61, 0xed, 0x30, + 0x00, 0x00, } diff --git a/pkg/kubelet/api/v1alpha1/runtime/api.proto b/pkg/kubelet/api/v1alpha1/runtime/api.proto index ecd56311656..2bc8d9b209a 100644 --- a/pkg/kubelet/api/v1alpha1/runtime/api.proto +++ b/pkg/kubelet/api/v1alpha1/runtime/api.proto @@ -1,5 +1,5 @@ // To regenerate api.pb.go run hack/update-generated-runtime.sh -syntax = 'proto2'; +syntax = 'proto3'; package runtime; @@ -84,20 +84,20 @@ service ImageService { message VersionRequest { // Version of the kubelet runtime API. - optional string version = 1; + string version = 1; } message VersionResponse { // Version of the kubelet runtime API. - optional string version = 1; + string version = 1; // Name of the container runtime. - optional string runtime_name = 2; + string runtime_name = 2; // Version of the container runtime. The string must be // semver-compatible. - optional string runtime_version = 3; + string runtime_version = 3; // API version of the container runtime. The string must be // semver-compatible. - optional string runtime_api_version = 4; + string runtime_api_version = 4; } // DNSConfig specifies the DNS servers and search domains of a sandbox. @@ -119,35 +119,41 @@ enum Protocol { // PortMapping specifies the port mapping configurations of a sandbox. message PortMapping { // Protocol of the port mapping. - optional Protocol protocol = 1; - // Port number within the container. - optional int32 container_port = 2; - // Port number on the host. - optional int32 host_port = 3; + Protocol protocol = 1; + // Port number within the container. Default: 0 (not specified). + int32 container_port = 2; + // Port number on the host. Default: 0 (not specified). + int32 host_port = 3; // Host IP. - optional string host_ip = 4; + string host_ip = 4; } // Mount specifies a host volume to mount into a container. message Mount { // Path of the mount within the container. - optional string container_path = 1; + string container_path = 1; // Path of the mount on the host. - optional string host_path = 2; + string host_path = 2; // If set, the mount is read-only. - optional bool readonly = 3; + bool readonly = 3; // If set, the mount needs SELinux relabeling. - optional bool selinux_relabel = 4; + bool selinux_relabel = 4; } // NamespaceOption provides options for Linux namespaces. message NamespaceOption { // If set, use the host's network namespace. - optional bool host_network = 1; + bool host_network = 1; // If set, use the host's PID namespace. - optional bool host_pid = 2; + bool host_pid = 2; // If set, use the host's IPC namespace. - optional bool host_ipc = 3; + bool host_ipc = 3; +} + +// Int64Value is the wrapper of int64. +message Int64Value { + // The value. + int64 value = 1; } // LinuxSandboxSecurityContext holds linux security configuration that will be @@ -158,13 +164,13 @@ message NamespaceOption { message LinuxSandboxSecurityContext { // Configurations for the sandbox's namespaces. // This will be used only if the PodSandbox uses namespace for isolation. - optional NamespaceOption namespace_options = 1; + NamespaceOption namespace_options = 1; // Optional SELinux context to be applied. - optional SELinuxOption selinux_options = 2; + SELinuxOption selinux_options = 2; // UID to run sandbox processes as, when applicable. - optional int64 run_as_user = 3; + Int64Value run_as_user = 3; // If set, the root filesystem of the sandbox is read-only. - optional bool readonly_rootfs = 4; + bool readonly_rootfs = 4; // List of groups applied to the first process run in the sandbox, in // addition to the sandbox's primary GID. repeated int64 supplemental_groups = 5; @@ -173,7 +179,7 @@ message LinuxSandboxSecurityContext { // MUST be true. // This allows a sandbox to take additional security precautions if no // privileged containers are expected to be run. - optional bool privileged = 6; + bool privileged = 6; } // LinuxPodSandboxConfig holds platform-specific configurations for Linux @@ -182,9 +188,9 @@ message LinuxPodSandboxConfig { // Parent cgroup of the PodSandbox. // The cgroupfs style syntax will be used, but the container runtime can // convert it to systemd semantics if needed. - optional string cgroup_parent = 1; + string cgroup_parent = 1; // LinuxSandboxSecurityContext holds sandbox security attributes. - optional LinuxSandboxSecurityContext security_context = 2; + LinuxSandboxSecurityContext security_context = 2; } // PodSandboxMetadata holds all necessary information for building the sandbox name. @@ -193,13 +199,13 @@ message LinuxPodSandboxConfig { // the runtime can construct a unique PodSandboxName based on the metadata. message PodSandboxMetadata { // Pod name of the sandbox. Same as the pod name in the PodSpec. - optional string name = 1; + string name = 1; // Pod UID of the sandbox. Same as the pod UID in the PodSpec. - optional string uid = 2; + string uid = 2; // Pod namespace of the sandbox. Same as the pod namespace in the PodSpec. - optional string namespace = 3; - // Attempt number of creating the sandbox. - optional uint32 attempt = 4; + string namespace = 3; + // Attempt number of creating the sandbox. Default: 0. + uint32 attempt = 4; } // PodSandboxConfig holds all the required and optional fields for creating a @@ -209,9 +215,9 @@ message PodSandboxConfig { // sandbox, and the runtime should leverage this to ensure correct // operation. The runtime may also use this information to improve UX, such // as by constructing a readable name. - optional PodSandboxMetadata metadata = 1; + PodSandboxMetadata metadata = 1; // Hostname of the sandbox. - optional string hostname = 2; + string hostname = 2; // Path to the directory on the host in which container log files are // stored. // By default the log of a container going into the LogDirectory will be @@ -227,9 +233,9 @@ message PodSandboxConfig { // container logs are under active discussion in // https://issues.k8s.io/24677. There *may* be future change of direction // for logging as the discussion carries on. - optional string log_directory = 3; + string log_directory = 3; // DNS config for the sandbox. - optional DNSConfig dns_config = 4; + DNSConfig dns_config = 4; // Port mappings for the sandbox. repeated PortMapping port_mappings = 5; // Key-value pairs that may be used to scope and select individual resources. @@ -292,77 +298,77 @@ message PodSandboxConfig { // map annotations = 7; // Optional configurations specific to Linux hosts. - optional LinuxPodSandboxConfig linux = 8; + LinuxPodSandboxConfig linux = 8; } message RunPodSandboxRequest { // Configuration for creating a PodSandbox. - optional PodSandboxConfig config = 1; + PodSandboxConfig config = 1; } message RunPodSandboxResponse { // ID of the PodSandbox to run. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; } message StopPodSandboxRequest { // ID of the PodSandbox to stop. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; } message StopPodSandboxResponse {} message RemovePodSandboxRequest { // ID of the PodSandbox to remove. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; } message RemovePodSandboxResponse {} message PodSandboxStatusRequest { // ID of the PodSandbox for which to retrieve status. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; } // PodSandboxNetworkStatus is the status of the network for a PodSandbox. message PodSandboxNetworkStatus { // IP address of the PodSandbox. - optional string ip = 1; + string ip = 1; } // Namespace contains paths to the namespaces. message Namespace { // Path to the network namespace. - optional string network = 1; + string network = 1; // Namespace options for Linux namespaces. - optional NamespaceOption options = 2; + NamespaceOption options = 2; } // LinuxSandboxStatus contains status specific to Linux sandboxes. message LinuxPodSandboxStatus { // Paths to the sandbox's namespaces. - optional Namespace namespaces = 1; + Namespace namespaces = 1; } enum PodSandboxState { - SANDBOX_READY = 0; + SANDBOX_READY = 0; SANDBOX_NOTREADY = 1; } // PodSandboxStatus contains the status of the PodSandbox. message PodSandboxStatus { // ID of the sandbox. - optional string id = 1; + string id = 1; // Metadata of the sandbox. - optional PodSandboxMetadata metadata = 2; + PodSandboxMetadata metadata = 2; // State of the sandbox. - optional PodSandboxState state = 3; - // Creation timestamp of the sandbox in nanoseconds. - optional int64 created_at = 4; + PodSandboxState state = 3; + // Creation timestamp of the sandbox in nanoseconds. Must be > 0. + int64 created_at = 4; // Network contains network status if network is handled by the runtime. - optional PodSandboxNetworkStatus network = 5; + PodSandboxNetworkStatus network = 5; // Linux-specific status to a pod sandbox. - optional LinuxPodSandboxStatus linux = 6; + LinuxPodSandboxStatus linux = 6; // Labels are key-value pairs that may be used to scope and select individual resources. map labels = 7; // Unstructured key-value map holding arbitrary metadata. @@ -374,16 +380,22 @@ message PodSandboxStatus { message PodSandboxStatusResponse { // Status of the PodSandbox. - optional PodSandboxStatus status = 1; + PodSandboxStatus status = 1; +} + +// PodSandboxStateValue is the wrapper of PodSandboxState. +message PodSandboxStateValue { + // State of the sandbox. + PodSandboxState state = 1; } // PodSandboxFilter is used to filter a list of PodSandboxes. // All those fields are combined with 'AND' message PodSandboxFilter { // ID of the sandbox. - optional string id = 1; + string id = 1; // State of the sandbox. - optional PodSandboxState state = 2; + PodSandboxStateValue state = 2; // LabelSelector to select matches. // Only api.MatchLabels is supported for now and the requirements // are ANDed. MatchExpressions is not supported yet. @@ -392,20 +404,20 @@ message PodSandboxFilter { message ListPodSandboxRequest { // PodSandboxFilter to filter a list of PodSandboxes. - optional PodSandboxFilter filter = 1; + PodSandboxFilter filter = 1; } // PodSandbox contains minimal information about a sandbox. message PodSandbox { // ID of the PodSandbox. - optional string id = 1; + string id = 1; // Metadata of the PodSandbox. - optional PodSandboxMetadata metadata = 2; + PodSandboxMetadata metadata = 2; // State of the PodSandbox. - optional PodSandboxState state = 3; - // Creation timestamps of the PodSandbox in nanoseconds. - optional int64 created_at = 4; + PodSandboxState state = 3; + // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0. + int64 created_at = 4; // Labels of the PodSandbox. map labels = 5; // Unstructured key-value map holding arbitrary metadata. @@ -424,12 +436,12 @@ message ListPodSandboxResponse { // value of a Container's Image field (e.g. imageID or imageDigest), but in the // future it will include more detailed information about the different image types. message ImageSpec { - optional string image = 1; + string image = 1; } message KeyValue { - optional string key = 1; - optional string value = 2; + string key = 1; + string value = 2; } // LinuxContainerResources specifies Linux specific configuration for @@ -437,24 +449,24 @@ message KeyValue { // TODO: Consider using Resources from opencontainers/runtime-spec/specs-go // directly. message LinuxContainerResources { - // CPU CFS (Completely Fair Scheduler) period. - optional int64 cpu_period = 1; - // CPU CFS (Completely Fair Scheduler) quota. - optional int64 cpu_quota = 2; - // CPU shares (relative weight vs. other containers). - optional int64 cpu_shares = 3; - // Memory limit in bytes. - optional int64 memory_limit_in_bytes = 4; - // OOMScoreAdj adjusts the oom-killer score. - optional int64 oom_score_adj = 5; + // CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified). + int64 cpu_period = 1; + // CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified). + int64 cpu_quota = 2; + // CPU shares (relative weight vs. other containers). Default: 0 (not specified). + int64 cpu_shares = 3; + // Memory limit in bytes. Default: 0 (not specified). + int64 memory_limit_in_bytes = 4; + // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). + int64 oom_score_adj = 5; } // SELinuxOption are the labels to be applied to the container. message SELinuxOption { - optional string user = 1; - optional string role = 2; - optional string type = 3; - optional string level = 4; + string user = 1; + string role = 2; + string type = 3; + string level = 4; } // Capability contains the container capabilities to add or drop @@ -468,7 +480,7 @@ message Capability { // LinuxContainerSecurityContext holds linux security configuration that will be applied to a container. message LinuxContainerSecurityContext { // Capabilities to add or drop. - optional Capability capabilities = 1; + Capability capabilities = 1; // If set, run container in privileged mode. // Privileged mode is incompatible with the following options. If // privileged is set, the following features MAY have no effect: @@ -486,21 +498,21 @@ message LinuxContainerSecurityContext { // 6. The device cgroup does not restrict access to any devices. // 7. All devices from the host's /dev are available within the container. // 8. SELinux restrictions are not applied (e.g. label=disabled). - optional bool privileged = 2; + bool privileged = 2; // Configurations for the container's namespaces. // Only used if the container uses namespace for isolation. - optional NamespaceOption namespace_options = 3; + NamespaceOption namespace_options = 3; // SELinux context to be optionally applied. - optional SELinuxOption selinux_options = 4; + SELinuxOption selinux_options = 4; // UID to run the container process as. Only one of run_as_user and // run_as_username can be specified at a time. - optional int64 run_as_user = 5; + Int64Value run_as_user = 5; // User name to run the container process as. If specified, the user MUST // exist in the container image (i.e. in the /etc/passwd inside the image), // and be resolved there by the runtime; otherwise, the runtime MUST error. - optional string run_as_username = 6; + string run_as_username = 6; // If set, the root filesystem of the container is read-only. - optional bool readonly_rootfs = 7; + bool readonly_rootfs = 7; // List of groups applied to the first process run in the container, in // addition to the container's primary GID. repeated int64 supplemental_groups = 8; @@ -510,9 +522,9 @@ message LinuxContainerSecurityContext { // Linux-based containers. message LinuxContainerConfig { // Resources specification for the container. - optional LinuxContainerResources resources = 1; + LinuxContainerResources resources = 1; // LinuxContainerSecurityContext configuration for the container. - optional LinuxContainerSecurityContext security_context = 2; + LinuxContainerSecurityContext security_context = 2; } // ContainerMetadata holds all necessary information for building the container @@ -522,22 +534,22 @@ message LinuxContainerConfig { // within a sandbox for the entire lifetime of the sandbox. message ContainerMetadata { // Name of the container. Same as the container name in the PodSpec. - optional string name = 1; - // Attempt number of creating the container. - optional uint32 attempt = 2; + string name = 1; + // Attempt number of creating the container. Default: 0. + uint32 attempt = 2; } // Device specifies a host device to mount into a container. message Device { // Path of the device within the container. - optional string container_path = 1; + string container_path = 1; // Path of the device on the host. - optional string host_path = 2; + string host_path = 2; // Cgroups permissions of the device, candidates are one or more of // * r - allows container to read from the specified device. // * w - allows container to write to the specified device. // * m - allows container to create device files that do not yet exist. - optional string permissions = 3; + string permissions = 3; } // ContainerConfig holds all the required and optional fields for creating a @@ -547,15 +559,15 @@ message ContainerConfig { // container, and the runtime should leverage this to ensure correct // operation. The runtime may also use this information to improve UX, such // as by constructing a readable name. - optional ContainerMetadata metadata = 1 ; + ContainerMetadata metadata = 1 ; // Image to use. - optional ImageSpec image = 2; + ImageSpec image = 2; // Command to execute (i.e., entrypoint for docker) repeated string command = 3; // Args for the Command (i.e., command for docker) repeated string args = 4; // Current working directory of the command. - optional string working_dir = 5; + string working_dir = 5; // List of environment variable to set in the container. repeated KeyValue envs = 6; // Mounts for the container. @@ -590,56 +602,57 @@ message ContainerConfig { // container logs are under active discussion in // https://issues.k8s.io/24677. There *may* be future change of direction // for logging as the discussion carries on. - optional string log_path = 11; + string log_path = 11; // Variables for interactive containers, these have very specialized // use-cases (e.g. debugging). // TODO: Determine if we need to continue supporting these fields that are // part of Kubernetes's Container Spec. - optional bool stdin = 12; - optional bool stdin_once = 13; - optional bool tty = 14; + bool stdin = 12; + bool stdin_once = 13; + bool tty = 14; // Configuration specific to Linux containers. - optional LinuxContainerConfig linux = 15; + LinuxContainerConfig linux = 15; } message CreateContainerRequest { // ID of the PodSandbox in which the container should be created. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; // Config of the container. - optional ContainerConfig config = 2; + ContainerConfig config = 2; // Config of the PodSandbox. This is the same config that was passed // to RunPodSandboxRequest to create the PodSandbox. It is passed again // here just for easy reference. The PodSandboxConfig is immutable and // remains the same throughout the lifetime of the pod. - optional PodSandboxConfig sandbox_config = 3; + PodSandboxConfig sandbox_config = 3; } message CreateContainerResponse { // ID of the created container. - optional string container_id = 1; + string container_id = 1; } message StartContainerRequest { // ID of the container to start. - optional string container_id = 1; + string container_id = 1; } message StartContainerResponse {} message StopContainerRequest { // ID of the container to stop. - optional string container_id = 1; - // Timeout, in seconds, to stop the container. - optional int64 timeout = 2; + string container_id = 1; + // Timeout in seconds to wait for the container to stop before forcibly + // terminating it. Default: 0 (forcibly terminate the container immediately) + int64 timeout = 2; } message StopContainerResponse {} message RemoveContainerRequest { // ID of the container to remove. - optional string container_id = 1; + string container_id = 1; } message RemoveContainerResponse {} @@ -651,15 +664,21 @@ enum ContainerState { CONTAINER_UNKNOWN = 3; } +// ContainerStateValue is the wrapper of ContainerState. +message ContainerStateValue { + // State of the container. + ContainerState state = 1; +} + // ContainerFilter is used to filter containers. // All those fields are combined with 'AND' message ContainerFilter { // ID of the container. - optional string id = 1; + string id = 1; // State of the container. - optional ContainerState state = 2; + ContainerStateValue state = 2; // ID of the PodSandbox. - optional string pod_sandbox_id = 3; + string pod_sandbox_id = 3; // LabelSelector to select matches. // Only api.MatchLabels is supported for now and the requirements // are ANDed. MatchExpressions is not supported yet. @@ -667,7 +686,7 @@ message ContainerFilter { } message ListContainersRequest { - optional ContainerFilter filter = 1; + ContainerFilter filter = 1; } // Container provides the runtime information for a container, such as ID, hash, @@ -675,20 +694,20 @@ message ListContainersRequest { message Container { // ID of the container, used by the container runtime to identify // a container. - optional string id = 1; + string id = 1; // ID of the sandbox to which this container belongs. - optional string pod_sandbox_id = 2; + string pod_sandbox_id = 2; // Metadata of the container. - optional ContainerMetadata metadata = 3; + ContainerMetadata metadata = 3; // Spec of the image. - optional ImageSpec image = 4; + ImageSpec image = 4; // Reference to the image in use. For most runtimes, this should be an // image ID. - optional string image_ref = 5; + string image_ref = 5; // State of the container. - optional ContainerState state = 6; + ContainerState state = 6; // Creation time of the container in nanoseconds. - optional int64 created_at = 7; + int64 created_at = 7; // Key-value pairs that may be used to scope and select individual resources. map labels = 8; // Unstructured key-value map holding arbitrary metadata. @@ -705,35 +724,35 @@ message ListContainersResponse { message ContainerStatusRequest { // ID of the container for which to retrieve status. - optional string container_id = 1; + string container_id = 1; } // ContainerStatus represents the status of a container. message ContainerStatus { // ID of the container. - optional string id = 1; + string id = 1; // Metadata of the container. - optional ContainerMetadata metadata = 2; + ContainerMetadata metadata = 2; // Status of the container. - optional ContainerState state = 3; + ContainerState state = 3; // Creation time of the container in nanoseconds. - optional int64 created_at = 4; - // Start time of the container in nanoseconds. - optional int64 started_at = 5; - // Finish time of the container in nanoseconds. - optional int64 finished_at = 6; - // Exit code of the container. - optional int32 exit_code = 7; + int64 created_at = 4; + // Start time of the container in nanoseconds. Default: 0 (not specified). + int64 started_at = 5; + // Finish time of the container in nanoseconds. Default: 0 (not specified). + int64 finished_at = 6; + // Exit code of the container. Only required when finished_at != 0. Default: 0. + int32 exit_code = 7; // Spec of the image. - optional ImageSpec image = 8; + ImageSpec image = 8; // Reference to the image in use. For most runtimes, this should be an // image ID - optional string image_ref = 9; + string image_ref = 9; // Brief CamelCase string explaining why container is in its current state. - optional string reason = 10; + string reason = 10; // Human-readable message indicating details about why container is in its // current state. - optional string message = 11; + string message = 11; // Key-value pairs that may be used to scope and select individual resources. map labels = 12; // Unstructured key-value map holding arbitrary metadata. @@ -747,97 +766,97 @@ message ContainerStatus { message ContainerStatusResponse { // Status of the container. - optional ContainerStatus status = 1; + ContainerStatus status = 1; } message ExecSyncRequest { // ID of the container. - optional string container_id = 1; + string container_id = 1; // Command to execute. repeated string cmd = 2; - // Timeout in seconds to stop the command. Default: run forever. - optional int64 timeout = 3; + // Timeout in seconds to stop the command. Default: 0 (run forever). + int64 timeout = 3; } message ExecSyncResponse { // Captured command stdout output. - optional bytes stdout = 1; + bytes stdout = 1; // Captured command stderr output. - optional bytes stderr = 2; - // Exit code the command finished with. - optional int32 exit_code = 3; + bytes stderr = 2; + // Exit code the command finished with. Default: 0 (success). + int32 exit_code = 3; } message ExecRequest { // ID of the container in which to execute the command. - optional string container_id = 1; + string container_id = 1; // Command to execute. repeated string cmd = 2; // Whether to exec the command in a TTY. - optional bool tty = 3; + bool tty = 3; // Whether to stream stdin. - optional bool stdin = 4; + bool stdin = 4; } message ExecResponse { // Fully qualified URL of the exec streaming server. - optional string url = 1; + string url = 1; } message AttachRequest { // ID of the container to which to attach. - optional string container_id = 1; + string container_id = 1; // Whether to stream stdin. - optional bool stdin = 2; + bool stdin = 2; // Whether the process being attached is running in a TTY. // This must match the TTY setting in the ContainerConfig. - optional bool tty = 3; + bool tty = 3; } message AttachResponse { // Fully qualified URL of the attach streaming server. - optional string url = 1; + string url = 1; } message PortForwardRequest { // ID of the container to which to forward the port. - optional string pod_sandbox_id = 1; + string pod_sandbox_id = 1; // Port to forward. repeated int32 port = 2; } message PortForwardResponse { // Fully qualified URL of the port-forward streaming server. - optional string url = 1; + string url = 1; } message ImageFilter { // Spec of the image. - optional ImageSpec image = 1; + ImageSpec image = 1; } message ListImagesRequest { // Filter to list images. - optional ImageFilter filter = 1; + ImageFilter filter = 1; } // Basic information about a container image. message Image { // ID of the image. - optional string id = 1; + string id = 1; // Other names by which this image is known. repeated string repo_tags = 2; // Digests by which this image is known. repeated string repo_digests = 3; - // Size of the image in bytes. - optional uint64 size = 4; + // Size of the image in bytes. Must be > 0. + uint64 size = 4; // UID that will run the command(s). This is used as a default if no user is // specified when creating the container. UID and the following user name // are mutually exclusive. - optional int64 uid = 5; + Int64Value uid = 5; // User name that will run the command(s). This is used if UID is not set // and no user is specified when creating container. - optional string username = 6; + string username = 6; } message ListImagesResponse { @@ -847,67 +866,67 @@ message ListImagesResponse { message ImageStatusRequest { // Spec of the image. - optional ImageSpec image = 1; + ImageSpec image = 1; } message ImageStatusResponse { // Status of the image. - optional Image image = 1; + Image image = 1; } // AuthConfig contains authorization information for connecting to a registry. message AuthConfig { - optional string username = 1; - optional string password = 2; - optional string auth = 3; - optional string server_address = 4; + string username = 1; + string password = 2; + string auth = 3; + string server_address = 4; // IdentityToken is used to authenticate the user and get // an access token for the registry. - optional string identity_token = 5; + string identity_token = 5; // RegistryToken is a bearer token to be sent to a registry - optional string registry_token = 6; + string registry_token = 6; } message PullImageRequest { // Spec of the image. - optional ImageSpec image = 1; + ImageSpec image = 1; // Authentication configuration for pulling the image. - optional AuthConfig auth = 2; + AuthConfig auth = 2; // Config of the PodSandbox, which is used to pull image in PodSandbox context. - optional PodSandboxConfig sandbox_config = 3; + PodSandboxConfig sandbox_config = 3; } message PullImageResponse { // Reference to the image in use. For most runtimes, this should be an // image ID or digest. - optional string image_ref = 1; + string image_ref = 1; } message RemoveImageRequest { // Spec of the image to remove. - optional ImageSpec image = 1; + ImageSpec image = 1; } message RemoveImageResponse {} message NetworkConfig { // CIDR to use for pod IP addresses. - optional string pod_cidr = 1; + string pod_cidr = 1; } message RuntimeConfig { - optional NetworkConfig network_config = 1; + NetworkConfig network_config = 1; } message UpdateRuntimeConfigRequest { - optional RuntimeConfig runtime_config = 1; + RuntimeConfig runtime_config = 1; } message UpdateRuntimeConfigResponse {} // RuntimeCondition contains condition information for the runtime. // There are 2 kinds of runtime conditions: -// 1. Required condtitions: Conditions are required for kubelet to work +// 1. Required conditions: Conditions are required for kubelet to work // properly. If any required condition is unmet, the node will be not ready. // The required conditions include: // * RuntimeReady: RuntimeReady means the runtime is up and ready to accept @@ -920,13 +939,13 @@ message UpdateRuntimeConfigResponse {} // them understand the status of the system. message RuntimeCondition { // Type of runtime condition. - optional string type = 1; - // Status of the condition, one of true/false. - optional bool status = 2; + string type = 1; + // Status of the condition, one of true/false. Default: false. + bool status = 2; // Brief CamelCase string containing reason for the condition's last transition. - optional string reason = 3; + string reason = 3; // Human-readable message indicating details about last transition. - optional string message = 4; + string message = 4; } // RuntimeStatus is information about the current status of the runtime. @@ -939,5 +958,5 @@ message StatusRequest {} message StatusResponse { // Status of the Runtime. - optional RuntimeStatus status = 1; + RuntimeStatus status = 1; }