// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: mlflow_artifacts.proto

package org.mlflow.api.proto;

public final class MlflowArtifacts {
  private MlflowArtifacts() {}
  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 DownloadArtifactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mlflow.artifacts.DownloadArtifact)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mlflow.artifacts.DownloadArtifact}
   */
  public static final class DownloadArtifact extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:mlflow.artifacts.DownloadArtifact)
      DownloadArtifactOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DownloadArtifact.newBuilder() to construct.
    private DownloadArtifact(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DownloadArtifact() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DownloadArtifact();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DownloadArtifact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            }
          }
        }
      } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.class, org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Builder.class);
    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:mlflow.artifacts.DownloadArtifact.Response)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code mlflow.artifacts.DownloadArtifact.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:mlflow.artifacts.DownloadArtifact.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Response(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              }
            }
          }
        } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response)) {
          return super.equals(obj);
        }
        org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response other = (org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response) obj;

        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

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

      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      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;
      }
      /**
       * Protobuf type {@code mlflow.artifacts.DownloadArtifact.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:mlflow.artifacts.DownloadArtifact.Response)
          org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.Builder.class);
        }

        // Construct using org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response getDefaultInstanceForType() {
          return org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.getDefaultInstance();
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response build() {
          org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response buildPartial() {
          org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response result = new org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response) {
            return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response other) {
          if (other == org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:mlflow.artifacts.DownloadArtifact.Response)
      }

      // @@protoc_insertion_point(class_scope:mlflow.artifacts.DownloadArtifact.Response)
      private static final org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response();
      }

      public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact)) {
        return super.equals(obj);
      }
      org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact other = (org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact 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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact 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 org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * Protobuf type {@code mlflow.artifacts.DownloadArtifact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mlflow.artifacts.DownloadArtifact)
        org.mlflow.api.proto.MlflowArtifacts.DownloadArtifactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.class, org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.Builder.class);
      }

      // Construct using org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DownloadArtifact_descriptor;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact getDefaultInstanceForType() {
        return org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.getDefaultInstance();
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact build() {
        org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact buildPartial() {
        org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact result = new org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact) {
          return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact other) {
        if (other == org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:mlflow.artifacts.DownloadArtifact)
    }

    // @@protoc_insertion_point(class_scope:mlflow.artifacts.DownloadArtifact)
    private static final org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact();
    }

    public static org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.mlflow.api.proto.MlflowArtifacts.DownloadArtifact getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UploadArtifactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mlflow.artifacts.UploadArtifact)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mlflow.artifacts.UploadArtifact}
   */
  public static final class UploadArtifact extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:mlflow.artifacts.UploadArtifact)
      UploadArtifactOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UploadArtifact.newBuilder() to construct.
    private UploadArtifact(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UploadArtifact() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UploadArtifact();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UploadArtifact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            }
          }
        }
      } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.class, org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Builder.class);
    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:mlflow.artifacts.UploadArtifact.Response)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code mlflow.artifacts.UploadArtifact.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:mlflow.artifacts.UploadArtifact.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Response(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              }
            }
          }
        } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response)) {
          return super.equals(obj);
        }
        org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response other = (org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response) obj;

        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

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

      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      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;
      }
      /**
       * Protobuf type {@code mlflow.artifacts.UploadArtifact.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:mlflow.artifacts.UploadArtifact.Response)
          org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.Builder.class);
        }

        // Construct using org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response getDefaultInstanceForType() {
          return org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.getDefaultInstance();
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response build() {
          org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response buildPartial() {
          org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response result = new org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response) {
            return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response other) {
          if (other == org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:mlflow.artifacts.UploadArtifact.Response)
      }

      // @@protoc_insertion_point(class_scope:mlflow.artifacts.UploadArtifact.Response)
      private static final org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response();
      }

      public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact)) {
        return super.equals(obj);
      }
      org.mlflow.api.proto.MlflowArtifacts.UploadArtifact other = (org.mlflow.api.proto.MlflowArtifacts.UploadArtifact) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact 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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact 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 org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.UploadArtifact prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * Protobuf type {@code mlflow.artifacts.UploadArtifact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mlflow.artifacts.UploadArtifact)
        org.mlflow.api.proto.MlflowArtifacts.UploadArtifactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.class, org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.Builder.class);
      }

      // Construct using org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_UploadArtifact_descriptor;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact getDefaultInstanceForType() {
        return org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.getDefaultInstance();
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact build() {
        org.mlflow.api.proto.MlflowArtifacts.UploadArtifact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact buildPartial() {
        org.mlflow.api.proto.MlflowArtifacts.UploadArtifact result = new org.mlflow.api.proto.MlflowArtifacts.UploadArtifact(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.mlflow.api.proto.MlflowArtifacts.UploadArtifact) {
          return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.UploadArtifact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.UploadArtifact other) {
        if (other == org.mlflow.api.proto.MlflowArtifacts.UploadArtifact.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.mlflow.api.proto.MlflowArtifacts.UploadArtifact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.UploadArtifact) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:mlflow.artifacts.UploadArtifact)
    }

    // @@protoc_insertion_point(class_scope:mlflow.artifacts.UploadArtifact)
    private static final org.mlflow.api.proto.MlflowArtifacts.UploadArtifact DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.UploadArtifact();
    }

    public static org.mlflow.api.proto.MlflowArtifacts.UploadArtifact getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.mlflow.api.proto.MlflowArtifacts.UploadArtifact getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListArtifactsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mlflow.artifacts.ListArtifacts)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return Whether the path field is set.
     */
    boolean hasPath();
    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The path.
     */
    java.lang.String getPath();
    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The bytes for path.
     */
    com.google.protobuf.ByteString
        getPathBytes();
  }
  /**
   * Protobuf type {@code mlflow.artifacts.ListArtifacts}
   */
  public static final class ListArtifacts extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:mlflow.artifacts.ListArtifacts)
      ListArtifactsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListArtifacts.newBuilder() to construct.
    private ListArtifacts(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListArtifacts() {
      path_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListArtifacts();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListArtifacts(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.class, org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Builder.class);
    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:mlflow.artifacts.ListArtifacts.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo> 
          getFilesList();
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      org.mlflow.api.proto.MlflowArtifacts.FileInfo getFiles(int index);
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      int getFilesCount();
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      java.util.List<? extends org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder> 
          getFilesOrBuilderList();
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder getFilesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code mlflow.artifacts.ListArtifacts.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:mlflow.artifacts.ListArtifacts.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
        files_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Response(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  files_ = new java.util.ArrayList<org.mlflow.api.proto.MlflowArtifacts.FileInfo>();
                  mutable_bitField0_ |= 0x00000001;
                }
                files_.add(
                    input.readMessage(org.mlflow.api.proto.MlflowArtifacts.FileInfo.PARSER, extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                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) != 0)) {
            files_ = java.util.Collections.unmodifiableList(files_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.class, org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.Builder.class);
      }

      public static final int FILES_FIELD_NUMBER = 1;
      private java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo> files_;
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      @java.lang.Override
      public java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo> getFilesList() {
        return files_;
      }
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder> 
          getFilesOrBuilderList() {
        return files_;
      }
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      @java.lang.Override
      public int getFilesCount() {
        return files_.size();
      }
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.FileInfo getFiles(int index) {
        return files_.get(index);
      }
      /**
       * <pre>
       * File location and metadata for artifacts.
       * </pre>
       *
       * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
       */
      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder getFilesOrBuilder(
          int index) {
        return files_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < files_.size(); i++) {
          output.writeMessage(1, files_.get(i));
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        for (int i = 0; i < files_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, files_.get(i));
        }
        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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response)) {
          return super.equals(obj);
        }
        org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response other = (org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response) obj;

        if (!getFilesList()
            .equals(other.getFilesList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

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

      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response 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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response 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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      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;
      }
      /**
       * Protobuf type {@code mlflow.artifacts.ListArtifacts.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:mlflow.artifacts.ListArtifacts.Response)
          org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.class, org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.Builder.class);
        }

        // Construct using org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getFilesFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (filesBuilder_ == null) {
            files_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            filesBuilder_.clear();
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response getDefaultInstanceForType() {
          return org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.getDefaultInstance();
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response build() {
          org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response buildPartial() {
          org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response result = new org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response(this);
          int from_bitField0_ = bitField0_;
          if (filesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              files_ = java.util.Collections.unmodifiableList(files_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.files_ = files_;
          } else {
            result.files_ = filesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response) {
            return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response other) {
          if (other == org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response.getDefaultInstance()) return this;
          if (filesBuilder_ == null) {
            if (!other.files_.isEmpty()) {
              if (files_.isEmpty()) {
                files_ = other.files_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureFilesIsMutable();
                files_.addAll(other.files_);
              }
              onChanged();
            }
          } else {
            if (!other.files_.isEmpty()) {
              if (filesBuilder_.isEmpty()) {
                filesBuilder_.dispose();
                filesBuilder_ = null;
                files_ = other.files_;
                bitField0_ = (bitField0_ & ~0x00000001);
                filesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getFilesFieldBuilder() : null;
              } else {
                filesBuilder_.addAllMessages(other.files_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo> files_ =
          java.util.Collections.emptyList();
        private void ensureFilesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            files_ = new java.util.ArrayList<org.mlflow.api.proto.MlflowArtifacts.FileInfo>(files_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            org.mlflow.api.proto.MlflowArtifacts.FileInfo, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder, org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder> filesBuilder_;

        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo> getFilesList() {
          if (filesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(files_);
          } else {
            return filesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public int getFilesCount() {
          if (filesBuilder_ == null) {
            return files_.size();
          } else {
            return filesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public org.mlflow.api.proto.MlflowArtifacts.FileInfo getFiles(int index) {
          if (filesBuilder_ == null) {
            return files_.get(index);
          } else {
            return filesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder setFiles(
            int index, org.mlflow.api.proto.MlflowArtifacts.FileInfo value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.set(index, value);
            onChanged();
          } else {
            filesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder setFiles(
            int index, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.set(index, builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder addFiles(org.mlflow.api.proto.MlflowArtifacts.FileInfo value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.add(value);
            onChanged();
          } else {
            filesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder addFiles(
            int index, org.mlflow.api.proto.MlflowArtifacts.FileInfo value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.add(index, value);
            onChanged();
          } else {
            filesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder addFiles(
            org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.add(builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder addFiles(
            int index, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.add(index, builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder addAllFiles(
            java.lang.Iterable<? extends org.mlflow.api.proto.MlflowArtifacts.FileInfo> values) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, files_);
            onChanged();
          } else {
            filesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder clearFiles() {
          if (filesBuilder_ == null) {
            files_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            filesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public Builder removeFiles(int index) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.remove(index);
            onChanged();
          } else {
            filesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder getFilesBuilder(
            int index) {
          return getFilesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder getFilesOrBuilder(
            int index) {
          if (filesBuilder_ == null) {
            return files_.get(index);  } else {
            return filesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public java.util.List<? extends org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder> 
             getFilesOrBuilderList() {
          if (filesBuilder_ != null) {
            return filesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(files_);
          }
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder addFilesBuilder() {
          return getFilesFieldBuilder().addBuilder(
              org.mlflow.api.proto.MlflowArtifacts.FileInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder addFilesBuilder(
            int index) {
          return getFilesFieldBuilder().addBuilder(
              index, org.mlflow.api.proto.MlflowArtifacts.FileInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * File location and metadata for artifacts.
         * </pre>
         *
         * <code>repeated .mlflow.artifacts.FileInfo files = 1;</code>
         */
        public java.util.List<org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder> 
             getFilesBuilderList() {
          return getFilesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            org.mlflow.api.proto.MlflowArtifacts.FileInfo, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder, org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder> 
            getFilesFieldBuilder() {
          if (filesBuilder_ == null) {
            filesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                org.mlflow.api.proto.MlflowArtifacts.FileInfo, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder, org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder>(
                    files_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            files_ = null;
          }
          return filesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:mlflow.artifacts.ListArtifacts.Response)
      }

      // @@protoc_insertion_point(class_scope:mlflow.artifacts.ListArtifacts.Response)
      private static final org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response();
      }

      public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return Whether the path field is set.
     */
    @java.lang.Override
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The path.
     */
    @java.lang.Override
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      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()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Filter artifacts matching this path (a relative path from the root artifact directory).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The bytes for path.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts)) {
        return super.equals(obj);
      }
      org.mlflow.api.proto.MlflowArtifacts.ListArtifacts other = (org.mlflow.api.proto.MlflowArtifacts.ListArtifacts) obj;

      if (hasPath() != other.hasPath()) return false;
      if (hasPath()) {
        if (!getPath()
            .equals(other.getPath())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts 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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts 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 org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.ListArtifacts prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * Protobuf type {@code mlflow.artifacts.ListArtifacts}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mlflow.artifacts.ListArtifacts)
        org.mlflow.api.proto.MlflowArtifacts.ListArtifactsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.class, org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.Builder.class);
      }

      // Construct using org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_ListArtifacts_descriptor;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts getDefaultInstanceForType() {
        return org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.getDefaultInstance();
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts build() {
        org.mlflow.api.proto.MlflowArtifacts.ListArtifacts result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts buildPartial() {
        org.mlflow.api.proto.MlflowArtifacts.ListArtifacts result = new org.mlflow.api.proto.MlflowArtifacts.ListArtifacts(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.mlflow.api.proto.MlflowArtifacts.ListArtifacts) {
          return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.ListArtifacts)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.ListArtifacts other) {
        if (other == org.mlflow.api.proto.MlflowArtifacts.ListArtifacts.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.mlflow.api.proto.MlflowArtifacts.ListArtifacts parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.ListArtifacts) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return Whether the path field is set.
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return The path.
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        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()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return The bytes for path.
       */
      public com.google.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @param value The path to set.
       * @return This builder for chaining.
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Filter artifacts matching this path (a relative path from the root artifact directory).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @param value The bytes for path to set.
       * @return This builder for chaining.
       */
      public Builder setPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:mlflow.artifacts.ListArtifacts)
    }

    // @@protoc_insertion_point(class_scope:mlflow.artifacts.ListArtifacts)
    private static final org.mlflow.api.proto.MlflowArtifacts.ListArtifacts DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.ListArtifacts();
    }

    public static org.mlflow.api.proto.MlflowArtifacts.ListArtifacts getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.mlflow.api.proto.MlflowArtifacts.ListArtifacts getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteArtifactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mlflow.artifacts.DeleteArtifact)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mlflow.artifacts.DeleteArtifact}
   */
  public static final class DeleteArtifact extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:mlflow.artifacts.DeleteArtifact)
      DeleteArtifactOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteArtifact.newBuilder() to construct.
    private DeleteArtifact(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteArtifact() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteArtifact();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteArtifact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            }
          }
        }
      } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.class, org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Builder.class);
    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:mlflow.artifacts.DeleteArtifact.Response)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code mlflow.artifacts.DeleteArtifact.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:mlflow.artifacts.DeleteArtifact.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Response(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              }
            }
          }
        } 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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response)) {
          return super.equals(obj);
        }
        org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response other = (org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response) obj;

        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

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

      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response 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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      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;
      }
      /**
       * Protobuf type {@code mlflow.artifacts.DeleteArtifact.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:mlflow.artifacts.DeleteArtifact.Response)
          org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.class, org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.Builder.class);
        }

        // Construct using org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response getDefaultInstanceForType() {
          return org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.getDefaultInstance();
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response build() {
          org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response buildPartial() {
          org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response result = new org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response) {
            return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response other) {
          if (other == org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:mlflow.artifacts.DeleteArtifact.Response)
      }

      // @@protoc_insertion_point(class_scope:mlflow.artifacts.DeleteArtifact.Response)
      private static final org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response();
      }

      public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact)) {
        return super.equals(obj);
      }
      org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact other = (org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact 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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact 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 org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * Protobuf type {@code mlflow.artifacts.DeleteArtifact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mlflow.artifacts.DeleteArtifact)
        org.mlflow.api.proto.MlflowArtifacts.DeleteArtifactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.class, org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.Builder.class);
      }

      // Construct using org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_DeleteArtifact_descriptor;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact getDefaultInstanceForType() {
        return org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.getDefaultInstance();
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact build() {
        org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact buildPartial() {
        org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact result = new org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact) {
          return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact other) {
        if (other == org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:mlflow.artifacts.DeleteArtifact)
    }

    // @@protoc_insertion_point(class_scope:mlflow.artifacts.DeleteArtifact)
    private static final org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact();
    }

    public static org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.mlflow.api.proto.MlflowArtifacts.DeleteArtifact getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FileInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mlflow.artifacts.FileInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return Whether the path field is set.
     */
    boolean hasPath();
    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The path.
     */
    java.lang.String getPath();
    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The bytes for path.
     */
    com.google.protobuf.ByteString
        getPathBytes();

    /**
     * <pre>
     * Whether the path is a directory.
     * </pre>
     *
     * <code>optional bool is_dir = 2;</code>
     * @return Whether the isDir field is set.
     */
    boolean hasIsDir();
    /**
     * <pre>
     * Whether the path is a directory.
     * </pre>
     *
     * <code>optional bool is_dir = 2;</code>
     * @return The isDir.
     */
    boolean getIsDir();

    /**
     * <pre>
     * Size in bytes. Unset for directories.
     * </pre>
     *
     * <code>optional int64 file_size = 3;</code>
     * @return Whether the fileSize field is set.
     */
    boolean hasFileSize();
    /**
     * <pre>
     * Size in bytes. Unset for directories.
     * </pre>
     *
     * <code>optional int64 file_size = 3;</code>
     * @return The fileSize.
     */
    long getFileSize();
  }
  /**
   * Protobuf type {@code mlflow.artifacts.FileInfo}
   */
  public static final class FileInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:mlflow.artifacts.FileInfo)
      FileInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FileInfo.newBuilder() to construct.
    private FileInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FileInfo() {
      path_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FileInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FileInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              isDir_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              fileSize_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_FileInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_FileInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.mlflow.api.proto.MlflowArtifacts.FileInfo.class, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return Whether the path field is set.
     */
    @java.lang.Override
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The path.
     */
    @java.lang.Override
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      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()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Path relative to the root artifact directory run.
     * </pre>
     *
     * <code>optional string path = 1;</code>
     * @return The bytes for path.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_DIR_FIELD_NUMBER = 2;
    private boolean isDir_;
    /**
     * <pre>
     * Whether the path is a directory.
     * </pre>
     *
     * <code>optional bool is_dir = 2;</code>
     * @return Whether the isDir field is set.
     */
    @java.lang.Override
    public boolean hasIsDir() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Whether the path is a directory.
     * </pre>
     *
     * <code>optional bool is_dir = 2;</code>
     * @return The isDir.
     */
    @java.lang.Override
    public boolean getIsDir() {
      return isDir_;
    }

    public static final int FILE_SIZE_FIELD_NUMBER = 3;
    private long fileSize_;
    /**
     * <pre>
     * Size in bytes. Unset for directories.
     * </pre>
     *
     * <code>optional int64 file_size = 3;</code>
     * @return Whether the fileSize field is set.
     */
    @java.lang.Override
    public boolean hasFileSize() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Size in bytes. Unset for directories.
     * </pre>
     *
     * <code>optional int64 file_size = 3;</code>
     * @return The fileSize.
     */
    @java.lang.Override
    public long getFileSize() {
      return fileSize_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, isDir_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, fileSize_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isDir_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, fileSize_);
      }
      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 org.mlflow.api.proto.MlflowArtifacts.FileInfo)) {
        return super.equals(obj);
      }
      org.mlflow.api.proto.MlflowArtifacts.FileInfo other = (org.mlflow.api.proto.MlflowArtifacts.FileInfo) obj;

      if (hasPath() != other.hasPath()) return false;
      if (hasPath()) {
        if (!getPath()
            .equals(other.getPath())) return false;
      }
      if (hasIsDir() != other.hasIsDir()) return false;
      if (hasIsDir()) {
        if (getIsDir()
            != other.getIsDir()) return false;
      }
      if (hasFileSize() != other.hasFileSize()) return false;
      if (hasFileSize()) {
        if (getFileSize()
            != other.getFileSize()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasIsDir()) {
        hash = (37 * hash) + IS_DIR_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsDir());
      }
      if (hasFileSize()) {
        hash = (37 * hash) + FILE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getFileSize());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo 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 org.mlflow.api.proto.MlflowArtifacts.FileInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo 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 org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.mlflow.api.proto.MlflowArtifacts.FileInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * Protobuf type {@code mlflow.artifacts.FileInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mlflow.artifacts.FileInfo)
        org.mlflow.api.proto.MlflowArtifacts.FileInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_FileInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_FileInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.mlflow.api.proto.MlflowArtifacts.FileInfo.class, org.mlflow.api.proto.MlflowArtifacts.FileInfo.Builder.class);
      }

      // Construct using org.mlflow.api.proto.MlflowArtifacts.FileInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        isDir_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        fileSize_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.mlflow.api.proto.MlflowArtifacts.internal_static_mlflow_artifacts_FileInfo_descriptor;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.FileInfo getDefaultInstanceForType() {
        return org.mlflow.api.proto.MlflowArtifacts.FileInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.FileInfo build() {
        org.mlflow.api.proto.MlflowArtifacts.FileInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.mlflow.api.proto.MlflowArtifacts.FileInfo buildPartial() {
        org.mlflow.api.proto.MlflowArtifacts.FileInfo result = new org.mlflow.api.proto.MlflowArtifacts.FileInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.isDir_ = isDir_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.fileSize_ = fileSize_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.mlflow.api.proto.MlflowArtifacts.FileInfo) {
          return mergeFrom((org.mlflow.api.proto.MlflowArtifacts.FileInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.mlflow.api.proto.MlflowArtifacts.FileInfo other) {
        if (other == org.mlflow.api.proto.MlflowArtifacts.FileInfo.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasIsDir()) {
          setIsDir(other.getIsDir());
        }
        if (other.hasFileSize()) {
          setFileSize(other.getFileSize());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.mlflow.api.proto.MlflowArtifacts.FileInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.mlflow.api.proto.MlflowArtifacts.FileInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return Whether the path field is set.
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return The path.
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        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()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return The bytes for path.
       */
      public com.google.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @param value The path to set.
       * @return This builder for chaining.
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Path relative to the root artifact directory run.
       * </pre>
       *
       * <code>optional string path = 1;</code>
       * @param value The bytes for path to set.
       * @return This builder for chaining.
       */
      public Builder setPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      private boolean isDir_ ;
      /**
       * <pre>
       * Whether the path is a directory.
       * </pre>
       *
       * <code>optional bool is_dir = 2;</code>
       * @return Whether the isDir field is set.
       */
      @java.lang.Override
      public boolean hasIsDir() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Whether the path is a directory.
       * </pre>
       *
       * <code>optional bool is_dir = 2;</code>
       * @return The isDir.
       */
      @java.lang.Override
      public boolean getIsDir() {
        return isDir_;
      }
      /**
       * <pre>
       * Whether the path is a directory.
       * </pre>
       *
       * <code>optional bool is_dir = 2;</code>
       * @param value The isDir to set.
       * @return This builder for chaining.
       */
      public Builder setIsDir(boolean value) {
        bitField0_ |= 0x00000002;
        isDir_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether the path is a directory.
       * </pre>
       *
       * <code>optional bool is_dir = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsDir() {
        bitField0_ = (bitField0_ & ~0x00000002);
        isDir_ = false;
        onChanged();
        return this;
      }

      private long fileSize_ ;
      /**
       * <pre>
       * Size in bytes. Unset for directories.
       * </pre>
       *
       * <code>optional int64 file_size = 3;</code>
       * @return Whether the fileSize field is set.
       */
      @java.lang.Override
      public boolean hasFileSize() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Size in bytes. Unset for directories.
       * </pre>
       *
       * <code>optional int64 file_size = 3;</code>
       * @return The fileSize.
       */
      @java.lang.Override
      public long getFileSize() {
        return fileSize_;
      }
      /**
       * <pre>
       * Size in bytes. Unset for directories.
       * </pre>
       *
       * <code>optional int64 file_size = 3;</code>
       * @param value The fileSize to set.
       * @return This builder for chaining.
       */
      public Builder setFileSize(long value) {
        bitField0_ |= 0x00000004;
        fileSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Size in bytes. Unset for directories.
       * </pre>
       *
       * <code>optional int64 file_size = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fileSize_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:mlflow.artifacts.FileInfo)
    }

    // @@protoc_insertion_point(class_scope:mlflow.artifacts.FileInfo)
    private static final org.mlflow.api.proto.MlflowArtifacts.FileInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.mlflow.api.proto.MlflowArtifacts.FileInfo();
    }

    public static org.mlflow.api.proto.MlflowArtifacts.FileInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.mlflow.api.proto.MlflowArtifacts.FileInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_DownloadArtifact_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_DownloadArtifact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_DownloadArtifact_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_UploadArtifact_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_UploadArtifact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_UploadArtifact_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_ListArtifacts_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_ListArtifacts_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_ListArtifacts_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_DeleteArtifact_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_DeleteArtifact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_DeleteArtifact_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mlflow_artifacts_FileInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_mlflow_artifacts_FileInfo_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\026mlflow_artifacts.proto\022\020mlflow.artifac" +
      "ts\032\025scalapb/scalapb.proto\032\020databricks.pr" +
      "oto\"\036\n\020DownloadArtifact\032\n\n\010Response\"\034\n\016U" +
      "ploadArtifact\032\n\n\010Response\"T\n\rListArtifac" +
      "ts\022\014\n\004path\030\001 \001(\t\0325\n\010Response\022)\n\005files\030\001 " +
      "\003(\0132\032.mlflow.artifacts.FileInfo\"\034\n\016Delet" +
      "eArtifact\032\n\n\010Response\";\n\010FileInfo\022\014\n\004pat" +
      "h\030\001 \001(\t\022\016\n\006is_dir\030\002 \001(\010\022\021\n\tfile_size\030\003 \001" +
      "(\0032\353\005\n\026MlflowArtifactsService\022\275\001\n\020downlo" +
      "adArtifact\022\".mlflow.artifacts.DownloadAr" +
      "tifact\032+.mlflow.artifacts.DownloadArtifa" +
      "ct.Response\"X\362\206\031T\n=\n\003GET\0220/mlflow-artifa" +
      "cts/artifacts/<path:artifact_path>\032\004\010\002\020\000" +
      "\020\001*\021Download Artifact\022\265\001\n\016uploadArtifact" +
      "\022 .mlflow.artifacts.UploadArtifact\032).mlf" +
      "low.artifacts.UploadArtifact.Response\"V\362" +
      "\206\031R\n=\n\003PUT\0220/mlflow-artifacts/artifacts/" +
      "<path:artifact_path>\032\004\010\002\020\000\020\001*\017Upload Art" +
      "ifact\022\234\001\n\rlistArtifacts\022\037.mlflow.artifac" +
      "ts.ListArtifacts\032(.mlflow.artifacts.List" +
      "Artifacts.Response\"@\362\206\031<\n(\n\003GET\022\033/mlflow" +
      "-artifacts/artifacts\032\004\010\002\020\000\020\001*\016List Artif" +
      "acts\022\271\001\n\016deleteArtifact\022 .mlflow.artifac" +
      "ts.DeleteArtifact\032).mlflow.artifacts.Del" +
      "eteArtifact.Response\"Z\362\206\031V\n@\n\006DELETE\0220/m" +
      "lflow-artifacts/artifacts/<path:artifact" +
      "_path>\032\004\010\002\020\000\020\001*\020Delete ArtifactsB\036\n\024org." +
      "mlflow.api.proto\220\001\001\342?\002\020\001"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.mlflow.scalapb_interface.Scalapb.getDescriptor(),
          com.databricks.api.proto.databricks.Databricks.getDescriptor(),
        });
    internal_static_mlflow_artifacts_DownloadArtifact_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_mlflow_artifacts_DownloadArtifact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_DownloadArtifact_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor =
      internal_static_mlflow_artifacts_DownloadArtifact_descriptor.getNestedTypes().get(0);
    internal_static_mlflow_artifacts_DownloadArtifact_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_DownloadArtifact_Response_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_UploadArtifact_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_mlflow_artifacts_UploadArtifact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_UploadArtifact_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor =
      internal_static_mlflow_artifacts_UploadArtifact_descriptor.getNestedTypes().get(0);
    internal_static_mlflow_artifacts_UploadArtifact_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_UploadArtifact_Response_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_ListArtifacts_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_mlflow_artifacts_ListArtifacts_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_ListArtifacts_descriptor,
        new java.lang.String[] { "Path", });
    internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor =
      internal_static_mlflow_artifacts_ListArtifacts_descriptor.getNestedTypes().get(0);
    internal_static_mlflow_artifacts_ListArtifacts_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_ListArtifacts_Response_descriptor,
        new java.lang.String[] { "Files", });
    internal_static_mlflow_artifacts_DeleteArtifact_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_mlflow_artifacts_DeleteArtifact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_DeleteArtifact_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor =
      internal_static_mlflow_artifacts_DeleteArtifact_descriptor.getNestedTypes().get(0);
    internal_static_mlflow_artifacts_DeleteArtifact_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_DeleteArtifact_Response_descriptor,
        new java.lang.String[] { });
    internal_static_mlflow_artifacts_FileInfo_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_mlflow_artifacts_FileInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_mlflow_artifacts_FileInfo_descriptor,
        new java.lang.String[] { "Path", "IsDir", "FileSize", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.databricks.api.proto.databricks.Databricks.rpc);
    registry.add(org.mlflow.scalapb_interface.Scalapb.options);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    org.mlflow.scalapb_interface.Scalapb.getDescriptor();
    com.databricks.api.proto.databricks.Databricks.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
