// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: k8s.io/api/imagepolicy/v1alpha1/generated.proto

package io.kubernetes.client.proto;

public final class V1alpha1Imagepolicy {
  private V1alpha1Imagepolicy() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ImageReviewOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.imagepolicy.v1alpha1.ImageReview)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getSpec();
    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder getSpecOrBuilder();

    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getStatus();
    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder getStatusOrBuilder();
  }
  /**
   * <pre>
   * ImageReview checks if the set of images in a pod are allowed.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReview}
   */
  public  static final class ImageReview extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReview)
      ImageReviewOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ImageReview.newBuilder() to construct.
    private ImageReview(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ImageReview() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ImageReview(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = metadata_.toBuilder();
              }
              metadata_ = input.readMessage(io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(metadata_);
                metadata_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = spec_.toBuilder();
              }
              spec_ = input.readMessage(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(spec_);
                spec_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = status_.toBuilder();
              }
              status_ = input.readMessage(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(status_);
                status_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance() : metadata_;
    }
    /**
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance() : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec spec_;
    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getSpec() {
      return spec_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance() : spec_;
    }
    /**
     * <pre>
     * Spec holds information about the pod being evaluated
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance() : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus status_;
    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getStatus() {
      return status_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance() : status_;
    }
    /**
     * <pre>
     * Status is filled in by the backend and indicates whether the pod should be allowed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder getStatusOrBuilder() {
      return status_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance() : status_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview other = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata()
            .equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec()
            .equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus()
            .equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ImageReview checks if the set of images in a pod are allowed.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReview}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReview)
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview build() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview buildPartial() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview result = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview) {
          return mergeFrom((io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview other) {
        if (other == io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ObjectMeta, io.kubernetes.client.proto.Meta.ObjectMeta.Builder, io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder> metadataBuilder_;
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance() : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              metadata_ != null &&
              metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
              io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_).mergeFrom(value).buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null ?
              io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance() : metadata_;
        }
      }
      /**
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ObjectMeta, io.kubernetes.client.proto.Meta.ObjectMeta.Builder, io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder> 
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta, io.kubernetes.client.proto.Meta.ObjectMeta.Builder, io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(),
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder> specBuilder_;
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance() : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              spec_ != null &&
              spec_ != io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance()) {
            spec_ =
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.newBuilder(spec_).mergeFrom(value).buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null ?
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance() : spec_;
        }
      }
      /**
       * <pre>
       * Spec holds information about the pod being evaluated
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder> 
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder>(
                  getSpec(),
                  getParentForChildren(),
                  isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder> statusBuilder_;
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              status_ != null &&
              status_ != io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance()) {
            status_ =
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.newBuilder(status_).mergeFrom(value).buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance() : status_;
        }
      }
      /**
       * <pre>
       * Status is filled in by the backend and indicates whether the pod should be allowed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder> 
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReview)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReview)
    private static final io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview();
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ImageReview>
        PARSER = new com.google.protobuf.AbstractParser<ImageReview>() {
      public ImageReview parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ImageReview(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ImageReview> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ImageReview> getParserForType() {
      return PARSER;
    }

    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReview getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ImageReviewContainerSpecOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    boolean hasImage();
    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    java.lang.String getImage();
    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    com.google.protobuf.ByteString
        getImageBytes();
  }
  /**
   * <pre>
   * ImageReviewContainerSpec is a description of a container within the pod creation request.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec}
   */
  public  static final class ImageReviewContainerSpec extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec)
      ImageReviewContainerSpecOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ImageReviewContainerSpec.newBuilder() to construct.
    private ImageReviewContainerSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ImageReviewContainerSpec() {
      image_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ImageReviewContainerSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              image_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder.class);
    }

    private int bitField0_;
    public static final int IMAGE_FIELD_NUMBER = 1;
    private volatile java.lang.Object image_;
    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    public boolean hasImage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    public java.lang.String getImage() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          image_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
     * +optional
     * </pre>
     *
     * <code>optional string image = 1;</code>
     */
    public com.google.protobuf.ByteString
        getImageBytes() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        image_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, image_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, image_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec other = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec) obj;

      boolean result = true;
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage()
            .equals(other.getImage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ImageReviewContainerSpec is a description of a container within the pod creation request.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec)
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        image_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec build() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec buildPartial() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec result = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.image_ = image_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec other) {
        if (other == io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.getDefaultInstance()) return this;
        if (other.hasImage()) {
          bitField0_ |= 0x00000001;
          image_ = other.image_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object image_ = "";
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public java.lang.String getImage() {
        java.lang.Object ref = image_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            image_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public com.google.protobuf.ByteString
          getImageBytes() {
        java.lang.Object ref = image_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          image_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public Builder setImage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        image_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        image_ = getDefaultInstance().getImage();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This can be in the form image:tag or image&#64;SHA:012345679abcdef.
       * +optional
       * </pre>
       *
       * <code>optional string image = 1;</code>
       */
      public Builder setImageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        image_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec)
    private static final io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec();
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ImageReviewContainerSpec>
        PARSER = new com.google.protobuf.AbstractParser<ImageReviewContainerSpec>() {
      public ImageReviewContainerSpec parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ImageReviewContainerSpec(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ImageReviewContainerSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ImageReviewContainerSpec> getParserForType() {
      return PARSER;
    }

    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ImageReviewSpecOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> 
        getContainersList();
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getContainers(int index);
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    int getContainersCount();
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder> 
        getContainersOrBuilderList();
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder getContainersOrBuilder(
        int index);

    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */
    int getAnnotationsCount();
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */
    boolean containsAnnotations(
        java.lang.String key);
    /**
     * Use {@link #getAnnotationsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAnnotations();
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAnnotationsMap();
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    java.lang.String getAnnotationsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    java.lang.String getAnnotationsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    boolean hasNamespace();
    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    java.lang.String getNamespace();
    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    com.google.protobuf.ByteString
        getNamespaceBytes();
  }
  /**
   * <pre>
   * ImageReviewSpec is a description of the pod creation request.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec}
   */
  public  static final class ImageReviewSpec extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec)
      ImageReviewSpecOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ImageReviewSpec.newBuilder() to construct.
    private ImageReviewSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ImageReviewSpec() {
      containers_ = java.util.Collections.emptyList();
      namespace_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ImageReviewSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                containers_ = new java.util.ArrayList<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec>();
                mutable_bitField0_ |= 0x00000001;
              }
              containers_.add(
                  input.readMessage(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                annotations_ = com.google.protobuf.MapField.newMapField(
                    AnnotationsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000002;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              annotations__ = input.readMessage(
                  AnnotationsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              annotations_.getMutableMap().put(
                  annotations__.getKey(), annotations__.getValue());
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              namespace_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          containers_ = java.util.Collections.unmodifiableList(containers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetAnnotations();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder.class);
    }

    private int bitField0_;
    public static final int CONTAINERS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> containers_;
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> getContainersList() {
      return containers_;
    }
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder> 
        getContainersOrBuilderList() {
      return containers_;
    }
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    public int getContainersCount() {
      return containers_.size();
    }
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getContainers(int index) {
      return containers_.get(index);
    }
    /**
     * <pre>
     * Containers is a list of a subset of the information in each container of the Pod being created.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
     */
    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder getContainersOrBuilder(
        int index) {
      return containers_.get(index);
    }

    public static final int ANNOTATIONS_FIELD_NUMBER = 2;
    private static final class AnnotationsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> annotations_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAnnotations() {
      if (annotations_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AnnotationsDefaultEntryHolder.defaultEntry);
      }
      return annotations_;
    }

    public int getAnnotationsCount() {
      return internalGetAnnotations().getMap().size();
    }
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    public boolean containsAnnotations(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAnnotations().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAnnotationsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
      return getAnnotationsMap();
    }
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
      return internalGetAnnotations().getMap();
    }
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    public java.lang.String getAnnotationsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAnnotations().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Annotations is a list of key-value pairs extracted from the Pod's annotations.
     * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
     * It is up to each webhook backend to determine how to interpret these annotations, if at all.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 2;</code>
     */

    public java.lang.String getAnnotationsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAnnotations().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int NAMESPACE_FIELD_NUMBER = 3;
    private volatile java.lang.Object namespace_;
    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    public java.lang.String getNamespace() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          namespace_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Namespace is the namespace the pod is being created in.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    public com.google.protobuf.ByteString
        getNamespaceBytes() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        namespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < containers_.size(); i++) {
        output.writeMessage(1, containers_.get(i));
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAnnotations(),
          AnnotationsDefaultEntryHolder.defaultEntry,
          2);
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, namespace_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < containers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, containers_.get(i));
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAnnotations().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        annotations__ = AnnotationsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, annotations__);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, namespace_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec other = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec) obj;

      boolean result = true;
      result = result && getContainersList()
          .equals(other.getContainersList());
      result = result && internalGetAnnotations().equals(
          other.internalGetAnnotations());
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace()
            .equals(other.getNamespace());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getContainersCount() > 0) {
        hash = (37 * hash) + CONTAINERS_FIELD_NUMBER;
        hash = (53 * hash) + getContainersList().hashCode();
      }
      if (!internalGetAnnotations().getMap().isEmpty()) {
        hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAnnotations().hashCode();
      }
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ImageReviewSpec is a description of the pod creation request.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec)
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetAnnotations();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetMutableAnnotations();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getContainersFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (containersBuilder_ == null) {
          containers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          containersBuilder_.clear();
        }
        internalGetMutableAnnotations().clear();
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec build() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec buildPartial() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec result = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (containersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            containers_ = java.util.Collections.unmodifiableList(containers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.containers_ = containers_;
        } else {
          result.containers_ = containersBuilder_.build();
        }
        result.annotations_ = internalGetAnnotations();
        result.annotations_.makeImmutable();
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.namespace_ = namespace_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec other) {
        if (other == io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec.getDefaultInstance()) return this;
        if (containersBuilder_ == null) {
          if (!other.containers_.isEmpty()) {
            if (containers_.isEmpty()) {
              containers_ = other.containers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureContainersIsMutable();
              containers_.addAll(other.containers_);
            }
            onChanged();
          }
        } else {
          if (!other.containers_.isEmpty()) {
            if (containersBuilder_.isEmpty()) {
              containersBuilder_.dispose();
              containersBuilder_ = null;
              containers_ = other.containers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              containersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getContainersFieldBuilder() : null;
            } else {
              containersBuilder_.addAllMessages(other.containers_);
            }
          }
        }
        internalGetMutableAnnotations().mergeFrom(
            other.internalGetAnnotations());
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000004;
          namespace_ = other.namespace_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> containers_ =
        java.util.Collections.emptyList();
      private void ensureContainersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          containers_ = new java.util.ArrayList<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec>(containers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder> containersBuilder_;

      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> getContainersList() {
        if (containersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(containers_);
        } else {
          return containersBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public int getContainersCount() {
        if (containersBuilder_ == null) {
          return containers_.size();
        } else {
          return containersBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec getContainers(int index) {
        if (containersBuilder_ == null) {
          return containers_.get(index);
        } else {
          return containersBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder setContainers(
          int index, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.set(index, value);
          onChanged();
        } else {
          containersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder setContainers(
          int index, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.set(index, builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder addContainers(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.add(value);
          onChanged();
        } else {
          containersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder addContainers(
          int index, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.add(index, value);
          onChanged();
        } else {
          containersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder addContainers(
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.add(builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder addContainers(
          int index, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.add(index, builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder addAllContainers(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec> values) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, containers_);
          onChanged();
        } else {
          containersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder clearContainers() {
        if (containersBuilder_ == null) {
          containers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          containersBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public Builder removeContainers(int index) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.remove(index);
          onChanged();
        } else {
          containersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder getContainersBuilder(
          int index) {
        return getContainersFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder getContainersOrBuilder(
          int index) {
        if (containersBuilder_ == null) {
          return containers_.get(index);  } else {
          return containersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder> 
           getContainersOrBuilderList() {
        if (containersBuilder_ != null) {
          return containersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(containers_);
        }
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder addContainersBuilder() {
        return getContainersFieldBuilder().addBuilder(
            io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.getDefaultInstance());
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder addContainersBuilder(
          int index) {
        return getContainersFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.getDefaultInstance());
      }
      /**
       * <pre>
       * Containers is a list of a subset of the information in each container of the Pod being created.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec containers = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder> 
           getContainersBuilderList() {
        return getContainersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder> 
          getContainersFieldBuilder() {
        if (containersBuilder_ == null) {
          containersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpec.Builder, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewContainerSpecOrBuilder>(
                  containers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          containers_ = null;
        }
        return containersBuilder_;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> annotations_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetAnnotations() {
        if (annotations_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AnnotationsDefaultEntryHolder.defaultEntry);
        }
        return annotations_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableAnnotations() {
        onChanged();;
        if (annotations_ == null) {
          annotations_ = com.google.protobuf.MapField.newMapField(
              AnnotationsDefaultEntryHolder.defaultEntry);
        }
        if (!annotations_.isMutable()) {
          annotations_ = annotations_.copy();
        }
        return annotations_;
      }

      public int getAnnotationsCount() {
        return internalGetAnnotations().getMap().size();
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public boolean containsAnnotations(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAnnotations().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAnnotationsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
        return getAnnotationsMap();
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
        return internalGetAnnotations().getMap();
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public java.lang.String getAnnotationsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAnnotations().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public java.lang.String getAnnotationsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAnnotations().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearAnnotations() {
        internalGetMutableAnnotations().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public Builder removeAnnotations(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAnnotations().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableAnnotations() {
        return internalGetMutableAnnotations().getMutableMap();
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */
      public Builder putAnnotations(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAnnotations().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Annotations is a list of key-value pairs extracted from the Pod's annotations.
       * It only includes keys which match the pattern `*.image-policy.k8s.io/&#42;`.
       * It is up to each webhook backend to determine how to interpret these annotations, if at all.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 2;</code>
       */

      public Builder putAllAnnotations(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAnnotations().getMutableMap()
            .putAll(values);
        return this;
      }

      private java.lang.Object namespace_ = "";
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public com.google.protobuf.ByteString
          getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder setNamespace(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000004);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Namespace is the namespace the pod is being created in.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder setNamespaceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        namespace_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec)
    private static final io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec();
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ImageReviewSpec>
        PARSER = new com.google.protobuf.AbstractParser<ImageReviewSpec>() {
      public ImageReviewSpec parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ImageReviewSpec(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ImageReviewSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ImageReviewSpec> getParserForType() {
      return PARSER;
    }

    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ImageReviewStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Allowed indicates that all images were allowed to be run.
     * </pre>
     *
     * <code>optional bool allowed = 1;</code>
     */
    boolean hasAllowed();
    /**
     * <pre>
     * Allowed indicates that all images were allowed to be run.
     * </pre>
     *
     * <code>optional bool allowed = 1;</code>
     */
    boolean getAllowed();

    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    boolean hasReason();
    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    java.lang.String getReason();
    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    com.google.protobuf.ByteString
        getReasonBytes();
  }
  /**
   * <pre>
   * ImageReviewStatus is the result of the token authentication request.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus}
   */
  public  static final class ImageReviewStatus extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus)
      ImageReviewStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ImageReviewStatus.newBuilder() to construct.
    private ImageReviewStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ImageReviewStatus() {
      allowed_ = false;
      reason_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ImageReviewStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              allowed_ = input.readBool();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              reason_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder.class);
    }

    private int bitField0_;
    public static final int ALLOWED_FIELD_NUMBER = 1;
    private boolean allowed_;
    /**
     * <pre>
     * Allowed indicates that all images were allowed to be run.
     * </pre>
     *
     * <code>optional bool allowed = 1;</code>
     */
    public boolean hasAllowed() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Allowed indicates that all images were allowed to be run.
     * </pre>
     *
     * <code>optional bool allowed = 1;</code>
     */
    public boolean getAllowed() {
      return allowed_;
    }

    public static final int REASON_FIELD_NUMBER = 2;
    private volatile java.lang.Object reason_;
    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Reason should be empty unless Allowed is false in which case it
     * may contain a short description of what is wrong.  Kubernetes
     * may truncate excessively long errors when displaying to the user.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 2;</code>
     */
    public com.google.protobuf.ByteString
        getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, allowed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, reason_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, allowed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, reason_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus other = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus) obj;

      boolean result = true;
      result = result && (hasAllowed() == other.hasAllowed());
      if (hasAllowed()) {
        result = result && (getAllowed()
            == other.getAllowed());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason()
            .equals(other.getReason());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAllowed()) {
        hash = (37 * hash) + ALLOWED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAllowed());
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ImageReviewStatus is the result of the token authentication request.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus)
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.class, io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        allowed_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus build() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus buildPartial() {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus result = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.allowed_ = allowed_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reason_ = reason_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus other) {
        if (other == io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus.getDefaultInstance()) return this;
        if (other.hasAllowed()) {
          setAllowed(other.getAllowed());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000002;
          reason_ = other.reason_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean allowed_ ;
      /**
       * <pre>
       * Allowed indicates that all images were allowed to be run.
       * </pre>
       *
       * <code>optional bool allowed = 1;</code>
       */
      public boolean hasAllowed() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Allowed indicates that all images were allowed to be run.
       * </pre>
       *
       * <code>optional bool allowed = 1;</code>
       */
      public boolean getAllowed() {
        return allowed_;
      }
      /**
       * <pre>
       * Allowed indicates that all images were allowed to be run.
       * </pre>
       *
       * <code>optional bool allowed = 1;</code>
       */
      public Builder setAllowed(boolean value) {
        bitField0_ |= 0x00000001;
        allowed_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Allowed indicates that all images were allowed to be run.
       * </pre>
       *
       * <code>optional bool allowed = 1;</code>
       */
      public Builder clearAllowed() {
        bitField0_ = (bitField0_ & ~0x00000001);
        allowed_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public com.google.protobuf.ByteString
          getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public Builder setReason(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Reason should be empty unless Allowed is false in which case it
       * may contain a short description of what is wrong.  Kubernetes
       * may truncate excessively long errors when displaying to the user.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 2;</code>
       */
      public Builder setReasonBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        reason_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus)
    private static final io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus();
    }

    public static io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ImageReviewStatus>
        PARSER = new com.google.protobuf.AbstractParser<ImageReviewStatus>() {
      public ImageReviewStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ImageReviewStatus(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ImageReviewStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ImageReviewStatus> getParserForType() {
      return PARSER;
    }

    public io.kubernetes.client.proto.V1alpha1Imagepolicy.ImageReviewStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n/k8s.io/api/imagepolicy/v1alpha1/genera" +
      "ted.proto\022\037k8s.io.api.imagepolicy.v1alph" +
      "a1\0324k8s.io/apimachinery/pkg/apis/meta/v1" +
      "/generated.proto\032/k8s.io/apimachinery/pk" +
      "g/runtime/generated.proto\0326k8s.io/apimac" +
      "hinery/pkg/runtime/schema/generated.prot" +
      "o\0323k8s.io/apimachinery/pkg/util/intstr/g" +
      "enerated.proto\"\325\001\n\013ImageReview\022B\n\010metada" +
      "ta\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis." +
      "meta.v1.ObjectMeta\022>\n\004spec\030\002 \001(\01320.k8s.i",
      "o.api.imagepolicy.v1alpha1.ImageReviewSp" +
      "ec\022B\n\006status\030\003 \001(\01322.k8s.io.api.imagepol" +
      "icy.v1alpha1.ImageReviewStatus\")\n\030ImageR" +
      "eviewContainerSpec\022\r\n\005image\030\001 \001(\t\"\377\001\n\017Im" +
      "ageReviewSpec\022M\n\ncontainers\030\001 \003(\01329.k8s." +
      "io.api.imagepolicy.v1alpha1.ImageReviewC" +
      "ontainerSpec\022V\n\013annotations\030\002 \003(\0132A.k8s." +
      "io.api.imagepolicy.v1alpha1.ImageReviewS" +
      "pec.AnnotationsEntry\022\021\n\tnamespace\030\003 \001(\t\032" +
      "2\n\020AnnotationsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005valu",
      "e\030\002 \001(\t:\0028\001\"4\n\021ImageReviewStatus\022\017\n\007allo" +
      "wed\030\001 \001(\010\022\016\n\006reason\030\002 \001(\tB;\n\032io.kubernet" +
      "es.client.protoB\023V1alpha1ImagepolicyZ\010v1" +
      "alpha1"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.kubernetes.client.proto.Meta.getDescriptor(),
          io.kubernetes.client.proto.Runtime.getDescriptor(),
          io.kubernetes.client.proto.RuntimeSchema.getDescriptor(),
          io.kubernetes.client.proto.IntStr.getDescriptor(),
        }, assigner);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReview_descriptor,
        new java.lang.String[] { "Metadata", "Spec", "Status", });
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewContainerSpec_descriptor,
        new java.lang.String[] { "Image", });
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor,
        new java.lang.String[] { "Containers", "Annotations", "Namespace", });
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_descriptor =
      internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewSpec_AnnotationsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_imagepolicy_v1alpha1_ImageReviewStatus_descriptor,
        new java.lang.String[] { "Allowed", "Reason", });
    io.kubernetes.client.proto.Meta.getDescriptor();
    io.kubernetes.client.proto.Runtime.getDescriptor();
    io.kubernetes.client.proto.RuntimeSchema.getDescriptor();
    io.kubernetes.client.proto.IntStr.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
