Class TypedStruct.Builder

  • All Implemented Interfaces:
    TypedStructOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
    Enclosing class:
    TypedStruct

    public static final class TypedStruct.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
    implements TypedStructOrBuilder
     A TypedStruct contains an arbitrary JSON serialized protocol buffer message with a URL that
     describes the type of the serialized message. This is very similar to google.protobuf.Any,
     instead of having protocol buffer binary, this employs google.protobuf.Struct as value.
     This message is intended to be embedded inside Any, so it shouldn't be directly referred
     from other UDPA messages.
     When packing an opaque extension config, packing the expected type into Any is preferred
     wherever possible for its efficiency. TypedStruct should be used only if a proto descriptor
     is not available, for example if:
     - A control plane sends opaque message that is originally from external source in human readable
       format such as JSON or YAML.
     - The control plane doesn't have the knowledge of the protocol buffer schema hence it cannot
       serialize the message in protocol buffer binary format.
     - The DPLB doesn't have have the knowledge of the protocol buffer schema its plugin or extension
       uses. This has to be indicated in the DPLB capability negotiation.
     When a DPLB receives a TypedStruct in Any, it should:
     - Check if the type_url of the TypedStruct matches the type the extension expects.
     - Convert value to the type described in type_url and perform validation.
     TODO(lizan): Figure out how TypeStruct should be used with DPLB extensions that doesn't link
     protobuf descriptor with DPLB itself, (e.g. gRPC LB Plugin, Envoy WASM extensions).
     
    Protobuf type udpa.type.v1.TypedStruct
    • Method Detail

      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • clear

        public TypedStruct.Builder clear()
        Specified by:
        clear in interface com.google.protobuf.Message.Builder
        Specified by:
        clear in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clear in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        Specified by:
        getDescriptorForType in interface com.google.protobuf.Message.Builder
        Specified by:
        getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • getDefaultInstanceForType

        public TypedStruct getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      • build

        public TypedStruct build()
        Specified by:
        build in interface com.google.protobuf.Message.Builder
        Specified by:
        build in interface com.google.protobuf.MessageLite.Builder
      • buildPartial

        public TypedStruct buildPartial()
        Specified by:
        buildPartial in interface com.google.protobuf.Message.Builder
        Specified by:
        buildPartial in interface com.google.protobuf.MessageLite.Builder
      • clone

        public TypedStruct.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • setField

        public TypedStruct.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                            Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • clearField

        public TypedStruct.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • clearOneof

        public TypedStruct.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • setRepeatedField

        public TypedStruct.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                    int index,
                                                    Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • addRepeatedField

        public TypedStruct.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                    Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • mergeFrom

        public TypedStruct.Builder mergeFrom​(com.google.protobuf.Message other)
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<TypedStruct.Builder>
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • mergeFrom

        public TypedStruct.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                      throws IOException
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Specified by:
        mergeFrom in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<TypedStruct.Builder>
        Throws:
        IOException
      • getTypeUrl

        public String getTypeUrl()
         A URL that uniquely identifies the type of the serialize protocol buffer message.
         This has same semantics and format described in google.protobuf.Any:
         https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto
         
        string type_url = 1;
        Specified by:
        getTypeUrl in interface TypedStructOrBuilder
        Returns:
        The typeUrl.
      • getTypeUrlBytes

        public com.google.protobuf.ByteString getTypeUrlBytes()
         A URL that uniquely identifies the type of the serialize protocol buffer message.
         This has same semantics and format described in google.protobuf.Any:
         https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto
         
        string type_url = 1;
        Specified by:
        getTypeUrlBytes in interface TypedStructOrBuilder
        Returns:
        The bytes for typeUrl.
      • setTypeUrl

        public TypedStruct.Builder setTypeUrl​(String value)
         A URL that uniquely identifies the type of the serialize protocol buffer message.
         This has same semantics and format described in google.protobuf.Any:
         https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto
         
        string type_url = 1;
        Parameters:
        value - The typeUrl to set.
        Returns:
        This builder for chaining.
      • clearTypeUrl

        public TypedStruct.Builder clearTypeUrl()
         A URL that uniquely identifies the type of the serialize protocol buffer message.
         This has same semantics and format described in google.protobuf.Any:
         https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto
         
        string type_url = 1;
        Returns:
        This builder for chaining.
      • setTypeUrlBytes

        public TypedStruct.Builder setTypeUrlBytes​(com.google.protobuf.ByteString value)
         A URL that uniquely identifies the type of the serialize protocol buffer message.
         This has same semantics and format described in google.protobuf.Any:
         https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto
         
        string type_url = 1;
        Parameters:
        value - The bytes for typeUrl to set.
        Returns:
        This builder for chaining.
      • hasValue

        public boolean hasValue()
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
        Specified by:
        hasValue in interface TypedStructOrBuilder
        Returns:
        Whether the value field is set.
      • getValue

        public com.google.protobuf.Struct getValue()
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
        Specified by:
        getValue in interface TypedStructOrBuilder
        Returns:
        The value.
      • setValue

        public TypedStruct.Builder setValue​(com.google.protobuf.Struct value)
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
      • setValue

        public TypedStruct.Builder setValue​(com.google.protobuf.Struct.Builder builderForValue)
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
      • mergeValue

        public TypedStruct.Builder mergeValue​(com.google.protobuf.Struct value)
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
      • clearValue

        public TypedStruct.Builder clearValue()
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
      • getValueBuilder

        public com.google.protobuf.Struct.Builder getValueBuilder()
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
      • getValueOrBuilder

        public com.google.protobuf.StructOrBuilder getValueOrBuilder()
         A JSON representation of the above specified type.
         
        .google.protobuf.Struct value = 2;
        Specified by:
        getValueOrBuilder in interface TypedStructOrBuilder
      • setUnknownFields

        public final TypedStruct.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>
      • mergeUnknownFields

        public final TypedStruct.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<TypedStruct.Builder>