Class TypedStruct.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<TypedStruct.Builder>
com.google.protobuf.GeneratedMessage.Builder<TypedStruct.Builder>
com.github.xds.type.v3.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.GeneratedMessage.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 xds.type.v3.TypedStruct
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
     
    private Object
     
    private com.google.protobuf.Struct
     
    private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Struct,com.google.protobuf.Struct.Builder,com.google.protobuf.StructOrBuilder>
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
    private
    Builder(com.google.protobuf.AbstractMessage.BuilderParent parent)
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
     
    private void
     
     
    A URL that uniquely identifies the type of the serialize protocol buffer message.
    A JSON representation of the above specified type.
     
    static final com.google.protobuf.Descriptors.Descriptor
     
    com.google.protobuf.Descriptors.Descriptor
     
    A URL that uniquely identifies the type of the serialize protocol buffer message.
    com.google.protobuf.ByteString
    A URL that uniquely identifies the type of the serialize protocol buffer message.
    com.google.protobuf.Struct
    A JSON representation of the above specified type.
    com.google.protobuf.Struct.Builder
    A JSON representation of the above specified type.
    com.google.protobuf.StructOrBuilder
    A JSON representation of the above specified type.
    boolean
    A JSON representation of the above specified type.
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
     
    private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Struct,com.google.protobuf.Struct.Builder,com.google.protobuf.StructOrBuilder>
    A JSON representation of the above specified type.
    final boolean
     
    private void
     
     
    mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    mergeFrom(com.google.protobuf.Message other)
     
    mergeValue(com.google.protobuf.Struct value)
    A JSON representation of the above specified type.
    A URL that uniquely identifies the type of the serialize protocol buffer message.
    setTypeUrlBytes(com.google.protobuf.ByteString value)
    A URL that uniquely identifies the type of the serialize protocol buffer message.
    setValue(com.google.protobuf.Struct value)
    A JSON representation of the above specified type.
    setValue(com.google.protobuf.Struct.Builder builderForValue)
    A JSON representation of the above specified type.

    Methods inherited from class com.google.protobuf.GeneratedMessage.Builder

    addRepeatedField, clearField, clearOneof, clone, getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownFields, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setField, setRepeatedField, setUnknownFields, setUnknownFieldSetBuilder, setUnknownFieldsProto3

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.google.protobuf.Message.Builder

    mergeDelimitedFrom, mergeDelimitedFrom

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    mergeFrom

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Field Details

    • bitField0_

      private int bitField0_
    • typeUrl_

      private Object typeUrl_
    • value_

      private com.google.protobuf.Struct value_
    • valueBuilder_

      private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Struct,com.google.protobuf.Struct.Builder,com.google.protobuf.StructOrBuilder> valueBuilder_
  • Constructor Details

    • Builder

      private Builder()
    • Builder

      private Builder(com.google.protobuf.AbstractMessage.BuilderParent parent)
  • Method Details

    • getDescriptor

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

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

      private void maybeForceBuilderInitialization()
    • 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.GeneratedMessage.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.GeneratedMessage.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
    • buildPartial0

      private void buildPartial0(TypedStruct result)
    • 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>
    • mergeFrom

      public TypedStruct.Builder mergeFrom(TypedStruct other)
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage.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
    • internalGetValueFieldBuilder

      private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Struct,com.google.protobuf.Struct.Builder,com.google.protobuf.StructOrBuilder> internalGetValueFieldBuilder()
       A JSON representation of the above specified type.
       
      .google.protobuf.Struct value = 2;