Class TypedStruct

  • All Implemented Interfaces:
    TypedStructOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, java.io.Serializable

    public final class TypedStruct
    extends com.google.protobuf.GeneratedMessage
    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
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  TypedStruct.Builder
      A TypedStruct contains an arbitrary JSON serialized protocol buffer message with a URL that describes the type of the serialized message.
      • Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessage

        com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>,​BuilderT extends com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT,​BuilderT>>, com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.FieldAccessorTable, com.google.protobuf.GeneratedMessage.GeneratedExtension<ContainingT extends com.google.protobuf.Message,​T extends java.lang.Object>, com.google.protobuf.GeneratedMessage.UnusedPrivateParameter
      • Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessage

        com.google.protobuf.AbstractMessage.BuilderParent
      • Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

        com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private TypedStruct()  
      private TypedStruct​(com.google.protobuf.GeneratedMessage.Builder<?> builder)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      static TypedStruct getDefaultInstance()  
      TypedStruct getDefaultInstanceForType()  
      static com.google.protobuf.Descriptors.Descriptor getDescriptor()  
      com.google.protobuf.Parser<TypedStruct> getParserForType()  
      int getSerializedSize()  
      java.lang.String getTypeUrl()
      A URL that uniquely identifies the type of the serialize protocol buffer message.
      com.google.protobuf.ByteString getTypeUrlBytes()
      A URL that uniquely identifies the type of the serialize protocol buffer message.
      com.google.protobuf.Struct getValue()
      A JSON representation of the above specified type.
      com.google.protobuf.StructOrBuilder getValueOrBuilder()
      A JSON representation of the above specified type.
      int hashCode()  
      boolean hasValue()
      A JSON representation of the above specified type.
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()  
      boolean isInitialized()  
      static TypedStruct.Builder newBuilder()  
      static TypedStruct.Builder newBuilder​(TypedStruct prototype)  
      TypedStruct.Builder newBuilderForType()  
      protected TypedStruct.Builder newBuilderForType​(com.google.protobuf.AbstractMessage.BuilderParent parent)  
      static TypedStruct parseDelimitedFrom​(java.io.InputStream input)  
      static TypedStruct parseDelimitedFrom​(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static TypedStruct parseFrom​(byte[] data)  
      static TypedStruct parseFrom​(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static TypedStruct parseFrom​(com.google.protobuf.ByteString data)  
      static TypedStruct parseFrom​(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static TypedStruct parseFrom​(com.google.protobuf.CodedInputStream input)  
      static TypedStruct parseFrom​(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static TypedStruct parseFrom​(java.io.InputStream input)  
      static TypedStruct parseFrom​(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static TypedStruct parseFrom​(java.nio.ByteBuffer data)  
      static TypedStruct parseFrom​(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static com.google.protobuf.Parser<TypedStruct> parser()  
      TypedStruct.Builder toBuilder()  
      void writeTo​(com.google.protobuf.CodedOutputStream output)  
      • Methods inherited from class com.google.protobuf.GeneratedMessage

        canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, newFileScopedGeneratedExtension, newInstance, newMessageScopedGeneratedExtension, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
      • Methods inherited from class com.google.protobuf.AbstractMessage

        findInitializationErrors, getInitializationErrorString, hashFields, toString
      • Methods inherited from class com.google.protobuf.AbstractMessageLite

        addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface com.google.protobuf.MessageLite

        toByteArray, toByteString, writeDelimitedTo, writeTo
      • Methods inherited from interface com.google.protobuf.MessageOrBuilder

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

      • bitField0_

        private int bitField0_
      • typeUrl_

        private volatile java.lang.Object typeUrl_
      • value_

        private com.google.protobuf.Struct value_
      • memoizedIsInitialized

        private byte memoizedIsInitialized
      • DEFAULT_INSTANCE

        private static final TypedStruct DEFAULT_INSTANCE
      • PARSER

        private static final com.google.protobuf.Parser<TypedStruct> PARSER
    • Constructor Detail

      • TypedStruct

        private TypedStruct​(com.google.protobuf.GeneratedMessage.Builder<?> builder)
      • TypedStruct

        private TypedStruct()
    • Method Detail

      • 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
      • getTypeUrl

        public java.lang.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.
      • 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.
      • 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
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessage
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws java.io.IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessage
        Throws:
        java.io.IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessage
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static TypedStruct parseFrom​(java.nio.ByteBuffer data)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(java.nio.ByteBuffer data,
                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(com.google.protobuf.ByteString data)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(com.google.protobuf.ByteString data,
                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(byte[] data)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(byte[] data,
                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static TypedStruct parseFrom​(java.io.InputStream input)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static TypedStruct parseFrom​(java.io.InputStream input,
                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseDelimitedFrom

        public static TypedStruct parseDelimitedFrom​(java.io.InputStream input)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • parseDelimitedFrom

        public static TypedStruct parseDelimitedFrom​(java.io.InputStream input,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static TypedStruct parseFrom​(com.google.protobuf.CodedInputStream input)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static TypedStruct parseFrom​(com.google.protobuf.CodedInputStream input,
                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • newBuilderForType

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

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

        protected TypedStruct.Builder newBuilderForType​(com.google.protobuf.AbstractMessage.BuilderParent parent)
        Overrides:
        newBuilderForType in class com.google.protobuf.AbstractMessage
      • getDefaultInstance

        public static TypedStruct getDefaultInstance()
      • parser

        public static com.google.protobuf.Parser<TypedStruct> parser()
      • getParserForType

        public com.google.protobuf.Parser<TypedStruct> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessage
      • getDefaultInstanceForType

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