file {
  name: "google/protobuf/any.proto"
  package: "google.protobuf"
  message_type {
    name: "Any"
    field {
      name: "type_url"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "typeUrl"
    }
    field {
      name: "value"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BYTES
      json_name: "value"
    }
  }
  options {
    java_package: "com.google.protobuf"
    java_outer_classname: "AnyProto"
    java_multiple_files: true
    go_package: "google.golang.org/protobuf/types/known/anypb"
    objc_class_prefix: "GPB"
    csharp_namespace: "Google.Protobuf.WellKnownTypes"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/fieldpath.proto"
  package: "containerd.types"
  dependency: "google/protobuf/descriptor.proto"
  extension {
    name: "fieldpath_all"
    extendee: ".google.protobuf.FileOptions"
    number: 63300
    label: LABEL_OPTIONAL
    type: TYPE_BOOL
    json_name: "fieldpathAll"
    proto3_optional: true
  }
  extension {
    name: "fieldpath"
    extendee: ".google.protobuf.MessageOptions"
    number: 64400
    label: LABEL_OPTIONAL
    type: TYPE_BOOL
    json_name: "fieldpath"
    proto3_optional: true
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/container.proto"
  package: "containerd.events"
  dependency: "google/protobuf/any.proto"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "ContainerCreate"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "image"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "image"
    }
    field {
      name: "runtime"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.events.ContainerCreate.Runtime"
      json_name: "runtime"
    }
    nested_type {
      name: "Runtime"
      field {
        name: "name"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "name"
      }
      field {
        name: "options"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "options"
      }
    }
  }
  message_type {
    name: "ContainerUpdate"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "image"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "image"
    }
    field {
      name: "labels"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.events.ContainerUpdate.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "snapshot_key"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotKey"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ContainerDelete"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/content.proto"
  package: "containerd.events"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "ContentCreate"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
    field {
      name: "size"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "size"
    }
  }
  message_type {
    name: "ContentDelete"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/image.proto"
  package: "containerd.services.images.v1"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "ImageCreate"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.ImageCreate.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ImageUpdate"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.ImageUpdate.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ImageDelete"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/namespace.proto"
  package: "containerd.events"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "NamespaceCreate"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.events.NamespaceCreate.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "NamespaceUpdate"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.events.NamespaceUpdate.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "NamespaceDelete"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "google/protobuf/timestamp.proto"
  package: "google.protobuf"
  message_type {
    name: "Timestamp"
    field {
      name: "seconds"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "seconds"
    }
    field {
      name: "nanos"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_INT32
      json_name: "nanos"
    }
  }
  options {
    java_package: "com.google.protobuf"
    java_outer_classname: "TimestampProto"
    java_multiple_files: true
    go_package: "google.golang.org/protobuf/types/known/timestamppb"
    cc_enable_arenas: true
    objc_class_prefix: "GPB"
    csharp_namespace: "Google.Protobuf.WellKnownTypes"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/sandbox.proto"
  package: "containerd.events"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "SandboxCreate"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "SandboxStart"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "SandboxExit"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "exit_status"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/snapshot.proto"
  package: "containerd.events"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "SnapshotPrepare"
    field {
      name: "key"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "parent"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parent"
    }
    field {
      name: "snapshotter"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
  }
  message_type {
    name: "SnapshotCommit"
    field {
      name: "key"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "name"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "snapshotter"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
  }
  message_type {
    name: "SnapshotRemove"
    field {
      name: "key"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "snapshotter"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/mount.proto"
  package: "containerd.types"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Mount"
    field {
      name: "type"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "type"
    }
    field {
      name: "source"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "source"
    }
    field {
      name: "target"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "target"
    }
    field {
      name: "options"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "options"
    }
  }
  message_type {
    name: "ActiveMount"
    field {
      name: "mount"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mount"
    }
    field {
      name: "mounted_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "mountedAt"
    }
    field {
      name: "mount_point"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "mountPoint"
    }
    field {
      name: "data"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActiveMount.DataEntry"
      json_name: "data"
    }
    nested_type {
      name: "DataEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ActivationInfo"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "active"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActiveMount"
      json_name: "active"
    }
    field {
      name: "system"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "system"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/events/task.proto"
  package: "containerd.events"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  message_type {
    name: "TaskCreate"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "bundle"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundle"
    }
    field {
      name: "rootfs"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "io"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.events.TaskIO"
      json_name: "io"
    }
    field {
      name: "checkpoint"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "checkpoint"
    }
    field {
      name: "pid"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "TaskStart"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "TaskDelete"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "exit_status"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
    field {
      name: "id"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "TaskIO"
    field {
      name: "stdin"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
  }
  message_type {
    name: "TaskExit"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "pid"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "exit_status"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "TaskOOM"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "TaskExecAdded"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "TaskExecStarted"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "pid"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "TaskPaused"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "TaskResumed"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "TaskCheckpointed"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "checkpoint"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "checkpoint"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/events;events"
    63300: 1
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/platform.proto"
  package: "containerd.types"
  message_type {
    name: "Platform"
    field {
      name: "os"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "os"
    }
    field {
      name: "architecture"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "architecture"
    }
    field {
      name: "variant"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "variant"
    }
    field {
      name: "os_version"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "osVersion"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/metrics.proto"
  package: "containerd.types"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Metric"
    field {
      name: "timestamp"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "timestamp"
    }
    field {
      name: "id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "data"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "data"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto"
  package: "containerd.runtime.sandbox.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/platform.proto"
  dependency: "github.com/containerd/containerd/api/types/metrics.proto"
  message_type {
    name: "CreateSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "bundle_path"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundlePath"
    }
    field {
      name: "rootfs"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "options"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
    field {
      name: "netns_path"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "netnsPath"
    }
    field {
      name: "annotations"
      number: 6
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.runtime.sandbox.v1.CreateSandboxRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "CreateSandboxResponse"
  }
  message_type {
    name: "StartSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "StartSandboxResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "created_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
  }
  message_type {
    name: "PlatformRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "PlatformResponse"
    field {
      name: "platform"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platform"
    }
  }
  message_type {
    name: "StopSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "timeout_secs"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "timeoutSecs"
    }
  }
  message_type {
    name: "StopSandboxResponse"
  }
  message_type {
    name: "UpdateSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "resources"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "resources"
    }
    field {
      name: "annotations"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "WaitSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "WaitSandboxResponse"
    field {
      name: "exit_status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "UpdateSandboxResponse"
  }
  message_type {
    name: "SandboxStatusRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "verbose"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "verbose"
    }
  }
  message_type {
    name: "SandboxStatusResponse"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "state"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "state"
    }
    field {
      name: "info"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry"
      json_name: "info"
    }
    field {
      name: "created_at"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "exited_at"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
    field {
      name: "extra"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "extra"
    }
    nested_type {
      name: "InfoEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "PingRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "PingResponse"
  }
  message_type {
    name: "ShutdownSandboxRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "ShutdownSandboxResponse"
  }
  message_type {
    name: "SandboxMetricsRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "SandboxMetricsResponse"
    field {
      name: "metrics"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Metric"
      json_name: "metrics"
    }
  }
  service {
    name: "Sandbox"
    method {
      name: "CreateSandbox"
      input_type: ".containerd.runtime.sandbox.v1.CreateSandboxRequest"
      output_type: ".containerd.runtime.sandbox.v1.CreateSandboxResponse"
    }
    method {
      name: "StartSandbox"
      input_type: ".containerd.runtime.sandbox.v1.StartSandboxRequest"
      output_type: ".containerd.runtime.sandbox.v1.StartSandboxResponse"
    }
    method {
      name: "Platform"
      input_type: ".containerd.runtime.sandbox.v1.PlatformRequest"
      output_type: ".containerd.runtime.sandbox.v1.PlatformResponse"
    }
    method {
      name: "StopSandbox"
      input_type: ".containerd.runtime.sandbox.v1.StopSandboxRequest"
      output_type: ".containerd.runtime.sandbox.v1.StopSandboxResponse"
    }
    method {
      name: "WaitSandbox"
      input_type: ".containerd.runtime.sandbox.v1.WaitSandboxRequest"
      output_type: ".containerd.runtime.sandbox.v1.WaitSandboxResponse"
    }
    method {
      name: "SandboxStatus"
      input_type: ".containerd.runtime.sandbox.v1.SandboxStatusRequest"
      output_type: ".containerd.runtime.sandbox.v1.SandboxStatusResponse"
    }
    method {
      name: "PingSandbox"
      input_type: ".containerd.runtime.sandbox.v1.PingRequest"
      output_type: ".containerd.runtime.sandbox.v1.PingResponse"
    }
    method {
      name: "ShutdownSandbox"
      input_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxRequest"
      output_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxResponse"
    }
    method {
      name: "SandboxMetrics"
      input_type: ".containerd.runtime.sandbox.v1.SandboxMetricsRequest"
      output_type: ".containerd.runtime.sandbox.v1.SandboxMetricsResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/runtime/sandbox/v1;sandbox"
  }
  syntax: "proto3"
}
file {
  name: "google/protobuf/empty.proto"
  package: "google.protobuf"
  message_type {
    name: "Empty"
  }
  options {
    java_package: "com.google.protobuf"
    java_outer_classname: "EmptyProto"
    java_multiple_files: true
    go_package: "google.golang.org/protobuf/types/known/emptypb"
    cc_enable_arenas: true
    objc_class_prefix: "GPB"
    csharp_namespace: "Google.Protobuf.WellKnownTypes"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/task/task.proto"
  package: "containerd.v1.types"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "google/protobuf/any.proto"
  message_type {
    name: "Process"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "pid"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "status"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.v1.types.Status"
      json_name: "status"
    }
    field {
      name: "stdin"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "exit_status"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "ProcessInfo"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "info"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "info"
    }
  }
  enum_type {
    name: "Status"
    value {
      name: "UNKNOWN"
      number: 0
    }
    value {
      name: "CREATED"
      number: 1
    }
    value {
      name: "RUNNING"
      number: 2
    }
    value {
      name: "STOPPED"
      number: 3
    }
    value {
      name: "PAUSED"
      number: 4
    }
    value {
      name: "PAUSING"
      number: 5
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/task"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/runtime/task/v2/shim.proto"
  package: "containerd.task.v2"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/task/task.proto"
  message_type {
    name: "CreateTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "bundle"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundle"
    }
    field {
      name: "rootfs"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "terminal"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "stdin"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "checkpoint"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "checkpoint"
    }
    field {
      name: "parent_checkpoint"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parentCheckpoint"
    }
    field {
      name: "options"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "CreateTaskResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "DeleteRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "DeleteResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "exit_status"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "ExecProcessRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "terminal"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "stdin"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "spec"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "spec"
    }
  }
  message_type {
    name: "ExecProcessResponse"
  }
  message_type {
    name: "ResizePtyRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "width"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "width"
    }
    field {
      name: "height"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "height"
    }
  }
  message_type {
    name: "StateRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "StateResponse"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "bundle"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundle"
    }
    field {
      name: "pid"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "status"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.v1.types.Status"
      json_name: "status"
    }
    field {
      name: "stdin"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "exit_status"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
    field {
      name: "exec_id"
      number: 11
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "KillRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "signal"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "signal"
    }
    field {
      name: "all"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "all"
    }
  }
  message_type {
    name: "CloseIORequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "stdin"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "stdin"
    }
  }
  message_type {
    name: "PidsRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "PidsResponse"
    field {
      name: "processes"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.v1.types.ProcessInfo"
      json_name: "processes"
    }
  }
  message_type {
    name: "CheckpointTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "path"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "path"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "UpdateTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "resources"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "resources"
    }
    field {
      name: "annotations"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.task.v2.UpdateTaskRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "StartRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "StartResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "WaitRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "WaitResponse"
    field {
      name: "exit_status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "StatsRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "StatsResponse"
    field {
      name: "stats"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "stats"
    }
  }
  message_type {
    name: "ConnectRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ConnectResponse"
    field {
      name: "shim_pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "shimPid"
    }
    field {
      name: "task_pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "taskPid"
    }
    field {
      name: "version"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "version"
    }
  }
  message_type {
    name: "ShutdownRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "now"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "now"
    }
  }
  message_type {
    name: "PauseRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ResumeRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  service {
    name: "Task"
    method {
      name: "State"
      input_type: ".containerd.task.v2.StateRequest"
      output_type: ".containerd.task.v2.StateResponse"
    }
    method {
      name: "Create"
      input_type: ".containerd.task.v2.CreateTaskRequest"
      output_type: ".containerd.task.v2.CreateTaskResponse"
    }
    method {
      name: "Start"
      input_type: ".containerd.task.v2.StartRequest"
      output_type: ".containerd.task.v2.StartResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.task.v2.DeleteRequest"
      output_type: ".containerd.task.v2.DeleteResponse"
    }
    method {
      name: "Pids"
      input_type: ".containerd.task.v2.PidsRequest"
      output_type: ".containerd.task.v2.PidsResponse"
    }
    method {
      name: "Pause"
      input_type: ".containerd.task.v2.PauseRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Resume"
      input_type: ".containerd.task.v2.ResumeRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Checkpoint"
      input_type: ".containerd.task.v2.CheckpointTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Kill"
      input_type: ".containerd.task.v2.KillRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Exec"
      input_type: ".containerd.task.v2.ExecProcessRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "ResizePty"
      input_type: ".containerd.task.v2.ResizePtyRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "CloseIO"
      input_type: ".containerd.task.v2.CloseIORequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Update"
      input_type: ".containerd.task.v2.UpdateTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Wait"
      input_type: ".containerd.task.v2.WaitRequest"
      output_type: ".containerd.task.v2.WaitResponse"
    }
    method {
      name: "Stats"
      input_type: ".containerd.task.v2.StatsRequest"
      output_type: ".containerd.task.v2.StatsResponse"
    }
    method {
      name: "Connect"
      input_type: ".containerd.task.v2.ConnectRequest"
      output_type: ".containerd.task.v2.ConnectResponse"
    }
    method {
      name: "Shutdown"
      input_type: ".containerd.task.v2.ShutdownRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/runtime/task/v2;task"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/runtime/task/v3/shim.proto"
  package: "containerd.task.v3"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/task/task.proto"
  message_type {
    name: "CreateTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "bundle"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundle"
    }
    field {
      name: "rootfs"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "terminal"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "stdin"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "checkpoint"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "checkpoint"
    }
    field {
      name: "parent_checkpoint"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parentCheckpoint"
    }
    field {
      name: "options"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "CreateTaskResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "DeleteRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "DeleteResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "exit_status"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "ExecProcessRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "terminal"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "stdin"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "spec"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "spec"
    }
  }
  message_type {
    name: "ExecProcessResponse"
  }
  message_type {
    name: "ResizePtyRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "width"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "width"
    }
    field {
      name: "height"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "height"
    }
  }
  message_type {
    name: "StateRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "StateResponse"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "bundle"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "bundle"
    }
    field {
      name: "pid"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "status"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.v1.types.Status"
      json_name: "status"
    }
    field {
      name: "stdin"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "exit_status"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
    field {
      name: "exec_id"
      number: 11
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "KillRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "signal"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "signal"
    }
    field {
      name: "all"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "all"
    }
  }
  message_type {
    name: "CloseIORequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "stdin"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "stdin"
    }
  }
  message_type {
    name: "PidsRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "PidsResponse"
    field {
      name: "processes"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.v1.types.ProcessInfo"
      json_name: "processes"
    }
  }
  message_type {
    name: "CheckpointTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "path"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "path"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "UpdateTaskRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "resources"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "resources"
    }
    field {
      name: "annotations"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.task.v3.UpdateTaskRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "StartRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "StartResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "WaitRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "WaitResponse"
    field {
      name: "exit_status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "StatsRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "StatsResponse"
    field {
      name: "stats"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "stats"
    }
  }
  message_type {
    name: "ConnectRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ConnectResponse"
    field {
      name: "shim_pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "shimPid"
    }
    field {
      name: "task_pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "taskPid"
    }
    field {
      name: "version"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "version"
    }
  }
  message_type {
    name: "ShutdownRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "now"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "now"
    }
  }
  message_type {
    name: "PauseRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ResumeRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  service {
    name: "Task"
    method {
      name: "State"
      input_type: ".containerd.task.v3.StateRequest"
      output_type: ".containerd.task.v3.StateResponse"
    }
    method {
      name: "Create"
      input_type: ".containerd.task.v3.CreateTaskRequest"
      output_type: ".containerd.task.v3.CreateTaskResponse"
    }
    method {
      name: "Start"
      input_type: ".containerd.task.v3.StartRequest"
      output_type: ".containerd.task.v3.StartResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.task.v3.DeleteRequest"
      output_type: ".containerd.task.v3.DeleteResponse"
    }
    method {
      name: "Pids"
      input_type: ".containerd.task.v3.PidsRequest"
      output_type: ".containerd.task.v3.PidsResponse"
    }
    method {
      name: "Pause"
      input_type: ".containerd.task.v3.PauseRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Resume"
      input_type: ".containerd.task.v3.ResumeRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Checkpoint"
      input_type: ".containerd.task.v3.CheckpointTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Kill"
      input_type: ".containerd.task.v3.KillRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Exec"
      input_type: ".containerd.task.v3.ExecProcessRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "ResizePty"
      input_type: ".containerd.task.v3.ResizePtyRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "CloseIO"
      input_type: ".containerd.task.v3.CloseIORequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Update"
      input_type: ".containerd.task.v3.UpdateTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Wait"
      input_type: ".containerd.task.v3.WaitRequest"
      output_type: ".containerd.task.v3.WaitResponse"
    }
    method {
      name: "Stats"
      input_type: ".containerd.task.v3.StatsRequest"
      output_type: ".containerd.task.v3.StatsResponse"
    }
    method {
      name: "Connect"
      input_type: ".containerd.task.v3.ConnectRequest"
      output_type: ".containerd.task.v3.ConnectResponse"
    }
    method {
      name: "Shutdown"
      input_type: ".containerd.task.v3.ShutdownRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/runtime/task/v3;task"
  }
  syntax: "proto3"
}
file {
  name: "google/protobuf/field_mask.proto"
  package: "google.protobuf"
  message_type {
    name: "FieldMask"
    field {
      name: "paths"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "paths"
    }
  }
  options {
    java_package: "com.google.protobuf"
    java_outer_classname: "FieldMaskProto"
    java_multiple_files: true
    go_package: "google.golang.org/protobuf/types/known/fieldmaskpb"
    cc_enable_arenas: true
    objc_class_prefix: "GPB"
    csharp_namespace: "Google.Protobuf.WellKnownTypes"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/containers/v1/containers.proto"
  package: "containerd.services.containers.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/field_mask.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Container"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "image"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "image"
    }
    field {
      name: "runtime"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container.Runtime"
      json_name: "runtime"
    }
    field {
      name: "spec"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "spec"
    }
    field {
      name: "snapshotter"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "snapshot_key"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotKey"
    }
    field {
      name: "created_at"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "updated_at"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "extensions"
      number: 10
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container.ExtensionsEntry"
      json_name: "extensions"
    }
    field {
      name: "sandbox"
      number: 11
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandbox"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
    nested_type {
      name: "Runtime"
      field {
        name: "name"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "name"
      }
      field {
        name: "options"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "options"
      }
    }
    nested_type {
      name: "ExtensionsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "GetContainerRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "GetContainerResponse"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
  }
  message_type {
    name: "ListContainersRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListContainersResponse"
    field {
      name: "containers"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "containers"
    }
  }
  message_type {
    name: "CreateContainerRequest"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
  }
  message_type {
    name: "CreateContainerResponse"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
  }
  message_type {
    name: "UpdateContainerRequest"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
    field {
      name: "update_mask"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
  }
  message_type {
    name: "UpdateContainerResponse"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
  }
  message_type {
    name: "DeleteContainerRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ListContainerMessage"
    field {
      name: "container"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.containers.v1.Container"
      json_name: "container"
    }
  }
  service {
    name: "Containers"
    method {
      name: "Get"
      input_type: ".containerd.services.containers.v1.GetContainerRequest"
      output_type: ".containerd.services.containers.v1.GetContainerResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.containers.v1.ListContainersRequest"
      output_type: ".containerd.services.containers.v1.ListContainersResponse"
    }
    method {
      name: "ListStream"
      input_type: ".containerd.services.containers.v1.ListContainersRequest"
      output_type: ".containerd.services.containers.v1.ListContainerMessage"
      server_streaming: true
    }
    method {
      name: "Create"
      input_type: ".containerd.services.containers.v1.CreateContainerRequest"
      output_type: ".containerd.services.containers.v1.CreateContainerResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.containers.v1.UpdateContainerRequest"
      output_type: ".containerd.services.containers.v1.UpdateContainerResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.containers.v1.DeleteContainerRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/containers/v1;containers"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/content/v1/content.proto"
  package: "containerd.services.content.v1"
  dependency: "google/protobuf/field_mask.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "google/protobuf/empty.proto"
  message_type {
    name: "Info"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
    field {
      name: "size"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "size"
    }
    field {
      name: "created_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "updated_at"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "labels"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Info.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "InfoRequest"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
  }
  message_type {
    name: "InfoResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "UpdateRequest"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Info"
      json_name: "info"
    }
    field {
      name: "update_mask"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
  }
  message_type {
    name: "UpdateResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "ListContentRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListContentResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "DeleteContentRequest"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
  }
  message_type {
    name: "ReadContentRequest"
    field {
      name: "digest"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
    field {
      name: "offset"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "offset"
    }
    field {
      name: "size"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "size"
    }
  }
  message_type {
    name: "ReadContentResponse"
    field {
      name: "offset"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "offset"
    }
    field {
      name: "data"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BYTES
      json_name: "data"
    }
  }
  message_type {
    name: "Status"
    field {
      name: "started_at"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "startedAt"
    }
    field {
      name: "updated_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "ref"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "ref"
    }
    field {
      name: "offset"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "offset"
    }
    field {
      name: "total"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "total"
    }
    field {
      name: "expected"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "expected"
    }
  }
  message_type {
    name: "StatusRequest"
    field {
      name: "ref"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "ref"
    }
  }
  message_type {
    name: "StatusResponse"
    field {
      name: "status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Status"
      json_name: "status"
    }
  }
  message_type {
    name: "ListStatusesRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListStatusesResponse"
    field {
      name: "statuses"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.Status"
      json_name: "statuses"
    }
  }
  message_type {
    name: "WriteContentRequest"
    field {
      name: "action"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.services.content.v1.WriteAction"
      json_name: "action"
    }
    field {
      name: "ref"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "ref"
    }
    field {
      name: "total"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "total"
    }
    field {
      name: "expected"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "expected"
    }
    field {
      name: "offset"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "offset"
    }
    field {
      name: "data"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_BYTES
      json_name: "data"
    }
    field {
      name: "labels"
      number: 7
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.content.v1.WriteContentRequest.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "WriteContentResponse"
    field {
      name: "action"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.services.content.v1.WriteAction"
      json_name: "action"
    }
    field {
      name: "started_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "startedAt"
    }
    field {
      name: "updated_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "offset"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "offset"
    }
    field {
      name: "total"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "total"
    }
    field {
      name: "digest"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
  }
  message_type {
    name: "AbortRequest"
    field {
      name: "ref"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "ref"
    }
  }
  enum_type {
    name: "WriteAction"
    value {
      name: "STAT"
      number: 0
    }
    value {
      name: "WRITE"
      number: 1
    }
    value {
      name: "COMMIT"
      number: 2
    }
  }
  service {
    name: "Content"
    method {
      name: "Info"
      input_type: ".containerd.services.content.v1.InfoRequest"
      output_type: ".containerd.services.content.v1.InfoResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.content.v1.UpdateRequest"
      output_type: ".containerd.services.content.v1.UpdateResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.content.v1.ListContentRequest"
      output_type: ".containerd.services.content.v1.ListContentResponse"
      server_streaming: true
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.content.v1.DeleteContentRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Read"
      input_type: ".containerd.services.content.v1.ReadContentRequest"
      output_type: ".containerd.services.content.v1.ReadContentResponse"
      server_streaming: true
    }
    method {
      name: "Status"
      input_type: ".containerd.services.content.v1.StatusRequest"
      output_type: ".containerd.services.content.v1.StatusResponse"
    }
    method {
      name: "ListStatuses"
      input_type: ".containerd.services.content.v1.ListStatusesRequest"
      output_type: ".containerd.services.content.v1.ListStatusesResponse"
    }
    method {
      name: "Write"
      input_type: ".containerd.services.content.v1.WriteContentRequest"
      output_type: ".containerd.services.content.v1.WriteContentResponse"
      client_streaming: true
      server_streaming: true
    }
    method {
      name: "Abort"
      input_type: ".containerd.services.content.v1.AbortRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/content/v1;content"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/descriptor.proto"
  package: "containerd.types"
  message_type {
    name: "Descriptor"
    field {
      name: "media_type"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "mediaType"
    }
    field {
      name: "digest"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "digest"
    }
    field {
      name: "size"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "size"
    }
    field {
      name: "annotations"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/diff/v1/diff.proto"
  package: "containerd.services.diff.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/descriptor.proto"
  message_type {
    name: "ApplyRequest"
    field {
      name: "diff"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "diff"
    }
    field {
      name: "mounts"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mounts"
    }
    field {
      name: "payloads"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.diff.v1.ApplyRequest.PayloadsEntry"
      json_name: "payloads"
    }
    field {
      name: "sync_fs"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "syncFs"
    }
    nested_type {
      name: "PayloadsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ApplyResponse"
    field {
      name: "applied"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "applied"
    }
  }
  message_type {
    name: "DiffRequest"
    field {
      name: "left"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "left"
    }
    field {
      name: "right"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "right"
    }
    field {
      name: "media_type"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "mediaType"
    }
    field {
      name: "ref"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "ref"
    }
    field {
      name: "labels"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.diff.v1.DiffRequest.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "source_date_epoch"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "sourceDateEpoch"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "DiffResponse"
    field {
      name: "diff"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "diff"
    }
  }
  service {
    name: "Diff"
    method {
      name: "Apply"
      input_type: ".containerd.services.diff.v1.ApplyRequest"
      output_type: ".containerd.services.diff.v1.ApplyResponse"
    }
    method {
      name: "Diff"
      input_type: ".containerd.services.diff.v1.DiffRequest"
      output_type: ".containerd.services.diff.v1.DiffResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/diff/v1;diff"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/event.proto"
  package: "containerd.types"
  dependency: "github.com/containerd/containerd/api/types/fieldpath.proto"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Envelope"
    field {
      name: "timestamp"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "timestamp"
    }
    field {
      name: "namespace"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "namespace"
    }
    field {
      name: "topic"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "topic"
    }
    field {
      name: "event"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "event"
    }
    options {
      64400: 1
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/events/v1/events.proto"
  package: "containerd.services.events.v1"
  dependency: "github.com/containerd/containerd/api/types/event.proto"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/empty.proto"
  message_type {
    name: "PublishRequest"
    field {
      name: "topic"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "topic"
    }
    field {
      name: "event"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "event"
    }
  }
  message_type {
    name: "ForwardRequest"
    field {
      name: "envelope"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Envelope"
      json_name: "envelope"
    }
  }
  message_type {
    name: "SubscribeRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  service {
    name: "Events"
    method {
      name: "Publish"
      input_type: ".containerd.services.events.v1.PublishRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Forward"
      input_type: ".containerd.services.events.v1.ForwardRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Subscribe"
      input_type: ".containerd.services.events.v1.SubscribeRequest"
      output_type: ".containerd.types.Envelope"
      server_streaming: true
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/events/v1;events"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/images/v1/images.proto"
  package: "containerd.services.images.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/field_mask.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/descriptor.proto"
  message_type {
    name: "Image"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "target"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "target"
    }
    field {
      name: "created_at"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "updated_at"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "GetImageRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  message_type {
    name: "GetImageResponse"
    field {
      name: "image"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "image"
    }
  }
  message_type {
    name: "CreateImageRequest"
    field {
      name: "image"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "image"
    }
    field {
      name: "source_date_epoch"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "sourceDateEpoch"
    }
  }
  message_type {
    name: "CreateImageResponse"
    field {
      name: "image"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "image"
    }
  }
  message_type {
    name: "UpdateImageRequest"
    field {
      name: "image"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "image"
    }
    field {
      name: "update_mask"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
    field {
      name: "source_date_epoch"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "sourceDateEpoch"
    }
  }
  message_type {
    name: "UpdateImageResponse"
    field {
      name: "image"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "image"
    }
  }
  message_type {
    name: "ListImagesRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListImagesResponse"
    field {
      name: "images"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.images.v1.Image"
      json_name: "images"
    }
  }
  message_type {
    name: "DeleteImageRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "sync"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "sync"
    }
    field {
      name: "target"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      oneof_index: 0
      json_name: "target"
      proto3_optional: true
    }
    oneof_decl {
      name: "_target"
    }
  }
  service {
    name: "Images"
    method {
      name: "Get"
      input_type: ".containerd.services.images.v1.GetImageRequest"
      output_type: ".containerd.services.images.v1.GetImageResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.images.v1.ListImagesRequest"
      output_type: ".containerd.services.images.v1.ListImagesResponse"
    }
    method {
      name: "Create"
      input_type: ".containerd.services.images.v1.CreateImageRequest"
      output_type: ".containerd.services.images.v1.CreateImageResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.images.v1.UpdateImageRequest"
      output_type: ".containerd.services.images.v1.UpdateImageResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.images.v1.DeleteImageRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/images/v1;images"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/introspection.proto"
  package: "containerd.types"
  dependency: "google/protobuf/any.proto"
  message_type {
    name: "RuntimeRequest"
    field {
      name: "runtime_path"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "runtimePath"
    }
    field {
      name: "options"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "RuntimeVersion"
    field {
      name: "version"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "version"
    }
    field {
      name: "revision"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "revision"
    }
  }
  message_type {
    name: "RuntimeInfo"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "version"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.RuntimeVersion"
      json_name: "version"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
    field {
      name: "features"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "features"
    }
    field {
      name: "annotations"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.RuntimeInfo.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "google/rpc/status.proto"
  package: "google.rpc"
  dependency: "google/protobuf/any.proto"
  message_type {
    name: "Status"
    field {
      name: "code"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_INT32
      json_name: "code"
    }
    field {
      name: "message"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "message"
    }
    field {
      name: "details"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "details"
    }
  }
  options {
    java_package: "com.google.rpc"
    java_outer_classname: "StatusProto"
    java_multiple_files: true
    go_package: "google.golang.org/genproto/googleapis/rpc/status;status"
    objc_class_prefix: "RPC"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/introspection/v1/introspection.proto"
  package: "containerd.services.introspection.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "github.com/containerd/containerd/api/types/introspection.proto"
  dependency: "github.com/containerd/containerd/api/types/platform.proto"
  dependency: "google/rpc/status.proto"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Plugin"
    field {
      name: "type"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "type"
    }
    field {
      name: "id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "requires"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "requires"
    }
    field {
      name: "platforms"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platforms"
    }
    field {
      name: "exports"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.introspection.v1.Plugin.ExportsEntry"
      json_name: "exports"
    }
    field {
      name: "capabilities"
      number: 6
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "capabilities"
    }
    field {
      name: "init_err"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.rpc.Status"
      json_name: "initErr"
    }
    nested_type {
      name: "ExportsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "PluginsRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "PluginsResponse"
    field {
      name: "plugins"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.introspection.v1.Plugin"
      json_name: "plugins"
    }
  }
  message_type {
    name: "ServerResponse"
    field {
      name: "uuid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "uuid"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT64
      json_name: "pid"
    }
    field {
      name: "pidns"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT64
      json_name: "pidns"
    }
    field {
      name: "deprecations"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.introspection.v1.DeprecationWarning"
      json_name: "deprecations"
    }
  }
  message_type {
    name: "DeprecationWarning"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "message"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "message"
    }
    field {
      name: "last_occurrence"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "lastOccurrence"
    }
  }
  message_type {
    name: "PluginInfoRequest"
    field {
      name: "type"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "type"
    }
    field {
      name: "id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "PluginInfoResponse"
    field {
      name: "plugin"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.introspection.v1.Plugin"
      json_name: "plugin"
    }
    field {
      name: "extra"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "extra"
    }
  }
  service {
    name: "Introspection"
    method {
      name: "Plugins"
      input_type: ".containerd.services.introspection.v1.PluginsRequest"
      output_type: ".containerd.services.introspection.v1.PluginsResponse"
    }
    method {
      name: "Server"
      input_type: ".google.protobuf.Empty"
      output_type: ".containerd.services.introspection.v1.ServerResponse"
    }
    method {
      name: "PluginInfo"
      input_type: ".containerd.services.introspection.v1.PluginInfoRequest"
      output_type: ".containerd.services.introspection.v1.PluginInfoResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/introspection/v1;introspection"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/leases/v1/leases.proto"
  package: "containerd.services.leases.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Lease"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "created_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "labels"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Lease.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "CreateRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "labels"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.CreateRequest.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "CreateResponse"
    field {
      name: "lease"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Lease"
      json_name: "lease"
    }
  }
  message_type {
    name: "DeleteRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "sync"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "sync"
    }
  }
  message_type {
    name: "ListRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListResponse"
    field {
      name: "leases"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Lease"
      json_name: "leases"
    }
  }
  message_type {
    name: "Resource"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "type"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "type"
    }
  }
  message_type {
    name: "AddResourceRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "resource"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Resource"
      json_name: "resource"
    }
  }
  message_type {
    name: "DeleteResourceRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "resource"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Resource"
      json_name: "resource"
    }
  }
  message_type {
    name: "ListResourcesRequest"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  message_type {
    name: "ListResourcesResponse"
    field {
      name: "resources"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.leases.v1.Resource"
      json_name: "resources"
    }
  }
  service {
    name: "Leases"
    method {
      name: "Create"
      input_type: ".containerd.services.leases.v1.CreateRequest"
      output_type: ".containerd.services.leases.v1.CreateResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.leases.v1.DeleteRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "List"
      input_type: ".containerd.services.leases.v1.ListRequest"
      output_type: ".containerd.services.leases.v1.ListResponse"
    }
    method {
      name: "AddResource"
      input_type: ".containerd.services.leases.v1.AddResourceRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "DeleteResource"
      input_type: ".containerd.services.leases.v1.DeleteResourceRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "ListResources"
      input_type: ".containerd.services.leases.v1.ListResourcesRequest"
      output_type: ".containerd.services.leases.v1.ListResourcesResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/leases/v1;leases"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/mounts/v1/mounts.proto"
  package: "containerd.services.mounts.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/field_mask.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  message_type {
    name: "ActivateRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "mounts"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mounts"
    }
    field {
      name: "labels"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.mounts.v1.ActivateRequest.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "temporary"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "temporary"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ActivateResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo"
      json_name: "info"
    }
  }
  message_type {
    name: "DeactivateRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  message_type {
    name: "InfoRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  message_type {
    name: "InfoResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo"
      json_name: "info"
    }
  }
  message_type {
    name: "UpdateRequest"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo"
      json_name: "info"
    }
    field {
      name: "update_mask"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
  }
  message_type {
    name: "UpdateResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo"
      json_name: "info"
    }
  }
  message_type {
    name: "ListRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListMessage"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.ActivationInfo"
      json_name: "info"
    }
  }
  service {
    name: "Mounts"
    method {
      name: "Activate"
      input_type: ".containerd.services.mounts.v1.ActivateRequest"
      output_type: ".containerd.services.mounts.v1.ActivateResponse"
    }
    method {
      name: "Deactivate"
      input_type: ".containerd.services.mounts.v1.DeactivateRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Info"
      input_type: ".containerd.services.mounts.v1.InfoRequest"
      output_type: ".containerd.services.mounts.v1.InfoResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.mounts.v1.UpdateRequest"
      output_type: ".containerd.services.mounts.v1.UpdateResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.mounts.v1.ListRequest"
      output_type: ".containerd.services.mounts.v1.ListMessage"
      server_streaming: true
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/mounts/v1;mounts"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/namespaces/v1/namespace.proto"
  package: "containerd.services.namespaces.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/field_mask.proto"
  message_type {
    name: "Namespace"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "GetNamespaceRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  message_type {
    name: "GetNamespaceResponse"
    field {
      name: "namespace"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespace"
    }
  }
  message_type {
    name: "ListNamespacesRequest"
    field {
      name: "filter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "filter"
    }
  }
  message_type {
    name: "ListNamespacesResponse"
    field {
      name: "namespaces"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespaces"
    }
  }
  message_type {
    name: "CreateNamespaceRequest"
    field {
      name: "namespace"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespace"
    }
  }
  message_type {
    name: "CreateNamespaceResponse"
    field {
      name: "namespace"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespace"
    }
  }
  message_type {
    name: "UpdateNamespaceRequest"
    field {
      name: "namespace"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespace"
    }
    field {
      name: "update_mask"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
  }
  message_type {
    name: "UpdateNamespaceResponse"
    field {
      name: "namespace"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.namespaces.v1.Namespace"
      json_name: "namespace"
    }
  }
  message_type {
    name: "DeleteNamespaceRequest"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
  }
  service {
    name: "Namespaces"
    method {
      name: "Get"
      input_type: ".containerd.services.namespaces.v1.GetNamespaceRequest"
      output_type: ".containerd.services.namespaces.v1.GetNamespaceResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.namespaces.v1.ListNamespacesRequest"
      output_type: ".containerd.services.namespaces.v1.ListNamespacesResponse"
    }
    method {
      name: "Create"
      input_type: ".containerd.services.namespaces.v1.CreateNamespaceRequest"
      output_type: ".containerd.services.namespaces.v1.CreateNamespaceResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.namespaces.v1.UpdateNamespaceRequest"
      output_type: ".containerd.services.namespaces.v1.UpdateNamespaceResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.namespaces.v1.DeleteNamespaceRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/namespaces/v1;namespaces"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/sandbox.proto"
  package: "containerd.types"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "Sandbox"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "runtime"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox.Runtime"
      json_name: "runtime"
    }
    field {
      name: "spec"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "spec"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "created_at"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "updated_at"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "extensions"
      number: 7
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox.ExtensionsEntry"
      json_name: "extensions"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
    nested_type {
      name: "Runtime"
      field {
        name: "name"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "name"
      }
      field {
        name: "options"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "options"
      }
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
    nested_type {
      name: "ExtensionsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_MESSAGE
        type_name: ".google.protobuf.Any"
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types;types"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/sandbox/v1/sandbox.proto"
  package: "containerd.services.sandbox.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/sandbox.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/platform.proto"
  dependency: "github.com/containerd/containerd/api/types/metrics.proto"
  message_type {
    name: "StoreCreateRequest"
    field {
      name: "sandbox"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
  }
  message_type {
    name: "StoreCreateResponse"
    field {
      name: "sandbox"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
  }
  message_type {
    name: "StoreUpdateRequest"
    field {
      name: "sandbox"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
    field {
      name: "fields"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "fields"
    }
  }
  message_type {
    name: "StoreUpdateResponse"
    field {
      name: "sandbox"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
  }
  message_type {
    name: "StoreDeleteRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "StoreDeleteResponse"
  }
  message_type {
    name: "StoreListRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "StoreListResponse"
    field {
      name: "list"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "list"
    }
  }
  message_type {
    name: "StoreGetRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "StoreGetResponse"
    field {
      name: "sandbox"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
  }
  message_type {
    name: "ControllerCreateRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "rootfs"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
    field {
      name: "netns_path"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "netnsPath"
    }
    field {
      name: "annotations"
      number: 5
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.sandbox.v1.ControllerCreateRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    field {
      name: "sandbox"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ControllerCreateResponse"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
  }
  message_type {
    name: "ControllerStartRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerStartResponse"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "created_at"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "address"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "address"
    }
    field {
      name: "version"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "version"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ControllerPlatformRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerPlatformResponse"
    field {
      name: "platform"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platform"
    }
  }
  message_type {
    name: "ControllerStopRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "timeout_secs"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "timeoutSecs"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerStopResponse"
  }
  message_type {
    name: "ControllerWaitRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerWaitResponse"
    field {
      name: "exit_status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "ControllerStatusRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "verbose"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "verbose"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerStatusResponse"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "state"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "state"
    }
    field {
      name: "info"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.sandbox.v1.ControllerStatusResponse.InfoEntry"
      json_name: "info"
    }
    field {
      name: "created_at"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "exited_at"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
    field {
      name: "extra"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "extra"
    }
    field {
      name: "address"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "address"
    }
    field {
      name: "version"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "version"
    }
    nested_type {
      name: "InfoEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ControllerShutdownRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerShutdownResponse"
  }
  message_type {
    name: "ControllerMetricsRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
  }
  message_type {
    name: "ControllerMetricsResponse"
    field {
      name: "metrics"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Metric"
      json_name: "metrics"
    }
  }
  message_type {
    name: "ControllerUpdateRequest"
    field {
      name: "sandbox_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxId"
    }
    field {
      name: "sandboxer"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "sandboxer"
    }
    field {
      name: "sandbox"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Sandbox"
      json_name: "sandbox"
    }
    field {
      name: "fields"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "fields"
    }
  }
  message_type {
    name: "ControllerUpdateResponse"
  }
  service {
    name: "Store"
    method {
      name: "Create"
      input_type: ".containerd.services.sandbox.v1.StoreCreateRequest"
      output_type: ".containerd.services.sandbox.v1.StoreCreateResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.sandbox.v1.StoreUpdateRequest"
      output_type: ".containerd.services.sandbox.v1.StoreUpdateResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.sandbox.v1.StoreDeleteRequest"
      output_type: ".containerd.services.sandbox.v1.StoreDeleteResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.sandbox.v1.StoreListRequest"
      output_type: ".containerd.services.sandbox.v1.StoreListResponse"
    }
    method {
      name: "Get"
      input_type: ".containerd.services.sandbox.v1.StoreGetRequest"
      output_type: ".containerd.services.sandbox.v1.StoreGetResponse"
    }
  }
  service {
    name: "Controller"
    method {
      name: "Create"
      input_type: ".containerd.services.sandbox.v1.ControllerCreateRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerCreateResponse"
    }
    method {
      name: "Start"
      input_type: ".containerd.services.sandbox.v1.ControllerStartRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerStartResponse"
    }
    method {
      name: "Platform"
      input_type: ".containerd.services.sandbox.v1.ControllerPlatformRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerPlatformResponse"
    }
    method {
      name: "Stop"
      input_type: ".containerd.services.sandbox.v1.ControllerStopRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerStopResponse"
    }
    method {
      name: "Wait"
      input_type: ".containerd.services.sandbox.v1.ControllerWaitRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerWaitResponse"
    }
    method {
      name: "Status"
      input_type: ".containerd.services.sandbox.v1.ControllerStatusRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerStatusResponse"
    }
    method {
      name: "Shutdown"
      input_type: ".containerd.services.sandbox.v1.ControllerShutdownRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerShutdownResponse"
    }
    method {
      name: "Metrics"
      input_type: ".containerd.services.sandbox.v1.ControllerMetricsRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerMetricsResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.sandbox.v1.ControllerUpdateRequest"
      output_type: ".containerd.services.sandbox.v1.ControllerUpdateResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/sandbox/v1;sandbox"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/snapshots/v1/snapshots.proto"
  package: "containerd.services.snapshots.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/field_mask.proto"
  dependency: "google/protobuf/timestamp.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  message_type {
    name: "PrepareSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "parent"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parent"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.PrepareSnapshotRequest.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "PrepareSnapshotResponse"
    field {
      name: "mounts"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mounts"
    }
  }
  message_type {
    name: "ViewSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "parent"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parent"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.ViewSnapshotRequest.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "ViewSnapshotResponse"
    field {
      name: "mounts"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mounts"
    }
  }
  message_type {
    name: "MountsRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
  }
  message_type {
    name: "MountsResponse"
    field {
      name: "mounts"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "mounts"
    }
  }
  message_type {
    name: "RemoveSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
  }
  message_type {
    name: "CommitSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "name"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "key"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
    field {
      name: "labels"
      number: 4
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.CommitSnapshotRequest.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "parent"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parent"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "StatSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
  }
  message_type {
    name: "Info"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "parent"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parent"
    }
    field {
      name: "kind"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.services.snapshots.v1.Kind"
      json_name: "kind"
    }
    field {
      name: "created_at"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "createdAt"
    }
    field {
      name: "updated_at"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "updatedAt"
    }
    field {
      name: "labels"
      number: 6
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.Info.LabelsEntry"
      json_name: "labels"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "StatSnapshotResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "UpdateSnapshotRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "info"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.Info"
      json_name: "info"
    }
    field {
      name: "update_mask"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.FieldMask"
      json_name: "updateMask"
    }
  }
  message_type {
    name: "UpdateSnapshotResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "ListSnapshotsRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "filters"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "ListSnapshotsResponse"
    field {
      name: "info"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.snapshots.v1.Info"
      json_name: "info"
    }
  }
  message_type {
    name: "UsageRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
    field {
      name: "key"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "key"
    }
  }
  message_type {
    name: "UsageResponse"
    field {
      name: "size"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "size"
    }
    field {
      name: "inodes"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "inodes"
    }
  }
  message_type {
    name: "CleanupRequest"
    field {
      name: "snapshotter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
  }
  enum_type {
    name: "Kind"
    value {
      name: "UNKNOWN"
      number: 0
    }
    value {
      name: "VIEW"
      number: 1
    }
    value {
      name: "ACTIVE"
      number: 2
    }
    value {
      name: "COMMITTED"
      number: 3
    }
  }
  service {
    name: "Snapshots"
    method {
      name: "Prepare"
      input_type: ".containerd.services.snapshots.v1.PrepareSnapshotRequest"
      output_type: ".containerd.services.snapshots.v1.PrepareSnapshotResponse"
    }
    method {
      name: "View"
      input_type: ".containerd.services.snapshots.v1.ViewSnapshotRequest"
      output_type: ".containerd.services.snapshots.v1.ViewSnapshotResponse"
    }
    method {
      name: "Mounts"
      input_type: ".containerd.services.snapshots.v1.MountsRequest"
      output_type: ".containerd.services.snapshots.v1.MountsResponse"
    }
    method {
      name: "Commit"
      input_type: ".containerd.services.snapshots.v1.CommitSnapshotRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Remove"
      input_type: ".containerd.services.snapshots.v1.RemoveSnapshotRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Stat"
      input_type: ".containerd.services.snapshots.v1.StatSnapshotRequest"
      output_type: ".containerd.services.snapshots.v1.StatSnapshotResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.snapshots.v1.UpdateSnapshotRequest"
      output_type: ".containerd.services.snapshots.v1.UpdateSnapshotResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.snapshots.v1.ListSnapshotsRequest"
      output_type: ".containerd.services.snapshots.v1.ListSnapshotsResponse"
      server_streaming: true
    }
    method {
      name: "Usage"
      input_type: ".containerd.services.snapshots.v1.UsageRequest"
      output_type: ".containerd.services.snapshots.v1.UsageResponse"
    }
    method {
      name: "Cleanup"
      input_type: ".containerd.services.snapshots.v1.CleanupRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/snapshots/v1;snapshots"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/streaming/v1/streaming.proto"
  package: "containerd.services.streaming.v1"
  dependency: "google/protobuf/any.proto"
  message_type {
    name: "StreamInit"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
  }
  service {
    name: "Streaming"
    method {
      name: "Stream"
      input_type: ".google.protobuf.Any"
      output_type: ".google.protobuf.Any"
      client_streaming: true
      server_streaming: true
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/streaming/v1;streaming"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/tasks/v1/tasks.proto"
  package: "containerd.services.tasks.v1"
  dependency: "google/protobuf/empty.proto"
  dependency: "google/protobuf/any.proto"
  dependency: "github.com/containerd/containerd/api/types/mount.proto"
  dependency: "github.com/containerd/containerd/api/types/metrics.proto"
  dependency: "github.com/containerd/containerd/api/types/descriptor.proto"
  dependency: "github.com/containerd/containerd/api/types/task/task.proto"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "CreateTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "rootfs"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Mount"
      json_name: "rootfs"
    }
    field {
      name: "stdin"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "checkpoint"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "checkpoint"
    }
    field {
      name: "options"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
    field {
      name: "runtime_path"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "runtimePath"
    }
  }
  message_type {
    name: "CreateTaskResponse"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "StartRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "StartResponse"
    field {
      name: "pid"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
  }
  message_type {
    name: "DeleteTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "DeleteResponse"
    field {
      name: "id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "id"
    }
    field {
      name: "pid"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "pid"
    }
    field {
      name: "exit_status"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  message_type {
    name: "DeleteProcessRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "GetRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "GetResponse"
    field {
      name: "process"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.v1.types.Process"
      json_name: "process"
    }
  }
  message_type {
    name: "ListTasksRequest"
    field {
      name: "filter"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "filter"
    }
  }
  message_type {
    name: "ListTasksResponse"
    field {
      name: "tasks"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.v1.types.Process"
      json_name: "tasks"
    }
  }
  message_type {
    name: "KillRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "signal"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "signal"
    }
    field {
      name: "all"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "all"
    }
  }
  message_type {
    name: "ExecProcessRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "stdin"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdin"
    }
    field {
      name: "stdout"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stdout"
    }
    field {
      name: "stderr"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stderr"
    }
    field {
      name: "terminal"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "spec"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "spec"
    }
    field {
      name: "exec_id"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "ExecProcessResponse"
  }
  message_type {
    name: "ResizePtyRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "width"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "width"
    }
    field {
      name: "height"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "height"
    }
  }
  message_type {
    name: "CloseIORequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
    field {
      name: "stdin"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "stdin"
    }
  }
  message_type {
    name: "PauseTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "ResumeTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "ListPidsRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
  }
  message_type {
    name: "ListPidsResponse"
    field {
      name: "processes"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.v1.types.ProcessInfo"
      json_name: "processes"
    }
  }
  message_type {
    name: "CheckpointTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "parent_checkpoint"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "parentCheckpoint"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "options"
    }
  }
  message_type {
    name: "CheckpointTaskResponse"
    field {
      name: "descriptors"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "descriptors"
    }
  }
  message_type {
    name: "UpdateTaskRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "resources"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "resources"
    }
    field {
      name: "annotations"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.services.tasks.v1.UpdateTaskRequest.AnnotationsEntry"
      json_name: "annotations"
    }
    nested_type {
      name: "AnnotationsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "MetricsRequest"
    field {
      name: "filters"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "filters"
    }
  }
  message_type {
    name: "MetricsResponse"
    field {
      name: "metrics"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Metric"
      json_name: "metrics"
    }
  }
  message_type {
    name: "WaitRequest"
    field {
      name: "container_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "containerId"
    }
    field {
      name: "exec_id"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  message_type {
    name: "WaitResponse"
    field {
      name: "exit_status"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "exitStatus"
    }
    field {
      name: "exited_at"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "exitedAt"
    }
  }
  service {
    name: "Tasks"
    method {
      name: "Create"
      input_type: ".containerd.services.tasks.v1.CreateTaskRequest"
      output_type: ".containerd.services.tasks.v1.CreateTaskResponse"
    }
    method {
      name: "Start"
      input_type: ".containerd.services.tasks.v1.StartRequest"
      output_type: ".containerd.services.tasks.v1.StartResponse"
    }
    method {
      name: "Delete"
      input_type: ".containerd.services.tasks.v1.DeleteTaskRequest"
      output_type: ".containerd.services.tasks.v1.DeleteResponse"
    }
    method {
      name: "DeleteProcess"
      input_type: ".containerd.services.tasks.v1.DeleteProcessRequest"
      output_type: ".containerd.services.tasks.v1.DeleteResponse"
    }
    method {
      name: "Get"
      input_type: ".containerd.services.tasks.v1.GetRequest"
      output_type: ".containerd.services.tasks.v1.GetResponse"
    }
    method {
      name: "List"
      input_type: ".containerd.services.tasks.v1.ListTasksRequest"
      output_type: ".containerd.services.tasks.v1.ListTasksResponse"
    }
    method {
      name: "Kill"
      input_type: ".containerd.services.tasks.v1.KillRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Exec"
      input_type: ".containerd.services.tasks.v1.ExecProcessRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "ResizePty"
      input_type: ".containerd.services.tasks.v1.ResizePtyRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "CloseIO"
      input_type: ".containerd.services.tasks.v1.CloseIORequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Pause"
      input_type: ".containerd.services.tasks.v1.PauseTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Resume"
      input_type: ".containerd.services.tasks.v1.ResumeTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "ListPids"
      input_type: ".containerd.services.tasks.v1.ListPidsRequest"
      output_type: ".containerd.services.tasks.v1.ListPidsResponse"
    }
    method {
      name: "Checkpoint"
      input_type: ".containerd.services.tasks.v1.CheckpointTaskRequest"
      output_type: ".containerd.services.tasks.v1.CheckpointTaskResponse"
    }
    method {
      name: "Update"
      input_type: ".containerd.services.tasks.v1.UpdateTaskRequest"
      output_type: ".google.protobuf.Empty"
    }
    method {
      name: "Metrics"
      input_type: ".containerd.services.tasks.v1.MetricsRequest"
      output_type: ".containerd.services.tasks.v1.MetricsResponse"
    }
    method {
      name: "Wait"
      input_type: ".containerd.services.tasks.v1.WaitRequest"
      output_type: ".containerd.services.tasks.v1.WaitResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/tasks/v1;tasks"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/transfer/v1/transfer.proto"
  package: "containerd.services.transfer.v1"
  dependency: "google/protobuf/any.proto"
  dependency: "google/protobuf/empty.proto"
  message_type {
    name: "TransferRequest"
    field {
      name: "source"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "source"
    }
    field {
      name: "destination"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Any"
      json_name: "destination"
    }
    field {
      name: "options"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.services.transfer.v1.TransferOptions"
      json_name: "options"
    }
  }
  message_type {
    name: "TransferOptions"
    field {
      name: "progress_stream"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "progressStream"
    }
  }
  service {
    name: "Transfer"
    method {
      name: "Transfer"
      input_type: ".containerd.services.transfer.v1.TransferRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/transfer/v1;transfer"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/ttrpc/events/v1/events.proto"
  package: "containerd.services.events.ttrpc.v1"
  dependency: "github.com/containerd/containerd/api/types/event.proto"
  dependency: "google/protobuf/empty.proto"
  message_type {
    name: "ForwardRequest"
    field {
      name: "envelope"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Envelope"
      json_name: "envelope"
    }
  }
  service {
    name: "Events"
    method {
      name: "Forward"
      input_type: ".containerd.services.events.ttrpc.v1.ForwardRequest"
      output_type: ".google.protobuf.Empty"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/ttrpc/events/v1;events"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/services/version/v1/version.proto"
  package: "containerd.services.version.v1"
  dependency: "google/protobuf/empty.proto"
  message_type {
    name: "VersionResponse"
    field {
      name: "version"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "version"
    }
    field {
      name: "revision"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "revision"
    }
  }
  service {
    name: "Version"
    method {
      name: "Version"
      input_type: ".google.protobuf.Empty"
      output_type: ".containerd.services.version.v1.VersionResponse"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/services/version/v1;version"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/runc/options/oci.proto"
  package: "containerd.runc.v1"
  message_type {
    name: "Options"
    field {
      name: "no_pivot_root"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "noPivotRoot"
    }
    field {
      name: "no_new_keyring"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "noNewKeyring"
    }
    field {
      name: "shim_cgroup"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "shimCgroup"
    }
    field {
      name: "io_uid"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "ioUid"
    }
    field {
      name: "io_gid"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "ioGid"
    }
    field {
      name: "binary_name"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "binaryName"
    }
    field {
      name: "root"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "root"
    }
    field {
      name: "systemd_cgroup"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "systemdCgroup"
    }
    field {
      name: "criu_image_path"
      number: 10
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "criuImagePath"
    }
    field {
      name: "criu_work_path"
      number: 11
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "criuWorkPath"
    }
    field {
      name: "task_api_address"
      number: 12
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "taskApiAddress"
    }
    field {
      name: "task_api_version"
      number: 13
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "taskApiVersion"
    }
    reserved_range {
      start: 8
      end: 9
    }
  }
  message_type {
    name: "CheckpointOptions"
    field {
      name: "exit"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "exit"
    }
    field {
      name: "open_tcp"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "openTcp"
    }
    field {
      name: "external_unix_sockets"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "externalUnixSockets"
    }
    field {
      name: "terminal"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "terminal"
    }
    field {
      name: "file_locks"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "fileLocks"
    }
    field {
      name: "empty_namespaces"
      number: 6
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "emptyNamespaces"
    }
    field {
      name: "cgroups_mode"
      number: 7
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "cgroupsMode"
    }
    field {
      name: "image_path"
      number: 8
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "imagePath"
    }
    field {
      name: "work_path"
      number: 9
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "workPath"
    }
  }
  message_type {
    name: "ProcessDetails"
    field {
      name: "exec_id"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "execId"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/runc/options;options"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/runtimeoptions/v1/api.proto"
  package: "runtimeoptions.v1"
  message_type {
    name: "Options"
    field {
      name: "type_url"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "typeUrl"
    }
    field {
      name: "config_path"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "configPath"
    }
    field {
      name: "config_body"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BYTES
      json_name: "configBody"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/runtimeoptions/v1;runtimeoptions"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/transfer/imagestore.proto"
  package: "containerd.types.transfer"
  dependency: "github.com/containerd/containerd/api/types/platform.proto"
  message_type {
    name: "ImageStore"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "labels"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.transfer.ImageStore.LabelsEntry"
      json_name: "labels"
    }
    field {
      name: "platforms"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platforms"
    }
    field {
      name: "all_metadata"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "allMetadata"
    }
    field {
      name: "manifest_limit"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_UINT32
      json_name: "manifestLimit"
    }
    field {
      name: "extra_references"
      number: 6
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.transfer.ImageReference"
      json_name: "extraReferences"
    }
    field {
      name: "unpacks"
      number: 10
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.transfer.UnpackConfiguration"
      json_name: "unpacks"
    }
    nested_type {
      name: "LabelsEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "UnpackConfiguration"
    field {
      name: "platform"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platform"
    }
    field {
      name: "snapshotter"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "snapshotter"
    }
  }
  message_type {
    name: "ImageReference"
    field {
      name: "name"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "is_prefix"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "isPrefix"
    }
    field {
      name: "allow_overwrite"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "allowOverwrite"
    }
    field {
      name: "add_digest"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "addDigest"
    }
    field {
      name: "skip_named_digest"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "skipNamedDigest"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/transfer"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/transfer/importexport.proto"
  package: "containerd.types.transfer"
  dependency: "github.com/containerd/containerd/api/types/platform.proto"
  message_type {
    name: "ImageImportStream"
    field {
      name: "stream"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stream"
    }
    field {
      name: "media_type"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "mediaType"
    }
    field {
      name: "force_compress"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "forceCompress"
    }
  }
  message_type {
    name: "ImageExportStream"
    field {
      name: "stream"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "stream"
    }
    field {
      name: "media_type"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "mediaType"
    }
    field {
      name: "platforms"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Platform"
      json_name: "platforms"
    }
    field {
      name: "all_platforms"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "allPlatforms"
    }
    field {
      name: "skip_compatibility_manifest"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "skipCompatibilityManifest"
    }
    field {
      name: "skip_non_distributable"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_BOOL
      json_name: "skipNonDistributable"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/transfer"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/transfer/progress.proto"
  package: "containerd.types.transfer"
  dependency: "github.com/containerd/containerd/api/types/descriptor.proto"
  message_type {
    name: "Progress"
    field {
      name: "event"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "event"
    }
    field {
      name: "name"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "name"
    }
    field {
      name: "parents"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "parents"
    }
    field {
      name: "progress"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "progress"
    }
    field {
      name: "total"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_INT64
      json_name: "total"
    }
    field {
      name: "desc"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.Descriptor"
      json_name: "desc"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/transfer"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/transfer/registry.proto"
  package: "containerd.types.transfer"
  dependency: "google/protobuf/timestamp.proto"
  message_type {
    name: "OCIRegistry"
    field {
      name: "reference"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "reference"
    }
    field {
      name: "resolver"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".containerd.types.transfer.RegistryResolver"
      json_name: "resolver"
    }
  }
  message_type {
    name: "RegistryResolver"
    field {
      name: "auth_stream"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "authStream"
    }
    field {
      name: "headers"
      number: 2
      label: LABEL_REPEATED
      type: TYPE_MESSAGE
      type_name: ".containerd.types.transfer.RegistryResolver.HeadersEntry"
      json_name: "headers"
    }
    field {
      name: "host_dir"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "hostDir"
    }
    field {
      name: "default_scheme"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "defaultScheme"
    }
    field {
      name: "http_debug"
      number: 5
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.types.transfer.HTTPDebug"
      json_name: "httpDebug"
    }
    field {
      name: "logs_stream"
      number: 6
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "logsStream"
    }
    nested_type {
      name: "HeadersEntry"
      field {
        name: "key"
        number: 1
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "key"
      }
      field {
        name: "value"
        number: 2
        label: LABEL_OPTIONAL
        type: TYPE_STRING
        json_name: "value"
      }
      options {
        map_entry: true
      }
    }
  }
  message_type {
    name: "AuthRequest"
    field {
      name: "host"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "host"
    }
    field {
      name: "reference"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "reference"
    }
    field {
      name: "wwwauthenticate"
      number: 3
      label: LABEL_REPEATED
      type: TYPE_STRING
      json_name: "wwwauthenticate"
    }
  }
  message_type {
    name: "AuthResponse"
    field {
      name: "authType"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_ENUM
      type_name: ".containerd.types.transfer.AuthType"
      json_name: "authType"
    }
    field {
      name: "secret"
      number: 2
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "secret"
    }
    field {
      name: "username"
      number: 3
      label: LABEL_OPTIONAL
      type: TYPE_STRING
      json_name: "username"
    }
    field {
      name: "expire_at"
      number: 4
      label: LABEL_OPTIONAL
      type: TYPE_MESSAGE
      type_name: ".google.protobuf.Timestamp"
      json_name: "expireAt"
    }
  }
  enum_type {
    name: "HTTPDebug"
    value {
      name: "DISABLED"
      number: 0
    }
    value {
      name: "DEBUG"
      number: 1
    }
    value {
      name: "TRACE"
      number: 2
    }
    value {
      name: "BOTH"
      number: 3
    }
  }
  enum_type {
    name: "AuthType"
    value {
      name: "NONE"
      number: 0
    }
    value {
      name: "CREDENTIALS"
      number: 1
    }
    value {
      name: "REFRESH"
      number: 2
    }
    value {
      name: "HEADER"
      number: 3
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/transfer"
  }
  syntax: "proto3"
}
file {
  name: "github.com/containerd/containerd/api/types/transfer/streaming.proto"
  package: "containerd.types.transfer"
  message_type {
    name: "Data"
    field {
      name: "data"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_BYTES
      json_name: "data"
    }
  }
  message_type {
    name: "WindowUpdate"
    field {
      name: "update"
      number: 1
      label: LABEL_OPTIONAL
      type: TYPE_INT32
      json_name: "update"
    }
  }
  options {
    go_package: "github.com/containerd/containerd/api/types/transfer"
  }
  syntax: "proto3"
}
