diff options
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/kubelet')
16 files changed, 3724 insertions, 860 deletions
diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go index 8377cd33b..653c72603 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 2018 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. // DO NOT EDIT! /* - Package runtime is a generated protocol buffer package. + Package v1alpha2 is a generated protocol buffer package. It is generated from these files: api.proto @@ -60,6 +60,8 @@ limitations under the License. Capability LinuxContainerSecurityContext LinuxContainerConfig + WindowsContainerConfig + WindowsContainerResources ContainerMetadata Device ContainerConfig @@ -79,6 +81,8 @@ limitations under the License. ContainerStatusRequest ContainerStatus ContainerStatusResponse + UpdateContainerResourcesRequest + UpdateContainerResourcesResponse ExecSyncRequest ExecSyncResponse ExecRequest @@ -108,7 +112,7 @@ limitations under the License. StatusResponse ImageFsInfoRequest UInt64Value - StorageIdentifier + FilesystemIdentifier FilesystemUsage ImageFsInfoResponse ContainerStatsRequest @@ -120,8 +124,10 @@ limitations under the License. ContainerStats CpuUsage MemoryUsage + ReopenContainerLogRequest + ReopenContainerLogResponse */ -package runtime +package v1alpha2 import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -171,6 +177,70 @@ func (x Protocol) String() string { } func (Protocol) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{0} } +type MountPropagation int32 + +const ( + // No mount propagation ("private" in Linux terminology). + MountPropagation_PROPAGATION_PRIVATE MountPropagation = 0 + // Mounts get propagated from the host to the container ("rslave" in Linux). + MountPropagation_PROPAGATION_HOST_TO_CONTAINER MountPropagation = 1 + // Mounts get propagated from the host to the container and from the + // container to the host ("rshared" in Linux). + MountPropagation_PROPAGATION_BIDIRECTIONAL MountPropagation = 2 +) + +var MountPropagation_name = map[int32]string{ + 0: "PROPAGATION_PRIVATE", + 1: "PROPAGATION_HOST_TO_CONTAINER", + 2: "PROPAGATION_BIDIRECTIONAL", +} +var MountPropagation_value = map[string]int32{ + "PROPAGATION_PRIVATE": 0, + "PROPAGATION_HOST_TO_CONTAINER": 1, + "PROPAGATION_BIDIRECTIONAL": 2, +} + +func (x MountPropagation) String() string { + return proto.EnumName(MountPropagation_name, int32(x)) +} +func (MountPropagation) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{1} } + +// A NamespaceMode describes the intended namespace configuration for each +// of the namespaces (Network, PID, IPC) in NamespaceOption. Runtimes should +// map these modes as appropriate for the technology underlying the runtime. +type NamespaceMode int32 + +const ( + // A POD namespace is common to all containers in a pod. + // For example, a container with a PID namespace of POD expects to view + // all of the processes in all of the containers in the pod. + NamespaceMode_POD NamespaceMode = 0 + // A CONTAINER namespace is restricted to a single container. + // For example, a container with a PID namespace of CONTAINER expects to + // view only the processes in that container. + NamespaceMode_CONTAINER NamespaceMode = 1 + // A NODE namespace is the namespace of the Kubernetes node. + // For example, a container with a PID namespace of NODE expects to view + // all of the processes on the host running the kubelet. + NamespaceMode_NODE NamespaceMode = 2 +) + +var NamespaceMode_name = map[int32]string{ + 0: "POD", + 1: "CONTAINER", + 2: "NODE", +} +var NamespaceMode_value = map[string]int32{ + "POD": 0, + "CONTAINER": 1, + "NODE": 2, +} + +func (x NamespaceMode) String() string { + return proto.EnumName(NamespaceMode_name, int32(x)) +} +func (NamespaceMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{2} } + type PodSandboxState int32 const ( @@ -190,7 +260,7 @@ var PodSandboxState_value = map[string]int32{ func (x PodSandboxState) String() string { return proto.EnumName(PodSandboxState_name, int32(x)) } -func (PodSandboxState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{1} } +func (PodSandboxState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{3} } type ContainerState int32 @@ -217,7 +287,7 @@ var ContainerState_value = map[string]int32{ func (x ContainerState) String() string { return proto.EnumName(ContainerState_name, int32(x)) } -func (ContainerState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{2} } +func (ContainerState) EnumDescriptor() ([]byte, []int) { return fileDescriptorApi, []int{4} } type VersionRequest struct { // Version of the kubelet runtime API. @@ -319,7 +389,7 @@ func (m *DNSConfig) GetOptions() []string { // 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,proto3,enum=runtime.Protocol" json:"protocol,omitempty"` + Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=runtime.v1alpha2.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). @@ -370,6 +440,8 @@ type Mount struct { 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,proto3" json:"selinux_relabel,omitempty"` + // Requested propagation mode. + Propagation MountPropagation `protobuf:"varint,5,opt,name=propagation,proto3,enum=runtime.v1alpha2.MountPropagation" json:"propagation,omitempty"` } func (m *Mount) Reset() { *m = Mount{} } @@ -404,39 +476,53 @@ func (m *Mount) GetSelinuxRelabel() bool { return false } +func (m *Mount) GetPropagation() MountPropagation { + if m != nil { + return m.Propagation + } + return MountPropagation_PROPAGATION_PRIVATE +} + // 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,proto3" json:"host_network,omitempty"` - // If set, use the host's PID namespace. - 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,proto3" json:"host_ipc,omitempty"` + // Network namespace for this container/sandbox. + // Note: There is currently no way to set CONTAINER scoped network in the Kubernetes API. + // Namespaces currently set by the kubelet: POD, NODE + Network NamespaceMode `protobuf:"varint,1,opt,name=network,proto3,enum=runtime.v1alpha2.NamespaceMode" json:"network,omitempty"` + // PID namespace for this container/sandbox. + // Note: The CRI default is POD, but the v1.PodSpec default is CONTAINER. + // The kubelet's runtime manager will set this to CONTAINER explicitly for v1 pods. + // Namespaces currently set by the kubelet: POD, CONTAINER, NODE + Pid NamespaceMode `protobuf:"varint,2,opt,name=pid,proto3,enum=runtime.v1alpha2.NamespaceMode" json:"pid,omitempty"` + // IPC namespace for this container/sandbox. + // Note: There is currently no way to set CONTAINER scoped IPC in the Kubernetes API. + // Namespaces currently set by the kubelet: POD, NODE + Ipc NamespaceMode `protobuf:"varint,3,opt,name=ipc,proto3,enum=runtime.v1alpha2.NamespaceMode" json:"ipc,omitempty"` } func (m *NamespaceOption) Reset() { *m = NamespaceOption{} } func (*NamespaceOption) ProtoMessage() {} func (*NamespaceOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} } -func (m *NamespaceOption) GetHostNetwork() bool { +func (m *NamespaceOption) GetNetwork() NamespaceMode { if m != nil { - return m.HostNetwork + return m.Network } - return false + return NamespaceMode_POD } -func (m *NamespaceOption) GetHostPid() bool { +func (m *NamespaceOption) GetPid() NamespaceMode { if m != nil { - return m.HostPid + return m.Pid } - return false + return NamespaceMode_POD } -func (m *NamespaceOption) GetHostIpc() bool { +func (m *NamespaceOption) GetIpc() NamespaceMode { if m != nil { - return m.HostIpc + return m.Ipc } - return false + return NamespaceMode_POD } // Int64Value is the wrapper of int64. @@ -480,6 +566,13 @@ type LinuxSandboxSecurityContext struct { // 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,proto3" json:"privileged,omitempty"` + // Seccomp profile for the sandbox, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/<full-path-to-profile>: the profile installed on the node. + // <full-path-to-profile> is the full path of the profile. + // Default: "", which is identical with unconfined. + SeccompProfilePath string `protobuf:"bytes,7,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` } func (m *LinuxSandboxSecurityContext) Reset() { *m = LinuxSandboxSecurityContext{} } @@ -528,6 +621,13 @@ func (m *LinuxSandboxSecurityContext) GetPrivileged() bool { return false } +func (m *LinuxSandboxSecurityContext) GetSeccompProfilePath() string { + if m != nil { + return m.SeccompProfilePath + } + return "" +} + // LinuxPodSandboxConfig holds platform-specific configurations for Linux // host platforms and Linux-based containers. type LinuxPodSandboxConfig struct { @@ -655,32 +755,12 @@ type PodSandboxConfig struct { // // In general, in order to preserve a well-defined interface between the // kubelet and the container runtime, annotations SHOULD NOT influence - // runtime behaviour. For legacy reasons, there are some annotations which - // currently explicitly break this rule, listed below; in future versions - // of the interface these will be promoted to typed features. + // runtime behaviour. // // Annotations can also be useful for runtime authors to experiment with // new features that are opaque to the Kubernetes APIs (both user-facing // and the CRI). Whenever possible, however, runtime authors SHOULD // consider proposing new typed fields for any new features instead. - // - // 1. Seccomp - // - // key: security.alpha.kubernetes.io/seccomp/pod - // description: the seccomp profile for the containers of an entire pod. - // value: see below. - // - // key: security.alpha.kubernetes.io/seccomp/container/<container name> - // description: the seccomp profile for the container (overrides pod). - // value: see below - // - // The value of seccomp is runtime agnostic: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/<profile-name>: the profile installed to the node's - // local seccomp profile root. Note that profile root is set in - // kubelet, and it is not passed in CRI yet, see https://issues.k8s.io/36997. - // 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"` @@ -827,6 +907,8 @@ func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescr type PodSandboxStatusRequest struct { // ID of the PodSandbox for which to retrieve status. PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` + // Verbose indicates whether to return extra information about the pod sandbox. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *PodSandboxStatusRequest) Reset() { *m = PodSandboxStatusRequest{} } @@ -840,6 +922,13 @@ func (m *PodSandboxStatusRequest) GetPodSandboxId() string { return "" } +func (m *PodSandboxStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + // PodSandboxNetworkStatus is the status of the network for a PodSandbox. type PodSandboxNetworkStatus struct { // IP address of the PodSandbox. @@ -898,7 +987,7 @@ type PodSandboxStatus struct { // 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,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.v1alpha2.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. @@ -977,6 +1066,11 @@ 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"` + // Info is extra information of the PodSandbox. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. network namespace for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *PodSandboxStatusResponse) Reset() { *m = PodSandboxStatusResponse{} } @@ -990,10 +1084,17 @@ func (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus { return nil } +func (m *PodSandboxStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + 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"` + State PodSandboxState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.v1alpha2.PodSandboxState" json:"state,omitempty"` } func (m *PodSandboxStateValue) Reset() { *m = PodSandboxStateValue{} } @@ -1068,7 +1169,7 @@ type PodSandbox struct { // 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,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.v1alpha2.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. @@ -1198,6 +1299,10 @@ type LinuxContainerResources struct { 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"` + // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). + CpusetCpus string `protobuf:"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3" json:"cpuset_cpus,omitempty"` + // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). + CpusetMems string `protobuf:"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3" json:"cpuset_mems,omitempty"` } func (m *LinuxContainerResources) Reset() { *m = LinuxContainerResources{} } @@ -1239,6 +1344,20 @@ func (m *LinuxContainerResources) GetOomScoreAdj() int64 { return 0 } +func (m *LinuxContainerResources) GetCpusetCpus() string { + if m != nil { + return m.CpusetCpus + } + return "" +} + +func (m *LinuxContainerResources) GetCpusetMems() string { + if m != nil { + return m.CpusetMems + } + return "" +} + // SELinuxOption are the labels to be applied to the container. type SELinuxOption struct { User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` @@ -1346,10 +1465,21 @@ type LinuxContainerSecurityContext struct { SupplementalGroups []int64 `protobuf:"varint,8,rep,packed,name=supplemental_groups,json=supplementalGroups" json:"supplemental_groups,omitempty"` // AppArmor profile for the container, candidate values are: // * runtime/default: equivalent to not specifying a profile. + // * unconfined: no profiles are loaded // * localhost/<profile_name>: profile loaded on the node // (localhost) by name. The possible profile names are detailed at // http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference ApparmorProfile string `protobuf:"bytes,9,opt,name=apparmor_profile,json=apparmorProfile,proto3" json:"apparmor_profile,omitempty"` + // Seccomp profile for the container, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/<full-path-to-profile>: the profile installed on the node. + // <full-path-to-profile> is the full path of the profile. + // Default: "", which is identical with unconfined. + SeccompProfilePath string `protobuf:"bytes,10,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` + // no_new_privs defines if the flag for no_new_privs should be set on the + // container. + NoNewPrivs bool `protobuf:"varint,11,opt,name=no_new_privs,json=noNewPrivs,proto3" json:"no_new_privs,omitempty"` } func (m *LinuxContainerSecurityContext) Reset() { *m = LinuxContainerSecurityContext{} } @@ -1421,6 +1551,20 @@ func (m *LinuxContainerSecurityContext) GetApparmorProfile() string { return "" } +func (m *LinuxContainerSecurityContext) GetSeccompProfilePath() string { + if m != nil { + return m.SeccompProfilePath + } + return "" +} + +func (m *LinuxContainerSecurityContext) GetNoNewPrivs() bool { + if m != nil { + return m.NoNewPrivs + } + return false +} + // LinuxContainerConfig contains platform-specific configuration for // Linux-based containers. type LinuxContainerConfig struct { @@ -1448,6 +1592,69 @@ func (m *LinuxContainerConfig) GetSecurityContext() *LinuxContainerSecurityConte return nil } +// WindowsContainerConfig contains platform-specific configuration for +// Windows-based containers. +type WindowsContainerConfig struct { + // Resources specification for the container. + Resources *WindowsContainerResources `protobuf:"bytes,1,opt,name=resources" json:"resources,omitempty"` +} + +func (m *WindowsContainerConfig) Reset() { *m = WindowsContainerConfig{} } +func (*WindowsContainerConfig) ProtoMessage() {} +func (*WindowsContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } + +func (m *WindowsContainerConfig) GetResources() *WindowsContainerResources { + if m != nil { + return m.Resources + } + return nil +} + +// WindowsContainerResources specifies Windows specific configuration for +// resources. +type WindowsContainerResources struct { + // CPU shares (relative weight vs. other containers). Default: 0 (not specified). + CpuShares int64 `protobuf:"varint,1,opt,name=cpu_shares,json=cpuShares,proto3" json:"cpu_shares,omitempty"` + // Number of CPUs available to the container. Default: 0 (not specified). + CpuCount int64 `protobuf:"varint,2,opt,name=cpu_count,json=cpuCount,proto3" json:"cpu_count,omitempty"` + // Specifies the portion of processor cycles that this container can use as a percentage times 100. + CpuMaximum int64 `protobuf:"varint,3,opt,name=cpu_maximum,json=cpuMaximum,proto3" json:"cpu_maximum,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"` +} + +func (m *WindowsContainerResources) Reset() { *m = WindowsContainerResources{} } +func (*WindowsContainerResources) ProtoMessage() {} +func (*WindowsContainerResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} } + +func (m *WindowsContainerResources) GetCpuShares() int64 { + if m != nil { + return m.CpuShares + } + return 0 +} + +func (m *WindowsContainerResources) GetCpuCount() int64 { + if m != nil { + return m.CpuCount + } + return 0 +} + +func (m *WindowsContainerResources) GetCpuMaximum() int64 { + if m != nil { + return m.CpuMaximum + } + return 0 +} + +func (m *WindowsContainerResources) GetMemoryLimitInBytes() int64 { + if m != nil { + return m.MemoryLimitInBytes + } + return 0 +} + // ContainerMetadata holds all necessary information for building the container // name. The container runtime is encouraged to expose the metadata in its user // interface for better user experience. E.g., runtime can construct a unique @@ -1462,7 +1669,7 @@ type ContainerMetadata struct { func (m *ContainerMetadata) Reset() { *m = ContainerMetadata{} } func (*ContainerMetadata) ProtoMessage() {} -func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } +func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } func (m *ContainerMetadata) GetName() string { if m != nil { @@ -1493,7 +1700,7 @@ type Device struct { func (m *Device) Reset() { *m = Device{} } func (*Device) ProtoMessage() {} -func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} } +func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } func (m *Device) GetContainerPath() string { if m != nil { @@ -1576,11 +1783,13 @@ type ContainerConfig struct { 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"` + // Configuration specific to Windows containers. + Windows *WindowsContainerConfig `protobuf:"bytes,16,opt,name=windows" json:"windows,omitempty"` } func (m *ContainerConfig) Reset() { *m = ContainerConfig{} } func (*ContainerConfig) ProtoMessage() {} -func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } +func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } func (m *ContainerConfig) GetMetadata() *ContainerMetadata { if m != nil { @@ -1687,6 +1896,13 @@ func (m *ContainerConfig) GetLinux() *LinuxContainerConfig { return nil } +func (m *ContainerConfig) GetWindows() *WindowsContainerConfig { + if m != nil { + return m.Windows + } + return nil +} + 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,proto3" json:"pod_sandbox_id,omitempty"` @@ -1701,7 +1917,7 @@ type CreateContainerRequest struct { func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} } func (*CreateContainerRequest) ProtoMessage() {} -func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } +func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } func (m *CreateContainerRequest) GetPodSandboxId() string { if m != nil { @@ -1731,7 +1947,7 @@ type CreateContainerResponse struct { func (m *CreateContainerResponse) Reset() { *m = CreateContainerResponse{} } func (*CreateContainerResponse) ProtoMessage() {} -func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } +func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } func (m *CreateContainerResponse) GetContainerId() string { if m != nil { @@ -1747,7 +1963,7 @@ type StartContainerRequest struct { func (m *StartContainerRequest) Reset() { *m = StartContainerRequest{} } func (*StartContainerRequest) ProtoMessage() {} -func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } +func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } func (m *StartContainerRequest) GetContainerId() string { if m != nil { @@ -1761,7 +1977,7 @@ type StartContainerResponse struct { func (m *StartContainerResponse) Reset() { *m = StartContainerResponse{} } func (*StartContainerResponse) ProtoMessage() {} -func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } +func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } type StopContainerRequest struct { // ID of the container to stop. @@ -1773,7 +1989,7 @@ type StopContainerRequest struct { func (m *StopContainerRequest) Reset() { *m = StopContainerRequest{} } func (*StopContainerRequest) ProtoMessage() {} -func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } +func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } func (m *StopContainerRequest) GetContainerId() string { if m != nil { @@ -1794,7 +2010,7 @@ type StopContainerResponse struct { func (m *StopContainerResponse) Reset() { *m = StopContainerResponse{} } func (*StopContainerResponse) ProtoMessage() {} -func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } +func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } type RemoveContainerRequest struct { // ID of the container to remove. @@ -1803,7 +2019,7 @@ type RemoveContainerRequest struct { func (m *RemoveContainerRequest) Reset() { *m = RemoveContainerRequest{} } func (*RemoveContainerRequest) ProtoMessage() {} -func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } +func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } func (m *RemoveContainerRequest) GetContainerId() string { if m != nil { @@ -1817,17 +2033,17 @@ type RemoveContainerResponse struct { func (m *RemoveContainerResponse) Reset() { *m = RemoveContainerResponse{} } func (*RemoveContainerResponse) ProtoMessage() {} -func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } +func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } // 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"` + State ContainerState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.v1alpha2.ContainerState" json:"state,omitempty"` } func (m *ContainerStateValue) Reset() { *m = ContainerStateValue{} } func (*ContainerStateValue) ProtoMessage() {} -func (*ContainerStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } +func (*ContainerStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } func (m *ContainerStateValue) GetState() ContainerState { if m != nil { @@ -1853,7 +2069,7 @@ type ContainerFilter struct { func (m *ContainerFilter) Reset() { *m = ContainerFilter{} } func (*ContainerFilter) ProtoMessage() {} -func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } +func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } func (m *ContainerFilter) GetId() string { if m != nil { @@ -1889,7 +2105,7 @@ type ListContainersRequest struct { func (m *ListContainersRequest) Reset() { *m = ListContainersRequest{} } func (*ListContainersRequest) ProtoMessage() {} -func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } +func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } func (m *ListContainersRequest) GetFilter() *ContainerFilter { if m != nil { @@ -1914,7 +2130,7 @@ type Container struct { // image ID. 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,proto3,enum=runtime.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,6,opt,name=state,proto3,enum=runtime.v1alpha2.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. 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. @@ -1928,7 +2144,7 @@ type Container struct { func (m *Container) Reset() { *m = Container{} } func (*Container) ProtoMessage() {} -func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } +func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } func (m *Container) GetId() string { if m != nil { @@ -2000,7 +2216,7 @@ type ListContainersResponse struct { func (m *ListContainersResponse) Reset() { *m = ListContainersResponse{} } func (*ListContainersResponse) ProtoMessage() {} -func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } +func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } func (m *ListContainersResponse) GetContainers() []*Container { if m != nil { @@ -2012,11 +2228,13 @@ 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,proto3" json:"container_id,omitempty"` + // Verbose indicates whether to return extra information about the container. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *ContainerStatusRequest) Reset() { *m = ContainerStatusRequest{} } func (*ContainerStatusRequest) ProtoMessage() {} -func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } +func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } func (m *ContainerStatusRequest) GetContainerId() string { if m != nil { @@ -2025,6 +2243,13 @@ func (m *ContainerStatusRequest) GetContainerId() string { return "" } +func (m *ContainerStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + // ContainerStatus represents the status of a container. type ContainerStatus struct { // ID of the container. @@ -2032,7 +2257,7 @@ type ContainerStatus struct { // 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,proto3,enum=runtime.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.v1alpha2.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. 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). @@ -2066,7 +2291,7 @@ type ContainerStatus struct { func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } func (*ContainerStatus) ProtoMessage() {} -func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } +func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } func (m *ContainerStatus) GetId() string { if m != nil { @@ -2176,11 +2401,16 @@ func (m *ContainerStatus) GetLogPath() string { type ContainerStatusResponse struct { // Status of the container. Status *ContainerStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + // Info is extra information of the Container. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. pid for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *ContainerStatusResponse) Reset() { *m = ContainerStatusResponse{} } func (*ContainerStatusResponse) ProtoMessage() {} -func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } +func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { if m != nil { @@ -2189,6 +2419,49 @@ func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { return nil } +func (m *ContainerStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + +type UpdateContainerResourcesRequest struct { + // ID of the container to update. + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Resource configuration specific to Linux containers. + Linux *LinuxContainerResources `protobuf:"bytes,2,opt,name=linux" json:"linux,omitempty"` +} + +func (m *UpdateContainerResourcesRequest) Reset() { *m = UpdateContainerResourcesRequest{} } +func (*UpdateContainerResourcesRequest) ProtoMessage() {} +func (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) { + return fileDescriptorApi, []int{56} +} + +func (m *UpdateContainerResourcesRequest) GetContainerId() string { + if m != nil { + return m.ContainerId + } + return "" +} + +func (m *UpdateContainerResourcesRequest) GetLinux() *LinuxContainerResources { + if m != nil { + return m.Linux + } + return nil +} + +type UpdateContainerResourcesResponse struct { +} + +func (m *UpdateContainerResourcesResponse) Reset() { *m = UpdateContainerResourcesResponse{} } +func (*UpdateContainerResourcesResponse) ProtoMessage() {} +func (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) { + return fileDescriptorApi, []int{57} +} + type ExecSyncRequest struct { // ID of the container. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` @@ -2200,7 +2473,7 @@ type ExecSyncRequest struct { func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (*ExecSyncRequest) ProtoMessage() {} -func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } +func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } func (m *ExecSyncRequest) GetContainerId() string { if m != nil { @@ -2234,7 +2507,7 @@ type ExecSyncResponse struct { func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (*ExecSyncResponse) ProtoMessage() {} -func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } +func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } func (m *ExecSyncResponse) GetStdout() []byte { if m != nil { @@ -2265,12 +2538,22 @@ type ExecRequest struct { // Whether to exec the command in a TTY. Tty bool `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"` // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. Stdin bool `protobuf:"varint,4,opt,name=stdin,proto3" json:"stdin,omitempty"` + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + Stdout bool `protobuf:"varint,5,opt,name=stdout,proto3" json:"stdout,omitempty"` + // Whether to stream stderr. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported + // in this case. The output of stdout and stderr will be combined to a + // single stream. + Stderr bool `protobuf:"varint,6,opt,name=stderr,proto3" json:"stderr,omitempty"` } func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} -func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } +func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } func (m *ExecRequest) GetContainerId() string { if m != nil { @@ -2300,6 +2583,20 @@ func (m *ExecRequest) GetStdin() bool { return false } +func (m *ExecRequest) GetStdout() bool { + if m != nil { + return m.Stdout + } + return false +} + +func (m *ExecRequest) GetStderr() bool { + if m != nil { + return m.Stderr + } + return false +} + type ExecResponse struct { // Fully qualified URL of the exec streaming server. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` @@ -2307,7 +2604,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} -func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } +func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } func (m *ExecResponse) GetUrl() string { if m != nil { @@ -2320,15 +2617,25 @@ type AttachRequest struct { // ID of the container to which to attach. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. 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,proto3" json:"tty,omitempty"` + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + Stdout bool `protobuf:"varint,4,opt,name=stdout,proto3" json:"stdout,omitempty"` + // Whether to stream stderr. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported + // in this case. The output of stdout and stderr will be combined to a + // single stream. + Stderr bool `protobuf:"varint,5,opt,name=stderr,proto3" json:"stderr,omitempty"` } func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (*AttachRequest) ProtoMessage() {} -func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } +func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } func (m *AttachRequest) GetContainerId() string { if m != nil { @@ -2351,6 +2658,20 @@ func (m *AttachRequest) GetTty() bool { return false } +func (m *AttachRequest) GetStdout() bool { + if m != nil { + return m.Stdout + } + return false +} + +func (m *AttachRequest) GetStderr() bool { + if m != nil { + return m.Stderr + } + return false +} + type AttachResponse struct { // Fully qualified URL of the attach streaming server. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` @@ -2358,7 +2679,7 @@ type AttachResponse struct { func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (*AttachResponse) ProtoMessage() {} -func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } +func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } func (m *AttachResponse) GetUrl() string { if m != nil { @@ -2376,7 +2697,7 @@ type PortForwardRequest struct { func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (*PortForwardRequest) ProtoMessage() {} -func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } +func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } func (m *PortForwardRequest) GetPodSandboxId() string { if m != nil { @@ -2399,7 +2720,7 @@ type PortForwardResponse struct { func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (*PortForwardResponse) ProtoMessage() {} -func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } +func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } func (m *PortForwardResponse) GetUrl() string { if m != nil { @@ -2415,7 +2736,7 @@ type ImageFilter struct { func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (*ImageFilter) ProtoMessage() {} -func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } +func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } func (m *ImageFilter) GetImage() *ImageSpec { if m != nil { @@ -2431,7 +2752,7 @@ type ListImagesRequest struct { func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (*ListImagesRequest) ProtoMessage() {} -func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } +func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } func (m *ListImagesRequest) GetFilter() *ImageFilter { if m != nil { @@ -2461,7 +2782,7 @@ type Image struct { func (m *Image) Reset() { *m = Image{} } func (*Image) ProtoMessage() {} -func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } +func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } func (m *Image) GetId() string { if m != nil { @@ -2512,7 +2833,7 @@ type ListImagesResponse struct { func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (*ListImagesResponse) ProtoMessage() {} -func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } +func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } func (m *ListImagesResponse) GetImages() []*Image { if m != nil { @@ -2524,11 +2845,13 @@ func (m *ListImagesResponse) GetImages() []*Image { type ImageStatusRequest struct { // Spec of the image. Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` + // Verbose indicates whether to return extra information about the image. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (*ImageStatusRequest) ProtoMessage() {} -func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } +func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } func (m *ImageStatusRequest) GetImage() *ImageSpec { if m != nil { @@ -2537,14 +2860,26 @@ func (m *ImageStatusRequest) GetImage() *ImageSpec { return nil } +func (m *ImageStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + type ImageStatusResponse struct { // Status of the image. Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` + // Info is extra information of the Image. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful + // for debug, e.g. image config for oci image based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (*ImageStatusResponse) ProtoMessage() {} -func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } +func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } func (m *ImageStatusResponse) GetImage() *Image { if m != nil { @@ -2553,6 +2888,13 @@ func (m *ImageStatusResponse) GetImage() *Image { return nil } +func (m *ImageStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + // AuthConfig contains authorization information for connecting to a registry. type AuthConfig struct { Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` @@ -2568,7 +2910,7 @@ type AuthConfig struct { func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (*AuthConfig) ProtoMessage() {} -func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } +func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } func (m *AuthConfig) GetUsername() string { if m != nil { @@ -2623,7 +2965,7 @@ type PullImageRequest struct { func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (*PullImageRequest) ProtoMessage() {} -func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } +func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } func (m *PullImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2654,7 +2996,7 @@ type PullImageResponse struct { func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (*PullImageResponse) ProtoMessage() {} -func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } +func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } func (m *PullImageResponse) GetImageRef() string { if m != nil { @@ -2670,7 +3012,7 @@ type RemoveImageRequest struct { func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (*RemoveImageRequest) ProtoMessage() {} -func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } +func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } func (m *RemoveImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2684,7 +3026,7 @@ type RemoveImageResponse struct { func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (*RemoveImageResponse) ProtoMessage() {} -func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } +func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } type NetworkConfig struct { // CIDR to use for pod IP addresses. @@ -2693,7 +3035,7 @@ type NetworkConfig struct { func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (*NetworkConfig) ProtoMessage() {} -func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } +func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } func (m *NetworkConfig) GetPodCidr() string { if m != nil { @@ -2708,7 +3050,7 @@ type RuntimeConfig struct { func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (*RuntimeConfig) ProtoMessage() {} -func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } +func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } func (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig { if m != nil { @@ -2723,7 +3065,7 @@ type UpdateRuntimeConfigRequest struct { func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} -func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } +func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } func (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig { if m != nil { @@ -2737,7 +3079,7 @@ type UpdateRuntimeConfigResponse struct { func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} -func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } +func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } // RuntimeCondition contains condition information for the runtime. // There are 2 kinds of runtime conditions: @@ -2765,7 +3107,7 @@ type RuntimeCondition struct { func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (*RuntimeCondition) ProtoMessage() {} -func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } +func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } func (m *RuntimeCondition) GetType() string { if m != nil { @@ -2803,7 +3145,7 @@ type RuntimeStatus struct { func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (*RuntimeStatus) ProtoMessage() {} -func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } +func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { if m != nil { @@ -2813,20 +3155,34 @@ func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { } type StatusRequest struct { + // Verbose indicates whether to return extra information about the runtime. + Verbose bool `protobuf:"varint,1,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} -func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } +func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } + +func (m *StatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} type StatusResponse struct { // Status of the Runtime. Status *RuntimeStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + // Info is extra information of the Runtime. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. plugins used by the container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} -func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } +func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } func (m *StatusResponse) GetStatus() *RuntimeStatus { if m != nil { @@ -2835,12 +3191,19 @@ func (m *StatusResponse) GetStatus() *RuntimeStatus { return nil } +func (m *StatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + type ImageFsInfoRequest struct { } func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} } func (*ImageFsInfoRequest) ProtoMessage() {} -func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } +func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } // UInt64Value is the wrapper of uint64. type UInt64Value struct { @@ -2850,7 +3213,7 @@ type UInt64Value struct { func (m *UInt64Value) Reset() { *m = UInt64Value{} } func (*UInt64Value) ProtoMessage() {} -func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } +func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } func (m *UInt64Value) GetValue() uint64 { if m != nil { @@ -2859,19 +3222,19 @@ func (m *UInt64Value) GetValue() uint64 { return 0 } -// StorageIdentifier uniquely identify the storage.. -type StorageIdentifier struct { - // UUID of the device. - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` +// FilesystemIdentifier uniquely identify the filesystem. +type FilesystemIdentifier struct { + // Mountpoint of a filesystem. + Mountpoint string `protobuf:"bytes,1,opt,name=mountpoint,proto3" json:"mountpoint,omitempty"` } -func (m *StorageIdentifier) Reset() { *m = StorageIdentifier{} } -func (*StorageIdentifier) ProtoMessage() {} -func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } +func (m *FilesystemIdentifier) Reset() { *m = FilesystemIdentifier{} } +func (*FilesystemIdentifier) ProtoMessage() {} +func (*FilesystemIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } -func (m *StorageIdentifier) GetUuid() string { +func (m *FilesystemIdentifier) GetMountpoint() string { if m != nil { - return m.Uuid + return m.Mountpoint } return "" } @@ -2880,8 +3243,8 @@ func (m *StorageIdentifier) GetUuid() string { type FilesystemUsage struct { // Timestamp in nanoseconds at which the information were collected. Must be > 0. Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - // The underlying storage of the filesystem. - StorageId *StorageIdentifier `protobuf:"bytes,2,opt,name=storage_id,json=storageId" json:"storage_id,omitempty"` + // The unique identifier of the filesystem. + FsId *FilesystemIdentifier `protobuf:"bytes,2,opt,name=fs_id,json=fsId" json:"fs_id,omitempty"` // UsedBytes represents the bytes used for images on the filesystem. // This may differ from the total bytes used on the filesystem and may not // equal CapacityBytes - AvailableBytes. @@ -2894,7 +3257,7 @@ type FilesystemUsage struct { func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} } func (*FilesystemUsage) ProtoMessage() {} -func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } +func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } func (m *FilesystemUsage) GetTimestamp() int64 { if m != nil { @@ -2903,9 +3266,9 @@ func (m *FilesystemUsage) GetTimestamp() int64 { return 0 } -func (m *FilesystemUsage) GetStorageId() *StorageIdentifier { +func (m *FilesystemUsage) GetFsId() *FilesystemIdentifier { if m != nil { - return m.StorageId + return m.FsId } return nil } @@ -2931,7 +3294,7 @@ type ImageFsInfoResponse struct { func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} } func (*ImageFsInfoResponse) ProtoMessage() {} -func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } +func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } func (m *ImageFsInfoResponse) GetImageFilesystems() []*FilesystemUsage { if m != nil { @@ -2947,7 +3310,7 @@ type ContainerStatsRequest struct { func (m *ContainerStatsRequest) Reset() { *m = ContainerStatsRequest{} } func (*ContainerStatsRequest) ProtoMessage() {} -func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } +func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } func (m *ContainerStatsRequest) GetContainerId() string { if m != nil { @@ -2963,7 +3326,7 @@ type ContainerStatsResponse struct { func (m *ContainerStatsResponse) Reset() { *m = ContainerStatsResponse{} } func (*ContainerStatsResponse) ProtoMessage() {} -func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } +func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } func (m *ContainerStatsResponse) GetStats() *ContainerStats { if m != nil { @@ -2979,7 +3342,7 @@ type ListContainerStatsRequest struct { func (m *ListContainerStatsRequest) Reset() { *m = ListContainerStatsRequest{} } func (*ListContainerStatsRequest) ProtoMessage() {} -func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } +func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } func (m *ListContainerStatsRequest) GetFilter() *ContainerStatsFilter { if m != nil { @@ -3003,7 +3366,7 @@ type ContainerStatsFilter struct { func (m *ContainerStatsFilter) Reset() { *m = ContainerStatsFilter{} } func (*ContainerStatsFilter) ProtoMessage() {} -func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } +func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } func (m *ContainerStatsFilter) GetId() string { if m != nil { @@ -3033,7 +3396,7 @@ type ListContainerStatsResponse struct { func (m *ListContainerStatsResponse) Reset() { *m = ListContainerStatsResponse{} } func (*ListContainerStatsResponse) ProtoMessage() {} -func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } +func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } func (m *ListContainerStatsResponse) GetStats() []*ContainerStats { if m != nil { @@ -3059,7 +3422,7 @@ type ContainerAttributes struct { func (m *ContainerAttributes) Reset() { *m = ContainerAttributes{} } func (*ContainerAttributes) ProtoMessage() {} -func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } +func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{95} } func (m *ContainerAttributes) GetId() string { if m != nil { @@ -3103,7 +3466,7 @@ type ContainerStats struct { func (m *ContainerStats) Reset() { *m = ContainerStats{} } func (*ContainerStats) ProtoMessage() {} -func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } +func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{96} } func (m *ContainerStats) GetAttributes() *ContainerAttributes { if m != nil { @@ -3143,7 +3506,7 @@ type CpuUsage struct { func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (*CpuUsage) ProtoMessage() {} -func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } +func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{97} } func (m *CpuUsage) GetTimestamp() int64 { if m != nil { @@ -3169,7 +3532,7 @@ type MemoryUsage struct { func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (*MemoryUsage) ProtoMessage() {} -func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } +func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{98} } func (m *MemoryUsage) GetTimestamp() int64 { if m != nil { @@ -3185,105 +3548,136 @@ func (m *MemoryUsage) GetWorkingSetBytes() *UInt64Value { return nil } +type ReopenContainerLogRequest struct { + // ID of the container for which to reopen the log. + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` +} + +func (m *ReopenContainerLogRequest) Reset() { *m = ReopenContainerLogRequest{} } +func (*ReopenContainerLogRequest) ProtoMessage() {} +func (*ReopenContainerLogRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{99} } + +func (m *ReopenContainerLogRequest) GetContainerId() string { + if m != nil { + return m.ContainerId + } + return "" +} + +type ReopenContainerLogResponse struct { +} + +func (m *ReopenContainerLogResponse) Reset() { *m = ReopenContainerLogResponse{} } +func (*ReopenContainerLogResponse) ProtoMessage() {} +func (*ReopenContainerLogResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{100} } + func init() { - proto.RegisterType((*VersionRequest)(nil), "runtime.VersionRequest") - proto.RegisterType((*VersionResponse)(nil), "runtime.VersionResponse") - proto.RegisterType((*DNSConfig)(nil), "runtime.DNSConfig") - 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") - proto.RegisterType((*PodSandboxConfig)(nil), "runtime.PodSandboxConfig") - proto.RegisterType((*RunPodSandboxRequest)(nil), "runtime.RunPodSandboxRequest") - proto.RegisterType((*RunPodSandboxResponse)(nil), "runtime.RunPodSandboxResponse") - proto.RegisterType((*StopPodSandboxRequest)(nil), "runtime.StopPodSandboxRequest") - proto.RegisterType((*StopPodSandboxResponse)(nil), "runtime.StopPodSandboxResponse") - proto.RegisterType((*RemovePodSandboxRequest)(nil), "runtime.RemovePodSandboxRequest") - proto.RegisterType((*RemovePodSandboxResponse)(nil), "runtime.RemovePodSandboxResponse") - proto.RegisterType((*PodSandboxStatusRequest)(nil), "runtime.PodSandboxStatusRequest") - proto.RegisterType((*PodSandboxNetworkStatus)(nil), "runtime.PodSandboxNetworkStatus") - proto.RegisterType((*Namespace)(nil), "runtime.Namespace") - 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") - proto.RegisterType((*ListPodSandboxResponse)(nil), "runtime.ListPodSandboxResponse") - proto.RegisterType((*ImageSpec)(nil), "runtime.ImageSpec") - proto.RegisterType((*KeyValue)(nil), "runtime.KeyValue") - proto.RegisterType((*LinuxContainerResources)(nil), "runtime.LinuxContainerResources") - proto.RegisterType((*SELinuxOption)(nil), "runtime.SELinuxOption") - proto.RegisterType((*Capability)(nil), "runtime.Capability") - proto.RegisterType((*LinuxContainerSecurityContext)(nil), "runtime.LinuxContainerSecurityContext") - proto.RegisterType((*LinuxContainerConfig)(nil), "runtime.LinuxContainerConfig") - proto.RegisterType((*ContainerMetadata)(nil), "runtime.ContainerMetadata") - proto.RegisterType((*Device)(nil), "runtime.Device") - proto.RegisterType((*ContainerConfig)(nil), "runtime.ContainerConfig") - proto.RegisterType((*CreateContainerRequest)(nil), "runtime.CreateContainerRequest") - proto.RegisterType((*CreateContainerResponse)(nil), "runtime.CreateContainerResponse") - proto.RegisterType((*StartContainerRequest)(nil), "runtime.StartContainerRequest") - proto.RegisterType((*StartContainerResponse)(nil), "runtime.StartContainerResponse") - proto.RegisterType((*StopContainerRequest)(nil), "runtime.StopContainerRequest") - 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") - proto.RegisterType((*ListContainersResponse)(nil), "runtime.ListContainersResponse") - proto.RegisterType((*ContainerStatusRequest)(nil), "runtime.ContainerStatusRequest") - proto.RegisterType((*ContainerStatus)(nil), "runtime.ContainerStatus") - proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.ContainerStatusResponse") - proto.RegisterType((*ExecSyncRequest)(nil), "runtime.ExecSyncRequest") - proto.RegisterType((*ExecSyncResponse)(nil), "runtime.ExecSyncResponse") - proto.RegisterType((*ExecRequest)(nil), "runtime.ExecRequest") - proto.RegisterType((*ExecResponse)(nil), "runtime.ExecResponse") - proto.RegisterType((*AttachRequest)(nil), "runtime.AttachRequest") - proto.RegisterType((*AttachResponse)(nil), "runtime.AttachResponse") - proto.RegisterType((*PortForwardRequest)(nil), "runtime.PortForwardRequest") - proto.RegisterType((*PortForwardResponse)(nil), "runtime.PortForwardResponse") - proto.RegisterType((*ImageFilter)(nil), "runtime.ImageFilter") - proto.RegisterType((*ListImagesRequest)(nil), "runtime.ListImagesRequest") - proto.RegisterType((*Image)(nil), "runtime.Image") - proto.RegisterType((*ListImagesResponse)(nil), "runtime.ListImagesResponse") - proto.RegisterType((*ImageStatusRequest)(nil), "runtime.ImageStatusRequest") - proto.RegisterType((*ImageStatusResponse)(nil), "runtime.ImageStatusResponse") - proto.RegisterType((*AuthConfig)(nil), "runtime.AuthConfig") - proto.RegisterType((*PullImageRequest)(nil), "runtime.PullImageRequest") - proto.RegisterType((*PullImageResponse)(nil), "runtime.PullImageResponse") - proto.RegisterType((*RemoveImageRequest)(nil), "runtime.RemoveImageRequest") - proto.RegisterType((*RemoveImageResponse)(nil), "runtime.RemoveImageResponse") - proto.RegisterType((*NetworkConfig)(nil), "runtime.NetworkConfig") - proto.RegisterType((*RuntimeConfig)(nil), "runtime.RuntimeConfig") - proto.RegisterType((*UpdateRuntimeConfigRequest)(nil), "runtime.UpdateRuntimeConfigRequest") - proto.RegisterType((*UpdateRuntimeConfigResponse)(nil), "runtime.UpdateRuntimeConfigResponse") - proto.RegisterType((*RuntimeCondition)(nil), "runtime.RuntimeCondition") - proto.RegisterType((*RuntimeStatus)(nil), "runtime.RuntimeStatus") - proto.RegisterType((*StatusRequest)(nil), "runtime.StatusRequest") - proto.RegisterType((*StatusResponse)(nil), "runtime.StatusResponse") - proto.RegisterType((*ImageFsInfoRequest)(nil), "runtime.ImageFsInfoRequest") - proto.RegisterType((*UInt64Value)(nil), "runtime.UInt64Value") - proto.RegisterType((*StorageIdentifier)(nil), "runtime.StorageIdentifier") - proto.RegisterType((*FilesystemUsage)(nil), "runtime.FilesystemUsage") - proto.RegisterType((*ImageFsInfoResponse)(nil), "runtime.ImageFsInfoResponse") - proto.RegisterType((*ContainerStatsRequest)(nil), "runtime.ContainerStatsRequest") - proto.RegisterType((*ContainerStatsResponse)(nil), "runtime.ContainerStatsResponse") - proto.RegisterType((*ListContainerStatsRequest)(nil), "runtime.ListContainerStatsRequest") - proto.RegisterType((*ContainerStatsFilter)(nil), "runtime.ContainerStatsFilter") - proto.RegisterType((*ListContainerStatsResponse)(nil), "runtime.ListContainerStatsResponse") - proto.RegisterType((*ContainerAttributes)(nil), "runtime.ContainerAttributes") - proto.RegisterType((*ContainerStats)(nil), "runtime.ContainerStats") - proto.RegisterType((*CpuUsage)(nil), "runtime.CpuUsage") - proto.RegisterType((*MemoryUsage)(nil), "runtime.MemoryUsage") - proto.RegisterEnum("runtime.Protocol", Protocol_name, Protocol_value) - proto.RegisterEnum("runtime.PodSandboxState", PodSandboxState_name, PodSandboxState_value) - proto.RegisterEnum("runtime.ContainerState", ContainerState_name, ContainerState_value) + proto.RegisterType((*VersionRequest)(nil), "runtime.v1alpha2.VersionRequest") + proto.RegisterType((*VersionResponse)(nil), "runtime.v1alpha2.VersionResponse") + proto.RegisterType((*DNSConfig)(nil), "runtime.v1alpha2.DNSConfig") + proto.RegisterType((*PortMapping)(nil), "runtime.v1alpha2.PortMapping") + proto.RegisterType((*Mount)(nil), "runtime.v1alpha2.Mount") + proto.RegisterType((*NamespaceOption)(nil), "runtime.v1alpha2.NamespaceOption") + proto.RegisterType((*Int64Value)(nil), "runtime.v1alpha2.Int64Value") + proto.RegisterType((*LinuxSandboxSecurityContext)(nil), "runtime.v1alpha2.LinuxSandboxSecurityContext") + proto.RegisterType((*LinuxPodSandboxConfig)(nil), "runtime.v1alpha2.LinuxPodSandboxConfig") + proto.RegisterType((*PodSandboxMetadata)(nil), "runtime.v1alpha2.PodSandboxMetadata") + proto.RegisterType((*PodSandboxConfig)(nil), "runtime.v1alpha2.PodSandboxConfig") + proto.RegisterType((*RunPodSandboxRequest)(nil), "runtime.v1alpha2.RunPodSandboxRequest") + proto.RegisterType((*RunPodSandboxResponse)(nil), "runtime.v1alpha2.RunPodSandboxResponse") + proto.RegisterType((*StopPodSandboxRequest)(nil), "runtime.v1alpha2.StopPodSandboxRequest") + proto.RegisterType((*StopPodSandboxResponse)(nil), "runtime.v1alpha2.StopPodSandboxResponse") + proto.RegisterType((*RemovePodSandboxRequest)(nil), "runtime.v1alpha2.RemovePodSandboxRequest") + proto.RegisterType((*RemovePodSandboxResponse)(nil), "runtime.v1alpha2.RemovePodSandboxResponse") + proto.RegisterType((*PodSandboxStatusRequest)(nil), "runtime.v1alpha2.PodSandboxStatusRequest") + proto.RegisterType((*PodSandboxNetworkStatus)(nil), "runtime.v1alpha2.PodSandboxNetworkStatus") + proto.RegisterType((*Namespace)(nil), "runtime.v1alpha2.Namespace") + proto.RegisterType((*LinuxPodSandboxStatus)(nil), "runtime.v1alpha2.LinuxPodSandboxStatus") + proto.RegisterType((*PodSandboxStatus)(nil), "runtime.v1alpha2.PodSandboxStatus") + proto.RegisterType((*PodSandboxStatusResponse)(nil), "runtime.v1alpha2.PodSandboxStatusResponse") + proto.RegisterType((*PodSandboxStateValue)(nil), "runtime.v1alpha2.PodSandboxStateValue") + proto.RegisterType((*PodSandboxFilter)(nil), "runtime.v1alpha2.PodSandboxFilter") + proto.RegisterType((*ListPodSandboxRequest)(nil), "runtime.v1alpha2.ListPodSandboxRequest") + proto.RegisterType((*PodSandbox)(nil), "runtime.v1alpha2.PodSandbox") + proto.RegisterType((*ListPodSandboxResponse)(nil), "runtime.v1alpha2.ListPodSandboxResponse") + proto.RegisterType((*ImageSpec)(nil), "runtime.v1alpha2.ImageSpec") + proto.RegisterType((*KeyValue)(nil), "runtime.v1alpha2.KeyValue") + proto.RegisterType((*LinuxContainerResources)(nil), "runtime.v1alpha2.LinuxContainerResources") + proto.RegisterType((*SELinuxOption)(nil), "runtime.v1alpha2.SELinuxOption") + proto.RegisterType((*Capability)(nil), "runtime.v1alpha2.Capability") + proto.RegisterType((*LinuxContainerSecurityContext)(nil), "runtime.v1alpha2.LinuxContainerSecurityContext") + proto.RegisterType((*LinuxContainerConfig)(nil), "runtime.v1alpha2.LinuxContainerConfig") + proto.RegisterType((*WindowsContainerConfig)(nil), "runtime.v1alpha2.WindowsContainerConfig") + proto.RegisterType((*WindowsContainerResources)(nil), "runtime.v1alpha2.WindowsContainerResources") + proto.RegisterType((*ContainerMetadata)(nil), "runtime.v1alpha2.ContainerMetadata") + proto.RegisterType((*Device)(nil), "runtime.v1alpha2.Device") + proto.RegisterType((*ContainerConfig)(nil), "runtime.v1alpha2.ContainerConfig") + proto.RegisterType((*CreateContainerRequest)(nil), "runtime.v1alpha2.CreateContainerRequest") + proto.RegisterType((*CreateContainerResponse)(nil), "runtime.v1alpha2.CreateContainerResponse") + proto.RegisterType((*StartContainerRequest)(nil), "runtime.v1alpha2.StartContainerRequest") + proto.RegisterType((*StartContainerResponse)(nil), "runtime.v1alpha2.StartContainerResponse") + proto.RegisterType((*StopContainerRequest)(nil), "runtime.v1alpha2.StopContainerRequest") + proto.RegisterType((*StopContainerResponse)(nil), "runtime.v1alpha2.StopContainerResponse") + proto.RegisterType((*RemoveContainerRequest)(nil), "runtime.v1alpha2.RemoveContainerRequest") + proto.RegisterType((*RemoveContainerResponse)(nil), "runtime.v1alpha2.RemoveContainerResponse") + proto.RegisterType((*ContainerStateValue)(nil), "runtime.v1alpha2.ContainerStateValue") + proto.RegisterType((*ContainerFilter)(nil), "runtime.v1alpha2.ContainerFilter") + proto.RegisterType((*ListContainersRequest)(nil), "runtime.v1alpha2.ListContainersRequest") + proto.RegisterType((*Container)(nil), "runtime.v1alpha2.Container") + proto.RegisterType((*ListContainersResponse)(nil), "runtime.v1alpha2.ListContainersResponse") + proto.RegisterType((*ContainerStatusRequest)(nil), "runtime.v1alpha2.ContainerStatusRequest") + proto.RegisterType((*ContainerStatus)(nil), "runtime.v1alpha2.ContainerStatus") + proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.v1alpha2.ContainerStatusResponse") + proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "runtime.v1alpha2.UpdateContainerResourcesRequest") + proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "runtime.v1alpha2.UpdateContainerResourcesResponse") + proto.RegisterType((*ExecSyncRequest)(nil), "runtime.v1alpha2.ExecSyncRequest") + proto.RegisterType((*ExecSyncResponse)(nil), "runtime.v1alpha2.ExecSyncResponse") + proto.RegisterType((*ExecRequest)(nil), "runtime.v1alpha2.ExecRequest") + proto.RegisterType((*ExecResponse)(nil), "runtime.v1alpha2.ExecResponse") + proto.RegisterType((*AttachRequest)(nil), "runtime.v1alpha2.AttachRequest") + proto.RegisterType((*AttachResponse)(nil), "runtime.v1alpha2.AttachResponse") + proto.RegisterType((*PortForwardRequest)(nil), "runtime.v1alpha2.PortForwardRequest") + proto.RegisterType((*PortForwardResponse)(nil), "runtime.v1alpha2.PortForwardResponse") + proto.RegisterType((*ImageFilter)(nil), "runtime.v1alpha2.ImageFilter") + proto.RegisterType((*ListImagesRequest)(nil), "runtime.v1alpha2.ListImagesRequest") + proto.RegisterType((*Image)(nil), "runtime.v1alpha2.Image") + proto.RegisterType((*ListImagesResponse)(nil), "runtime.v1alpha2.ListImagesResponse") + proto.RegisterType((*ImageStatusRequest)(nil), "runtime.v1alpha2.ImageStatusRequest") + proto.RegisterType((*ImageStatusResponse)(nil), "runtime.v1alpha2.ImageStatusResponse") + proto.RegisterType((*AuthConfig)(nil), "runtime.v1alpha2.AuthConfig") + proto.RegisterType((*PullImageRequest)(nil), "runtime.v1alpha2.PullImageRequest") + proto.RegisterType((*PullImageResponse)(nil), "runtime.v1alpha2.PullImageResponse") + proto.RegisterType((*RemoveImageRequest)(nil), "runtime.v1alpha2.RemoveImageRequest") + proto.RegisterType((*RemoveImageResponse)(nil), "runtime.v1alpha2.RemoveImageResponse") + proto.RegisterType((*NetworkConfig)(nil), "runtime.v1alpha2.NetworkConfig") + proto.RegisterType((*RuntimeConfig)(nil), "runtime.v1alpha2.RuntimeConfig") + proto.RegisterType((*UpdateRuntimeConfigRequest)(nil), "runtime.v1alpha2.UpdateRuntimeConfigRequest") + proto.RegisterType((*UpdateRuntimeConfigResponse)(nil), "runtime.v1alpha2.UpdateRuntimeConfigResponse") + proto.RegisterType((*RuntimeCondition)(nil), "runtime.v1alpha2.RuntimeCondition") + proto.RegisterType((*RuntimeStatus)(nil), "runtime.v1alpha2.RuntimeStatus") + proto.RegisterType((*StatusRequest)(nil), "runtime.v1alpha2.StatusRequest") + proto.RegisterType((*StatusResponse)(nil), "runtime.v1alpha2.StatusResponse") + proto.RegisterType((*ImageFsInfoRequest)(nil), "runtime.v1alpha2.ImageFsInfoRequest") + proto.RegisterType((*UInt64Value)(nil), "runtime.v1alpha2.UInt64Value") + proto.RegisterType((*FilesystemIdentifier)(nil), "runtime.v1alpha2.FilesystemIdentifier") + proto.RegisterType((*FilesystemUsage)(nil), "runtime.v1alpha2.FilesystemUsage") + proto.RegisterType((*ImageFsInfoResponse)(nil), "runtime.v1alpha2.ImageFsInfoResponse") + proto.RegisterType((*ContainerStatsRequest)(nil), "runtime.v1alpha2.ContainerStatsRequest") + proto.RegisterType((*ContainerStatsResponse)(nil), "runtime.v1alpha2.ContainerStatsResponse") + proto.RegisterType((*ListContainerStatsRequest)(nil), "runtime.v1alpha2.ListContainerStatsRequest") + proto.RegisterType((*ContainerStatsFilter)(nil), "runtime.v1alpha2.ContainerStatsFilter") + proto.RegisterType((*ListContainerStatsResponse)(nil), "runtime.v1alpha2.ListContainerStatsResponse") + proto.RegisterType((*ContainerAttributes)(nil), "runtime.v1alpha2.ContainerAttributes") + proto.RegisterType((*ContainerStats)(nil), "runtime.v1alpha2.ContainerStats") + proto.RegisterType((*CpuUsage)(nil), "runtime.v1alpha2.CpuUsage") + proto.RegisterType((*MemoryUsage)(nil), "runtime.v1alpha2.MemoryUsage") + proto.RegisterType((*ReopenContainerLogRequest)(nil), "runtime.v1alpha2.ReopenContainerLogRequest") + proto.RegisterType((*ReopenContainerLogResponse)(nil), "runtime.v1alpha2.ReopenContainerLogResponse") + proto.RegisterEnum("runtime.v1alpha2.Protocol", Protocol_name, Protocol_value) + proto.RegisterEnum("runtime.v1alpha2.MountPropagation", MountPropagation_name, MountPropagation_value) + proto.RegisterEnum("runtime.v1alpha2.NamespaceMode", NamespaceMode_name, NamespaceMode_value) + proto.RegisterEnum("runtime.v1alpha2.PodSandboxState", PodSandboxState_name, PodSandboxState_value) + proto.RegisterEnum("runtime.v1alpha2.ContainerState", ContainerState_name, ContainerState_value) } // Reference imports to suppress errors if they are not otherwise used. @@ -3341,6 +3735,14 @@ type RuntimeServiceClient interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) + // UpdateContainerResources updates ContainerConfig of the container. + UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) + // ReopenContainerLog asks runtime to reopen the stdout/stderr log file + // for the container. This is often called after the log file has been + // rotated. If the container is not running, container runtime can choose + // to either create a new log file and return nil, or return an error. + // Once it returns error, new container log file MUST NOT be created. + ReopenContainerLog(ctx context.Context, in *ReopenContainerLogRequest, opts ...grpc.CallOption) (*ReopenContainerLogResponse, error) // ExecSync runs a command in a container synchronously. ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) // Exec prepares a streaming endpoint to execute a command in the container. @@ -3370,7 +3772,7 @@ func NewRuntimeServiceClient(cc *grpc.ClientConn) RuntimeServiceClient { func (c *runtimeServiceClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) { out := new(VersionResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/Version", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/Version", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3379,7 +3781,7 @@ func (c *runtimeServiceClient) Version(ctx context.Context, in *VersionRequest, func (c *runtimeServiceClient) RunPodSandbox(ctx context.Context, in *RunPodSandboxRequest, opts ...grpc.CallOption) (*RunPodSandboxResponse, error) { out := new(RunPodSandboxResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/RunPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/RunPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3388,7 +3790,7 @@ func (c *runtimeServiceClient) RunPodSandbox(ctx context.Context, in *RunPodSand func (c *runtimeServiceClient) StopPodSandbox(ctx context.Context, in *StopPodSandboxRequest, opts ...grpc.CallOption) (*StopPodSandboxResponse, error) { out := new(StopPodSandboxResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/StopPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/StopPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3397,7 +3799,7 @@ func (c *runtimeServiceClient) StopPodSandbox(ctx context.Context, in *StopPodSa func (c *runtimeServiceClient) RemovePodSandbox(ctx context.Context, in *RemovePodSandboxRequest, opts ...grpc.CallOption) (*RemovePodSandboxResponse, error) { out := new(RemovePodSandboxResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/RemovePodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/RemovePodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3406,7 +3808,7 @@ func (c *runtimeServiceClient) RemovePodSandbox(ctx context.Context, in *RemoveP func (c *runtimeServiceClient) PodSandboxStatus(ctx context.Context, in *PodSandboxStatusRequest, opts ...grpc.CallOption) (*PodSandboxStatusResponse, error) { out := new(PodSandboxStatusResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/PodSandboxStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/PodSandboxStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3415,7 +3817,7 @@ func (c *runtimeServiceClient) PodSandboxStatus(ctx context.Context, in *PodSand func (c *runtimeServiceClient) ListPodSandbox(ctx context.Context, in *ListPodSandboxRequest, opts ...grpc.CallOption) (*ListPodSandboxResponse, error) { out := new(ListPodSandboxResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ListPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3424,7 +3826,7 @@ func (c *runtimeServiceClient) ListPodSandbox(ctx context.Context, in *ListPodSa func (c *runtimeServiceClient) CreateContainer(ctx context.Context, in *CreateContainerRequest, opts ...grpc.CallOption) (*CreateContainerResponse, error) { out := new(CreateContainerResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/CreateContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/CreateContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3433,7 +3835,7 @@ func (c *runtimeServiceClient) CreateContainer(ctx context.Context, in *CreateCo func (c *runtimeServiceClient) StartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error) { out := new(StartContainerResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/StartContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/StartContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3442,7 +3844,7 @@ func (c *runtimeServiceClient) StartContainer(ctx context.Context, in *StartCont func (c *runtimeServiceClient) StopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error) { out := new(StopContainerResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/StopContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/StopContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3451,7 +3853,7 @@ func (c *runtimeServiceClient) StopContainer(ctx context.Context, in *StopContai func (c *runtimeServiceClient) RemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error) { out := new(RemoveContainerResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/RemoveContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/RemoveContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3460,7 +3862,7 @@ func (c *runtimeServiceClient) RemoveContainer(ctx context.Context, in *RemoveCo func (c *runtimeServiceClient) ListContainers(ctx context.Context, in *ListContainersRequest, opts ...grpc.CallOption) (*ListContainersResponse, error) { out := new(ListContainersResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListContainers", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ListContainers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3469,7 +3871,25 @@ func (c *runtimeServiceClient) ListContainers(ctx context.Context, in *ListConta func (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) { out := new(ContainerStatusResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ContainerStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ContainerStatus", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runtimeServiceClient) UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) { + out := new(UpdateContainerResourcesResponse) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/UpdateContainerResources", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runtimeServiceClient) ReopenContainerLog(ctx context.Context, in *ReopenContainerLogRequest, opts ...grpc.CallOption) (*ReopenContainerLogResponse, error) { + out := new(ReopenContainerLogResponse) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ReopenContainerLog", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3478,7 +3898,7 @@ func (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *Containe func (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) { out := new(ExecSyncResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ExecSync", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ExecSync", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3487,7 +3907,7 @@ func (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest func (c *runtimeServiceClient) Exec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (*ExecResponse, error) { out := new(ExecResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/Exec", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/Exec", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3496,7 +3916,7 @@ func (c *runtimeServiceClient) Exec(ctx context.Context, in *ExecRequest, opts . func (c *runtimeServiceClient) Attach(ctx context.Context, in *AttachRequest, opts ...grpc.CallOption) (*AttachResponse, error) { out := new(AttachResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/Attach", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/Attach", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3505,7 +3925,7 @@ func (c *runtimeServiceClient) Attach(ctx context.Context, in *AttachRequest, op func (c *runtimeServiceClient) PortForward(ctx context.Context, in *PortForwardRequest, opts ...grpc.CallOption) (*PortForwardResponse, error) { out := new(PortForwardResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/PortForward", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/PortForward", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3514,7 +3934,7 @@ func (c *runtimeServiceClient) PortForward(ctx context.Context, in *PortForwardR func (c *runtimeServiceClient) ContainerStats(ctx context.Context, in *ContainerStatsRequest, opts ...grpc.CallOption) (*ContainerStatsResponse, error) { out := new(ContainerStatsResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ContainerStats", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ContainerStats", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3523,7 +3943,7 @@ func (c *runtimeServiceClient) ContainerStats(ctx context.Context, in *Container func (c *runtimeServiceClient) ListContainerStats(ctx context.Context, in *ListContainerStatsRequest, opts ...grpc.CallOption) (*ListContainerStatsResponse, error) { out := new(ListContainerStatsResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListContainerStats", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/ListContainerStats", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3532,7 +3952,7 @@ func (c *runtimeServiceClient) ListContainerStats(ctx context.Context, in *ListC func (c *runtimeServiceClient) UpdateRuntimeConfig(ctx context.Context, in *UpdateRuntimeConfigRequest, opts ...grpc.CallOption) (*UpdateRuntimeConfigResponse, error) { out := new(UpdateRuntimeConfigResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/UpdateRuntimeConfig", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/UpdateRuntimeConfig", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3541,7 +3961,7 @@ func (c *runtimeServiceClient) UpdateRuntimeConfig(ctx context.Context, in *Upda func (c *runtimeServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) { out := new(StatusResponse) - err := grpc.Invoke(ctx, "/runtime.RuntimeService/Status", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.RuntimeService/Status", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3595,6 +4015,14 @@ type RuntimeServiceServer interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(context.Context, *ContainerStatusRequest) (*ContainerStatusResponse, error) + // UpdateContainerResources updates ContainerConfig of the container. + UpdateContainerResources(context.Context, *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error) + // ReopenContainerLog asks runtime to reopen the stdout/stderr log file + // for the container. This is often called after the log file has been + // rotated. If the container is not running, container runtime can choose + // to either create a new log file and return nil, or return an error. + // Once it returns error, new container log file MUST NOT be created. + ReopenContainerLog(context.Context, *ReopenContainerLogRequest) (*ReopenContainerLogResponse, error) // ExecSync runs a command in a container synchronously. ExecSync(context.Context, *ExecSyncRequest) (*ExecSyncResponse, error) // Exec prepares a streaming endpoint to execute a command in the container. @@ -3628,7 +4056,7 @@ func _RuntimeService_Version_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/Version", + FullMethod: "/runtime.v1alpha2.RuntimeService/Version", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Version(ctx, req.(*VersionRequest)) @@ -3646,7 +4074,7 @@ func _RuntimeService_RunPodSandbox_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/RunPodSandbox", + FullMethod: "/runtime.v1alpha2.RuntimeService/RunPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RunPodSandbox(ctx, req.(*RunPodSandboxRequest)) @@ -3664,7 +4092,7 @@ func _RuntimeService_StopPodSandbox_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/StopPodSandbox", + FullMethod: "/runtime.v1alpha2.RuntimeService/StopPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StopPodSandbox(ctx, req.(*StopPodSandboxRequest)) @@ -3682,7 +4110,7 @@ func _RuntimeService_RemovePodSandbox_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/RemovePodSandbox", + FullMethod: "/runtime.v1alpha2.RuntimeService/RemovePodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RemovePodSandbox(ctx, req.(*RemovePodSandboxRequest)) @@ -3700,7 +4128,7 @@ func _RuntimeService_PodSandboxStatus_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/PodSandboxStatus", + FullMethod: "/runtime.v1alpha2.RuntimeService/PodSandboxStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).PodSandboxStatus(ctx, req.(*PodSandboxStatusRequest)) @@ -3718,7 +4146,7 @@ func _RuntimeService_ListPodSandbox_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ListPodSandbox", + FullMethod: "/runtime.v1alpha2.RuntimeService/ListPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListPodSandbox(ctx, req.(*ListPodSandboxRequest)) @@ -3736,7 +4164,7 @@ func _RuntimeService_CreateContainer_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/CreateContainer", + FullMethod: "/runtime.v1alpha2.RuntimeService/CreateContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).CreateContainer(ctx, req.(*CreateContainerRequest)) @@ -3754,7 +4182,7 @@ func _RuntimeService_StartContainer_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/StartContainer", + FullMethod: "/runtime.v1alpha2.RuntimeService/StartContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StartContainer(ctx, req.(*StartContainerRequest)) @@ -3772,7 +4200,7 @@ func _RuntimeService_StopContainer_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/StopContainer", + FullMethod: "/runtime.v1alpha2.RuntimeService/StopContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StopContainer(ctx, req.(*StopContainerRequest)) @@ -3790,7 +4218,7 @@ func _RuntimeService_RemoveContainer_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/RemoveContainer", + FullMethod: "/runtime.v1alpha2.RuntimeService/RemoveContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RemoveContainer(ctx, req.(*RemoveContainerRequest)) @@ -3808,7 +4236,7 @@ func _RuntimeService_ListContainers_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ListContainers", + FullMethod: "/runtime.v1alpha2.RuntimeService/ListContainers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListContainers(ctx, req.(*ListContainersRequest)) @@ -3826,7 +4254,7 @@ func _RuntimeService_ContainerStatus_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ContainerStatus", + FullMethod: "/runtime.v1alpha2.RuntimeService/ContainerStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ContainerStatus(ctx, req.(*ContainerStatusRequest)) @@ -3834,6 +4262,42 @@ func _RuntimeService_ContainerStatus_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _RuntimeService_UpdateContainerResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateContainerResourcesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuntimeServiceServer).UpdateContainerResources(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/runtime.v1alpha2.RuntimeService/UpdateContainerResources", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuntimeServiceServer).UpdateContainerResources(ctx, req.(*UpdateContainerResourcesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuntimeService_ReopenContainerLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReopenContainerLogRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuntimeServiceServer).ReopenContainerLog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/runtime.v1alpha2.RuntimeService/ReopenContainerLog", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuntimeServiceServer).ReopenContainerLog(ctx, req.(*ReopenContainerLogRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _RuntimeService_ExecSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExecSyncRequest) if err := dec(in); err != nil { @@ -3844,7 +4308,7 @@ func _RuntimeService_ExecSync_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ExecSync", + FullMethod: "/runtime.v1alpha2.RuntimeService/ExecSync", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ExecSync(ctx, req.(*ExecSyncRequest)) @@ -3862,7 +4326,7 @@ func _RuntimeService_Exec_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/Exec", + FullMethod: "/runtime.v1alpha2.RuntimeService/Exec", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Exec(ctx, req.(*ExecRequest)) @@ -3880,7 +4344,7 @@ func _RuntimeService_Attach_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/Attach", + FullMethod: "/runtime.v1alpha2.RuntimeService/Attach", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Attach(ctx, req.(*AttachRequest)) @@ -3898,7 +4362,7 @@ func _RuntimeService_PortForward_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/PortForward", + FullMethod: "/runtime.v1alpha2.RuntimeService/PortForward", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).PortForward(ctx, req.(*PortForwardRequest)) @@ -3916,7 +4380,7 @@ func _RuntimeService_ContainerStats_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ContainerStats", + FullMethod: "/runtime.v1alpha2.RuntimeService/ContainerStats", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ContainerStats(ctx, req.(*ContainerStatsRequest)) @@ -3934,7 +4398,7 @@ func _RuntimeService_ListContainerStats_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/ListContainerStats", + FullMethod: "/runtime.v1alpha2.RuntimeService/ListContainerStats", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListContainerStats(ctx, req.(*ListContainerStatsRequest)) @@ -3952,7 +4416,7 @@ func _RuntimeService_UpdateRuntimeConfig_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/UpdateRuntimeConfig", + FullMethod: "/runtime.v1alpha2.RuntimeService/UpdateRuntimeConfig", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).UpdateRuntimeConfig(ctx, req.(*UpdateRuntimeConfigRequest)) @@ -3970,7 +4434,7 @@ func _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.RuntimeService/Status", + FullMethod: "/runtime.v1alpha2.RuntimeService/Status", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Status(ctx, req.(*StatusRequest)) @@ -3979,7 +4443,7 @@ func _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec fu } var _RuntimeService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "runtime.RuntimeService", + ServiceName: "runtime.v1alpha2.RuntimeService", HandlerType: (*RuntimeServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -4031,6 +4495,14 @@ var _RuntimeService_serviceDesc = grpc.ServiceDesc{ Handler: _RuntimeService_ContainerStatus_Handler, }, { + MethodName: "UpdateContainerResources", + Handler: _RuntimeService_UpdateContainerResources_Handler, + }, + { + MethodName: "ReopenContainerLog", + Handler: _RuntimeService_ReopenContainerLog_Handler, + }, + { MethodName: "ExecSync", Handler: _RuntimeService_ExecSync_Handler, }, @@ -4096,7 +4568,7 @@ func NewImageServiceClient(cc *grpc.ClientConn) ImageServiceClient { func (c *imageServiceClient) ListImages(ctx context.Context, in *ListImagesRequest, opts ...grpc.CallOption) (*ListImagesResponse, error) { out := new(ListImagesResponse) - err := grpc.Invoke(ctx, "/runtime.ImageService/ListImages", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.ImageService/ListImages", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4105,7 +4577,7 @@ func (c *imageServiceClient) ListImages(ctx context.Context, in *ListImagesReque func (c *imageServiceClient) ImageStatus(ctx context.Context, in *ImageStatusRequest, opts ...grpc.CallOption) (*ImageStatusResponse, error) { out := new(ImageStatusResponse) - err := grpc.Invoke(ctx, "/runtime.ImageService/ImageStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.ImageService/ImageStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4114,7 +4586,7 @@ func (c *imageServiceClient) ImageStatus(ctx context.Context, in *ImageStatusReq func (c *imageServiceClient) PullImage(ctx context.Context, in *PullImageRequest, opts ...grpc.CallOption) (*PullImageResponse, error) { out := new(PullImageResponse) - err := grpc.Invoke(ctx, "/runtime.ImageService/PullImage", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.ImageService/PullImage", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4123,7 +4595,7 @@ func (c *imageServiceClient) PullImage(ctx context.Context, in *PullImageRequest func (c *imageServiceClient) RemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error) { out := new(RemoveImageResponse) - err := grpc.Invoke(ctx, "/runtime.ImageService/RemoveImage", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.ImageService/RemoveImage", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4132,7 +4604,7 @@ func (c *imageServiceClient) RemoveImage(ctx context.Context, in *RemoveImageReq func (c *imageServiceClient) ImageFsInfo(ctx context.Context, in *ImageFsInfoRequest, opts ...grpc.CallOption) (*ImageFsInfoResponse, error) { out := new(ImageFsInfoResponse) - err := grpc.Invoke(ctx, "/runtime.ImageService/ImageFsInfo", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.v1alpha2.ImageService/ImageFsInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4172,7 +4644,7 @@ func _ImageService_ListImages_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.ImageService/ListImages", + FullMethod: "/runtime.v1alpha2.ImageService/ListImages", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ListImages(ctx, req.(*ListImagesRequest)) @@ -4190,7 +4662,7 @@ func _ImageService_ImageStatus_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.ImageService/ImageStatus", + FullMethod: "/runtime.v1alpha2.ImageService/ImageStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ImageStatus(ctx, req.(*ImageStatusRequest)) @@ -4208,7 +4680,7 @@ func _ImageService_PullImage_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.ImageService/PullImage", + FullMethod: "/runtime.v1alpha2.ImageService/PullImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).PullImage(ctx, req.(*PullImageRequest)) @@ -4226,7 +4698,7 @@ func _ImageService_RemoveImage_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.ImageService/RemoveImage", + FullMethod: "/runtime.v1alpha2.ImageService/RemoveImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).RemoveImage(ctx, req.(*RemoveImageRequest)) @@ -4244,7 +4716,7 @@ func _ImageService_ImageFsInfo_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/runtime.ImageService/ImageFsInfo", + FullMethod: "/runtime.v1alpha2.ImageService/ImageFsInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ImageFsInfo(ctx, req.(*ImageFsInfoRequest)) @@ -4253,7 +4725,7 @@ func _ImageService_ImageFsInfo_Handler(srv interface{}, ctx context.Context, dec } var _ImageService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "runtime.ImageService", + ServiceName: "runtime.v1alpha2.ImageService", HandlerType: (*ImageServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -4496,6 +4968,11 @@ func (m *Mount) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.Propagation != 0 { + dAtA[i] = 0x28 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.Propagation)) + } return i, nil } @@ -4514,35 +4991,20 @@ func (m *NamespaceOption) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.HostNetwork { + if m.Network != 0 { dAtA[i] = 0x8 i++ - if m.HostNetwork { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ + i = encodeVarintApi(dAtA, i, uint64(m.Network)) } - if m.HostPid { + if m.Pid != 0 { dAtA[i] = 0x10 i++ - if m.HostPid { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ + i = encodeVarintApi(dAtA, i, uint64(m.Pid)) } - if m.HostIpc { + if m.Ipc != 0 { dAtA[i] = 0x18 i++ - if m.HostIpc { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ + i = encodeVarintApi(dAtA, i, uint64(m.Ipc)) } return i, nil } @@ -4653,6 +5115,12 @@ func (m *LinuxSandboxSecurityContext) MarshalTo(dAtA []byte) (int, error) { } i++ } + if len(m.SeccompProfilePath) > 0 { + dAtA[i] = 0x3a + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.SeccompProfilePath))) + i += copy(dAtA[i:], m.SeccompProfilePath) + } return i, nil } @@ -5011,6 +5479,16 @@ func (m *PodSandboxStatusRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId))) i += copy(dAtA[i:], m.PodSandboxId) } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -5217,6 +5695,23 @@ func (m *PodSandboxStatusResponse) MarshalTo(dAtA []byte) (int, error) { } i += n16 } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -5524,6 +6019,18 @@ func (m *LinuxContainerResources) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintApi(dAtA, i, uint64(m.OomScoreAdj)) } + if len(m.CpusetCpus) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.CpusetCpus))) + i += copy(dAtA[i:], m.CpusetCpus) + } + if len(m.CpusetMems) > 0 { + dAtA[i] = 0x3a + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.CpusetMems))) + i += copy(dAtA[i:], m.CpusetMems) + } return i, nil } @@ -5722,6 +6229,22 @@ func (m *LinuxContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.ApparmorProfile))) i += copy(dAtA[i:], m.ApparmorProfile) } + if len(m.SeccompProfilePath) > 0 { + dAtA[i] = 0x52 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.SeccompProfilePath))) + i += copy(dAtA[i:], m.SeccompProfilePath) + } + if m.NoNewPrivs { + dAtA[i] = 0x58 + i++ + if m.NoNewPrivs { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -5763,6 +6286,72 @@ func (m *LinuxContainerConfig) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *WindowsContainerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WindowsContainerConfig) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Resources != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(m.Resources.Size())) + n28, err := m.Resources.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + return i, nil +} + +func (m *WindowsContainerResources) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WindowsContainerResources) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.CpuShares != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.CpuShares)) + } + if m.CpuCount != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.CpuCount)) + } + if m.CpuMaximum != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.CpuMaximum)) + } + if m.MemoryLimitInBytes != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.MemoryLimitInBytes)) + } + return i, nil +} + func (m *ContainerMetadata) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5847,21 +6436,21 @@ func (m *ContainerConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n28, err := m.Metadata.MarshalTo(dAtA[i:]) + n29, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n29 } if m.Image != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n29, err := m.Image.MarshalTo(dAtA[i:]) + n30, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n30 } if len(m.Command) > 0 { for _, s := range m.Command { @@ -6009,11 +6598,23 @@ func (m *ContainerConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x7a i++ i = encodeVarintApi(dAtA, i, uint64(m.Linux.Size())) - n30, err := m.Linux.MarshalTo(dAtA[i:]) + n31, err := m.Linux.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n31 + } + if m.Windows != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.Windows.Size())) + n32, err := m.Windows.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 } return i, nil } @@ -6043,21 +6644,21 @@ func (m *CreateContainerRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Config.Size())) - n31, err := m.Config.MarshalTo(dAtA[i:]) + n33, err := m.Config.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n33 } if m.SandboxConfig != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) - n32, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + n34, err := m.SandboxConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n34 } return i, nil } @@ -6265,11 +6866,11 @@ func (m *ContainerFilter) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.State.Size())) - n33, err := m.State.MarshalTo(dAtA[i:]) + n35, err := m.State.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n35 } if len(m.PodSandboxId) > 0 { dAtA[i] = 0x1a @@ -6316,11 +6917,11 @@ func (m *ListContainersRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n34, err := m.Filter.MarshalTo(dAtA[i:]) + n36, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n36 } return i, nil } @@ -6356,21 +6957,21 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n35, err := m.Metadata.MarshalTo(dAtA[i:]) + n37, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n37 } if m.Image != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n36, err := m.Image.MarshalTo(dAtA[i:]) + n38, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n38 } if len(m.ImageRef) > 0 { dAtA[i] = 0x2a @@ -6476,6 +7077,16 @@ func (m *ContainerStatusRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) i += copy(dAtA[i:], m.ContainerId) } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -6504,11 +7115,11 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n37, err := m.Metadata.MarshalTo(dAtA[i:]) + n39, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n39 } if m.State != 0 { dAtA[i] = 0x18 @@ -6539,11 +7150,11 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n38, err := m.Image.MarshalTo(dAtA[i:]) + n40, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n40 } if len(m.ImageRef) > 0 { dAtA[i] = 0x4a @@ -6637,15 +7248,84 @@ func (m *ContainerStatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Status.Size())) - n39, err := m.Status.MarshalTo(dAtA[i:]) + n41, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n41 + } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *UpdateContainerResourcesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateContainerResourcesRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ContainerId) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) + i += copy(dAtA[i:], m.ContainerId) + } + if m.Linux != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.Linux.Size())) + n42, err := m.Linux.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n42 } return i, nil } +func (m *UpdateContainerResourcesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateContainerResourcesResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + func (m *ExecSyncRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6781,6 +7461,26 @@ func (m *ExecRequest) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.Stdout { + dAtA[i] = 0x28 + i++ + if m.Stdout { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.Stderr { + dAtA[i] = 0x30 + i++ + if m.Stderr { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -6849,6 +7549,26 @@ func (m *AttachRequest) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.Stdout { + dAtA[i] = 0x20 + i++ + if m.Stdout { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.Stderr { + dAtA[i] = 0x28 + i++ + if m.Stderr { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -6898,22 +7618,22 @@ func (m *PortForwardRequest) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.PodSandboxId) } if len(m.Port) > 0 { - dAtA41 := make([]byte, len(m.Port)*10) - var j40 int + dAtA44 := make([]byte, len(m.Port)*10) + var j43 int for _, num1 := range m.Port { num := uint64(num1) for num >= 1<<7 { - dAtA41[j40] = uint8(uint64(num)&0x7f | 0x80) + dAtA44[j43] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j40++ + j43++ } - dAtA41[j40] = uint8(num) - j40++ + dAtA44[j43] = uint8(num) + j43++ } dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(j40)) - i += copy(dAtA[i:], dAtA41[:j40]) + i = encodeVarintApi(dAtA, i, uint64(j43)) + i += copy(dAtA[i:], dAtA44[:j43]) } return i, nil } @@ -6961,11 +7681,11 @@ func (m *ImageFilter) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n42, err := m.Image.MarshalTo(dAtA[i:]) + n45, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n45 } return i, nil } @@ -6989,11 +7709,11 @@ func (m *ListImagesRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n43, err := m.Filter.MarshalTo(dAtA[i:]) + n46, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n46 } return i, nil } @@ -7058,11 +7778,11 @@ func (m *Image) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintApi(dAtA, i, uint64(m.Uid.Size())) - n44, err := m.Uid.MarshalTo(dAtA[i:]) + n47, err := m.Uid.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n44 + i += n47 } if len(m.Username) > 0 { dAtA[i] = 0x32 @@ -7122,11 +7842,21 @@ func (m *ImageStatusRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n45, err := m.Image.MarshalTo(dAtA[i:]) + n48, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n45 + i += n48 + } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ } return i, nil } @@ -7150,11 +7880,28 @@ func (m *ImageStatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n46, err := m.Image.MarshalTo(dAtA[i:]) + n49, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n46 + i += n49 + } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } return i, nil } @@ -7232,31 +7979,31 @@ func (m *PullImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n47, err := m.Image.MarshalTo(dAtA[i:]) + n50, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n47 + i += n50 } if m.Auth != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Auth.Size())) - n48, err := m.Auth.MarshalTo(dAtA[i:]) + n51, err := m.Auth.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n48 + i += n51 } if m.SandboxConfig != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) - n49, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + n52, err := m.SandboxConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n49 + i += n52 } return i, nil } @@ -7304,11 +8051,11 @@ func (m *RemoveImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n50, err := m.Image.MarshalTo(dAtA[i:]) + n53, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n50 + i += n53 } return i, nil } @@ -7374,11 +8121,11 @@ func (m *RuntimeConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.NetworkConfig.Size())) - n51, err := m.NetworkConfig.MarshalTo(dAtA[i:]) + n54, err := m.NetworkConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n54 } return i, nil } @@ -7402,11 +8149,11 @@ func (m *UpdateRuntimeConfigRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.RuntimeConfig.Size())) - n52, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) + n55, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n55 } return i, nil } @@ -7520,6 +8267,16 @@ func (m *StatusRequest) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Verbose { + dAtA[i] = 0x8 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -7542,11 +8299,28 @@ func (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Status.Size())) - n53, err := m.Status.MarshalTo(dAtA[i:]) + n56, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n56 + } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } return i, nil } @@ -7592,7 +8366,7 @@ func (m *UInt64Value) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *StorageIdentifier) Marshal() (dAtA []byte, err error) { +func (m *FilesystemIdentifier) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -7602,16 +8376,16 @@ func (m *StorageIdentifier) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *StorageIdentifier) MarshalTo(dAtA []byte) (int, error) { +func (m *FilesystemIdentifier) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.Uuid) > 0 { + if len(m.Mountpoint) > 0 { dAtA[i] = 0xa i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Uuid))) - i += copy(dAtA[i:], m.Uuid) + i = encodeVarintApi(dAtA, i, uint64(len(m.Mountpoint))) + i += copy(dAtA[i:], m.Mountpoint) } return i, nil } @@ -7636,35 +8410,35 @@ func (m *FilesystemUsage) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintApi(dAtA, i, uint64(m.Timestamp)) } - if m.StorageId != nil { + if m.FsId != nil { dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(m.StorageId.Size())) - n54, err := m.StorageId.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.FsId.Size())) + n57, err := m.FsId.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n57 } if m.UsedBytes != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.UsedBytes.Size())) - n55, err := m.UsedBytes.MarshalTo(dAtA[i:]) + n58, err := m.UsedBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n58 } if m.InodesUsed != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.InodesUsed.Size())) - n56, err := m.InodesUsed.MarshalTo(dAtA[i:]) + n59, err := m.InodesUsed.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n59 } return i, nil } @@ -7742,11 +8516,11 @@ func (m *ContainerStatsResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Stats.Size())) - n57, err := m.Stats.MarshalTo(dAtA[i:]) + n60, err := m.Stats.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n60 } return i, nil } @@ -7770,11 +8544,11 @@ func (m *ListContainerStatsRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n58, err := m.Filter.MarshalTo(dAtA[i:]) + n61, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n61 } return i, nil } @@ -7881,11 +8655,11 @@ func (m *ContainerAttributes) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n59, err := m.Metadata.MarshalTo(dAtA[i:]) + n62, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n62 } if len(m.Labels) > 0 { for k := range m.Labels { @@ -7943,41 +8717,41 @@ func (m *ContainerStats) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Attributes.Size())) - n60, err := m.Attributes.MarshalTo(dAtA[i:]) + n63, err := m.Attributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n60 + i += n63 } if m.Cpu != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Cpu.Size())) - n61, err := m.Cpu.MarshalTo(dAtA[i:]) + n64, err := m.Cpu.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n61 + i += n64 } if m.Memory != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.Memory.Size())) - n62, err := m.Memory.MarshalTo(dAtA[i:]) + n65, err := m.Memory.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n62 + i += n65 } if m.WritableLayer != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.WritableLayer.Size())) - n63, err := m.WritableLayer.MarshalTo(dAtA[i:]) + n66, err := m.WritableLayer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n63 + i += n66 } return i, nil } @@ -8006,11 +8780,11 @@ func (m *CpuUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.UsageCoreNanoSeconds.Size())) - n64, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) + n67, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n64 + i += n67 } return i, nil } @@ -8039,15 +8813,57 @@ func (m *MemoryUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.WorkingSetBytes.Size())) - n65, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) + n68, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n68 + } + return i, nil +} + +func (m *ReopenContainerLogRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReopenContainerLogRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ContainerId) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) + i += copy(dAtA[i:], m.ContainerId) } return i, nil } +func (m *ReopenContainerLogResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReopenContainerLogResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + func encodeFixed64Api(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) dAtA[offset+1] = uint8(v >> 8) @@ -8167,20 +8983,23 @@ func (m *Mount) Size() (n int) { if m.SelinuxRelabel { n += 2 } + if m.Propagation != 0 { + n += 1 + sovApi(uint64(m.Propagation)) + } return n } func (m *NamespaceOption) Size() (n int) { var l int _ = l - if m.HostNetwork { - n += 2 + if m.Network != 0 { + n += 1 + sovApi(uint64(m.Network)) } - if m.HostPid { - n += 2 + if m.Pid != 0 { + n += 1 + sovApi(uint64(m.Pid)) } - if m.HostIpc { - n += 2 + if m.Ipc != 0 { + n += 1 + sovApi(uint64(m.Ipc)) } return n } @@ -8222,6 +9041,10 @@ func (m *LinuxSandboxSecurityContext) Size() (n int) { if m.Privileged { n += 2 } + l = len(m.SeccompProfilePath) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } return n } @@ -8375,6 +9198,9 @@ func (m *PodSandboxStatusRequest) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -8459,6 +9285,14 @@ func (m *PodSandboxStatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -8593,6 +9427,14 @@ func (m *LinuxContainerResources) Size() (n int) { if m.OomScoreAdj != 0 { n += 1 + sovApi(uint64(m.OomScoreAdj)) } + l = len(m.CpusetCpus) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.CpusetMems) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } return n } @@ -8676,6 +9518,13 @@ func (m *LinuxContainerSecurityContext) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + l = len(m.SeccompProfilePath) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.NoNewPrivs { + n += 2 + } return n } @@ -8693,6 +9542,34 @@ func (m *LinuxContainerConfig) Size() (n int) { return n } +func (m *WindowsContainerConfig) Size() (n int) { + var l int + _ = l + if m.Resources != nil { + l = m.Resources.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + +func (m *WindowsContainerResources) Size() (n int) { + var l int + _ = l + if m.CpuShares != 0 { + n += 1 + sovApi(uint64(m.CpuShares)) + } + if m.CpuCount != 0 { + n += 1 + sovApi(uint64(m.CpuCount)) + } + if m.CpuMaximum != 0 { + n += 1 + sovApi(uint64(m.CpuMaximum)) + } + if m.MemoryLimitInBytes != 0 { + n += 1 + sovApi(uint64(m.MemoryLimitInBytes)) + } + return n +} + func (m *ContainerMetadata) Size() (n int) { var l int _ = l @@ -8802,6 +9679,10 @@ func (m *ContainerConfig) Size() (n int) { l = m.Linux.Size() n += 1 + l + sovApi(uint64(l)) } + if m.Windows != nil { + l = m.Windows.Size() + n += 2 + l + sovApi(uint64(l)) + } return n } @@ -8996,6 +9877,9 @@ func (m *ContainerStatusRequest) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -9077,6 +9961,34 @@ func (m *ContainerStatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } + return n +} + +func (m *UpdateContainerResourcesRequest) Size() (n int) { + var l int + _ = l + l = len(m.ContainerId) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.Linux != nil { + l = m.Linux.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + +func (m *UpdateContainerResourcesResponse) Size() (n int) { + var l int + _ = l return n } @@ -9135,6 +10047,12 @@ func (m *ExecRequest) Size() (n int) { if m.Stdin { n += 2 } + if m.Stdout { + n += 2 + } + if m.Stderr { + n += 2 + } return n } @@ -9161,6 +10079,12 @@ func (m *AttachRequest) Size() (n int) { if m.Tty { n += 2 } + if m.Stdout { + n += 2 + } + if m.Stderr { + n += 2 + } return n } @@ -9273,6 +10197,9 @@ func (m *ImageStatusRequest) Size() (n int) { l = m.Image.Size() n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -9283,6 +10210,14 @@ func (m *ImageStatusResponse) Size() (n int) { l = m.Image.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -9432,6 +10367,9 @@ func (m *RuntimeStatus) Size() (n int) { func (m *StatusRequest) Size() (n int) { var l int _ = l + if m.Verbose { + n += 2 + } return n } @@ -9442,6 +10380,14 @@ func (m *StatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -9460,10 +10406,10 @@ func (m *UInt64Value) Size() (n int) { return n } -func (m *StorageIdentifier) Size() (n int) { +func (m *FilesystemIdentifier) Size() (n int) { var l int _ = l - l = len(m.Uuid) + l = len(m.Mountpoint) if l > 0 { n += 1 + l + sovApi(uint64(l)) } @@ -9476,8 +10422,8 @@ func (m *FilesystemUsage) Size() (n int) { if m.Timestamp != 0 { n += 1 + sovApi(uint64(m.Timestamp)) } - if m.StorageId != nil { - l = m.StorageId.Size() + if m.FsId != nil { + l = m.FsId.Size() n += 1 + l + sovApi(uint64(l)) } if m.UsedBytes != nil { @@ -9645,6 +10591,22 @@ func (m *MemoryUsage) Size() (n int) { return n } +func (m *ReopenContainerLogRequest) Size() (n int) { + var l int + _ = l + l = len(m.ContainerId) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + return n +} + +func (m *ReopenContainerLogResponse) Size() (n int) { + var l int + _ = l + return n +} + func sovApi(x uint64) (n int) { for { n++ @@ -9715,6 +10677,7 @@ func (this *Mount) String() string { `HostPath:` + fmt.Sprintf("%v", this.HostPath) + `,`, `Readonly:` + fmt.Sprintf("%v", this.Readonly) + `,`, `SelinuxRelabel:` + fmt.Sprintf("%v", this.SelinuxRelabel) + `,`, + `Propagation:` + fmt.Sprintf("%v", this.Propagation) + `,`, `}`, }, "") return s @@ -9724,9 +10687,9 @@ func (this *NamespaceOption) String() string { return "nil" } s := strings.Join([]string{`&NamespaceOption{`, - `HostNetwork:` + fmt.Sprintf("%v", this.HostNetwork) + `,`, - `HostPid:` + fmt.Sprintf("%v", this.HostPid) + `,`, - `HostIpc:` + fmt.Sprintf("%v", this.HostIpc) + `,`, + `Network:` + fmt.Sprintf("%v", this.Network) + `,`, + `Pid:` + fmt.Sprintf("%v", this.Pid) + `,`, + `Ipc:` + fmt.Sprintf("%v", this.Ipc) + `,`, `}`, }, "") return s @@ -9752,6 +10715,7 @@ func (this *LinuxSandboxSecurityContext) String() string { `ReadonlyRootfs:` + fmt.Sprintf("%v", this.ReadonlyRootfs) + `,`, `SupplementalGroups:` + fmt.Sprintf("%v", this.SupplementalGroups) + `,`, `Privileged:` + fmt.Sprintf("%v", this.Privileged) + `,`, + `SeccompProfilePath:` + fmt.Sprintf("%v", this.SeccompProfilePath) + `,`, `}`, }, "") return s @@ -9892,6 +10856,7 @@ func (this *PodSandboxStatusRequest) String() string { } s := strings.Join([]string{`&PodSandboxStatusRequest{`, `PodSandboxId:` + fmt.Sprintf("%v", this.PodSandboxId) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -9967,8 +10932,19 @@ func (this *PodSandboxStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&PodSandboxStatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "PodSandboxStatus", "PodSandboxStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -10091,6 +11067,8 @@ func (this *LinuxContainerResources) String() string { `CpuShares:` + fmt.Sprintf("%v", this.CpuShares) + `,`, `MemoryLimitInBytes:` + fmt.Sprintf("%v", this.MemoryLimitInBytes) + `,`, `OomScoreAdj:` + fmt.Sprintf("%v", this.OomScoreAdj) + `,`, + `CpusetCpus:` + fmt.Sprintf("%v", this.CpusetCpus) + `,`, + `CpusetMems:` + fmt.Sprintf("%v", this.CpusetMems) + `,`, `}`, }, "") return s @@ -10133,6 +11111,8 @@ func (this *LinuxContainerSecurityContext) String() string { `ReadonlyRootfs:` + fmt.Sprintf("%v", this.ReadonlyRootfs) + `,`, `SupplementalGroups:` + fmt.Sprintf("%v", this.SupplementalGroups) + `,`, `ApparmorProfile:` + fmt.Sprintf("%v", this.ApparmorProfile) + `,`, + `SeccompProfilePath:` + fmt.Sprintf("%v", this.SeccompProfilePath) + `,`, + `NoNewPrivs:` + fmt.Sprintf("%v", this.NoNewPrivs) + `,`, `}`, }, "") return s @@ -10148,6 +11128,29 @@ func (this *LinuxContainerConfig) String() string { }, "") return s } +func (this *WindowsContainerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WindowsContainerConfig{`, + `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "WindowsContainerResources", "WindowsContainerResources", 1) + `,`, + `}`, + }, "") + return s +} +func (this *WindowsContainerResources) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WindowsContainerResources{`, + `CpuShares:` + fmt.Sprintf("%v", this.CpuShares) + `,`, + `CpuCount:` + fmt.Sprintf("%v", this.CpuCount) + `,`, + `CpuMaximum:` + fmt.Sprintf("%v", this.CpuMaximum) + `,`, + `MemoryLimitInBytes:` + fmt.Sprintf("%v", this.MemoryLimitInBytes) + `,`, + `}`, + }, "") + return s +} func (this *ContainerMetadata) String() string { if this == nil { return "nil" @@ -10211,6 +11214,7 @@ func (this *ContainerConfig) String() string { `StdinOnce:` + fmt.Sprintf("%v", this.StdinOnce) + `,`, `Tty:` + fmt.Sprintf("%v", this.Tty) + `,`, `Linux:` + strings.Replace(fmt.Sprintf("%v", this.Linux), "LinuxContainerConfig", "LinuxContainerConfig", 1) + `,`, + `Windows:` + strings.Replace(fmt.Sprintf("%v", this.Windows), "WindowsContainerConfig", "WindowsContainerConfig", 1) + `,`, `}`, }, "") return s @@ -10392,6 +11396,7 @@ func (this *ContainerStatusRequest) String() string { } s := strings.Join([]string{`&ContainerStatusRequest{`, `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -10444,8 +11449,39 @@ func (this *ContainerStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&ContainerStatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "ContainerStatus", "ContainerStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, + `}`, + }, "") + return s +} +func (this *UpdateContainerResourcesRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateContainerResourcesRequest{`, + `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `Linux:` + strings.Replace(fmt.Sprintf("%v", this.Linux), "LinuxContainerResources", "LinuxContainerResources", 1) + `,`, + `}`, + }, "") + return s +} +func (this *UpdateContainerResourcesResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateContainerResourcesResponse{`, `}`, }, "") return s @@ -10483,6 +11519,8 @@ func (this *ExecRequest) String() string { `Cmd:` + fmt.Sprintf("%v", this.Cmd) + `,`, `Tty:` + fmt.Sprintf("%v", this.Tty) + `,`, `Stdin:` + fmt.Sprintf("%v", this.Stdin) + `,`, + `Stdout:` + fmt.Sprintf("%v", this.Stdout) + `,`, + `Stderr:` + fmt.Sprintf("%v", this.Stderr) + `,`, `}`, }, "") return s @@ -10505,6 +11543,8 @@ func (this *AttachRequest) String() string { `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, `Stdin:` + fmt.Sprintf("%v", this.Stdin) + `,`, `Tty:` + fmt.Sprintf("%v", this.Tty) + `,`, + `Stdout:` + fmt.Sprintf("%v", this.Stdout) + `,`, + `Stderr:` + fmt.Sprintf("%v", this.Stderr) + `,`, `}`, }, "") return s @@ -10591,6 +11631,7 @@ func (this *ImageStatusRequest) String() string { } s := strings.Join([]string{`&ImageStatusRequest{`, `Image:` + strings.Replace(fmt.Sprintf("%v", this.Image), "ImageSpec", "ImageSpec", 1) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -10599,8 +11640,19 @@ func (this *ImageStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&ImageStatusResponse{`, `Image:` + strings.Replace(fmt.Sprintf("%v", this.Image), "Image", "Image", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -10728,6 +11780,7 @@ func (this *StatusRequest) String() string { return "nil" } s := strings.Join([]string{`&StatusRequest{`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -10736,8 +11789,19 @@ func (this *StatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&StatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "RuntimeStatus", "RuntimeStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -10761,12 +11825,12 @@ func (this *UInt64Value) String() string { }, "") return s } -func (this *StorageIdentifier) String() string { +func (this *FilesystemIdentifier) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&StorageIdentifier{`, - `Uuid:` + fmt.Sprintf("%v", this.Uuid) + `,`, + s := strings.Join([]string{`&FilesystemIdentifier{`, + `Mountpoint:` + fmt.Sprintf("%v", this.Mountpoint) + `,`, `}`, }, "") return s @@ -10777,7 +11841,7 @@ func (this *FilesystemUsage) String() string { } s := strings.Join([]string{`&FilesystemUsage{`, `Timestamp:` + fmt.Sprintf("%v", this.Timestamp) + `,`, - `StorageId:` + strings.Replace(fmt.Sprintf("%v", this.StorageId), "StorageIdentifier", "StorageIdentifier", 1) + `,`, + `FsId:` + strings.Replace(fmt.Sprintf("%v", this.FsId), "FilesystemIdentifier", "FilesystemIdentifier", 1) + `,`, `UsedBytes:` + strings.Replace(fmt.Sprintf("%v", this.UsedBytes), "UInt64Value", "UInt64Value", 1) + `,`, `InodesUsed:` + strings.Replace(fmt.Sprintf("%v", this.InodesUsed), "UInt64Value", "UInt64Value", 1) + `,`, `}`, @@ -10924,6 +11988,25 @@ func (this *MemoryUsage) String() string { }, "") return s } +func (this *ReopenContainerLogRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReopenContainerLogRequest{`, + `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `}`, + }, "") + return s +} +func (this *ReopenContainerLogResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReopenContainerLogResponse{`, + `}`, + }, "") + return s +} func valueToStringApi(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -11577,6 +12660,25 @@ func (m *Mount) Unmarshal(dAtA []byte) error { } } m.SelinuxRelabel = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Propagation", wireType) + } + m.Propagation = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Propagation |= (MountPropagation(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -11629,9 +12731,9 @@ func (m *NamespaceOption) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HostNetwork", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType) } - var v int + m.Network = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -11641,17 +12743,16 @@ func (m *NamespaceOption) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int(b) & 0x7F) << shift + m.Network |= (NamespaceMode(b) & 0x7F) << shift if b < 0x80 { break } } - m.HostNetwork = bool(v != 0) case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HostPid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType) } - var v int + m.Pid = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -11661,17 +12762,16 @@ func (m *NamespaceOption) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int(b) & 0x7F) << shift + m.Pid |= (NamespaceMode(b) & 0x7F) << shift if b < 0x80 { break } } - m.HostPid = bool(v != 0) case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HostIpc", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ipc", wireType) } - var v int + m.Ipc = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -11681,12 +12781,11 @@ func (m *NamespaceOption) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int(b) & 0x7F) << shift + m.Ipc |= (NamespaceMode(b) & 0x7F) << shift if b < 0x80 { break } } - m.HostIpc = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -12007,6 +13106,35 @@ func (m *LinuxSandboxSecurityContext) Unmarshal(dAtA []byte) error { } } m.Privileged = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeccompProfilePath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SeccompProfilePath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -13360,6 +14488,26 @@ func (m *PodSandboxStatusRequest) Unmarshal(dAtA []byte) error { } m.PodSandboxId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -14136,6 +15284,122 @@ func (m *PodSandboxStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -15311,6 +16575,64 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CpusetCpus", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CpusetCpus = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CpusetMems", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CpusetMems = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -15927,6 +17249,55 @@ func (m *LinuxContainerSecurityContext) Unmarshal(dAtA []byte) error { } m.ApparmorProfile = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeccompProfilePath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SeccompProfilePath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NoNewPrivs", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.NoNewPrivs = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -16064,6 +17435,215 @@ func (m *LinuxContainerConfig) Unmarshal(dAtA []byte) error { } return nil } +func (m *WindowsContainerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WindowsContainerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WindowsContainerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resources == nil { + m.Resources = &WindowsContainerResources{} + } + if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WindowsContainerResources) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WindowsContainerResources: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WindowsContainerResources: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CpuShares", wireType) + } + m.CpuShares = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CpuShares |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CpuCount", wireType) + } + m.CpuCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CpuCount |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CpuMaximum", wireType) + } + m.CpuMaximum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CpuMaximum |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryLimitInBytes", wireType) + } + m.MemoryLimitInBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MemoryLimitInBytes |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ContainerMetadata) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -16928,6 +18508,39 @@ func (m *ContainerConfig) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Windows", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Windows == nil { + m.Windows = &WindowsContainerConfig{} + } + if err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -18600,6 +20213,26 @@ func (m *ContainerStatusRequest) Unmarshal(dAtA []byte) error { } m.ContainerId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -19302,6 +20935,284 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateContainerResourcesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateContainerResourcesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Linux == nil { + m.Linux = &LinuxContainerResources{} + } + if err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateContainerResourcesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateContainerResourcesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateContainerResourcesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -19708,6 +21619,46 @@ func (m *ExecRequest) Unmarshal(dAtA []byte) error { } } m.Stdin = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Stdout = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Stderr = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -19906,6 +21857,46 @@ func (m *AttachRequest) Unmarshal(dAtA []byte) error { } } m.Tty = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Stdout = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Stderr = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -20753,6 +22744,26 @@ func (m *ImageStatusRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -20836,6 +22847,122 @@ func (m *ImageStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -22004,6 +24131,26 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: StatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -22087,6 +24234,122 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -22227,7 +24490,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error { } return nil } -func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { +func (m *FilesystemIdentifier) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22250,15 +24513,15 @@ func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: StorageIdentifier: wiretype end group for non-group") + return fmt.Errorf("proto: FilesystemIdentifier: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: StorageIdentifier: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FilesystemIdentifier: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Mountpoint", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22283,7 +24546,7 @@ func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Uuid = string(dAtA[iNdEx:postIndex]) + m.Mountpoint = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -22356,7 +24619,7 @@ func (m *FilesystemUsage) Unmarshal(dAtA []byte) error { } case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FsId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -22380,10 +24643,10 @@ func (m *FilesystemUsage) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StorageId == nil { - m.StorageId = &StorageIdentifier{} + if m.FsId == nil { + m.FsId = &FilesystemIdentifier{} } - if err := m.StorageId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.FsId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -23835,6 +26098,135 @@ func (m *MemoryUsage) Unmarshal(dAtA []byte) error { } return nil } +func (m *ReopenContainerLogRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReopenContainerLogRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReopenContainerLogRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReopenContainerLogResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReopenContainerLogResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReopenContainerLogResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipApi(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -23943,259 +26335,293 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 4051 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3b, 0x4d, 0x73, 0x1b, 0x47, - 0x76, 0x04, 0xc0, 0x0f, 0xe0, 0x81, 0x00, 0xc1, 0x16, 0x45, 0x42, 0x90, 0x44, 0xd3, 0x23, 0xcb, - 0x96, 0xb4, 0x2b, 0x59, 0xa6, 0xd7, 0x76, 0x2c, 0x7f, 0x09, 0x26, 0x29, 0x17, 0x2d, 0x89, 0xe4, - 0x0e, 0x44, 0xef, 0x6e, 0x36, 0x55, 0x93, 0x21, 0xa6, 0x09, 0x8e, 0x0d, 0x4c, 0xcf, 0xce, 0xf4, - 0xc8, 0x62, 0x4e, 0xc9, 0x2d, 0x47, 0xe7, 0x98, 0x5b, 0x0e, 0xa9, 0xda, 0xca, 0x25, 0x87, 0x9c, - 0xf2, 0x0b, 0x52, 0x5b, 0x95, 0x4a, 0x55, 0x0e, 0xa9, 0x54, 0x72, 0xdb, 0x55, 0x0e, 0x39, 0xa4, - 0x2a, 0xbf, 0x61, 0xab, 0xbf, 0x66, 0x7a, 0xbe, 0x20, 0x52, 0x76, 0xed, 0xea, 0x36, 0xfd, 0xfa, - 0xbd, 0xd7, 0xaf, 0xfb, 0xbd, 0x7e, 0xfd, 0xde, 0xeb, 0x1e, 0x68, 0xd8, 0xbe, 0x7b, 0xc7, 0x0f, - 0x08, 0x25, 0x68, 0x21, 0x88, 0x3c, 0xea, 0x4e, 0x70, 0xef, 0xf6, 0xc8, 0xa5, 0x27, 0xd1, 0xd1, - 0x9d, 0x21, 0x99, 0xbc, 0x3d, 0x22, 0x23, 0xf2, 0x36, 0xef, 0x3f, 0x8a, 0x8e, 0x79, 0x8b, 0x37, - 0xf8, 0x97, 0xa0, 0x33, 0x6e, 0x41, 0xfb, 0x2b, 0x1c, 0x84, 0x2e, 0xf1, 0x4c, 0xfc, 0xab, 0x08, - 0x87, 0x14, 0x75, 0x61, 0xe1, 0xa9, 0x80, 0x74, 0x2b, 0x1b, 0x95, 0x1b, 0x0d, 0x53, 0x35, 0x8d, - 0x5f, 0x57, 0x60, 0x29, 0x46, 0x0e, 0x7d, 0xe2, 0x85, 0xb8, 0x1c, 0x1b, 0xbd, 0x0e, 0x8b, 0x52, - 0x26, 0xcb, 0xb3, 0x27, 0xb8, 0x5b, 0xe5, 0xdd, 0x4d, 0x09, 0xdb, 0xb3, 0x27, 0x18, 0xbd, 0x05, - 0x4b, 0x0a, 0x45, 0x31, 0xa9, 0x71, 0xac, 0xb6, 0x04, 0xcb, 0xd1, 0xd0, 0x1d, 0xb8, 0xa0, 0x10, - 0x6d, 0xdf, 0x8d, 0x91, 0x67, 0x39, 0xf2, 0xb2, 0xec, 0xea, 0xfb, 0xae, 0xc4, 0x37, 0x7e, 0x09, - 0x8d, 0xed, 0xbd, 0xc1, 0x16, 0xf1, 0x8e, 0xdd, 0x11, 0x13, 0x31, 0xc4, 0x01, 0xa3, 0xe9, 0x56, - 0x36, 0x6a, 0x4c, 0x44, 0xd9, 0x44, 0x3d, 0xa8, 0x87, 0xd8, 0x0e, 0x86, 0x27, 0x38, 0xec, 0x56, - 0x79, 0x57, 0xdc, 0x66, 0x54, 0xc4, 0xa7, 0x2e, 0xf1, 0xc2, 0x6e, 0x4d, 0x50, 0xc9, 0xa6, 0xf1, - 0xb7, 0x15, 0x68, 0x1e, 0x90, 0x80, 0x3e, 0xb6, 0x7d, 0xdf, 0xf5, 0x46, 0xe8, 0x36, 0xd4, 0xf9, - 0x5a, 0x0e, 0xc9, 0x98, 0xaf, 0x41, 0x7b, 0x73, 0xf9, 0x8e, 0x14, 0xe9, 0xce, 0x81, 0xec, 0x30, - 0x63, 0x14, 0x74, 0x1d, 0xda, 0x43, 0xe2, 0x51, 0xdb, 0xf5, 0x70, 0x60, 0xf9, 0x24, 0xa0, 0x7c, - 0x65, 0xe6, 0xcc, 0x56, 0x0c, 0x65, 0xcc, 0xd1, 0x65, 0x68, 0x9c, 0x90, 0x90, 0x0a, 0x8c, 0x1a, - 0xc7, 0xa8, 0x33, 0x00, 0xef, 0x5c, 0x83, 0x05, 0xde, 0xe9, 0xfa, 0x72, 0x0d, 0xe6, 0x59, 0x73, - 0xd7, 0x37, 0xbe, 0xab, 0xc0, 0xdc, 0x63, 0x12, 0x79, 0x34, 0x33, 0x8c, 0x4d, 0x4f, 0xa4, 0x7e, - 0xb4, 0x61, 0x6c, 0x7a, 0x92, 0x0c, 0xc3, 0x30, 0x84, 0x8a, 0xc4, 0x30, 0xac, 0xb3, 0x07, 0xf5, - 0x00, 0xdb, 0x0e, 0xf1, 0xc6, 0xa7, 0x5c, 0x84, 0xba, 0x19, 0xb7, 0x99, 0xee, 0x42, 0x3c, 0x76, - 0xbd, 0xe8, 0x99, 0x15, 0xe0, 0xb1, 0x7d, 0x84, 0xc7, 0x5c, 0x94, 0xba, 0xd9, 0x96, 0x60, 0x53, - 0x40, 0x8d, 0xaf, 0x61, 0x89, 0x29, 0x3b, 0xf4, 0xed, 0x21, 0xde, 0xe7, 0x4b, 0xc8, 0x4c, 0x83, - 0x0f, 0xea, 0x61, 0xfa, 0x2d, 0x09, 0xbe, 0xe1, 0x92, 0xd5, 0xcd, 0x26, 0x83, 0xed, 0x09, 0x10, - 0xba, 0x04, 0x75, 0x21, 0x97, 0xeb, 0x70, 0xb1, 0xea, 0x26, 0x9f, 0xf1, 0x81, 0xeb, 0xc4, 0x5d, - 0xae, 0x3f, 0x94, 0x52, 0x2d, 0x88, 0xd9, 0x0f, 0x0d, 0x03, 0x60, 0xd7, 0xa3, 0xef, 0xff, 0xe4, - 0x2b, 0x7b, 0x1c, 0x61, 0xb4, 0x02, 0x73, 0x4f, 0xd9, 0x07, 0xe7, 0x5f, 0x33, 0x45, 0xc3, 0xf8, - 0x8f, 0x2a, 0x5c, 0x7e, 0xc4, 0x04, 0x1c, 0xd8, 0x9e, 0x73, 0x44, 0x9e, 0x0d, 0xf0, 0x30, 0x0a, - 0x5c, 0x7a, 0xba, 0x45, 0x3c, 0x8a, 0x9f, 0x51, 0xb4, 0x03, 0xcb, 0x9e, 0x92, 0xd7, 0x52, 0x26, - 0xc0, 0x38, 0x34, 0x37, 0xbb, 0xb1, 0x5e, 0x33, 0x33, 0x32, 0x3b, 0x5e, 0x1a, 0x10, 0xa2, 0xcf, - 0x92, 0xf5, 0x51, 0x4c, 0xaa, 0x9c, 0xc9, 0x6a, 0xcc, 0x64, 0xb0, 0xc3, 0xe5, 0x90, 0x2c, 0xd4, - 0xba, 0x29, 0x06, 0xef, 0x02, 0xdb, 0x2b, 0x96, 0x1d, 0x5a, 0x51, 0x88, 0x03, 0x3e, 0xd3, 0xe6, - 0xe6, 0x85, 0x98, 0x38, 0x99, 0xa7, 0xd9, 0x08, 0x22, 0xaf, 0x1f, 0x1e, 0x86, 0x38, 0xe0, 0x3b, - 0x4a, 0x6a, 0xc8, 0x0a, 0x08, 0xa1, 0xc7, 0xa1, 0xd2, 0x8a, 0x02, 0x9b, 0x1c, 0x8a, 0xde, 0x86, - 0x0b, 0x61, 0xe4, 0xfb, 0x63, 0x3c, 0xc1, 0x1e, 0xb5, 0xc7, 0xd6, 0x28, 0x20, 0x91, 0x1f, 0x76, - 0xe7, 0x36, 0x6a, 0x37, 0x6a, 0x26, 0xd2, 0xbb, 0xbe, 0xe0, 0x3d, 0x68, 0x1d, 0xc0, 0x0f, 0xdc, - 0xa7, 0xee, 0x18, 0x8f, 0xb0, 0xd3, 0x9d, 0xe7, 0x4c, 0x35, 0x88, 0xf1, 0x5d, 0x15, 0x2e, 0xf2, - 0xe9, 0x1c, 0x10, 0x47, 0xae, 0xac, 0xdc, 0x7f, 0xd7, 0xa0, 0x35, 0xe4, 0xec, 0x2d, 0xdf, 0x0e, - 0xb0, 0x47, 0xa5, 0x21, 0x2e, 0x0a, 0xe0, 0x01, 0x87, 0xa1, 0x7d, 0xe8, 0x84, 0x52, 0x11, 0xd6, - 0x50, 0x68, 0x42, 0xae, 0xd7, 0x1b, 0xf1, 0x94, 0xa7, 0x68, 0xcd, 0x5c, 0x0a, 0x73, 0x6a, 0x5c, - 0x08, 0x4f, 0xc3, 0x21, 0x1d, 0x8b, 0xfd, 0xdb, 0xdc, 0xfc, 0x51, 0x9a, 0x4f, 0x56, 0xcc, 0x3b, - 0x03, 0x81, 0xbd, 0xe3, 0xd1, 0xe0, 0xd4, 0x54, 0xb4, 0xbd, 0x7b, 0xb0, 0xa8, 0x77, 0xa0, 0x0e, - 0xd4, 0xbe, 0xc1, 0xa7, 0x72, 0x0a, 0xec, 0x33, 0xb1, 0x32, 0xb1, 0x7b, 0x44, 0xe3, 0x5e, 0xf5, - 0x4f, 0x2a, 0x46, 0x00, 0x28, 0x19, 0xe5, 0x31, 0xa6, 0xb6, 0x63, 0x53, 0x1b, 0x21, 0x98, 0xe5, - 0xfe, 0x50, 0xb0, 0xe0, 0xdf, 0x8c, 0x6b, 0x24, 0x0d, 0xbd, 0x61, 0xb2, 0x4f, 0x74, 0x05, 0x1a, - 0xb1, 0x49, 0x49, 0xa7, 0x98, 0x00, 0x98, 0x73, 0xb2, 0x29, 0xc5, 0x13, 0x9f, 0x72, 0xf5, 0xb6, - 0x4c, 0xd5, 0x34, 0xfe, 0x79, 0x16, 0x3a, 0x39, 0x0d, 0x7c, 0x00, 0xf5, 0x89, 0x1c, 0x5e, 0x5a, - 0xf2, 0xe5, 0xc4, 0x43, 0xe5, 0x24, 0x34, 0x63, 0x64, 0xe6, 0x00, 0xd8, 0xd6, 0xd2, 0xfc, 0x77, - 0xdc, 0x66, 0x6a, 0x1d, 0x93, 0x91, 0xe5, 0xb8, 0x01, 0x1e, 0x52, 0x12, 0x9c, 0x4a, 0x29, 0x17, - 0xc7, 0x64, 0xb4, 0xad, 0x60, 0xe8, 0x1d, 0x00, 0xc7, 0x0b, 0x99, 0x46, 0x8f, 0xdd, 0x11, 0x97, - 0xb5, 0xb9, 0x89, 0xe2, 0xb1, 0x63, 0x1f, 0x6d, 0x36, 0x1c, 0x2f, 0x94, 0xc2, 0x7e, 0x08, 0x2d, - 0xe6, 0xf3, 0xac, 0x89, 0x70, 0xaf, 0xc2, 0x26, 0x9b, 0x9b, 0x2b, 0x9a, 0xc4, 0xb1, 0xef, 0x35, - 0x17, 0xfd, 0xa4, 0x11, 0xa2, 0x4f, 0x60, 0x9e, 0xfb, 0x9c, 0xb0, 0x3b, 0xcf, 0x69, 0xae, 0x17, - 0xcc, 0x52, 0x6a, 0xfb, 0x11, 0xc7, 0x13, 0xca, 0x96, 0x44, 0xe8, 0x11, 0x34, 0x6d, 0xcf, 0x23, - 0xd4, 0x16, 0xdb, 0x75, 0x81, 0xf3, 0xb8, 0x55, 0xce, 0xa3, 0x9f, 0x20, 0x0b, 0x46, 0x3a, 0x39, - 0xfa, 0x09, 0xcc, 0xf1, 0xfd, 0xdc, 0xad, 0xf3, 0x59, 0xaf, 0x4f, 0x37, 0x3f, 0x53, 0x20, 0xf7, - 0x3e, 0x84, 0xa6, 0x26, 0xda, 0x79, 0xcc, 0xad, 0xf7, 0x29, 0x74, 0xb2, 0x12, 0x9d, 0xcb, 0x5c, - 0x77, 0x61, 0xc5, 0x8c, 0xbc, 0x44, 0x30, 0x15, 0x10, 0xbc, 0x03, 0xf3, 0x52, 0x7f, 0xc2, 0x76, - 0x2e, 0x95, 0xae, 0x88, 0x29, 0x11, 0x8d, 0x4f, 0xe0, 0x62, 0x86, 0x95, 0x0c, 0x17, 0xde, 0x80, - 0xb6, 0x4f, 0x1c, 0x2b, 0x14, 0x60, 0xcb, 0x75, 0x94, 0x33, 0xf0, 0x63, 0xdc, 0x5d, 0x87, 0x91, - 0x0f, 0x28, 0xf1, 0xf3, 0xa2, 0x9c, 0x8d, 0xbc, 0x0b, 0xab, 0x59, 0x72, 0x31, 0xbc, 0xf1, 0x19, - 0xac, 0x99, 0x78, 0x42, 0x9e, 0xe2, 0x97, 0x65, 0xdd, 0x83, 0x6e, 0x9e, 0x41, 0xc2, 0x3c, 0x81, - 0x0e, 0xa8, 0x4d, 0xa3, 0xf0, 0x7c, 0xcc, 0x6f, 0xea, 0x0c, 0xe4, 0x41, 0x28, 0xf8, 0xa0, 0x36, - 0x54, 0x5d, 0x5f, 0x12, 0x55, 0x5d, 0xdf, 0xf8, 0x0c, 0x1a, 0xf1, 0x11, 0x84, 0x36, 0x93, 0x50, - 0xa5, 0xfa, 0x82, 0x73, 0x2a, 0x0e, 0x62, 0x1e, 0xe6, 0xbc, 0xb5, 0x1c, 0x69, 0x13, 0x20, 0xf6, - 0x33, 0xea, 0xdc, 0x43, 0x79, 0x7e, 0xa6, 0x86, 0x65, 0xfc, 0x7d, 0xca, 0xe9, 0x68, 0x22, 0x3b, - 0xb1, 0xc8, 0x4e, 0xca, 0x09, 0x55, 0xcf, 0xe3, 0x84, 0xee, 0xc0, 0x5c, 0x48, 0x6d, 0x2a, 0xdc, - 0x60, 0x5b, 0x9b, 0x5c, 0x7a, 0x48, 0x6c, 0x0a, 0x34, 0x74, 0x15, 0x60, 0x18, 0x60, 0x9b, 0x62, - 0xc7, 0xb2, 0x85, 0x7f, 0xac, 0x99, 0x0d, 0x09, 0xe9, 0x53, 0x74, 0x0f, 0x16, 0x54, 0xdc, 0x31, - 0xc7, 0xc5, 0xd8, 0x28, 0x60, 0x98, 0x5a, 0x7d, 0x53, 0x11, 0x24, 0x7b, 0x7a, 0x7e, 0xfa, 0x9e, - 0x96, 0x74, 0x02, 0x59, 0x73, 0x4b, 0x0b, 0xa5, 0x6e, 0x49, 0x50, 0x9c, 0xc5, 0x2d, 0xd5, 0x4b, - 0xdd, 0x92, 0xe4, 0x31, 0xd5, 0x2d, 0xfd, 0x31, 0x1d, 0xcc, 0x63, 0xe8, 0xe6, 0x37, 0x88, 0x74, - 0x0c, 0xef, 0xc0, 0x7c, 0xc8, 0x21, 0x53, 0x9c, 0x8c, 0x24, 0x91, 0x88, 0xc6, 0x03, 0x58, 0xc9, - 0x58, 0x80, 0x08, 0xfb, 0x62, 0x7b, 0xa9, 0x9c, 0xc9, 0x5e, 0x8c, 0xff, 0xaf, 0xe8, 0xd6, 0xfb, - 0xc0, 0x1d, 0x53, 0x1c, 0xe4, 0xac, 0xf7, 0x5d, 0xc5, 0x54, 0x98, 0xee, 0xd5, 0x32, 0xa6, 0x22, - 0x22, 0x93, 0x96, 0x38, 0x80, 0x36, 0xd7, 0xa1, 0x15, 0xe2, 0x31, 0x3f, 0x10, 0x65, 0x28, 0xf2, - 0xe3, 0x02, 0x6a, 0x31, 0xae, 0x30, 0x80, 0x81, 0x44, 0x17, 0xea, 0x6b, 0x8d, 0x75, 0x58, 0xef, - 0x3e, 0xa0, 0x3c, 0xd2, 0xb9, 0xf4, 0xf0, 0x25, 0xdb, 0xfb, 0x2c, 0x93, 0x28, 0xf0, 0xf4, 0xc7, - 0x5c, 0x8c, 0x29, 0x4a, 0x10, 0x72, 0x9a, 0x12, 0xd1, 0xf8, 0xbb, 0x1a, 0x40, 0xd2, 0xf9, 0xca, - 0x6e, 0xfa, 0x0f, 0xe2, 0x2d, 0x28, 0xa2, 0x89, 0xd7, 0x0a, 0xf8, 0x15, 0x6e, 0xbe, 0x07, 0xe9, - 0xcd, 0x27, 0xe2, 0x8a, 0x37, 0x8a, 0xa8, 0x5f, 0xd9, 0x6d, 0xb7, 0x05, 0xab, 0x59, 0x75, 0xcb, - 0x4d, 0x77, 0x13, 0xe6, 0x5c, 0x8a, 0x27, 0x22, 0x2f, 0xd6, 0x93, 0x0b, 0x0d, 0x57, 0x60, 0x18, - 0xaf, 0x43, 0x63, 0x77, 0x62, 0x8f, 0xf0, 0xc0, 0xc7, 0x43, 0x36, 0x96, 0xcb, 0x1a, 0x72, 0x7c, - 0xd1, 0x30, 0x36, 0xa1, 0xfe, 0x10, 0x9f, 0x8a, 0x3d, 0x78, 0x46, 0xf9, 0x8c, 0x7f, 0xad, 0xc0, - 0x1a, 0xf7, 0x9d, 0x5b, 0x2a, 0x2b, 0x35, 0x71, 0x48, 0xa2, 0x60, 0x88, 0x43, 0xae, 0x52, 0x3f, - 0xb2, 0x7c, 0x1c, 0xb8, 0xc4, 0x91, 0x39, 0x5c, 0x63, 0xe8, 0x47, 0x07, 0x1c, 0xc0, 0x32, 0x57, - 0xd6, 0xfd, 0xab, 0x88, 0x48, 0xdb, 0xaa, 0x99, 0xf5, 0xa1, 0x1f, 0xfd, 0x94, 0xb5, 0x15, 0x6d, - 0x78, 0x62, 0x07, 0x38, 0xe4, 0x36, 0x24, 0x68, 0x07, 0x1c, 0x80, 0xde, 0x81, 0x8b, 0x13, 0x3c, - 0x21, 0xc1, 0xa9, 0x35, 0x76, 0x27, 0x2e, 0xb5, 0x5c, 0xcf, 0x3a, 0x3a, 0xa5, 0x38, 0x94, 0x86, - 0x83, 0x44, 0xe7, 0x23, 0xd6, 0xb7, 0xeb, 0x7d, 0xce, 0x7a, 0x90, 0x01, 0x2d, 0x42, 0x26, 0x56, - 0x38, 0x24, 0x01, 0xb6, 0x6c, 0xe7, 0x6b, 0x7e, 0x78, 0xd4, 0xcc, 0x26, 0x21, 0x93, 0x01, 0x83, - 0xf5, 0x9d, 0xaf, 0x0d, 0x1b, 0x5a, 0xa9, 0x9c, 0x8e, 0xc5, 0xfa, 0x3c, 0x79, 0x93, 0xb1, 0x3e, - 0xfb, 0x66, 0xb0, 0x80, 0x8c, 0xd5, 0x3a, 0xf0, 0x6f, 0x06, 0xa3, 0xa7, 0xbe, 0x0a, 0xf4, 0xf9, - 0x37, 0x5b, 0xb0, 0x31, 0x7e, 0x2a, 0xd3, 0xea, 0x86, 0x29, 0x1a, 0x86, 0x03, 0xb0, 0x65, 0xfb, - 0xf6, 0x91, 0x3b, 0x76, 0xe9, 0x29, 0xba, 0x09, 0x1d, 0xdb, 0x71, 0xac, 0xa1, 0x82, 0xb8, 0x58, - 0xd5, 0x38, 0x96, 0x6c, 0xc7, 0xd9, 0xd2, 0xc0, 0xe8, 0x47, 0xb0, 0xec, 0x04, 0xc4, 0x4f, 0xe3, - 0x8a, 0xa2, 0x47, 0x87, 0x75, 0xe8, 0xc8, 0xc6, 0xf3, 0x1a, 0x5c, 0x4d, 0xab, 0x25, 0x9b, 0x25, - 0x7f, 0x00, 0x8b, 0x99, 0x51, 0xd3, 0xe9, 0x69, 0x22, 0xa4, 0x99, 0x42, 0xcc, 0xe4, 0x91, 0xd5, - 0x6c, 0x1e, 0x59, 0x9c, 0x7e, 0xd7, 0x7e, 0x88, 0xf4, 0x7b, 0xf6, 0xfb, 0xa4, 0xdf, 0x73, 0x67, - 0x4a, 0xbf, 0xdf, 0xe4, 0x05, 0x2d, 0x45, 0xc4, 0xd3, 0xa6, 0x79, 0x51, 0x75, 0x89, 0x71, 0x3c, - 0x55, 0xf8, 0xca, 0xa4, 0xe9, 0x0b, 0xe7, 0x49, 0xd3, 0xeb, 0xa5, 0x69, 0x3a, 0xb3, 0x08, 0xdf, - 0xb7, 0x83, 0x09, 0x09, 0x2c, 0x3f, 0x20, 0xc7, 0xee, 0x18, 0x77, 0x1b, 0x5c, 0x84, 0x25, 0x05, - 0x3f, 0x10, 0x60, 0xe3, 0x1f, 0x2a, 0xb0, 0x92, 0x56, 0xb2, 0xcc, 0xc0, 0x3e, 0x85, 0x46, 0xa0, - 0x76, 0xa1, 0x54, 0xec, 0x46, 0x3a, 0xd2, 0xc9, 0xef, 0x56, 0x33, 0x21, 0x41, 0x3f, 0x2d, 0xcd, - 0xe5, 0xdf, 0x2c, 0x61, 0xf3, 0xa2, 0x6c, 0xde, 0xe8, 0xc3, 0x72, 0x8c, 0x3c, 0x35, 0x93, 0xd6, - 0x32, 0xe3, 0x6a, 0x3a, 0x33, 0xf6, 0x60, 0x7e, 0x1b, 0x3f, 0x75, 0x87, 0xf8, 0x07, 0x29, 0x8d, - 0x6d, 0x40, 0xd3, 0xc7, 0xc1, 0xc4, 0x0d, 0xc3, 0xd8, 0x40, 0x1b, 0xa6, 0x0e, 0x32, 0xfe, 0x7b, - 0x0e, 0x96, 0xb2, 0x2b, 0xfb, 0x7e, 0x2e, 0x11, 0xef, 0x25, 0x3b, 0x26, 0x3b, 0x3f, 0xed, 0x34, - 0xbc, 0xa1, 0x1c, 0x6e, 0x35, 0x13, 0x8f, 0xc7, 0x3e, 0x59, 0x3a, 0x61, 0x36, 0xff, 0x21, 0x99, - 0x4c, 0x6c, 0xcf, 0x51, 0x65, 0x4b, 0xd9, 0x64, 0xab, 0x65, 0x07, 0x23, 0xb6, 0x0d, 0x18, 0x98, - 0x7f, 0xa3, 0xd7, 0xa0, 0xc9, 0xe2, 0x5a, 0xd7, 0xe3, 0x79, 0x3c, 0x37, 0xf2, 0x86, 0x09, 0x12, - 0xb4, 0xed, 0x06, 0xe8, 0x3a, 0xcc, 0x62, 0xef, 0xa9, 0x3a, 0xf7, 0x92, 0xba, 0xa6, 0x72, 0xf4, - 0x26, 0xef, 0x46, 0x6f, 0xc2, 0xfc, 0x84, 0x44, 0x1e, 0x55, 0x11, 0x6e, 0x3b, 0x46, 0xe4, 0xc5, - 0x48, 0x53, 0xf6, 0xa2, 0x9b, 0xb0, 0xe0, 0x70, 0x1d, 0xa8, 0x30, 0x76, 0x29, 0xa9, 0x05, 0x70, - 0xb8, 0xa9, 0xfa, 0xd1, 0xc7, 0xf1, 0x89, 0xdd, 0xc8, 0x9c, 0xb9, 0x99, 0x45, 0x2d, 0x3c, 0xb6, - 0x1f, 0xa6, 0x8f, 0x6d, 0xe0, 0x2c, 0x6e, 0x96, 0xb2, 0x98, 0x9e, 0xc9, 0x5f, 0x82, 0xfa, 0x98, - 0x8c, 0x84, 0x1d, 0x34, 0x45, 0x91, 0x7b, 0x4c, 0x46, 0xdc, 0x0c, 0x56, 0x58, 0x98, 0xe2, 0xb8, - 0x5e, 0x77, 0x91, 0x6f, 0x5f, 0xd1, 0x60, 0xa7, 0x0f, 0xff, 0xb0, 0x88, 0x37, 0xc4, 0xdd, 0x16, - 0xef, 0x6a, 0x70, 0xc8, 0xbe, 0x37, 0xe4, 0x87, 0x23, 0xa5, 0xa7, 0xdd, 0x36, 0x87, 0xb3, 0x4f, - 0x16, 0x5d, 0x8a, 0xbc, 0x62, 0x29, 0x13, 0x5d, 0x16, 0xed, 0xcf, 0x57, 0xa0, 0x54, 0xf0, 0x4f, - 0x15, 0x58, 0xdd, 0xe2, 0xc1, 0x95, 0xe6, 0x09, 0xce, 0x91, 0xea, 0xa2, 0xbb, 0x71, 0x4d, 0x21, - 0x9b, 0xb1, 0x66, 0x27, 0x2b, 0xf1, 0xd0, 0x7d, 0x68, 0x2b, 0x9e, 0x92, 0xb2, 0xf6, 0xa2, 0x6a, - 0x44, 0x2b, 0xd4, 0x9b, 0xc6, 0xc7, 0xb0, 0x96, 0x93, 0x59, 0x06, 0x42, 0xaf, 0xc3, 0x62, 0xe2, - 0x11, 0x62, 0x91, 0x9b, 0x31, 0x6c, 0xd7, 0x31, 0xee, 0xc1, 0xc5, 0x01, 0xb5, 0x03, 0x9a, 0x9b, - 0xf0, 0x19, 0x68, 0x79, 0x41, 0x22, 0x4d, 0x2b, 0x6b, 0x06, 0x03, 0x58, 0x19, 0x50, 0xe2, 0xbf, - 0x04, 0x53, 0xb6, 0xd3, 0xd9, 0xb4, 0x49, 0x44, 0x65, 0xf4, 0xa3, 0x9a, 0xc6, 0x9a, 0x28, 0x9f, - 0xe4, 0x47, 0xfb, 0x08, 0x56, 0x45, 0xf5, 0xe2, 0x65, 0x26, 0x71, 0x49, 0xd5, 0x4e, 0xf2, 0x7c, - 0xb7, 0xe1, 0x42, 0xe2, 0xca, 0x93, 0x44, 0xec, 0x76, 0x3a, 0x11, 0x5b, 0xcb, 0xeb, 0x38, 0x95, - 0x87, 0xfd, 0x4d, 0x55, 0x73, 0x98, 0x25, 0x69, 0xd8, 0x66, 0x3a, 0x0d, 0xbb, 0x52, 0xc2, 0x32, - 0x95, 0x85, 0xe5, 0x2d, 0xb2, 0x56, 0x60, 0x91, 0x66, 0x2e, 0x57, 0x9b, 0xcd, 0x94, 0x8d, 0x33, - 0xb2, 0xfd, 0x41, 0x52, 0xb5, 0x5d, 0x91, 0xaa, 0xc5, 0x43, 0xc7, 0x15, 0xa5, 0xbb, 0x99, 0x54, - 0xad, 0x5b, 0x26, 0x66, 0x9c, 0xa9, 0xfd, 0xf5, 0x2c, 0x34, 0xe2, 0xbe, 0xdc, 0xc2, 0xe6, 0x17, - 0xa9, 0x5a, 0xb0, 0x48, 0xfa, 0xf9, 0x55, 0x7b, 0x99, 0xf3, 0x6b, 0xf6, 0x45, 0xe7, 0xd7, 0x65, - 0x68, 0xf0, 0x0f, 0x2b, 0xc0, 0xc7, 0xf2, 0x3c, 0xaa, 0x73, 0x80, 0x89, 0x8f, 0x13, 0x83, 0x9a, - 0x3f, 0x8b, 0x41, 0x65, 0x72, 0xc2, 0x85, 0x6c, 0x4e, 0xf8, 0x7e, 0x7c, 0xc2, 0x88, 0xb3, 0x68, - 0x3d, 0xcf, 0xae, 0xf0, 0x6c, 0xd9, 0x49, 0x9f, 0x2d, 0xe2, 0x78, 0xba, 0x56, 0x40, 0xfc, 0xca, - 0x66, 0x84, 0x8f, 0x44, 0x46, 0xa8, 0x5b, 0x95, 0x74, 0x84, 0x9b, 0x00, 0xf1, 0x9e, 0x57, 0x69, - 0x21, 0xca, 0x4f, 0xcd, 0xd4, 0xb0, 0x98, 0x57, 0x49, 0xad, 0x7f, 0x52, 0xf6, 0x3c, 0x83, 0x57, - 0xf9, 0x17, 0x3d, 0x4a, 0x2a, 0xa9, 0x1c, 0xbe, 0x9f, 0x2b, 0x22, 0x9c, 0xcd, 0xea, 0x6e, 0xa7, - 0x6b, 0x08, 0xe7, 0x33, 0x97, 0x5c, 0x09, 0x81, 0x1f, 0xea, 0x76, 0x20, 0xbb, 0x45, 0xf6, 0xd7, - 0x90, 0x90, 0x3e, 0x65, 0xa1, 0xd4, 0xb1, 0xeb, 0xb9, 0xe1, 0x89, 0xe8, 0x9f, 0xe7, 0xfd, 0xa0, - 0x40, 0x7d, 0x7e, 0xa1, 0x8b, 0x9f, 0xb9, 0xd4, 0x1a, 0x12, 0x07, 0x73, 0x63, 0x9c, 0x33, 0xeb, - 0x0c, 0xb0, 0x45, 0x1c, 0x9c, 0x6c, 0x90, 0xfa, 0xb9, 0x36, 0x48, 0x23, 0xb3, 0x41, 0x56, 0x61, - 0x3e, 0xc0, 0x76, 0x48, 0xbc, 0x2e, 0x88, 0x6b, 0x61, 0xd1, 0x62, 0x67, 0xc5, 0x04, 0x87, 0x21, - 0x1b, 0x40, 0x06, 0x30, 0xb2, 0xa9, 0x85, 0x59, 0x8b, 0x65, 0x61, 0xd6, 0x94, 0xd2, 0x64, 0x26, - 0xcc, 0x6a, 0x95, 0x85, 0x59, 0x67, 0xa9, 0x4c, 0x6a, 0x41, 0x64, 0x7b, 0x6a, 0x10, 0xa9, 0x87, - 0x63, 0x4b, 0xa9, 0x70, 0xec, 0x8f, 0xb9, 0xa7, 0x1e, 0xc2, 0x5a, 0x6e, 0x17, 0xc8, 0x4d, 0x75, - 0x37, 0x53, 0xdb, 0xec, 0x96, 0x2d, 0x50, 0x5c, 0xda, 0xfc, 0x73, 0x58, 0xda, 0x79, 0x86, 0x87, - 0x83, 0x53, 0x6f, 0x78, 0x8e, 0x88, 0xa0, 0x03, 0xb5, 0xe1, 0xc4, 0x91, 0x49, 0x3d, 0xfb, 0xd4, - 0x63, 0x84, 0x5a, 0x3a, 0x46, 0xb0, 0xa0, 0x93, 0x8c, 0x20, 0xe5, 0x5c, 0x65, 0x72, 0x3a, 0x0c, - 0x99, 0x31, 0x5f, 0x34, 0x65, 0x4b, 0xc2, 0x71, 0x10, 0xf0, 0x59, 0x0b, 0x38, 0x0e, 0x82, 0xb4, - 0x45, 0xd7, 0xd2, 0x16, 0x6d, 0x7c, 0x0d, 0x4d, 0x36, 0xc0, 0xf7, 0x12, 0x5f, 0x06, 0xca, 0xb5, - 0x24, 0x50, 0x8e, 0xe3, 0xed, 0x59, 0x2d, 0xde, 0x36, 0x36, 0x60, 0x51, 0x8c, 0x25, 0x27, 0xd2, - 0x81, 0x5a, 0x14, 0x8c, 0x95, 0xde, 0xa2, 0x60, 0x6c, 0xfc, 0x29, 0xb4, 0xfa, 0x94, 0xda, 0xc3, - 0x93, 0x73, 0xc8, 0x13, 0x8f, 0x55, 0xd5, 0x63, 0xfb, 0x9c, 0x4c, 0x86, 0x01, 0x6d, 0xc5, 0xbb, - 0x74, 0xfc, 0x3d, 0x40, 0x07, 0x24, 0xa0, 0x0f, 0x48, 0xf0, 0xad, 0x1d, 0x38, 0xe7, 0x8b, 0x95, - 0x11, 0xcc, 0xca, 0x67, 0x22, 0xb5, 0x1b, 0x73, 0x26, 0xff, 0x36, 0xde, 0x82, 0x0b, 0x29, 0x7e, - 0xa5, 0x03, 0x7f, 0x00, 0x4d, 0xee, 0x42, 0x64, 0x3c, 0x75, 0x43, 0xaf, 0xdc, 0x4d, 0xf3, 0x33, - 0x2c, 0xe3, 0x66, 0x67, 0x04, 0x87, 0xc7, 0x0e, 0xfd, 0xc7, 0x99, 0xa8, 0x63, 0x25, 0x4d, 0x9f, - 0x89, 0x38, 0xfe, 0xb1, 0x02, 0x73, 0x1c, 0x9e, 0xf3, 0xe8, 0x97, 0xa1, 0x11, 0x60, 0x9f, 0x58, - 0xd4, 0x1e, 0xc5, 0x2f, 0x6f, 0x18, 0xe0, 0x89, 0x3d, 0x0a, 0xf9, 0xc3, 0x21, 0xd6, 0xe9, 0xb8, - 0x23, 0x1c, 0x52, 0xf5, 0xfc, 0xa6, 0xc9, 0x60, 0xdb, 0x02, 0xc4, 0x96, 0x24, 0x74, 0xff, 0x42, - 0x84, 0x13, 0xb3, 0x26, 0xff, 0x46, 0xd7, 0xc5, 0x1d, 0xfa, 0x94, 0x42, 0x0d, 0xbf, 0x58, 0xef, - 0x41, 0x3d, 0x53, 0x9b, 0x89, 0xdb, 0xc6, 0xc7, 0x80, 0xf4, 0x39, 0xcb, 0x45, 0x7d, 0x13, 0xe6, - 0xf9, 0x92, 0xa8, 0xf3, 0xb0, 0x9d, 0x9e, 0xb4, 0x29, 0x7b, 0x8d, 0x4f, 0x01, 0x89, 0x55, 0x4c, - 0x9d, 0x81, 0x67, 0x5f, 0xf1, 0x8f, 0xe0, 0x42, 0x8a, 0x3e, 0xbe, 0x32, 0x4d, 0x31, 0xc8, 0x8e, - 0x2e, 0x89, 0xff, 0xad, 0x02, 0xd0, 0x8f, 0xe8, 0x89, 0x2c, 0x34, 0xe8, 0xb3, 0xac, 0xa4, 0x67, - 0xc9, 0xfa, 0x7c, 0x3b, 0x0c, 0xbf, 0x25, 0x81, 0x0a, 0xf2, 0xe2, 0x36, 0x2f, 0x12, 0x44, 0xf4, - 0x44, 0x15, 0x22, 0xd9, 0x37, 0xba, 0x0e, 0x6d, 0xf1, 0x60, 0xca, 0xb2, 0x1d, 0x27, 0xc0, 0x61, - 0x28, 0x2b, 0x92, 0x2d, 0x01, 0xed, 0x0b, 0x20, 0x43, 0x73, 0x1d, 0xec, 0x51, 0x97, 0x9e, 0x5a, - 0x94, 0x7c, 0x83, 0x3d, 0x19, 0xbe, 0xb5, 0x14, 0xf4, 0x09, 0x03, 0x32, 0xb4, 0x00, 0x8f, 0xdc, - 0x90, 0x06, 0x0a, 0x4d, 0x55, 0xc8, 0x24, 0x94, 0xa3, 0x19, 0xbf, 0xae, 0x40, 0xe7, 0x20, 0x1a, - 0x8f, 0xc5, 0x24, 0xcf, 0xbb, 0x96, 0xe8, 0x2d, 0x39, 0x8f, 0x6a, 0xc6, 0x1a, 0x92, 0x25, 0x92, - 0x93, 0xfb, 0xfe, 0x69, 0xe5, 0x5d, 0x58, 0xd6, 0x04, 0x95, 0x4a, 0x4b, 0x9d, 0xd2, 0x95, 0xf4, - 0x29, 0xcd, 0x0c, 0x45, 0x64, 0x52, 0x2f, 0x37, 0x39, 0xe3, 0x22, 0x5c, 0x48, 0xd1, 0xcb, 0x2c, - 0xec, 0x16, 0xb4, 0xe4, 0xb5, 0xa5, 0x34, 0x82, 0x4b, 0x50, 0x67, 0xee, 0x65, 0xe8, 0x3a, 0xaa, - 0x02, 0xbd, 0xe0, 0x13, 0x67, 0xcb, 0x75, 0x02, 0x63, 0x0f, 0x5a, 0xa6, 0x60, 0x2f, 0x71, 0x3f, - 0x81, 0xb6, 0xbc, 0xe4, 0xb4, 0x52, 0x97, 0xfd, 0x49, 0xb9, 0x34, 0xc5, 0xdb, 0x6c, 0x79, 0x7a, - 0xd3, 0xf8, 0x25, 0xf4, 0x0e, 0x7d, 0x87, 0x05, 0x53, 0x3a, 0x57, 0x35, 0xb5, 0x4f, 0x40, 0x3d, - 0xe8, 0x2b, 0x63, 0x9e, 0x26, 0x6b, 0x05, 0x7a, 0xd3, 0xb8, 0x0a, 0x97, 0x0b, 0x99, 0xcb, 0x79, - 0xfb, 0xd0, 0x49, 0x3a, 0x1c, 0x57, 0x15, 0xde, 0x79, 0x41, 0xbd, 0xa2, 0x15, 0xd4, 0x57, 0xe3, - 0x63, 0x58, 0x38, 0x74, 0xd9, 0xd2, 0x82, 0xa6, 0x5a, 0x59, 0xd0, 0x34, 0x9b, 0x0a, 0x9a, 0x8c, - 0x2f, 0xe3, 0xd5, 0x93, 0x11, 0xeb, 0x87, 0x3c, 0x6c, 0x16, 0x63, 0x2b, 0x37, 0x71, 0xa9, 0x60, - 0x72, 0x02, 0xc3, 0xd4, 0x90, 0x8d, 0x25, 0x68, 0xa5, 0x1c, 0x86, 0x71, 0x1f, 0xda, 0x19, 0x0f, - 0x70, 0x27, 0x13, 0x3f, 0xe4, 0x96, 0x2d, 0x13, 0x3d, 0xac, 0x48, 0x47, 0xf4, 0x20, 0xdc, 0xf5, - 0x8e, 0x89, 0xe2, 0x7b, 0x0d, 0x9a, 0x87, 0x65, 0x8f, 0xe3, 0x66, 0xd5, 0x7d, 0xcc, 0x5b, 0xb0, - 0x3c, 0xa0, 0x24, 0xb0, 0x47, 0x78, 0x97, 0xef, 0xda, 0x63, 0x57, 0xdc, 0x58, 0x44, 0x51, 0xec, - 0xbf, 0xf9, 0xb7, 0xf1, 0x9f, 0x15, 0x58, 0x7a, 0xe0, 0x8e, 0x71, 0x78, 0x1a, 0x52, 0x3c, 0x39, - 0xe4, 0xb1, 0xe4, 0x15, 0x68, 0x30, 0x69, 0x42, 0x6a, 0x4f, 0x7c, 0x75, 0x5f, 0x13, 0x03, 0xd8, - 0x1a, 0x85, 0x82, 0xb5, 0xca, 0x2e, 0xf5, 0x38, 0x3e, 0x37, 0x2a, 0x8b, 0xad, 0x25, 0x08, 0xbd, - 0x0b, 0x10, 0x85, 0xd8, 0x91, 0x77, 0x34, 0xb5, 0xcc, 0xd1, 0x73, 0xa8, 0xd7, 0xe2, 0x19, 0x9e, - 0xb8, 0xb0, 0x79, 0x0f, 0x9a, 0xae, 0x47, 0x1c, 0xcc, 0x6b, 0xf1, 0x8e, 0xcc, 0x3c, 0x8b, 0xa9, - 0x40, 0x20, 0x1e, 0x86, 0xd8, 0x31, 0xfe, 0x4c, 0x7a, 0x61, 0xb5, 0x78, 0x52, 0x07, 0x3b, 0xb0, - 0x2c, 0x36, 0xf4, 0x71, 0x3c, 0x69, 0xa5, 0xe8, 0x24, 0x9c, 0xcb, 0x2c, 0x88, 0xd9, 0x71, 0xe5, - 0xa9, 0xa8, 0x28, 0x8c, 0x7b, 0x70, 0x31, 0x15, 0xf3, 0x9d, 0x27, 0x55, 0xfa, 0x22, 0x93, 0x67, - 0x25, 0x06, 0x22, 0x13, 0x1d, 0x65, 0x1f, 0x25, 0x89, 0x4e, 0x28, 0x12, 0x9d, 0xd0, 0x30, 0xe1, - 0x52, 0x2a, 0xfd, 0x4b, 0x09, 0xf2, 0x5e, 0xe6, 0x88, 0xbf, 0x5a, 0xc2, 0x2c, 0x73, 0xd6, 0xff, - 0x6f, 0x05, 0x56, 0x8a, 0x10, 0x5e, 0xb2, 0xd0, 0xf0, 0xb3, 0x92, 0x9b, 0xf3, 0xbb, 0x53, 0xa5, - 0xf9, 0x83, 0x94, 0x64, 0x1e, 0x42, 0xaf, 0x68, 0xf5, 0xf2, 0xaa, 0xa8, 0x9d, 0x41, 0x15, 0xff, - 0x57, 0xd5, 0x4a, 0x67, 0x7d, 0x4a, 0x03, 0xf7, 0x28, 0x62, 0xc6, 0xfb, 0x43, 0xa5, 0xc0, 0xf7, - 0xe3, 0xf4, 0x4e, 0xac, 0xdf, 0x8d, 0x3c, 0x55, 0x32, 0x6a, 0x61, 0x8a, 0xb7, 0x9f, 0x4e, 0xf1, - 0x44, 0x51, 0xec, 0xf6, 0x54, 0x36, 0xaf, 0x6c, 0xdd, 0xe3, 0x79, 0x05, 0xda, 0x69, 0x3d, 0xa0, - 0x8f, 0x01, 0xec, 0x58, 0x72, 0x69, 0xf2, 0x57, 0xa6, 0xcd, 0xce, 0xd4, 0xf0, 0xd1, 0x35, 0xa8, - 0x0d, 0xfd, 0x48, 0x6a, 0x24, 0xb9, 0x1d, 0xd9, 0xf2, 0x23, 0xe1, 0x00, 0x58, 0x2f, 0x0b, 0x9a, - 0xc5, 0x7d, 0x72, 0xce, 0x73, 0x3d, 0xe6, 0x60, 0x81, 0x2a, 0x71, 0xd0, 0x67, 0xd0, 0xfe, 0x36, - 0x70, 0xa9, 0x7d, 0x34, 0xc6, 0xd6, 0xd8, 0x3e, 0xc5, 0x81, 0xf4, 0x5c, 0xe5, 0x5e, 0xa6, 0xa5, - 0xf0, 0x1f, 0x31, 0x74, 0x23, 0x82, 0xba, 0x1a, 0xff, 0x05, 0x1e, 0xf9, 0x21, 0xac, 0x45, 0x0c, - 0xcd, 0xe2, 0x77, 0xda, 0x9e, 0xed, 0x11, 0x2b, 0xc4, 0xec, 0x68, 0x52, 0xef, 0xc8, 0x8a, 0xbd, - 0xe5, 0x0a, 0x27, 0xda, 0x22, 0x01, 0xde, 0xb3, 0x3d, 0x32, 0x10, 0x14, 0xc6, 0x04, 0x9a, 0xda, - 0x74, 0x5e, 0x30, 0xf2, 0x7d, 0x58, 0x56, 0xf7, 0x4e, 0x21, 0xa6, 0xd2, 0xaf, 0x4f, 0x1b, 0x73, - 0x49, 0xa2, 0x0f, 0x30, 0xe5, 0xde, 0xfd, 0xd6, 0x15, 0xa8, 0xab, 0xb7, 0xf5, 0x68, 0x01, 0x6a, - 0x4f, 0xb6, 0x0e, 0x3a, 0x33, 0xec, 0xe3, 0x70, 0xfb, 0xa0, 0x53, 0xb9, 0x75, 0x0f, 0x96, 0x32, - 0xef, 0x44, 0xd0, 0x32, 0xb4, 0x06, 0xfd, 0xbd, 0xed, 0xcf, 0xf7, 0x7f, 0x6e, 0x99, 0x3b, 0xfd, - 0xed, 0x5f, 0x74, 0x66, 0xd0, 0x0a, 0x74, 0x14, 0x68, 0x6f, 0xff, 0x89, 0x80, 0x56, 0x6e, 0x7d, - 0x93, 0xb1, 0x11, 0x8c, 0x2e, 0xc2, 0xf2, 0xd6, 0xfe, 0xde, 0x93, 0xfe, 0xee, 0xde, 0x8e, 0x69, - 0x6d, 0x99, 0x3b, 0xfd, 0x27, 0x3b, 0xdb, 0x9d, 0x99, 0x34, 0xd8, 0x3c, 0xdc, 0xdb, 0xdb, 0xdd, - 0xfb, 0xa2, 0x53, 0x61, 0x5c, 0x13, 0xf0, 0xce, 0xcf, 0x77, 0x19, 0x72, 0x35, 0x8d, 0x7c, 0xb8, - 0xf7, 0x70, 0x6f, 0xff, 0x67, 0x7b, 0x9d, 0xda, 0xe6, 0x6f, 0x17, 0xa1, 0xad, 0x0e, 0x71, 0x1c, - 0xf0, 0xdb, 0xc9, 0x4f, 0x61, 0x41, 0xfd, 0xf6, 0x90, 0x78, 0x8f, 0xf4, 0x3f, 0x1a, 0xbd, 0x6e, - 0xbe, 0x43, 0x06, 0x43, 0x33, 0xe8, 0x80, 0x07, 0x27, 0xda, 0x9b, 0x9c, 0xab, 0x7a, 0xb8, 0x90, - 0x7b, 0xf4, 0xd3, 0x5b, 0x2f, 0xeb, 0x8e, 0x39, 0x0e, 0x58, 0x44, 0xa2, 0xbf, 0xa7, 0x44, 0xeb, - 0xfa, 0xb9, 0x9d, 0x7f, 0xa7, 0xd9, 0x7b, 0xad, 0xb4, 0x3f, 0x66, 0xfa, 0x0b, 0xe8, 0x64, 0x5f, - 0x52, 0xa2, 0xe4, 0x96, 0xb9, 0xe4, 0x95, 0x66, 0xef, 0xf5, 0x29, 0x18, 0x3a, 0xeb, 0xdc, 0x6b, - 0xc4, 0x8d, 0xf2, 0xf7, 0x64, 0x39, 0xd6, 0x65, 0x8f, 0xd4, 0xc4, 0x52, 0xa4, 0xdf, 0xd2, 0x20, - 0xfd, 0x0d, 0x60, 0xc1, 0x9b, 0x2a, 0x6d, 0x29, 0x8a, 0x1f, 0xe1, 0x18, 0x33, 0xe8, 0x2b, 0x58, - 0xca, 0x5c, 0x4c, 0xa1, 0x84, 0xaa, 0xf8, 0x9a, 0xad, 0xb7, 0x51, 0x8e, 0x90, 0xd6, 0x9b, 0x7e, - 0xed, 0x94, 0xd2, 0x5b, 0xc1, 0x5d, 0x56, 0x4a, 0x6f, 0x85, 0xf7, 0x55, 0xdc, 0xbc, 0x52, 0x97, - 0x4b, 0x9a, 0x79, 0x15, 0xdd, 0x64, 0xf5, 0xd6, 0xcb, 0xba, 0xf5, 0xe9, 0x67, 0x2e, 0x96, 0xb4, - 0xe9, 0x17, 0xdf, 0x57, 0xf5, 0x36, 0xca, 0x11, 0xb2, 0xba, 0x4a, 0xaa, 0xdc, 0x19, 0x5d, 0xe5, - 0x2e, 0x55, 0x32, 0xba, 0xca, 0x97, 0xc7, 0xa5, 0xae, 0x32, 0xe5, 0xea, 0xd7, 0x4a, 0xcb, 0x79, - 0x79, 0x5d, 0x15, 0x57, 0x08, 0x8d, 0x19, 0xd4, 0x87, 0xba, 0xaa, 0xc7, 0xa1, 0x64, 0x77, 0x67, - 0x8a, 0x80, 0xbd, 0x4b, 0x05, 0x3d, 0x31, 0x8b, 0xf7, 0x60, 0x96, 0x41, 0xd1, 0x4a, 0x0a, 0x49, - 0x91, 0x5e, 0xcc, 0x40, 0x63, 0xb2, 0x8f, 0x60, 0x5e, 0x94, 0xaf, 0x50, 0x92, 0x57, 0xa4, 0x6a, - 0x65, 0xbd, 0xb5, 0x1c, 0x3c, 0x26, 0xfe, 0x52, 0xfc, 0x0a, 0x25, 0xeb, 0x50, 0xe8, 0x72, 0xea, - 0x91, 0x7e, 0xba, 0xda, 0xd5, 0xbb, 0x52, 0xdc, 0xa9, 0xeb, 0x2b, 0x73, 0x38, 0xaf, 0x97, 0x45, - 0x4f, 0x39, 0x7d, 0x15, 0x47, 0x63, 0xc6, 0x0c, 0xb2, 0x44, 0x49, 0x27, 0xc3, 0xd8, 0x28, 0x56, - 0x74, 0x8a, 0xf9, 0xb5, 0xa9, 0x38, 0xf1, 0x00, 0x47, 0x70, 0xa1, 0x20, 0x39, 0x45, 0x09, 0x75, - 0x79, 0x5e, 0xdc, 0x7b, 0x63, 0x3a, 0x92, 0xae, 0x22, 0x69, 0x6b, 0xab, 0xfa, 0x06, 0xd5, 0x4c, - 0x6c, 0x2d, 0x07, 0x57, 0xc4, 0x9b, 0x7f, 0x55, 0x83, 0x45, 0x51, 0x42, 0x90, 0x07, 0xcc, 0x17, - 0x00, 0x49, 0x95, 0x0b, 0xf5, 0x52, 0xd3, 0x4c, 0x95, 0xfb, 0x7a, 0x97, 0x0b, 0xfb, 0x74, 0xe5, - 0x6b, 0x05, 0x2b, 0x4d, 0xf9, 0xf9, 0x32, 0x98, 0xa6, 0xfc, 0x82, 0x1a, 0x97, 0x31, 0x83, 0xb6, - 0xa1, 0x11, 0x57, 0x51, 0x90, 0x56, 0x7c, 0xc9, 0x94, 0x80, 0x7a, 0xbd, 0xa2, 0x2e, 0x5d, 0x22, - 0xad, 0x32, 0xa2, 0x49, 0x94, 0xaf, 0xb7, 0x68, 0x12, 0x15, 0x15, 0x53, 0x92, 0xd9, 0x89, 0x44, - 0x30, 0x3b, 0xbb, 0x54, 0x6e, 0x9d, 0x9d, 0x5d, 0x3a, 0x77, 0x34, 0x66, 0x3e, 0xbf, 0xf2, 0x9b, - 0xdf, 0xad, 0x57, 0xfe, 0xeb, 0x77, 0xeb, 0x33, 0x7f, 0xf9, 0x7c, 0xbd, 0xf2, 0x9b, 0xe7, 0xeb, - 0x95, 0x7f, 0x7f, 0xbe, 0x5e, 0xf9, 0xed, 0xf3, 0xf5, 0xca, 0x77, 0xff, 0xb3, 0x3e, 0x73, 0x34, - 0xcf, 0xff, 0x0d, 0x7c, 0xf7, 0xf7, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xdd, 0x86, 0xaa, 0xcf, - 0x39, 0x00, 0x00, + // 4602 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5c, 0xcd, 0x6f, 0x1b, 0x49, + 0x76, 0x17, 0x49, 0x7d, 0x90, 0x8f, 0xa2, 0x44, 0x95, 0x65, 0x8b, 0xa6, 0x6d, 0x8d, 0xd5, 0x1e, + 0x7f, 0xce, 0x58, 0x1e, 0x6b, 0x76, 0x3d, 0xb1, 0x3d, 0x6b, 0x9b, 0x96, 0x64, 0x9b, 0x59, 0x9b, + 0x52, 0x9a, 0xd2, 0x7c, 0xec, 0x2c, 0xd0, 0xdb, 0x62, 0x97, 0xa8, 0x5e, 0x93, 0x5d, 0x3d, 0xdd, + 0x4d, 0xdb, 0xca, 0x21, 0x58, 0x20, 0xc8, 0x1e, 0x02, 0x04, 0xc8, 0x39, 0xb7, 0x6c, 0x0e, 0x39, + 0xe4, 0x16, 0x20, 0xc8, 0x21, 0xa7, 0x04, 0x7b, 0xd8, 0x4b, 0x80, 0x9c, 0x16, 0xf9, 0xb8, 0x64, + 0x27, 0xc8, 0x25, 0x87, 0x20, 0x7f, 0x40, 0x0e, 0x41, 0x7d, 0xf5, 0x77, 0xf3, 0x43, 0xe3, 0x9d, + 0x99, 0x9c, 0xd4, 0xf5, 0xfa, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0x7e, 0xf5, 0xea, 0x57, 0x45, 0x41, + 0x49, 0xb7, 0xcd, 0x75, 0xdb, 0x21, 0x1e, 0x41, 0x55, 0x67, 0x60, 0x79, 0x66, 0x1f, 0xaf, 0xbf, + 0xba, 0xad, 0xf7, 0xec, 0x23, 0x7d, 0xa3, 0x7e, 0xb3, 0x6b, 0x7a, 0x47, 0x83, 0x83, 0xf5, 0x0e, + 0xe9, 0xdf, 0xea, 0x92, 0x2e, 0xb9, 0xc5, 0x18, 0x0f, 0x06, 0x87, 0xac, 0xc5, 0x1a, 0xec, 0x89, + 0x2b, 0x50, 0x6e, 0xc0, 0xc2, 0x27, 0xd8, 0x71, 0x4d, 0x62, 0xa9, 0xf8, 0xcb, 0x01, 0x76, 0x3d, + 0x54, 0x83, 0xb9, 0x57, 0x9c, 0x52, 0xcb, 0x5d, 0xcc, 0x5d, 0x2b, 0xa9, 0xb2, 0xa9, 0xfc, 0x65, + 0x0e, 0x16, 0x7d, 0x66, 0xd7, 0x26, 0x96, 0x8b, 0xb3, 0xb9, 0xd1, 0x1a, 0xcc, 0x0b, 0xe3, 0x34, + 0x4b, 0xef, 0xe3, 0x5a, 0x9e, 0xbd, 0x2e, 0x0b, 0x5a, 0x4b, 0xef, 0x63, 0x74, 0x15, 0x16, 0x25, + 0x8b, 0x54, 0x52, 0x60, 0x5c, 0x0b, 0x82, 0x2c, 0x7a, 0x43, 0xeb, 0x70, 0x4a, 0x32, 0xea, 0xb6, + 0xe9, 0x33, 0x4f, 0x33, 0xe6, 0x25, 0xf1, 0xaa, 0x61, 0x9b, 0x82, 0x5f, 0xf9, 0x02, 0x4a, 0x5b, + 0xad, 0xf6, 0x26, 0xb1, 0x0e, 0xcd, 0x2e, 0x35, 0xd1, 0xc5, 0x0e, 0x95, 0xa9, 0xe5, 0x2e, 0x16, + 0xa8, 0x89, 0xa2, 0x89, 0xea, 0x50, 0x74, 0xb1, 0xee, 0x74, 0x8e, 0xb0, 0x5b, 0xcb, 0xb3, 0x57, + 0x7e, 0x9b, 0x4a, 0x11, 0xdb, 0x33, 0x89, 0xe5, 0xd6, 0x0a, 0x5c, 0x4a, 0x34, 0x95, 0x5f, 0xe4, + 0xa0, 0xbc, 0x4b, 0x1c, 0xef, 0x85, 0x6e, 0xdb, 0xa6, 0xd5, 0x45, 0x77, 0xa0, 0xc8, 0x7c, 0xd9, + 0x21, 0x3d, 0xe6, 0x83, 0x85, 0x8d, 0xfa, 0x7a, 0x7c, 0x5a, 0xd6, 0x77, 0x05, 0x87, 0xea, 0xf3, + 0xa2, 0xcb, 0xb0, 0xd0, 0x21, 0x96, 0xa7, 0x9b, 0x16, 0x76, 0x34, 0x9b, 0x38, 0x1e, 0x73, 0xd1, + 0x8c, 0x5a, 0xf1, 0xa9, 0xb4, 0x17, 0x74, 0x0e, 0x4a, 0x47, 0xc4, 0xf5, 0x38, 0x47, 0x81, 0x71, + 0x14, 0x29, 0x81, 0xbd, 0x5c, 0x81, 0x39, 0xf6, 0xd2, 0xb4, 0x85, 0x33, 0x66, 0x69, 0xb3, 0x69, + 0x2b, 0xbf, 0xce, 0xc1, 0xcc, 0x0b, 0x32, 0xb0, 0xbc, 0x58, 0x37, 0xba, 0x77, 0x24, 0x26, 0x2a, + 0xd4, 0x8d, 0xee, 0x1d, 0x05, 0xdd, 0x50, 0x0e, 0x3e, 0x57, 0xbc, 0x1b, 0xfa, 0xb2, 0x0e, 0x45, + 0x07, 0xeb, 0x06, 0xb1, 0x7a, 0xc7, 0xcc, 0x84, 0xa2, 0xea, 0xb7, 0xe9, 0x24, 0xba, 0xb8, 0x67, + 0x5a, 0x83, 0x37, 0x9a, 0x83, 0x7b, 0xfa, 0x01, 0xee, 0x31, 0x53, 0x8a, 0xea, 0x82, 0x20, 0xab, + 0x9c, 0x8a, 0xb6, 0xa0, 0x6c, 0x3b, 0xc4, 0xd6, 0xbb, 0x3a, 0xf5, 0x63, 0x6d, 0x86, 0xb9, 0x4a, + 0x49, 0xba, 0x8a, 0x99, 0xbd, 0x1b, 0x70, 0xaa, 0x61, 0x31, 0xe5, 0xaf, 0x73, 0xb0, 0x48, 0x83, + 0xc7, 0xb5, 0xf5, 0x0e, 0xde, 0x61, 0x53, 0x82, 0xee, 0xc2, 0x9c, 0x85, 0xbd, 0xd7, 0xc4, 0x79, + 0x29, 0x26, 0xe0, 0x9d, 0xa4, 0x56, 0x5f, 0xe6, 0x05, 0x31, 0xb0, 0x2a, 0xf9, 0xd1, 0x6d, 0x28, + 0xd8, 0xa6, 0xc1, 0x06, 0x3c, 0x86, 0x18, 0xe5, 0xa5, 0x22, 0xa6, 0xdd, 0x61, 0x7e, 0x18, 0x47, + 0xc4, 0xb4, 0x3b, 0x8a, 0x02, 0xd0, 0xb4, 0xbc, 0x3b, 0xdf, 0xfb, 0x44, 0xef, 0x0d, 0x30, 0x5a, + 0x86, 0x99, 0x57, 0xf4, 0x81, 0x19, 0x5b, 0x50, 0x79, 0x43, 0xf9, 0xf3, 0x02, 0x9c, 0x7b, 0x4e, + 0xfd, 0xd5, 0xd6, 0x2d, 0xe3, 0x80, 0xbc, 0x69, 0xe3, 0xce, 0xc0, 0x31, 0xbd, 0xe3, 0x4d, 0x62, + 0x79, 0xf8, 0x8d, 0x87, 0x5a, 0xb0, 0x64, 0x49, 0xcd, 0x9a, 0x0c, 0x4d, 0xaa, 0xa1, 0xbc, 0xb1, + 0x36, 0xc4, 0x08, 0xee, 0x22, 0xb5, 0x6a, 0x45, 0x09, 0x2e, 0x7a, 0x16, 0xcc, 0x9b, 0xd4, 0x96, + 0x67, 0xda, 0x52, 0x86, 0xd4, 0xde, 0x66, 0x96, 0x09, 0x5d, 0x72, 0x62, 0xa5, 0xa6, 0x8f, 0x81, + 0x7e, 0xd5, 0x9a, 0xee, 0x6a, 0x03, 0x17, 0x3b, 0xcc, 0x31, 0xe5, 0x8d, 0xf3, 0x49, 0x2d, 0x81, + 0x0b, 0xd4, 0x92, 0x33, 0xb0, 0x1a, 0xee, 0xbe, 0x8b, 0x1d, 0x96, 0x04, 0x44, 0x2c, 0x69, 0x0e, + 0x21, 0xde, 0xa1, 0x2b, 0xe3, 0x47, 0x92, 0x55, 0x46, 0x45, 0xb7, 0xe0, 0x94, 0x3b, 0xb0, 0xed, + 0x1e, 0xee, 0x63, 0xcb, 0xd3, 0x7b, 0x5a, 0xd7, 0x21, 0x03, 0xdb, 0xad, 0xcd, 0x5c, 0x2c, 0x5c, + 0x2b, 0xa8, 0x28, 0xfc, 0xea, 0x29, 0x7b, 0x83, 0x56, 0x01, 0x6c, 0xc7, 0x7c, 0x65, 0xf6, 0x70, + 0x17, 0x1b, 0xb5, 0x59, 0xa6, 0x34, 0x44, 0x41, 0x1f, 0xc0, 0xb2, 0x8b, 0x3b, 0x1d, 0xd2, 0xb7, + 0x35, 0xdb, 0x21, 0x87, 0x66, 0x0f, 0xf3, 0xe8, 0x9f, 0x63, 0xd1, 0x8f, 0xc4, 0xbb, 0x5d, 0xfe, + 0x8a, 0x7e, 0x07, 0xca, 0x2f, 0xf2, 0x70, 0x9a, 0x79, 0x62, 0x97, 0x18, 0x62, 0x9a, 0x44, 0x92, + 0xb9, 0x04, 0x95, 0x0e, 0x33, 0x48, 0xb3, 0x75, 0x07, 0x5b, 0x9e, 0xf8, 0xc8, 0xe6, 0x39, 0x71, + 0x97, 0xd1, 0xd0, 0x67, 0x50, 0x75, 0xc5, 0xac, 0x6a, 0x1d, 0x3e, 0xad, 0xc2, 0xe7, 0x37, 0x93, + 0xde, 0x1a, 0x12, 0x0b, 0xea, 0xa2, 0x9b, 0x08, 0x8e, 0x39, 0xf7, 0xd8, 0xed, 0x78, 0x3d, 0x9e, + 0xad, 0xca, 0x1b, 0xdf, 0xcb, 0x50, 0x18, 0x37, 0x7c, 0xbd, 0xcd, 0xc5, 0xb6, 0x2d, 0xcf, 0x39, + 0x56, 0xa5, 0x92, 0xfa, 0x3d, 0x98, 0x0f, 0xbf, 0x40, 0x55, 0x28, 0xbc, 0xc4, 0xc7, 0x62, 0x50, + 0xf4, 0x31, 0x08, 0x62, 0x9e, 0x2b, 0x78, 0xe3, 0x5e, 0xfe, 0x77, 0x72, 0x8a, 0x03, 0x28, 0xe8, + 0xe5, 0x05, 0xf6, 0x74, 0x43, 0xf7, 0x74, 0x84, 0x60, 0x9a, 0x2d, 0x03, 0x5c, 0x05, 0x7b, 0xa6, + 0x5a, 0x07, 0xe2, 0xe3, 0x2b, 0xa9, 0xf4, 0x11, 0x9d, 0x87, 0x92, 0x1f, 0xa8, 0x62, 0x2d, 0x08, + 0x08, 0x34, 0x27, 0xeb, 0x9e, 0x87, 0xfb, 0xb6, 0xc7, 0x42, 0xa4, 0xa2, 0xca, 0xa6, 0xf2, 0xdf, + 0xd3, 0x50, 0x4d, 0xcc, 0xc9, 0x23, 0x28, 0xf6, 0x45, 0xf7, 0xe2, 0x43, 0x79, 0x37, 0x25, 0x31, + 0x27, 0x4c, 0x55, 0x7d, 0x29, 0x9a, 0xf7, 0x68, 0x0e, 0x0c, 0xad, 0x5f, 0x7e, 0x9b, 0xce, 0x78, + 0x8f, 0x74, 0x35, 0xc3, 0x74, 0x70, 0xc7, 0x23, 0xce, 0xb1, 0x30, 0x77, 0xbe, 0x47, 0xba, 0x5b, + 0x92, 0x86, 0xee, 0x01, 0x18, 0x96, 0x4b, 0x27, 0xfb, 0xd0, 0xec, 0x32, 0xa3, 0xcb, 0x1b, 0xe7, + 0x92, 0x46, 0xf8, 0x8b, 0x95, 0x5a, 0x32, 0x2c, 0x57, 0x98, 0xff, 0x18, 0x2a, 0x34, 0xe7, 0x6b, + 0x7d, 0xbe, 0xce, 0xf0, 0x48, 0x2f, 0x6f, 0x5c, 0x48, 0x1b, 0x83, 0xbf, 0x1a, 0xa9, 0xf3, 0x76, + 0xd0, 0x70, 0xd1, 0x13, 0x98, 0x65, 0xc9, 0xd7, 0xad, 0xcd, 0x32, 0xe1, 0xf5, 0x61, 0x0e, 0x10, + 0x11, 0xf1, 0x9c, 0x09, 0xf0, 0x80, 0x10, 0xd2, 0x68, 0x1f, 0xca, 0xba, 0x65, 0x11, 0x4f, 0xe7, + 0x89, 0x62, 0x8e, 0x29, 0xfb, 0x70, 0x0c, 0x65, 0x8d, 0x40, 0x8a, 0x6b, 0x0c, 0xeb, 0x41, 0x3f, + 0x80, 0x19, 0x96, 0x49, 0x6a, 0x45, 0xe6, 0x99, 0xab, 0x63, 0x06, 0xad, 0xca, 0xa5, 0xea, 0x77, + 0xa1, 0x1c, 0x32, 0x76, 0x92, 0x20, 0xad, 0x3f, 0x80, 0x6a, 0xdc, 0xb4, 0x89, 0x82, 0x5c, 0x85, + 0x65, 0x75, 0x60, 0x05, 0x86, 0xc9, 0xea, 0xe9, 0x1e, 0xcc, 0x8a, 0xc9, 0xe6, 0x11, 0xa7, 0x8c, + 0xf6, 0x91, 0x2a, 0x24, 0x94, 0x1f, 0xc0, 0xe9, 0x98, 0x4e, 0x51, 0x64, 0xbd, 0x0b, 0x0b, 0x36, + 0x31, 0x34, 0x97, 0x93, 0x35, 0xd3, 0x90, 0xd9, 0xc5, 0xf6, 0x79, 0x9b, 0x06, 0x15, 0x6f, 0x7b, + 0xc4, 0x4e, 0xda, 0x34, 0x9e, 0x78, 0x0d, 0xce, 0xc4, 0xc5, 0x79, 0xf7, 0xca, 0x43, 0x58, 0x51, + 0x71, 0x9f, 0xbc, 0xc2, 0x27, 0x55, 0x5d, 0x87, 0x5a, 0x52, 0x81, 0x50, 0xfe, 0x39, 0xac, 0x04, + 0xd4, 0xb6, 0xa7, 0x7b, 0x03, 0x77, 0x22, 0xe5, 0xa2, 0x02, 0x3d, 0x20, 0x2e, 0x9f, 0xa5, 0xa2, + 0x2a, 0x9b, 0xca, 0xf5, 0xb0, 0xea, 0x16, 0x5f, 0xf0, 0x79, 0x0f, 0x68, 0x01, 0xf2, 0xa6, 0x2d, + 0xd4, 0xe5, 0x4d, 0x5b, 0x79, 0x06, 0x25, 0x7f, 0xc5, 0x44, 0xf7, 0x83, 0xd2, 0x2f, 0x3f, 0xee, + 0xfa, 0xea, 0x57, 0x87, 0x7b, 0x89, 0x15, 0x42, 0x74, 0x79, 0x1f, 0xc0, 0xcf, 0x64, 0x72, 0xe1, + 0x3e, 0x37, 0x44, 0xb1, 0x1a, 0x62, 0x57, 0xfe, 0x35, 0x92, 0xdf, 0x42, 0x83, 0x30, 0xfc, 0x41, + 0x18, 0x91, 0x7c, 0x97, 0x3f, 0x51, 0xbe, 0xfb, 0x08, 0x66, 0x5c, 0x4f, 0xf7, 0xb0, 0x28, 0x6e, + 0xd6, 0x86, 0x89, 0x53, 0x23, 0xb0, 0xca, 0xf9, 0xd1, 0x05, 0x80, 0x8e, 0x83, 0x75, 0x0f, 0x1b, + 0x9a, 0xce, 0x93, 0x73, 0x41, 0x2d, 0x09, 0x4a, 0xc3, 0x43, 0x9b, 0x41, 0x81, 0x36, 0xc3, 0x0c, + 0xbb, 0x3e, 0x4c, 0x73, 0x64, 0xaa, 0x82, 0x52, 0xcd, 0x4f, 0x16, 0xb3, 0x63, 0x26, 0x0b, 0xa1, + 0x80, 0x4b, 0x85, 0x52, 0xe1, 0xdc, 0xe8, 0x54, 0xc8, 0x45, 0xc7, 0x49, 0x85, 0xc5, 0xd1, 0xa9, + 0x50, 0x28, 0x1b, 0x9a, 0x0a, 0xbf, 0xcd, 0x5c, 0xf6, 0x2f, 0x39, 0xa8, 0x25, 0xbf, 0x41, 0x91, + 0x7b, 0xee, 0xc1, 0xac, 0xcb, 0x28, 0xe3, 0x24, 0x34, 0x21, 0x2b, 0x24, 0xd0, 0x33, 0x98, 0x36, + 0xad, 0x43, 0xc2, 0xf6, 0x56, 0xa9, 0x25, 0x49, 0x56, 0xaf, 0xeb, 0x4d, 0xeb, 0x90, 0x70, 0x27, + 0x31, 0x0d, 0xf5, 0x8f, 0xa0, 0xe4, 0x93, 0x26, 0x1a, 0xdb, 0x0e, 0x2c, 0xc7, 0x42, 0x96, 0xd7, + 0xe0, 0x7e, 0xa4, 0xe7, 0x26, 0x8b, 0x74, 0xe5, 0x67, 0xf9, 0xf0, 0x97, 0xf8, 0xc4, 0xec, 0x79, + 0xd8, 0x49, 0x7c, 0x89, 0x1f, 0x4b, 0xed, 0xfc, 0x33, 0xbc, 0x32, 0x52, 0x3b, 0xaf, 0x8a, 0xc5, + 0xc7, 0xf4, 0x63, 0x58, 0x60, 0xb1, 0xa6, 0xb9, 0xb8, 0xc7, 0xea, 0x08, 0x51, 0xd3, 0x7d, 0x7f, + 0x98, 0x1a, 0x6e, 0x09, 0x8f, 0xd8, 0xb6, 0x90, 0xe3, 0x1e, 0xac, 0xf4, 0xc2, 0xb4, 0xfa, 0x23, + 0x40, 0x49, 0xa6, 0x89, 0x7c, 0xda, 0xa6, 0x29, 0x8e, 0x6e, 0x40, 0x53, 0x16, 0xbf, 0x43, 0x66, + 0xc6, 0x38, 0xb1, 0xc2, 0x0d, 0x56, 0x85, 0x84, 0xf2, 0xcb, 0x02, 0x40, 0xf0, 0xf2, 0xff, 0x51, + 0x6e, 0x7b, 0xe4, 0xe7, 0x15, 0x5e, 0x9f, 0x5d, 0x1b, 0xa6, 0x38, 0x35, 0xa3, 0xec, 0x44, 0x33, + 0x0a, 0xaf, 0xd4, 0x6e, 0x0e, 0x55, 0xf3, 0x9d, 0xcd, 0x25, 0xcf, 0xe1, 0x4c, 0x3c, 0x36, 0x44, + 0x22, 0xd9, 0x80, 0x19, 0xd3, 0xc3, 0x7d, 0x0e, 0xc2, 0xa4, 0xee, 0x0f, 0x43, 0x42, 0x9c, 0x55, + 0x59, 0x83, 0x52, 0xb3, 0xaf, 0x77, 0x71, 0xdb, 0xc6, 0x1d, 0xda, 0xa9, 0x49, 0x1b, 0xc2, 0x10, + 0xde, 0x50, 0x36, 0xa0, 0xf8, 0x43, 0x7c, 0xcc, 0x3f, 0xea, 0x31, 0x0d, 0x55, 0xfe, 0x24, 0x0f, + 0x2b, 0x6c, 0xad, 0xd8, 0x94, 0x10, 0x88, 0x8a, 0x5d, 0x32, 0x70, 0x3a, 0xd8, 0x65, 0xb3, 0x6d, + 0x0f, 0x34, 0x1b, 0x3b, 0x26, 0x31, 0xc4, 0x0e, 0xbd, 0xd4, 0xb1, 0x07, 0xbb, 0x8c, 0x80, 0xce, + 0x01, 0x6d, 0x68, 0x5f, 0x0e, 0x88, 0x08, 0xc4, 0x82, 0x5a, 0xec, 0xd8, 0x83, 0xdf, 0xa3, 0x6d, + 0x29, 0xeb, 0x1e, 0xe9, 0x0e, 0x76, 0x59, 0x9c, 0x71, 0xd9, 0x36, 0x23, 0xa0, 0xdb, 0x70, 0xba, + 0x8f, 0xfb, 0xc4, 0x39, 0xd6, 0x7a, 0x66, 0xdf, 0xf4, 0x34, 0xd3, 0xd2, 0x0e, 0x8e, 0x3d, 0xec, + 0x8a, 0x98, 0x42, 0xfc, 0xe5, 0x73, 0xfa, 0xae, 0x69, 0x3d, 0xa6, 0x6f, 0x90, 0x02, 0x15, 0x42, + 0xfa, 0x9a, 0xdb, 0x21, 0x0e, 0xd6, 0x74, 0xe3, 0xa7, 0x6c, 0xf9, 0x2c, 0xa8, 0x65, 0x42, 0xfa, + 0x6d, 0x4a, 0x6b, 0x18, 0x3f, 0x45, 0xef, 0x40, 0xb9, 0x63, 0x0f, 0x5c, 0xec, 0x69, 0xf4, 0x0f, + 0x5b, 0x1d, 0x4b, 0x2a, 0x70, 0xd2, 0xa6, 0x3d, 0x70, 0x43, 0x0c, 0x7d, 0xea, 0xff, 0xb9, 0x30, + 0xc3, 0x0b, 0xea, 0x66, 0x1d, 0x2a, 0x91, 0x1d, 0x3e, 0xdd, 0xac, 0xb1, 0xad, 0xbc, 0xd8, 0xac, + 0xd1, 0x67, 0x4a, 0x73, 0x48, 0x4f, 0x7a, 0x92, 0x3d, 0x53, 0x9a, 0x77, 0x6c, 0xcb, 0x9d, 0x1a, + 0x7b, 0xa6, 0x2e, 0xef, 0xe1, 0x57, 0x02, 0x05, 0x2a, 0xa9, 0xbc, 0xa1, 0x18, 0x00, 0x9b, 0xba, + 0xad, 0x1f, 0x98, 0x3d, 0xd3, 0x3b, 0x46, 0xd7, 0xa1, 0xaa, 0x1b, 0x86, 0xd6, 0x91, 0x14, 0x13, + 0x4b, 0x6c, 0x6e, 0x51, 0x37, 0x8c, 0xcd, 0x10, 0x19, 0xbd, 0x07, 0x4b, 0x86, 0x43, 0xec, 0x28, + 0x2f, 0x07, 0xeb, 0xaa, 0xf4, 0x45, 0x98, 0x99, 0x96, 0x49, 0x17, 0xa2, 0x13, 0x1b, 0x47, 0x51, + 0x1e, 0xc1, 0x7c, 0xac, 0xd7, 0x0c, 0xb0, 0x22, 0xb0, 0x56, 0x8d, 0x48, 0xc4, 0x50, 0x85, 0x7c, + 0x02, 0x55, 0x48, 0xc5, 0x69, 0x0a, 0x6f, 0x15, 0xa7, 0x99, 0x7e, 0x2b, 0x38, 0xcd, 0xcc, 0x64, + 0x38, 0xcd, 0x15, 0x06, 0xd6, 0x4a, 0x69, 0xb6, 0x25, 0xe6, 0xa1, 0x56, 0xf1, 0x79, 0x2c, 0x09, + 0xea, 0xc6, 0xf0, 0x9c, 0xb9, 0x49, 0xf0, 0x9c, 0x62, 0x26, 0x9e, 0x43, 0xa3, 0xc6, 0xb6, 0x75, + 0xa7, 0x4f, 0x1c, 0x09, 0xd8, 0xd4, 0x4a, 0xcc, 0x84, 0x45, 0x49, 0x17, 0x60, 0x4d, 0x26, 0xb4, + 0x03, 0x59, 0xd0, 0x0e, 0xba, 0x08, 0xf3, 0x16, 0xd1, 0x2c, 0xfc, 0x5a, 0xa3, 0x73, 0xe9, 0xd6, + 0xca, 0x7c, 0x62, 0x2d, 0xd2, 0xc2, 0xaf, 0x77, 0x29, 0x45, 0xf9, 0xbb, 0x1c, 0x2c, 0x47, 0x83, + 0x4b, 0x6c, 0xd4, 0x9f, 0x42, 0xc9, 0x91, 0xf9, 0x43, 0x04, 0xd4, 0xf5, 0x8c, 0xe2, 0x34, 0x99, + 0x70, 0xd4, 0x40, 0x16, 0xfd, 0x28, 0x13, 0x1f, 0xba, 0x35, 0x4a, 0xdf, 0x28, 0x84, 0x48, 0xe9, + 0xc0, 0x99, 0x4f, 0x4d, 0xcb, 0x20, 0xaf, 0xdd, 0xb8, 0xf9, 0xcd, 0xa4, 0xf9, 0xef, 0x25, 0xbb, + 0x8b, 0x0b, 0xa7, 0x0d, 0x40, 0xf9, 0xab, 0x1c, 0x9c, 0xcd, 0x64, 0x8c, 0xa5, 0xc7, 0x5c, 0x3c, + 0x3d, 0x8a, 0xd4, 0xda, 0x21, 0x03, 0xcb, 0x0b, 0xa5, 0xd6, 0x4d, 0x86, 0x62, 0xf3, 0x1c, 0xa6, + 0xf5, 0xf5, 0x37, 0x66, 0x7f, 0xd0, 0x17, 0xb9, 0x95, 0xaa, 0x7b, 0xc1, 0x29, 0x27, 0x48, 0xae, + 0x4a, 0x03, 0x96, 0x7c, 0x2b, 0x87, 0xe2, 0x54, 0x21, 0xdc, 0x29, 0x1f, 0xc5, 0x9d, 0x2c, 0x98, + 0xdd, 0xc2, 0xaf, 0xcc, 0x0e, 0x7e, 0x2b, 0x30, 0xfb, 0x45, 0x28, 0xdb, 0xd8, 0xe9, 0x9b, 0xae, + 0xeb, 0x27, 0x8d, 0x92, 0x1a, 0x26, 0x29, 0xff, 0x39, 0x0b, 0x8b, 0xf1, 0xf9, 0x7b, 0x98, 0x80, + 0xb9, 0x2e, 0xa5, 0xa4, 0xb3, 0xf8, 0x40, 0x43, 0x95, 0xd1, 0x6d, 0xb9, 0xb0, 0xe6, 0xb3, 0x36, + 0xa5, 0xfe, 0x22, 0x2c, 0x56, 0x5d, 0xea, 0x91, 0x0e, 0xe9, 0xf7, 0x75, 0xcb, 0x90, 0xa7, 0x23, + 0xa2, 0x49, 0xfd, 0xa7, 0x3b, 0x5d, 0xea, 0x76, 0x4a, 0x66, 0xcf, 0x74, 0xf2, 0xe8, 0x0e, 0xce, + 0xb4, 0x18, 0x5c, 0xc6, 0x12, 0x4f, 0x49, 0x05, 0x41, 0xda, 0x32, 0x1d, 0xb4, 0x0e, 0xd3, 0xd8, + 0x7a, 0x25, 0x4b, 0x9f, 0x94, 0xe3, 0x13, 0xb9, 0xc4, 0xab, 0x8c, 0x0f, 0xdd, 0x82, 0xd9, 0x3e, + 0x0d, 0x0b, 0xb9, 0x97, 0x5b, 0xc9, 0x38, 0x45, 0x50, 0x05, 0x1b, 0xda, 0x80, 0x39, 0x83, 0xcd, + 0x93, 0xdc, 0xb0, 0xd5, 0x52, 0x40, 0x38, 0xc6, 0xa0, 0x4a, 0x46, 0xb4, 0xed, 0x17, 0x76, 0xa5, + 0xac, 0x8a, 0x2c, 0x36, 0x15, 0xa9, 0xd5, 0xdd, 0x5e, 0xb4, 0xba, 0x03, 0xa6, 0x6b, 0x63, 0xb4, + 0xae, 0xe1, 0xc8, 0xd9, 0x59, 0x28, 0xf6, 0x48, 0x97, 0x87, 0x51, 0x99, 0x1f, 0xbc, 0xf5, 0x48, + 0x97, 0x45, 0xd1, 0x32, 0x2d, 0x74, 0x0d, 0xd3, 0xaa, 0xcd, 0xb3, 0x14, 0xc6, 0x1b, 0xf4, 0xe3, + 0x63, 0x0f, 0x1a, 0xb1, 0x3a, 0xb8, 0x56, 0x61, 0xaf, 0x4a, 0x8c, 0xb2, 0x63, 0x75, 0x58, 0xe9, + 0xe4, 0x79, 0xc7, 0xb5, 0x05, 0x46, 0xa7, 0x8f, 0x74, 0x0f, 0xc3, 0xb7, 0xdb, 0x8b, 0x59, 0x7b, + 0x98, 0xb4, 0x64, 0x28, 0x77, 0xdb, 0x8f, 0x61, 0xee, 0x35, 0x4f, 0x04, 0xb5, 0x2a, 0x93, 0xbf, + 0x36, 0x3a, 0xa5, 0x08, 0x0d, 0x52, 0xf0, 0xdb, 0x2c, 0x63, 0x7f, 0x99, 0x83, 0x33, 0x9b, 0xac, + 0xc4, 0x0f, 0xe5, 0xb1, 0x49, 0x50, 0xa9, 0xbb, 0x3e, 0x0e, 0x98, 0x09, 0x21, 0xc5, 0xc7, 0x2d, + 0x04, 0x50, 0x13, 0x16, 0xa4, 0x72, 0xa1, 0xa2, 0x30, 0x36, 0x94, 0x58, 0x71, 0xc3, 0x4d, 0xe5, + 0x63, 0x58, 0x49, 0x8c, 0x42, 0x94, 0xe3, 0x6b, 0x30, 0x1f, 0xe4, 0x2b, 0x7f, 0x10, 0x65, 0x9f, + 0xd6, 0x34, 0x94, 0x7b, 0x70, 0xba, 0xed, 0xe9, 0x8e, 0x97, 0x70, 0xc1, 0x18, 0xb2, 0x0c, 0x4d, + 0x8c, 0xca, 0x0a, 0xc0, 0xaf, 0x0d, 0xcb, 0x6d, 0x8f, 0xd8, 0x27, 0x50, 0x4a, 0xb3, 0x0e, 0x1d, + 0x3f, 0x19, 0xc8, 0xf5, 0x41, 0x36, 0x95, 0x15, 0x8e, 0x7d, 0x26, 0x7b, 0xbb, 0x0f, 0x67, 0x38, + 0xf4, 0x78, 0x92, 0x41, 0x9c, 0x95, 0xc0, 0x67, 0x52, 0xef, 0x0b, 0x38, 0x15, 0xac, 0xbd, 0x01, + 0xac, 0x70, 0x27, 0x0a, 0x2b, 0x5c, 0x1c, 0x32, 0xeb, 0x11, 0x54, 0xe1, 0x2f, 0xf2, 0xa1, 0xbc, + 0x9e, 0x01, 0x2a, 0xdc, 0x8f, 0x82, 0x0a, 0x97, 0x47, 0xe9, 0x8e, 0x60, 0x0a, 0xc9, 0xa8, 0x2d, + 0xa4, 0x44, 0xed, 0x17, 0x09, 0xe4, 0x61, 0x3a, 0x0b, 0xba, 0x89, 0x59, 0xfb, 0x8d, 0x00, 0x0f, + 0x2a, 0x07, 0x1e, 0xfc, 0xae, 0x7d, 0xa4, 0xf8, 0x6e, 0x0c, 0x78, 0x58, 0x1b, 0x69, 0xaf, 0x8f, + 0x3b, 0xfc, 0xcd, 0x34, 0x94, 0xfc, 0x77, 0x09, 0x9f, 0x27, 0xdd, 0x96, 0x4f, 0x71, 0x5b, 0x78, + 0x05, 0x2e, 0x7c, 0xad, 0x15, 0x78, 0x7a, 0xec, 0x15, 0xf8, 0x1c, 0x94, 0xd8, 0x83, 0xe6, 0xe0, + 0x43, 0xb1, 0xa2, 0x16, 0x19, 0x41, 0xc5, 0x87, 0x41, 0x18, 0xce, 0x4e, 0x14, 0x86, 0x31, 0xa8, + 0x63, 0x2e, 0x0e, 0x75, 0x3c, 0xf4, 0x57, 0x44, 0xbe, 0x88, 0x5e, 0x1d, 0xa2, 0x37, 0x75, 0x2d, + 0x6c, 0x45, 0xd7, 0x42, 0xbe, 0xae, 0xbe, 0x3f, 0x4c, 0xcb, 0x77, 0x16, 0xe8, 0xd8, 0xe7, 0x40, + 0x47, 0x38, 0x16, 0x45, 0x66, 0xbd, 0x0f, 0xe0, 0x27, 0x11, 0x89, 0x76, 0x9c, 0x1b, 0x32, 0x46, + 0x35, 0xc4, 0x4e, 0xd5, 0x46, 0xa6, 0x26, 0x38, 0x0d, 0x19, 0x2f, 0x3f, 0x66, 0x1c, 0x85, 0xfc, + 0xef, 0x4c, 0x28, 0xbf, 0x64, 0x1c, 0x1f, 0x3c, 0x4c, 0x40, 0x6c, 0x13, 0x46, 0xf1, 0x9d, 0x28, + 0xc2, 0x76, 0xc2, 0xa8, 0x4b, 0x00, 0x6c, 0xac, 0x72, 0xd1, 0x1d, 0xf1, 0x9a, 0x03, 0x20, 0x25, + 0x41, 0x69, 0xb0, 0x9d, 0xc1, 0xa1, 0x69, 0x99, 0xee, 0x11, 0x7f, 0x3f, 0xcb, 0x77, 0x06, 0x92, + 0xd4, 0x60, 0x17, 0x68, 0xf0, 0x1b, 0xd3, 0xd3, 0x3a, 0xc4, 0xc0, 0x2c, 0xa6, 0x67, 0xd4, 0x22, + 0x25, 0x6c, 0x12, 0x03, 0x07, 0x5f, 0x5e, 0xf1, 0x64, 0x5f, 0x5e, 0x29, 0xf6, 0xe5, 0x9d, 0x81, + 0x59, 0x07, 0xeb, 0x2e, 0xb1, 0xc4, 0x56, 0x53, 0xb4, 0xe8, 0xd4, 0xf4, 0xb1, 0xeb, 0xd2, 0x9e, + 0x44, 0xb9, 0x26, 0x9a, 0xa1, 0x32, 0x73, 0x7e, 0x64, 0x99, 0x39, 0xe4, 0x58, 0x22, 0x56, 0x66, + 0x56, 0x46, 0x96, 0x99, 0xe3, 0x9c, 0x4a, 0x84, 0x0a, 0xed, 0x85, 0xf1, 0x0a, 0xed, 0x70, 0x5d, + 0xba, 0x18, 0xa9, 0x4b, 0xbf, 0xcd, 0x8f, 0xf5, 0xd7, 0x39, 0x58, 0x49, 0x7c, 0x56, 0xe2, 0x73, + 0xbd, 0x1b, 0x3b, 0xe0, 0x58, 0x1b, 0xe9, 0x33, 0xff, 0x7c, 0xe3, 0x69, 0xe4, 0x7c, 0xe3, 0xc3, + 0xd1, 0x82, 0x6f, 0xfd, 0x78, 0xe3, 0x8f, 0x72, 0xf0, 0xce, 0xbe, 0x6d, 0xc4, 0x2a, 0x3c, 0xb1, + 0x31, 0x1f, 0x3f, 0x71, 0x3c, 0x94, 0xb5, 0x7e, 0x7e, 0x52, 0xf4, 0x82, 0xcb, 0x29, 0x0a, 0x5c, + 0xcc, 0x36, 0x43, 0x94, 0x4c, 0x3f, 0x81, 0xc5, 0xed, 0x37, 0xb8, 0xd3, 0x3e, 0xb6, 0x3a, 0x13, + 0x98, 0x56, 0x85, 0x42, 0xa7, 0x6f, 0x08, 0xc4, 0x8f, 0x3e, 0x86, 0xab, 0xc0, 0x42, 0xb4, 0x0a, + 0xd4, 0xa0, 0x1a, 0xf4, 0x20, 0xa6, 0xf7, 0x0c, 0x9d, 0x5e, 0x83, 0x32, 0x53, 0xe5, 0xf3, 0xaa, + 0x68, 0x09, 0x3a, 0x76, 0x1c, 0x36, 0x66, 0x4e, 0xc7, 0x8e, 0x13, 0xcd, 0x16, 0x85, 0x68, 0xb6, + 0x50, 0xfe, 0x2c, 0x07, 0x65, 0xda, 0xc3, 0xd7, 0xb2, 0x5f, 0x6c, 0xb5, 0x0a, 0xc1, 0x56, 0xcb, + 0xdf, 0xb1, 0x4d, 0x87, 0x77, 0x6c, 0x81, 0xe5, 0x33, 0x8c, 0x9c, 0xb4, 0x7c, 0xd6, 0xa7, 0x63, + 0xc7, 0x51, 0x2e, 0xc2, 0x3c, 0xb7, 0x4d, 0x8c, 0xbc, 0x0a, 0x85, 0x81, 0xd3, 0x93, 0x71, 0x34, + 0x70, 0x7a, 0xca, 0x1f, 0xe7, 0xa0, 0xd2, 0xf0, 0x3c, 0xbd, 0x73, 0x34, 0xc1, 0x00, 0x7c, 0xe3, + 0xf2, 0x61, 0xe3, 0x92, 0x83, 0x08, 0xcc, 0x9d, 0xce, 0x30, 0x77, 0x26, 0x62, 0xae, 0x02, 0x0b, + 0xd2, 0x96, 0x4c, 0x83, 0x5b, 0x80, 0x76, 0x89, 0xe3, 0x3d, 0x21, 0xce, 0x6b, 0xdd, 0x31, 0x26, + 0xdb, 0x81, 0x21, 0x98, 0x16, 0x97, 0x2a, 0x0b, 0xd7, 0x66, 0x54, 0xf6, 0xac, 0x5c, 0x85, 0x53, + 0x11, 0x7d, 0x99, 0x1d, 0x3f, 0x82, 0x32, 0xcb, 0xfb, 0xa2, 0x14, 0xbf, 0x1d, 0x3e, 0x7a, 0x18, + 0x6b, 0x95, 0x50, 0x7e, 0x17, 0x96, 0x68, 0x7d, 0xc0, 0xe8, 0xfe, 0xa7, 0xf8, 0xfd, 0x58, 0x9d, + 0x7a, 0x21, 0x43, 0x51, 0xac, 0x46, 0xfd, 0xdb, 0x1c, 0xcc, 0x30, 0x7a, 0x62, 0xcd, 0x3e, 0x07, + 0x25, 0x07, 0xdb, 0x44, 0xf3, 0xf4, 0xae, 0x7f, 0x85, 0x95, 0x12, 0xf6, 0xf4, 0xae, 0xcb, 0x6e, + 0xe0, 0xd2, 0x97, 0x86, 0xd9, 0xc5, 0xae, 0x27, 0xef, 0xb1, 0x96, 0x29, 0x6d, 0x8b, 0x93, 0xa8, + 0x93, 0x5c, 0xf3, 0xf7, 0x79, 0xdd, 0x39, 0xad, 0xb2, 0x67, 0xb4, 0xce, 0x6f, 0x65, 0x8d, 0x03, + 0x0f, 0xb3, 0x3b, 0x5b, 0x75, 0x28, 0xc6, 0x10, 0x61, 0xbf, 0xad, 0x6c, 0x03, 0x0a, 0x7b, 0x41, + 0xf8, 0xfb, 0x16, 0xcc, 0x32, 0x27, 0xc9, 0xea, 0x68, 0x25, 0xc3, 0x0d, 0xaa, 0x60, 0x53, 0x74, + 0x40, 0xdc, 0xc1, 0x91, 0x8a, 0x68, 0xf2, 0x59, 0x19, 0x52, 0x21, 0xfd, 0x43, 0x0e, 0x4e, 0x45, + 0xfa, 0x10, 0xb6, 0xde, 0x8c, 0x76, 0x92, 0x69, 0xaa, 0xe8, 0x60, 0x33, 0xb2, 0x24, 0xdc, 0xca, + 0x32, 0xe9, 0xb7, 0xb4, 0x1c, 0xfc, 0x63, 0x0e, 0xa0, 0x31, 0xf0, 0x8e, 0x04, 0x32, 0x18, 0x9e, + 0x99, 0x5c, 0x74, 0x66, 0xe8, 0x3b, 0x5b, 0x77, 0xdd, 0xd7, 0xc4, 0x91, 0x7b, 0x1a, 0xbf, 0xcd, + 0x30, 0xbc, 0x81, 0x77, 0x24, 0x8f, 0x75, 0xe8, 0x33, 0xba, 0x0c, 0x0b, 0xfc, 0xda, 0xb4, 0xa6, + 0x1b, 0x86, 0x83, 0x5d, 0x57, 0x9c, 0xef, 0x54, 0x38, 0xb5, 0xc1, 0x89, 0x94, 0xcd, 0x34, 0xb0, + 0xe5, 0x99, 0xde, 0xb1, 0xe6, 0x91, 0x97, 0xd8, 0x12, 0x7b, 0x93, 0x8a, 0xa4, 0xee, 0x51, 0x22, + 0x65, 0x73, 0x70, 0xd7, 0x74, 0x3d, 0x47, 0xb2, 0xc9, 0xb3, 0x04, 0x41, 0x65, 0x6c, 0x74, 0x52, + 0xaa, 0xbb, 0x83, 0x5e, 0x8f, 0xbb, 0xf8, 0xe4, 0xd3, 0xfe, 0x81, 0x18, 0x50, 0x3e, 0x2b, 0xa6, + 0x03, 0xa7, 0x89, 0xe1, 0xbe, 0x45, 0x10, 0xe6, 0x03, 0x58, 0x0a, 0x8d, 0x41, 0x84, 0x55, 0xa4, + 0x88, 0xcc, 0x45, 0x8b, 0x48, 0xe5, 0x29, 0x20, 0x8e, 0x3b, 0x7c, 0xcd, 0x71, 0x2b, 0xa7, 0xe1, + 0x54, 0x44, 0x91, 0x58, 0x89, 0x6f, 0x40, 0x45, 0xdc, 0xb1, 0x11, 0x81, 0x72, 0x16, 0x8a, 0x34, + 0xa3, 0x76, 0x4c, 0x43, 0x9e, 0xf9, 0xcd, 0xd9, 0xc4, 0xd8, 0x34, 0x0d, 0x47, 0xf9, 0x14, 0x2a, + 0x2a, 0xef, 0x47, 0xf0, 0x3e, 0x81, 0x05, 0x71, 0x23, 0x47, 0x8b, 0xdc, 0x74, 0x4b, 0xbb, 0x09, + 0x1d, 0xee, 0x44, 0xad, 0x58, 0xe1, 0xa6, 0x62, 0x40, 0x9d, 0x97, 0x0c, 0x11, 0xf5, 0x72, 0xb0, + 0x4f, 0x40, 0xfe, 0x06, 0x60, 0x64, 0x2f, 0x51, 0xf9, 0x8a, 0x13, 0x6e, 0x2a, 0x17, 0xe0, 0x5c, + 0x6a, 0x2f, 0xc2, 0x13, 0x36, 0x54, 0x83, 0x17, 0x86, 0x29, 0x0f, 0x3f, 0xd9, 0xa1, 0x66, 0x2e, + 0x74, 0xa8, 0x79, 0xc6, 0x2f, 0x12, 0xf3, 0x72, 0x11, 0x63, 0x15, 0x60, 0x50, 0xee, 0x17, 0xb2, + 0xca, 0xfd, 0xe9, 0x48, 0xb9, 0xaf, 0xb4, 0x7d, 0x7f, 0x8a, 0x6d, 0xd8, 0x63, 0xb6, 0x5d, 0xe4, + 0x7d, 0xcb, 0x84, 0xa8, 0x0c, 0x1b, 0x25, 0x67, 0x55, 0x43, 0x52, 0xca, 0x75, 0xa8, 0x44, 0x53, + 0x63, 0x28, 0xcf, 0xe5, 0x12, 0x79, 0x6e, 0x21, 0x96, 0xe2, 0x3e, 0x8a, 0x55, 0xc0, 0xd9, 0x3e, + 0x8e, 0xd5, 0xbf, 0x0f, 0x22, 0xc9, 0xee, 0x46, 0xca, 0x79, 0xe4, 0x6f, 0x29, 0xcf, 0x2d, 0x8b, + 0xf5, 0xe0, 0x89, 0x4b, 0xe5, 0xc5, 0xa0, 0x95, 0x4b, 0x50, 0xde, 0xcf, 0xba, 0x66, 0x3f, 0x2d, + 0xcf, 0xfe, 0xef, 0xc0, 0xf2, 0x13, 0xb3, 0x87, 0xdd, 0x63, 0xd7, 0xc3, 0xfd, 0x26, 0x4b, 0x4a, + 0x87, 0x26, 0x76, 0xd0, 0x2a, 0x00, 0xdb, 0xc2, 0xd8, 0xc4, 0xf4, 0x6f, 0x6f, 0x87, 0x28, 0xca, + 0x7f, 0xe5, 0x60, 0x31, 0x10, 0xdc, 0x67, 0x5b, 0xb7, 0xf3, 0x50, 0xa2, 0xe3, 0x75, 0x3d, 0xbd, + 0x6f, 0xcb, 0xf3, 0x2c, 0x9f, 0x80, 0xee, 0xc3, 0xcc, 0xa1, 0x2b, 0x21, 0xa3, 0x54, 0x00, 0x3d, + 0xcd, 0x10, 0x75, 0xfa, 0xd0, 0x6d, 0x1a, 0xe8, 0x63, 0x80, 0x81, 0x8b, 0x0d, 0x71, 0x86, 0x55, + 0xc8, 0xaa, 0x16, 0xf6, 0xc3, 0x67, 0xb5, 0x54, 0x80, 0x5f, 0x1b, 0x78, 0x00, 0x65, 0xd3, 0x22, + 0x06, 0x66, 0x67, 0xb5, 0x86, 0x40, 0x95, 0x46, 0x88, 0x03, 0x97, 0xd8, 0x77, 0xb1, 0xa1, 0x60, + 0xb1, 0x16, 0x4a, 0xff, 0x8a, 0x40, 0x69, 0xc1, 0x12, 0x4f, 0x5a, 0x87, 0xbe, 0xe1, 0x32, 0x62, + 0xd7, 0x86, 0x8d, 0x8e, 0x79, 0x4b, 0xad, 0x9a, 0xa2, 0xb4, 0x91, 0xa2, 0xca, 0x3d, 0x38, 0x1d, + 0xd9, 0x21, 0x4d, 0xb0, 0x65, 0x51, 0x76, 0x63, 0x40, 0x49, 0x10, 0xce, 0x02, 0x86, 0x90, 0xd1, + 0x3c, 0x0a, 0x86, 0x70, 0x39, 0x0c, 0xe1, 0x2a, 0x5f, 0xc0, 0xd9, 0x08, 0xa2, 0x13, 0xb1, 0xe8, + 0x41, 0xac, 0x72, 0xbb, 0x32, 0x4a, 0x6b, 0xac, 0x84, 0xfb, 0x9f, 0x1c, 0x2c, 0xa7, 0x31, 0x9c, + 0x10, 0x71, 0xfc, 0x49, 0xc6, 0x15, 0xb1, 0xbb, 0xe3, 0x99, 0xf5, 0x8d, 0xa0, 0xb5, 0x7b, 0x50, + 0x4f, 0xf3, 0x67, 0x72, 0x96, 0x0a, 0x93, 0xcc, 0xd2, 0xcf, 0x0b, 0x21, 0xe4, 0xbd, 0xe1, 0x79, + 0x8e, 0x79, 0x30, 0xa0, 0x21, 0xff, 0xd6, 0xd1, 0xac, 0xa6, 0x8f, 0xcb, 0x70, 0xd7, 0xde, 0x1e, + 0x22, 0x1e, 0xd8, 0x91, 0x8a, 0xcd, 0x7c, 0x16, 0xc5, 0x66, 0x38, 0xa6, 0x7e, 0x67, 0x3c, 0x7d, + 0xdf, 0x59, 0x00, 0xf4, 0xe7, 0x79, 0x58, 0x88, 0x4e, 0x11, 0xda, 0x06, 0xd0, 0x7d, 0xcb, 0xc5, + 0x87, 0x72, 0x79, 0xac, 0x61, 0xaa, 0x21, 0x41, 0xf4, 0x3e, 0x14, 0x3a, 0xf6, 0x40, 0xcc, 0x5a, + 0xca, 0x61, 0xf0, 0xa6, 0x3d, 0xe0, 0x19, 0x85, 0xb2, 0xd1, 0x3d, 0x15, 0x3f, 0xdb, 0xcf, 0xce, + 0x92, 0x2f, 0xd8, 0x7b, 0x2e, 0x23, 0x98, 0xd1, 0x33, 0x58, 0x78, 0xed, 0x98, 0x9e, 0x7e, 0xd0, + 0xc3, 0x5a, 0x4f, 0x3f, 0xc6, 0x8e, 0xc8, 0x92, 0x63, 0x24, 0xb2, 0x8a, 0x14, 0x7c, 0x4e, 0xe5, + 0x94, 0x3f, 0x80, 0xa2, 0xb4, 0x68, 0xc4, 0x8a, 0xb0, 0x07, 0x2b, 0x03, 0xca, 0xa6, 0xb1, 0xeb, + 0x5c, 0x96, 0x6e, 0x11, 0xcd, 0xc5, 0x74, 0x19, 0x97, 0x17, 0xcd, 0x47, 0xa4, 0xe8, 0x65, 0x26, + 0xbd, 0x49, 0x1c, 0xdc, 0xd2, 0x2d, 0xd2, 0xe6, 0xa2, 0xca, 0x2b, 0x28, 0x87, 0x06, 0x38, 0xc2, + 0x84, 0x26, 0x2c, 0xc9, 0xa3, 0x78, 0x17, 0x7b, 0x62, 0x79, 0x19, 0xab, 0xf3, 0x45, 0x21, 0xd7, + 0xc6, 0x1e, 0xbf, 0x3e, 0xf1, 0x00, 0xce, 0xaa, 0x98, 0xd8, 0xd8, 0xf2, 0xe7, 0xf3, 0x39, 0xe9, + 0x4e, 0x90, 0xc1, 0xcf, 0x43, 0x3d, 0x4d, 0x9e, 0xe7, 0x87, 0x1b, 0xe7, 0xa1, 0x28, 0x7f, 0x33, + 0x89, 0xe6, 0xa0, 0xb0, 0xb7, 0xb9, 0x5b, 0x9d, 0xa2, 0x0f, 0xfb, 0x5b, 0xbb, 0xd5, 0xdc, 0x8d, + 0x3e, 0x54, 0xe3, 0x3f, 0x13, 0x44, 0x2b, 0x70, 0x6a, 0x57, 0xdd, 0xd9, 0x6d, 0x3c, 0x6d, 0xec, + 0x35, 0x77, 0x5a, 0xda, 0xae, 0xda, 0xfc, 0xa4, 0xb1, 0xb7, 0x5d, 0x9d, 0x42, 0x6b, 0x70, 0x21, + 0xfc, 0xe2, 0xd9, 0x4e, 0x7b, 0x4f, 0xdb, 0xdb, 0xd1, 0x36, 0x77, 0x5a, 0x7b, 0x8d, 0x66, 0x6b, + 0x5b, 0xad, 0xe6, 0xd0, 0x05, 0x38, 0x1b, 0x66, 0x79, 0xdc, 0xdc, 0x6a, 0xaa, 0xdb, 0x9b, 0xf4, + 0xb9, 0xf1, 0xbc, 0x9a, 0xbf, 0x71, 0x1b, 0x2a, 0x91, 0x5f, 0xf5, 0x51, 0x43, 0x76, 0x77, 0xb6, + 0xaa, 0x53, 0xa8, 0x02, 0xa5, 0xb0, 0x9e, 0x22, 0x4c, 0xb7, 0x76, 0xb6, 0xb6, 0xab, 0xf9, 0x1b, + 0xf7, 0x60, 0x31, 0x76, 0x9f, 0x14, 0x2d, 0x41, 0xa5, 0xdd, 0x68, 0x6d, 0x3d, 0xde, 0xf9, 0x4c, + 0x53, 0xb7, 0x1b, 0x5b, 0x9f, 0x57, 0xa7, 0xd0, 0x32, 0x54, 0x25, 0xa9, 0xb5, 0xb3, 0xc7, 0xa9, + 0xb9, 0x1b, 0x2f, 0x63, 0x5f, 0x16, 0x46, 0xa7, 0x61, 0xc9, 0xef, 0x46, 0xdb, 0x54, 0xb7, 0x1b, + 0x7b, 0xdb, 0xb4, 0xf7, 0x08, 0x59, 0xdd, 0x6f, 0xb5, 0x9a, 0xad, 0xa7, 0xd5, 0x1c, 0xd5, 0x1a, + 0x90, 0xb7, 0x3f, 0x6b, 0x52, 0xe6, 0x7c, 0x94, 0x79, 0xbf, 0xf5, 0xc3, 0xd6, 0xce, 0xa7, 0xad, + 0x6a, 0x61, 0xe3, 0xef, 0x97, 0x60, 0x41, 0x96, 0x77, 0xd8, 0x61, 0x77, 0x59, 0x76, 0x61, 0x4e, + 0xfe, 0xf2, 0x36, 0x25, 0x2f, 0x47, 0x7f, 0x2f, 0x5c, 0x5f, 0x1b, 0xc2, 0x21, 0xaa, 0xec, 0x29, + 0x74, 0xc0, 0xaa, 0xde, 0xd0, 0xfd, 0xde, 0x2b, 0xa9, 0x35, 0x66, 0xe2, 0x4a, 0x71, 0xfd, 0xea, + 0x48, 0x3e, 0xbf, 0x0f, 0x4c, 0x0b, 0xdb, 0xf0, 0x0f, 0x58, 0xd0, 0xd5, 0xb4, 0x8a, 0x34, 0xe5, + 0x17, 0x32, 0xf5, 0x6b, 0xa3, 0x19, 0xfd, 0x6e, 0x5e, 0x42, 0x35, 0xfe, 0x63, 0x16, 0x94, 0x02, + 0x98, 0x66, 0xfc, 0x62, 0xa6, 0x7e, 0x63, 0x1c, 0xd6, 0x70, 0x67, 0x89, 0x9f, 0x7d, 0x5c, 0x1f, + 0xe7, 0x1e, 0x7d, 0x66, 0x67, 0x59, 0x57, 0xee, 0xb9, 0x03, 0xa3, 0x77, 0x77, 0x51, 0xea, 0x6f, + 0x2c, 0x52, 0x6e, 0x7e, 0xa7, 0x39, 0x30, 0xfd, 0x1a, 0xb0, 0x32, 0x85, 0x8e, 0x60, 0x31, 0x76, + 0x29, 0x01, 0xa5, 0x88, 0xa7, 0xdf, 0xbe, 0xa8, 0x5f, 0x1f, 0x83, 0x33, 0x1a, 0x11, 0xe1, 0x4b, + 0x08, 0xe9, 0x11, 0x91, 0x72, 0xc5, 0x21, 0x3d, 0x22, 0x52, 0xef, 0x33, 0xb0, 0xe0, 0x8e, 0x5c, + 0x3e, 0x48, 0x0b, 0xee, 0xb4, 0x2b, 0x0f, 0xf5, 0xab, 0x23, 0xf9, 0xc2, 0x4e, 0x8b, 0x5d, 0x45, + 0x48, 0x73, 0x5a, 0xfa, 0x55, 0x87, 0xfa, 0xf5, 0x31, 0x38, 0xe3, 0x51, 0x10, 0x1c, 0x6c, 0x66, + 0x45, 0x41, 0xe2, 0x18, 0x3e, 0x2b, 0x0a, 0x92, 0x67, 0xa4, 0x22, 0x0a, 0x62, 0x07, 0x92, 0xd7, + 0xc6, 0x38, 0x40, 0xc9, 0x8e, 0x82, 0xf4, 0xa3, 0x16, 0x65, 0x0a, 0xfd, 0x61, 0x0e, 0x6a, 0x59, + 0x87, 0x13, 0x28, 0xa5, 0xaa, 0x1b, 0x71, 0x9e, 0x52, 0xdf, 0x98, 0x44, 0xc4, 0xb7, 0xe2, 0x4b, + 0x40, 0xc9, 0xd5, 0x0e, 0xbd, 0x97, 0x36, 0x33, 0x19, 0x6b, 0x6a, 0xfd, 0xfd, 0xf1, 0x98, 0xfd, + 0x2e, 0xdb, 0x50, 0x94, 0xc7, 0x21, 0x28, 0x25, 0x4b, 0xc7, 0x0e, 0x63, 0xea, 0xca, 0x30, 0x16, + 0x5f, 0xe9, 0x53, 0x98, 0xa6, 0x54, 0x74, 0x21, 0x9d, 0x5b, 0x2a, 0x5b, 0xcd, 0x7a, 0xed, 0x2b, + 0x7a, 0x01, 0xb3, 0x1c, 0xff, 0x47, 0x29, 0x78, 0x43, 0xe4, 0x94, 0xa2, 0x7e, 0x31, 0x9b, 0xc1, + 0x57, 0xf7, 0x63, 0xfe, 0x4f, 0x19, 0x04, 0xb4, 0x8f, 0xde, 0x4d, 0xff, 0x95, 0x6c, 0xf4, 0x24, + 0xa1, 0x7e, 0x79, 0x04, 0x57, 0xf8, 0xa3, 0x88, 0xd5, 0xba, 0x57, 0x47, 0x6e, 0x58, 0xb2, 0x3f, + 0x8a, 0xf4, 0x2d, 0x11, 0x0f, 0x92, 0xe4, 0x96, 0x29, 0x2d, 0x48, 0x32, 0x37, 0xaa, 0x69, 0x41, + 0x92, 0xbd, 0x0b, 0x53, 0xa6, 0x90, 0x07, 0xa7, 0x52, 0x00, 0x32, 0xf4, 0x7e, 0x56, 0x90, 0xa7, + 0xa1, 0x75, 0xf5, 0x9b, 0x63, 0x72, 0x87, 0x27, 0x5f, 0x7c, 0xf4, 0xef, 0x64, 0xa3, 0x46, 0x99, + 0x93, 0x1f, 0xff, 0xc4, 0x37, 0xfe, 0xad, 0x00, 0xf3, 0x1c, 0xfc, 0x14, 0x15, 0xcc, 0xe7, 0x00, + 0xc1, 0xb9, 0x03, 0xba, 0x94, 0xee, 0x93, 0xc8, 0xd9, 0x4c, 0xfd, 0xdd, 0xe1, 0x4c, 0xe1, 0x40, + 0x0b, 0x61, 0xf8, 0x69, 0x81, 0x96, 0x3c, 0xaa, 0x48, 0x0b, 0xb4, 0x94, 0x83, 0x00, 0x65, 0x0a, + 0x7d, 0x02, 0x25, 0x1f, 0x2c, 0x46, 0x69, 0x60, 0x73, 0x0c, 0x0d, 0xaf, 0x5f, 0x1a, 0xca, 0x13, + 0xb6, 0x3a, 0x84, 0x04, 0xa7, 0x59, 0x9d, 0x44, 0x9c, 0xd3, 0xac, 0x4e, 0x83, 0x93, 0x03, 0x9f, + 0x70, 0xbc, 0x28, 0xd3, 0x27, 0x11, 0xb8, 0x2e, 0xd3, 0x27, 0x51, 0xd0, 0x49, 0x99, 0x7a, 0x7c, + 0xe5, 0x57, 0xbf, 0x59, 0xcd, 0xfd, 0xf3, 0x6f, 0x56, 0xa7, 0x7e, 0xf6, 0xd5, 0x6a, 0xee, 0x57, + 0x5f, 0xad, 0xe6, 0xfe, 0xe9, 0xab, 0xd5, 0xdc, 0xbf, 0x7f, 0xb5, 0x9a, 0xfb, 0xd3, 0xff, 0x58, + 0x9d, 0xfa, 0x51, 0x51, 0x4a, 0x1f, 0xcc, 0xb2, 0x7f, 0xad, 0xf2, 0xe1, 0xff, 0x05, 0x00, 0x00, + 0xff, 0xff, 0x36, 0xf8, 0x35, 0x67, 0x20, 0x47, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto index b34451e2e..257cfbc2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto @@ -1,7 +1,8 @@ // To regenerate api.pb.go run hack/update-generated-runtime.sh syntax = 'proto3'; -package runtime; +package runtime.v1alpha2; +option go_package = "v1alpha2"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -61,6 +62,14 @@ service RuntimeService { // ContainerStatus returns status of the container. If the container is not // present, returns an error. rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} + // UpdateContainerResources updates ContainerConfig of the container. + rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} + // ReopenContainerLog asks runtime to reopen the stdout/stderr log file + // for the container. This is often called after the log file has been + // rotated. If the container is not running, container runtime can choose + // to either create a new log file and return nil, or return an error. + // Once it returns error, new container log file MUST NOT be created. + rpc ReopenContainerLog(ReopenContainerLogRequest) returns (ReopenContainerLogResponse) {} // ExecSync runs a command in a container synchronously. rpc ExecSync(ExecSyncRequest) returns (ExecSyncResponse) {} @@ -148,6 +157,16 @@ message PortMapping { string host_ip = 4; } +enum MountPropagation { + // No mount propagation ("private" in Linux terminology). + PROPAGATION_PRIVATE = 0; + // Mounts get propagated from the host to the container ("rslave" in Linux). + PROPAGATION_HOST_TO_CONTAINER = 1; + // Mounts get propagated from the host to the container and from the + // container to the host ("rshared" in Linux). + PROPAGATION_BIDIRECTIONAL = 2; +} + // Mount specifies a host volume to mount into a container. message Mount { // Path of the mount within the container. @@ -158,16 +177,43 @@ message Mount { bool readonly = 3; // If set, the mount needs SELinux relabeling. bool selinux_relabel = 4; + // Requested propagation mode. + MountPropagation propagation = 5; +} + +// A NamespaceMode describes the intended namespace configuration for each +// of the namespaces (Network, PID, IPC) in NamespaceOption. Runtimes should +// map these modes as appropriate for the technology underlying the runtime. +enum NamespaceMode { + // A POD namespace is common to all containers in a pod. + // For example, a container with a PID namespace of POD expects to view + // all of the processes in all of the containers in the pod. + POD = 0; + // A CONTAINER namespace is restricted to a single container. + // For example, a container with a PID namespace of CONTAINER expects to + // view only the processes in that container. + CONTAINER = 1; + // A NODE namespace is the namespace of the Kubernetes node. + // For example, a container with a PID namespace of NODE expects to view + // all of the processes on the host running the kubelet. + NODE = 2; } // NamespaceOption provides options for Linux namespaces. message NamespaceOption { - // If set, use the host's network namespace. - bool host_network = 1; - // If set, use the host's PID namespace. - bool host_pid = 2; - // If set, use the host's IPC namespace. - bool host_ipc = 3; + // Network namespace for this container/sandbox. + // Note: There is currently no way to set CONTAINER scoped network in the Kubernetes API. + // Namespaces currently set by the kubelet: POD, NODE + NamespaceMode network = 1; + // PID namespace for this container/sandbox. + // Note: The CRI default is POD, but the v1.PodSpec default is CONTAINER. + // The kubelet's runtime manager will set this to CONTAINER explicitly for v1 pods. + // Namespaces currently set by the kubelet: POD, CONTAINER, NODE + NamespaceMode pid = 2; + // IPC namespace for this container/sandbox. + // Note: There is currently no way to set CONTAINER scoped IPC in the Kubernetes API. + // Namespaces currently set by the kubelet: POD, NODE + NamespaceMode ipc = 3; } // Int64Value is the wrapper of int64. @@ -200,6 +246,13 @@ message LinuxSandboxSecurityContext { // This allows a sandbox to take additional security precautions if no // privileged containers are expected to be run. bool privileged = 6; + // Seccomp profile for the sandbox, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/<full-path-to-profile>: the profile installed on the node. + // <full-path-to-profile> is the full path of the profile. + // Default: "", which is identical with unconfined. + string seccomp_profile_path = 7; } // LinuxPodSandboxConfig holds platform-specific configurations for Linux @@ -272,32 +325,12 @@ message PodSandboxConfig { // // In general, in order to preserve a well-defined interface between the // kubelet and the container runtime, annotations SHOULD NOT influence - // runtime behaviour. For legacy reasons, there are some annotations which - // currently explicitly break this rule, listed below; in future versions - // of the interface these will be promoted to typed features. + // runtime behaviour. // // Annotations can also be useful for runtime authors to experiment with // new features that are opaque to the Kubernetes APIs (both user-facing // and the CRI). Whenever possible, however, runtime authors SHOULD // consider proposing new typed fields for any new features instead. - // - // 1. Seccomp - // - // key: security.alpha.kubernetes.io/seccomp/pod - // description: the seccomp profile for the containers of an entire pod. - // value: see below. - // - // key: security.alpha.kubernetes.io/seccomp/container/<container name> - // description: the seccomp profile for the container (overrides pod). - // value: see below - // - // The value of seccomp is runtime agnostic: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/<profile-name>: the profile installed to the node's - // local seccomp profile root. Note that profile root is set in - // kubelet, and it is not passed in CRI yet, see https://issues.k8s.io/36997. - // map<string, string> annotations = 7; // Optional configurations specific to Linux hosts. LinuxPodSandboxConfig linux = 8; @@ -330,6 +363,8 @@ message RemovePodSandboxResponse {} message PodSandboxStatusRequest { // ID of the PodSandbox for which to retrieve status. string pod_sandbox_id = 1; + // Verbose indicates whether to return extra information about the pod sandbox. + bool verbose = 2; } // PodSandboxNetworkStatus is the status of the network for a PodSandbox. @@ -381,6 +416,11 @@ message PodSandboxStatus { message PodSandboxStatusResponse { // Status of the PodSandbox. PodSandboxStatus status = 1; + // Info is extra information of the PodSandbox. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. network namespace for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + map<string, string> info = 2; } // PodSandboxStateValue is the wrapper of PodSandboxState. @@ -459,6 +499,10 @@ message LinuxContainerResources { int64 memory_limit_in_bytes = 4; // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). int64 oom_score_adj = 5; + // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). + string cpuset_cpus = 6; + // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). + string cpuset_mems = 7; } // SELinuxOption are the labels to be applied to the container. @@ -518,10 +562,21 @@ message LinuxContainerSecurityContext { repeated int64 supplemental_groups = 8; // AppArmor profile for the container, candidate values are: // * runtime/default: equivalent to not specifying a profile. + // * unconfined: no profiles are loaded // * localhost/<profile_name>: profile loaded on the node // (localhost) by name. The possible profile names are detailed at // http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference string apparmor_profile = 9; + // Seccomp profile for the container, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/<full-path-to-profile>: the profile installed on the node. + // <full-path-to-profile> is the full path of the profile. + // Default: "", which is identical with unconfined. + string seccomp_profile_path = 10; + // no_new_privs defines if the flag for no_new_privs should be set on the + // container. + bool no_new_privs = 11; } // LinuxContainerConfig contains platform-specific configuration for @@ -533,6 +588,26 @@ message LinuxContainerConfig { LinuxContainerSecurityContext security_context = 2; } +// WindowsContainerConfig contains platform-specific configuration for +// Windows-based containers. +message WindowsContainerConfig { + // Resources specification for the container. + WindowsContainerResources resources = 1; +} + +// WindowsContainerResources specifies Windows specific configuration for +// resources. +message WindowsContainerResources { + // CPU shares (relative weight vs. other containers). Default: 0 (not specified). + int64 cpu_shares = 1; + // Number of CPUs available to the container. Default: 0 (not specified). + int64 cpu_count = 2; + // Specifies the portion of processor cycles that this container can use as a percentage times 100. + int64 cpu_maximum = 3; + // Memory limit in bytes. Default: 0 (not specified). + int64 memory_limit_in_bytes = 4; +} + // ContainerMetadata holds all necessary information for building the container // name. The container runtime is encouraged to expose the metadata in its user // interface for better user experience. E.g., runtime can construct a unique @@ -620,6 +695,8 @@ message ContainerConfig { // Configuration specific to Linux containers. LinuxContainerConfig linux = 15; + // Configuration specific to Windows containers. + WindowsContainerConfig windows = 16; } message CreateContainerRequest { @@ -731,6 +808,8 @@ message ListContainersResponse { message ContainerStatusRequest { // ID of the container for which to retrieve status. string container_id = 1; + // Verbose indicates whether to return extra information about the container. + bool verbose = 2; } // ContainerStatus represents the status of a container. @@ -775,8 +854,22 @@ message ContainerStatus { message ContainerStatusResponse { // Status of the container. ContainerStatus status = 1; + // Info is extra information of the Container. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. pid for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + map<string, string> info = 2; } +message UpdateContainerResourcesRequest { + // ID of the container to update. + string container_id = 1; + // Resource configuration specific to Linux containers. + LinuxContainerResources linux = 2; +} + +message UpdateContainerResourcesResponse {} + message ExecSyncRequest { // ID of the container. string container_id = 1; @@ -803,7 +896,17 @@ message ExecRequest { // Whether to exec the command in a TTY. bool tty = 3; // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. bool stdin = 4; + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdout = 5; + // Whether to stream stderr. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported + // in this case. The output of stdout and stderr will be combined to a + // single stream. + bool stderr = 6; } message ExecResponse { @@ -815,10 +918,20 @@ message AttachRequest { // ID of the container to which to attach. string container_id = 1; // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. bool stdin = 2; // Whether the process being attached is running in a TTY. // This must match the TTY setting in the ContainerConfig. bool tty = 3; + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdout = 4; + // Whether to stream stderr. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + // If `tty` is true, `stderr` MUST be false. Multiplexing is not supported + // in this case. The output of stdout and stderr will be combined to a + // single stream. + bool stderr = 5; } message AttachResponse { @@ -875,11 +988,18 @@ message ListImagesResponse { message ImageStatusRequest { // Spec of the image. ImageSpec image = 1; + // Verbose indicates whether to return extra information about the image. + bool verbose = 2; } message ImageStatusResponse { // Status of the image. Image image = 1; + // Info is extra information of the Image. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful + // for debug, e.g. image config for oci image based container runtime. + // It should only be returned non-empty when Verbose is true. + map<string, string> info = 2; } // AuthConfig contains authorization information for connecting to a registry. @@ -962,11 +1082,19 @@ message RuntimeStatus { repeated RuntimeCondition conditions = 1; } -message StatusRequest {} +message StatusRequest { + // Verbose indicates whether to return extra information about the runtime. + bool verbose = 1; +} message StatusResponse { // Status of the Runtime. RuntimeStatus status = 1; + // Info is extra information of the Runtime. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. plugins used by the container runtime. + // It should only be returned non-empty when Verbose is true. + map<string, string> info = 2; } message ImageFsInfoRequest {} @@ -977,20 +1105,20 @@ message UInt64Value { uint64 value = 1; } -// StorageIdentifier uniquely identify the storage.. -message StorageIdentifier{ - // UUID of the device. - string uuid = 1; +// FilesystemIdentifier uniquely identify the filesystem. +message FilesystemIdentifier{ + // Mountpoint of a filesystem. + string mountpoint = 1; } // FilesystemUsage provides the filesystem usage information. message FilesystemUsage { // Timestamp in nanoseconds at which the information were collected. Must be > 0. int64 timestamp = 1; - // The underlying storage of the filesystem. - StorageIdentifier storage_id = 2; + // The unique identifier of the filesystem. + FilesystemIdentifier fs_id = 2; // UsedBytes represents the bytes used for images on the filesystem. - // This may differ from the total bytes used on the filesystem and may not + // This may differ from the total bytes used on the filesystem and may not // equal CapacityBytes - AvailableBytes. UInt64Value used_bytes = 3; // InodesUsed represents the inodes used by the images. @@ -1079,3 +1207,11 @@ message MemoryUsage { // The amount of working set memory in bytes. UInt64Value working_set_bytes = 2; } + +message ReopenContainerLogRequest { + // ID of the container for which to reopen the log. + string container_id = 1; +} + +message ReopenContainerLogResponse{ +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/constants.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/constants.go new file mode 100644 index 000000000..0e141b7d7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/constants.go @@ -0,0 +1,55 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha2 + +// This file contains all constants defined in CRI. + +// Required runtime condition type. +const ( + // RuntimeReady means the runtime is up and ready to accept basic containers. + RuntimeReady = "RuntimeReady" + // NetworkReady means the runtime network is up and ready to accept containers which require network. + NetworkReady = "NetworkReady" +) + +// LogStreamType is the type of the stream in CRI container log. +type LogStreamType string + +const ( + // Stdout is the stream type for stdout. + Stdout LogStreamType = "stdout" + // Stderr is the stream type for stderr. + Stderr LogStreamType = "stderr" +) + +// LogTag is the tag of a log line in CRI container log. +// Currently defined log tags: +// * First tag: Partial/Full - P/F. +// The field in the container log format can be extended to include multiple +// tags by using a delimiter, but changes should be rare. If it becomes clear +// that better extensibility is desired, a more extensible format (e.g., json) +// should be adopted as a replacement and/or addition. +type LogTag string + +const ( + // LogTagPartial means the line is part of multiple lines. + LogTagPartial LogTag = "P" + // LogTagFull means the line is a single full line or the end of multiple lines. + LogTagFull LogTag = "F" + // LogTagDelimiter is the delimiter for different log tags. + LogTagDelimiter = ":" +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_gc.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_gc.go index be2fac4b9..72fa4bd72 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_gc.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_gc.go @@ -19,6 +19,8 @@ package container import ( "fmt" "time" + + "github.com/golang/glog" ) // Specified a policy for garbage collecting containers. @@ -58,7 +60,7 @@ type realContainerGC struct { // Policy for garbage collection. policy ContainerGCPolicy - // sourcesReadyProvider provides the readyness of kubelet configuration sources. + // sourcesReadyProvider provides the readiness of kubelet configuration sources. sourcesReadyProvider SourcesReadyProvider } @@ -80,5 +82,6 @@ func (cgc *realContainerGC) GarbageCollect() error { } func (cgc *realContainerGC) DeleteAllUnusedContainers() error { + glog.Infof("attempting to delete unused containers") return cgc.runtime.GarbageCollect(cgc.policy, cgc.sourcesReadyProvider.AllReady(), true) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_reference_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_reference_manager.go index 8383e77d9..d41d05a93 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_reference_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/container_reference_manager.go @@ -19,7 +19,7 @@ package container import ( "sync" - "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/api/core/v1" ) // RefManager manages the references for the containers. @@ -38,7 +38,6 @@ func NewRefManager() *RefManager { } // SetRef stores a reference to a pod's container, associating it with the given container ID. -// TODO: move this to client-go v1.ObjectReference func (c *RefManager) SetRef(id ContainerID, ref *v1.ObjectReference) { c.Lock() defer c.Unlock() @@ -53,7 +52,6 @@ func (c *RefManager) ClearRef(id ContainerID) { } // GetRef returns the container reference of the given ID, or (nil, false) if none is stored. -// TODO: move this to client-go v1.ObjectReference func (c *RefManager) GetRef(id ContainerID) (ref *v1.ObjectReference, ok bool) { c.RLock() defer c.RUnlock() diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go index 7930fed55..2320a192b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go @@ -26,14 +26,12 @@ import ( "github.com/golang/glog" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - clientv1 "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api/v1" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" - "k8s.io/kubernetes/pkg/kubelet/events" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/kubelet/util/ioutils" hashutil "k8s.io/kubernetes/pkg/util/hash" @@ -48,9 +46,9 @@ type HandlerRunner interface { // RuntimeHelper wraps kubelet to make container runtime // able to get necessary informations like the RunContainerOptions, DNS settings, Host IP. type RuntimeHelper interface { - GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (contOpts *RunContainerOptions, useClusterFirstPolicy bool, err error) - GetClusterDNS(pod *v1.Pod) (dnsServers []string, dnsSearches []string, useClusterFirstPolicy bool, err error) - // GetPodCgroupParent returns the the CgroupName identifer, and its literal cgroupfs form on the host + GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (contOpts *RunContainerOptions, err error) + GetPodDNS(pod *v1.Pod) (dnsConfig *runtimeapi.DNSConfig, err error) + // GetPodCgroupParent returns the CgroupName identifier, and its literal cgroupfs form on the host // of a pod. GetPodCgroupParent(pod *v1.Pod) string GetPodDir(podUID types.UID) string @@ -176,19 +174,13 @@ type innerEventRecorder struct { recorder record.EventRecorder } -func (irecorder *innerEventRecorder) shouldRecordEvent(object runtime.Object) (*clientv1.ObjectReference, bool) { +func (irecorder *innerEventRecorder) shouldRecordEvent(object runtime.Object) (*v1.ObjectReference, bool) { if object == nil { return nil, false } - if ref, ok := object.(*clientv1.ObjectReference); ok { - if !strings.HasPrefix(ref.FieldPath, ImplicitContainerPrefix) { - return ref, true - } - } - // just in case we miss a spot, be sure that we still log something if ref, ok := object.(*v1.ObjectReference); ok { if !strings.HasPrefix(ref.FieldPath, ImplicitContainerPrefix) { - return events.ToObjectReference(ref), true + return ref, true } } return nil, false @@ -310,7 +302,7 @@ func GetContainerSpec(pod *v1.Pod, containerName string) *v1.Container { // HasPrivilegedContainer returns true if any of the containers in the pod are privileged. func HasPrivilegedContainer(pod *v1.Pod) bool { - for _, c := range pod.Spec.Containers { + for _, c := range append(pod.Spec.Containers, pod.Spec.InitContainers...) { if c.SecurityContext != nil && c.SecurityContext.Privileged != nil && *c.SecurityContext.Privileged { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go index 0251b8134..f61c0fc4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go @@ -19,9 +19,9 @@ package container import ( "fmt" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/v1/ref" + "k8s.io/api/core/v1" + ref "k8s.io/client-go/tools/reference" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) var ImplicitContainerPrefix string = "implicitly required container " @@ -39,7 +39,7 @@ func GenerateContainerRef(pod *v1.Pod, container *v1.Container) (*v1.ObjectRefer // start (like the pod infra container). This is not a good way, ugh. fieldPath = ImplicitContainerPrefix + container.Name } - ref, err := ref.GetPartialReference(api.Scheme, pod, fieldPath) + ref, err := ref.GetPartialReference(legacyscheme.Scheme, pod, fieldPath) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go index c3403ad57..56aeaf813 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go @@ -25,11 +25,11 @@ import ( "time" "github.com/golang/glog" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/util/flowcontrol" - "k8s.io/kubernetes/pkg/api/v1" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" "k8s.io/kubernetes/pkg/volume" ) @@ -127,9 +127,8 @@ type Runtime interface { // DirectStreamingRuntime is the interface implemented by runtimes for which the streaming calls // (exec/attach/port-forward) should be served directly by the Kubelet. type DirectStreamingRuntime interface { - // Runs the command in the container of the specified pod using nsenter. - // Attaches the processes stdin, stdout, and stderr. Optionally uses a - // tty. + // Runs the command in the container of the specified pod. Attaches + // the processes stdin, stdout, and stderr. Optionally uses a tty. ExecInContainer(containerID ContainerID, cmd []string, stdin io.Reader, stdout, stderr io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize, timeout time.Duration) error // Forward the specified port from the specified pod to the stream. PortForward(pod *Pod, port int32, stream io.ReadWriteCloser) error @@ -266,6 +265,13 @@ const ( ContainerStateUnknown ContainerState = "unknown" ) +type ContainerType string + +const ( + ContainerTypeInit ContainerType = "INIT" + ContainerTypeRegular ContainerType = "REGULAR" +) + // Container provides the runtime information for a container, such as ID, hash, // state of the container. type Container struct { @@ -376,6 +382,11 @@ type EnvVar struct { Value string } +type Annotation struct { + Name string + Value string +} + type Mount struct { // Name of the volume mount. // TODO(yifan): Remove this field, as this is not representing the unique name of the mount, @@ -389,6 +400,8 @@ type Mount struct { ReadOnly bool // Whether the mount needs SELinux relabeling SELinuxRelabel bool + // Requested propagation mode + Propagation runtimeapi.MountPropagation } type PortMapping struct { @@ -423,14 +436,14 @@ type RunContainerOptions struct { Devices []DeviceInfo // The port mappings for the containers. PortMappings []PortMapping + // The annotations for the container + // These annotations are generated by other components (i.e., + // not users). Currently, only device plugins populate the annotations. + Annotations []Annotation // If the container has specified the TerminationMessagePath, then // this directory will be used to create and mount the log file to // container.TerminationMessagePath PodContainerDir string - // The list of DNS servers for the container to use. - DNS []string - // The list of DNS search domains. - DNSSearch []string // The parent cgroup to pass to Docker CgroupParent string // The type of container rootfs @@ -449,9 +462,14 @@ type RunContainerOptions struct { type VolumeInfo struct { // Mounter is the volume's mounter Mounter volume.Mounter + // BlockVolumeMapper is the Block volume's mapper + BlockVolumeMapper volume.BlockVolumeMapper // SELinuxLabeled indicates whether this volume has had the // pod's SELinux label applied to it or not SELinuxLabeled bool + // Whether the volume permission is set to read-only or not + // This value is passed from volume.spec + ReadOnly bool } type VolumeMap map[string]VolumeInfo diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/events/event.go b/vendor/k8s.io/kubernetes/pkg/kubelet/events/event.go deleted file mode 100644 index 0a0efc20c..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/events/event.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package events - -import ( - clientv1 "k8s.io/client-go/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/v1" -) - -const ( - // Container event reason list - CreatedContainer = "Created" - StartedContainer = "Started" - FailedToCreateContainer = "Failed" - FailedToStartContainer = "Failed" - KillingContainer = "Killing" - PreemptContainer = "Preempting" - BackOffStartContainer = "BackOff" - ExceededGracePeriod = "ExceededGracePeriod" - - // Image event reason list - PullingImage = "Pulling" - PulledImage = "Pulled" - FailedToPullImage = "Failed" - FailedToInspectImage = "InspectFailed" - ErrImageNeverPullPolicy = "ErrImageNeverPull" - BackOffPullImage = "BackOff" - - // kubelet event reason list - NodeReady = "NodeReady" - NodeNotReady = "NodeNotReady" - NodeSchedulable = "NodeSchedulable" - NodeNotSchedulable = "NodeNotSchedulable" - StartingKubelet = "Starting" - KubeletSetupFailed = "KubeletSetupFailed" - FailedAttachVolume = "FailedAttachVolume" - FailedDetachVolume = "FailedDetachVolume" - FailedMountVolume = "FailedMount" - FailedUnMountVolume = "FailedUnMount" - SuccessfulDetachVolume = "SuccessfulDetachVolume" - SuccessfulMountVolume = "SuccessfulMountVolume" - SuccessfulUnMountVolume = "SuccessfulUnMountVolume" - HostPortConflict = "HostPortConflict" - NodeSelectorMismatching = "NodeSelectorMismatching" - InsufficientFreeCPU = "InsufficientFreeCPU" - InsufficientFreeMemory = "InsufficientFreeMemory" - OutOfDisk = "OutOfDisk" - HostNetworkNotSupported = "HostNetworkNotSupported" - UndefinedShaper = "NilShaper" - NodeRebooted = "Rebooted" - ContainerGCFailed = "ContainerGCFailed" - ImageGCFailed = "ImageGCFailed" - FailedNodeAllocatableEnforcement = "FailedNodeAllocatableEnforcement" - SuccessfulNodeAllocatableEnforcement = "NodeAllocatableEnforced" - UnsupportedMountOption = "UnsupportedMountOption" - - // Image manager event reason list - InvalidDiskCapacity = "InvalidDiskCapacity" - FreeDiskSpaceFailed = "FreeDiskSpaceFailed" - - // Probe event reason list - ContainerUnhealthy = "Unhealthy" - - // Pod worker event reason list - FailedSync = "FailedSync" - - // Config event reason list - FailedValidation = "FailedValidation" - - // Lifecycle hooks - FailedPostStartHook = "FailedPostStartHook" - FailedPreStopHook = "FailedPreStopHook" - UnfinishedPreStopHook = "UnfinishedPreStopHook" -) - -// ToObjectReference takes an old style object reference and converts it to a client-go one -func ToObjectReference(ref *v1.ObjectReference) *clientv1.ObjectReference { - if ref == nil { - return nil - } - return &clientv1.ObjectReference{ - Kind: ref.Kind, - Namespace: ref.Namespace, - Name: ref.Name, - UID: ref.UID, - APIVersion: ref.APIVersion, - ResourceVersion: ref.ResourceVersion, - FieldPath: ref.FieldPath, - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/constants.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/constants.go new file mode 100644 index 000000000..2c83908a7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/constants.go @@ -0,0 +1,33 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package types + +const ( + // system default DNS resolver configuration + ResolvConfDefault = "/etc/resolv.conf" + + // different container runtimes + DockerContainerRuntime = "docker" + RktContainerRuntime = "rkt" + RemoteContainerRuntime = "remote" + + // User visible keys for managing node allocatable enforcement on the node. + NodeAllocatableEnforcementKey = "pods" + SystemReservedEnforcementKey = "system-reserved" + KubeReservedEnforcementKey = "kube-reserved" + NodeAllocatableNoneKey = "none" +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/constants.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/doc.go index 27c42c5c5..88e345636 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/constants.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright 2015 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,14 +14,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -package runtime - -// This file contains all constants defined in CRI. - -// Required runtime condition type. -const ( - // RuntimeReady means the runtime is up and ready to accept basic containers. - RuntimeReady = "RuntimeReady" - // NetworkReady means the runtime network is up and ready to accept containers which require network. - NetworkReady = "NetworkReady" -) +// Common types in the Kubelet. +package types // import "k8s.io/kubernetes/pkg/kubelet/types" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/labels.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/labels.go new file mode 100644 index 000000000..67c84f6d6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/labels.go @@ -0,0 +1,41 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package types + +const ( + KubernetesPodNameLabel = "io.kubernetes.pod.name" + KubernetesPodNamespaceLabel = "io.kubernetes.pod.namespace" + KubernetesPodUIDLabel = "io.kubernetes.pod.uid" + KubernetesContainerNameLabel = "io.kubernetes.container.name" + KubernetesContainerTypeLabel = "io.kubernetes.container.type" +) + +func GetContainerName(labels map[string]string) string { + return labels[KubernetesContainerNameLabel] +} + +func GetPodName(labels map[string]string) string { + return labels[KubernetesPodNameLabel] +} + +func GetPodUID(labels map[string]string) string { + return labels[KubernetesPodUIDLabel] +} + +func GetPodNamespace(labels map[string]string) string { + return labels[KubernetesPodNamespaceLabel] +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go new file mode 100644 index 000000000..62116985f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go @@ -0,0 +1,175 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package types + +import ( + "fmt" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kubeapi "k8s.io/kubernetes/pkg/apis/core" + schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" +) + +const ( + ConfigSourceAnnotationKey = "kubernetes.io/config.source" + ConfigMirrorAnnotationKey = v1.MirrorPodAnnotationKey + ConfigFirstSeenAnnotationKey = "kubernetes.io/config.seen" + ConfigHashAnnotationKey = "kubernetes.io/config.hash" + CriticalPodAnnotationKey = "scheduler.alpha.kubernetes.io/critical-pod" +) + +// PodOperation defines what changes will be made on a pod configuration. +type PodOperation int + +const ( + // This is the current pod configuration + SET PodOperation = iota + // Pods with the given ids are new to this source + ADD + // Pods with the given ids are gracefully deleted from this source + DELETE + // Pods with the given ids have been removed from this source + REMOVE + // Pods with the given ids have been updated in this source + UPDATE + // Pods with the given ids have unexpected status in this source, + // kubelet should reconcile status with this source + RECONCILE + // Pods with the given ids have been restored from a checkpoint. + RESTORE + + // These constants identify the sources of pods + // Updates from a file + FileSource = "file" + // Updates from querying a web page + HTTPSource = "http" + // Updates from Kubernetes API Server + ApiserverSource = "api" + // Updates from all sources + AllSource = "*" + + NamespaceDefault = metav1.NamespaceDefault +) + +// PodUpdate defines an operation sent on the channel. You can add or remove single services by +// sending an array of size one and Op == ADD|REMOVE (with REMOVE, only the ID is required). +// For setting the state of the system to a given state for this source configuration, set +// Pods as desired and Op to SET, which will reset the system state to that specified in this +// operation for this source channel. To remove all pods, set Pods to empty object and Op to SET. +// +// Additionally, Pods should never be nil - it should always point to an empty slice. While +// functionally similar, this helps our unit tests properly check that the correct PodUpdates +// are generated. +type PodUpdate struct { + Pods []*v1.Pod + Op PodOperation + Source string +} + +// Gets all validated sources from the specified sources. +func GetValidatedSources(sources []string) ([]string, error) { + validated := make([]string, 0, len(sources)) + for _, source := range sources { + switch source { + case AllSource: + return []string{FileSource, HTTPSource, ApiserverSource}, nil + case FileSource, HTTPSource, ApiserverSource: + validated = append(validated, source) + break + case "": + break + default: + return []string{}, fmt.Errorf("unknown pod source %q", source) + } + } + return validated, nil +} + +// GetPodSource returns the source of the pod based on the annotation. +func GetPodSource(pod *v1.Pod) (string, error) { + if pod.Annotations != nil { + if source, ok := pod.Annotations[ConfigSourceAnnotationKey]; ok { + return source, nil + } + } + return "", fmt.Errorf("cannot get source of pod %q", pod.UID) +} + +// SyncPodType classifies pod updates, eg: create, update. +type SyncPodType int + +const ( + // SyncPodSync is when the pod is synced to ensure desired state + SyncPodSync SyncPodType = iota + // SyncPodUpdate is when the pod is updated from source + SyncPodUpdate + // SyncPodCreate is when the pod is created from source + SyncPodCreate + // SyncPodKill is when the pod is killed based on a trigger internal to the kubelet for eviction. + // If a SyncPodKill request is made to pod workers, the request is never dropped, and will always be processed. + SyncPodKill +) + +func (sp SyncPodType) String() string { + switch sp { + case SyncPodCreate: + return "create" + case SyncPodUpdate: + return "update" + case SyncPodSync: + return "sync" + case SyncPodKill: + return "kill" + default: + return "unknown" + } +} + +// IsCriticalPod returns true if the pod bears the critical pod annotation key or if pod's priority is greater than +// or equal to SystemCriticalPriority. Both the rescheduler(deprecated in 1.10) and the kubelet use this function +// to make admission and scheduling decisions. +func IsCriticalPod(pod *v1.Pod) bool { + return IsCritical(pod.Namespace, pod.Annotations) || (pod.Spec.Priority != nil && IsCriticalPodBasedOnPriority(pod.Namespace, *pod.Spec.Priority)) +} + +// IsCritical returns true if parameters bear the critical pod annotation +// key. The DaemonSetController use this key directly to make scheduling decisions. +// TODO: @ravig - Deprecated. Remove this when we move to resolving critical pods based on priorityClassName. +func IsCritical(ns string, annotations map[string]string) bool { + // Critical pods are restricted to "kube-system" namespace as of now. + if ns != kubeapi.NamespaceSystem { + return false + } + val, ok := annotations[CriticalPodAnnotationKey] + if ok && val == "" { + return true + } + return false +} + +// IsCriticalPodBasedOnPriority checks if the given pod is a critical pod based on priority resolved from pod Spec. +func IsCriticalPodBasedOnPriority(ns string, priority int32) bool { + // Critical pods are restricted to "kube-system" namespace as of now. + if ns != kubeapi.NamespaceSystem { + return false + } + if priority >= schedulerapi.SystemCriticalPriority { + return true + } + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/types.go new file mode 100644 index 000000000..b0dff97a7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/types.go @@ -0,0 +1,100 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package types + +import ( + "net/http" + "time" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/types" +) + +// TODO: Reconcile custom types in kubelet/types and this subpackage + +type HttpGetter interface { + Get(url string) (*http.Response, error) +} + +// Timestamp wraps around time.Time and offers utilities to format and parse +// the time using RFC3339Nano +type Timestamp struct { + time time.Time +} + +// NewTimestamp returns a Timestamp object using the current time. +func NewTimestamp() *Timestamp { + return &Timestamp{time.Now()} +} + +// ConvertToTimestamp takes a string, parses it using the RFC3339Nano layout, +// and converts it to a Timestamp object. +func ConvertToTimestamp(timeString string) *Timestamp { + parsed, _ := time.Parse(time.RFC3339Nano, timeString) + return &Timestamp{parsed} +} + +// Get returns the time as time.Time. +func (t *Timestamp) Get() time.Time { + return t.time +} + +// GetString returns the time in the string format using the RFC3339Nano +// layout. +func (t *Timestamp) GetString() string { + return t.time.Format(time.RFC3339Nano) +} + +// A type to help sort container statuses based on container names. +type SortedContainerStatuses []v1.ContainerStatus + +func (s SortedContainerStatuses) Len() int { return len(s) } +func (s SortedContainerStatuses) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +func (s SortedContainerStatuses) Less(i, j int) bool { + return s[i].Name < s[j].Name +} + +// SortInitContainerStatuses ensures that statuses are in the order that their +// init container appears in the pod spec +func SortInitContainerStatuses(p *v1.Pod, statuses []v1.ContainerStatus) { + containers := p.Spec.InitContainers + current := 0 + for _, container := range containers { + for j := current; j < len(statuses); j++ { + if container.Name == statuses[j].Name { + statuses[current], statuses[j] = statuses[j], statuses[current] + current++ + break + } + } + } +} + +// Reservation represents reserved resources for non-pod components. +type Reservation struct { + // System represents resources reserved for non-kubernetes components. + System v1.ResourceList + // Kubernetes represents resources reserved for kubernetes system components. + Kubernetes v1.ResourceList +} + +// A pod UID which has been translated/resolved to the representation known to kubelets. +type ResolvedPodUID types.UID + +// A pod UID for a mirror pod. +type MirrorPodUID types.UID diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/pod.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/pod.go index da20d42e8..45c0d8b4b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/pod.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/pod.go @@ -21,8 +21,8 @@ import ( "strings" "time" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api/v1" ) type podHandler func(*v1.Pod) string @@ -51,7 +51,7 @@ func PodWithDeletionTimestamp(pod *v1.Pod) string { return Pod(pod) + deletionTimestamp } -// Pods returns a string representating a list of pods in a human +// Pods returns a string representation a list of pods in a human // readable format. func Pods(pods []*v1.Pod) string { return aggregatePods(pods, Pod) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/resources.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/resources.go index bc50bc9c6..2a64c5b72 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/resources.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/format/resources.go @@ -21,7 +21,7 @@ import ( "sort" "strings" - "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/api/core/v1" ) // ResourceList returns a string representation of a resource list in a human readable format. |