apipb

package
v0.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2024 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Api

type Api struct {

	// The fully qualified name of this interface, including package name
	// followed by the interface's simple name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The methods of this interface, in unspecified order.
	Methods []*Method `protobuf:"bytes,2,rep,name=methods,proto3" json:"methods,omitempty"`
	// Any metadata attached to the interface.
	Options []*typepb.Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
	// A version string for this interface. If specified, must have the form
	// `major-version.minor-version`, as in `1.10`. If the minor version is
	// omitted, it defaults to zero. If the entire version field is empty, the
	// major version is derived from the package name, as outlined below. If the
	// field is not empty, the version in the package name will be verified to be
	// consistent with what is provided here.
	//
	// The versioning schema uses [semantic
	// versioning](http://semver.org) where the major version number
	// indicates a breaking change and the minor version an additive,
	// non-breaking change. Both version numbers are signals to users
	// what to expect from different versions, and should be carefully
	// chosen based on the product plan.
	//
	// The major version is also reflected in the package name of the
	// interface, which must end in `v<major-version>`, as in
	// `google.feature.v1`. For major versions 0 and 1, the suffix can
	// be omitted. Zero major versions must only be used for
	// experimental, non-GA interfaces.
	Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
	// Source context for the protocol buffer service represented by this
	// message.
	SourceContext *sourcecontextpb.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext,proto3" json:"sourceContext,omitempty"`
	// Included interfaces. See [Mixin][].
	Mixins []*Mixin `protobuf:"bytes,6,rep,name=mixins,proto3" json:"mixins,omitempty"`
	// The source syntax of the service.
	Syntax typepb.Syntax `protobuf:"varint,7,opt,name=syntax,proto3" json:"syntax,omitempty"`
	// contains filtered or unexported fields
}

Api is a light-weight descriptor for an API Interface.

Interfaces are also described as "protocol buffer services" in some contexts, such as by the "service" keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as "APIs" in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.

func (*Api) CloneMessageVT

func (m *Api) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Api) CloneVT

func (m *Api) CloneVT() *Api

func (*Api) EqualMessageVT

func (this *Api) EqualMessageVT(thatMsg any) bool

func (*Api) EqualVT

func (this *Api) EqualVT(that *Api) bool

func (*Api) GetMethods

func (x *Api) GetMethods() []*Method

func (*Api) GetMixins

func (x *Api) GetMixins() []*Mixin

func (*Api) GetName

func (x *Api) GetName() string

func (*Api) GetOptions

func (x *Api) GetOptions() []*typepb.Option

func (*Api) GetSourceContext

func (x *Api) GetSourceContext() *sourcecontextpb.SourceContext

func (*Api) GetSyntax

func (x *Api) GetSyntax() typepb.Syntax

func (*Api) GetVersion

func (x *Api) GetVersion() string

func (*Api) MarshalProtoText added in v0.5.0

func (x *Api) MarshalProtoText() string

func (*Api) MarshalToSizedBufferVT

func (m *Api) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Api) MarshalToSizedBufferVTStrict

func (m *Api) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error)

func (*Api) MarshalToVT

func (m *Api) MarshalToVT(dAtA []byte) (int, error)

func (*Api) MarshalToVTStrict

func (m *Api) MarshalToVTStrict(dAtA []byte) (int, error)

func (*Api) MarshalVT

func (m *Api) MarshalVT() (dAtA []byte, err error)

func (*Api) MarshalVTStrict

func (m *Api) MarshalVTStrict() (dAtA []byte, err error)

func (*Api) ProtoMessage

func (*Api) ProtoMessage()

func (*Api) Reset

func (x *Api) Reset()

func (*Api) SizeVT

func (m *Api) SizeVT() (n int)

func (*Api) String added in v0.5.0

func (x *Api) String() string

func (*Api) UnmarshalVT

func (m *Api) UnmarshalVT(dAtA []byte) error

func (*Api) UnmarshalVTUnsafe

func (m *Api) UnmarshalVTUnsafe(dAtA []byte) error

type Method

type Method struct {

	// The simple name of this method.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A URL of the input message type.
	RequestTypeUrl string `protobuf:"bytes,2,opt,name=request_type_url,json=requestTypeUrl,proto3" json:"requestTypeUrl,omitempty"`
	// If true, the request is streamed.
	RequestStreaming bool `protobuf:"varint,3,opt,name=request_streaming,json=requestStreaming,proto3" json:"requestStreaming,omitempty"`
	// The URL of the output message type.
	ResponseTypeUrl string `protobuf:"bytes,4,opt,name=response_type_url,json=responseTypeUrl,proto3" json:"responseTypeUrl,omitempty"`
	// If true, the response is streamed.
	ResponseStreaming bool `protobuf:"varint,5,opt,name=response_streaming,json=responseStreaming,proto3" json:"responseStreaming,omitempty"`
	// Any metadata attached to the method.
	Options []*typepb.Option `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"`
	// The source syntax of this method.
	Syntax typepb.Syntax `protobuf:"varint,7,opt,name=syntax,proto3" json:"syntax,omitempty"`
	// contains filtered or unexported fields
}

Method represents a method of an API interface.

func (*Method) CloneMessageVT

func (m *Method) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Method) CloneVT

func (m *Method) CloneVT() *Method

func (*Method) EqualMessageVT

func (this *Method) EqualMessageVT(thatMsg any) bool

func (*Method) EqualVT

func (this *Method) EqualVT(that *Method) bool

func (*Method) GetName

func (x *Method) GetName() string

func (*Method) GetOptions

func (x *Method) GetOptions() []*typepb.Option

func (*Method) GetRequestStreaming

func (x *Method) GetRequestStreaming() bool

func (*Method) GetRequestTypeUrl

func (x *Method) GetRequestTypeUrl() string

func (*Method) GetResponseStreaming

func (x *Method) GetResponseStreaming() bool

func (*Method) GetResponseTypeUrl

func (x *Method) GetResponseTypeUrl() string

func (*Method) GetSyntax

func (x *Method) GetSyntax() typepb.Syntax

func (*Method) MarshalProtoText added in v0.5.0

func (x *Method) MarshalProtoText() string

func (*Method) MarshalToSizedBufferVT

func (m *Method) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Method) MarshalToSizedBufferVTStrict

func (m *Method) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error)

func (*Method) MarshalToVT

func (m *Method) MarshalToVT(dAtA []byte) (int, error)

func (*Method) MarshalToVTStrict

func (m *Method) MarshalToVTStrict(dAtA []byte) (int, error)

func (*Method) MarshalVT

func (m *Method) MarshalVT() (dAtA []byte, err error)

func (*Method) MarshalVTStrict

func (m *Method) MarshalVTStrict() (dAtA []byte, err error)

func (*Method) ProtoMessage

func (*Method) ProtoMessage()

func (*Method) Reset

func (x *Method) Reset()

func (*Method) SizeVT

func (m *Method) SizeVT() (n int)

func (*Method) String added in v0.5.0

func (x *Method) String() string

func (*Method) UnmarshalVT

func (m *Method) UnmarshalVT(dAtA []byte) error

func (*Method) UnmarshalVTUnsafe

func (m *Method) UnmarshalVTUnsafe(dAtA []byte) error

type Mixin

type Mixin struct {

	// The fully qualified name of the interface which is included.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// If non-empty specifies a path under which inherited HTTP paths
	// are rooted.
	Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
	// contains filtered or unexported fields
}

Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows:

  • If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method.

  • Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited.

  • If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the [root][] path if specified.

Example of a simple mixin:

package google.acl.v1;
service AccessControl {
  // Get the underlying ACL object.
  rpc GetAcl(GetAclRequest) returns (Acl) {
    option (google.api.http).get = "/v1/{resource=**}:getAcl";
  }
}

package google.storage.v2;
service Storage {
  rpc GetAcl(GetAclRequest) returns (Acl);

  // Get a data record.
  rpc GetData(GetDataRequest) returns (Data) {
    option (google.api.http).get = "/v2/{resource=**}";
  }
}

Example of a mixin configuration:

apis:
- name: google.storage.v2.Storage
  mixins:
  - name: google.acl.v1.AccessControl

The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows:

service Storage {
  // Get the underlying ACL object.
  rpc GetAcl(GetAclRequest) returns (Acl) {
    option (google.api.http).get = "/v2/{resource=**}:getAcl";
  }
  ...
}

Note how the version in the path pattern changed from `v1` to `v2`.

If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example:

apis:
- name: google.storage.v2.Storage
  mixins:
  - name: google.acl.v1.AccessControl
    root: acls

This implies the following inherited HTTP annotation:

service Storage {
  // Get the underlying ACL object.
  rpc GetAcl(GetAclRequest) returns (Acl) {
    option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
  }
  ...
}

func (*Mixin) CloneMessageVT

func (m *Mixin) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Mixin) CloneVT

func (m *Mixin) CloneVT() *Mixin

func (*Mixin) EqualMessageVT

func (this *Mixin) EqualMessageVT(thatMsg any) bool

func (*Mixin) EqualVT

func (this *Mixin) EqualVT(that *Mixin) bool

func (*Mixin) GetName

func (x *Mixin) GetName() string

func (*Mixin) GetRoot

func (x *Mixin) GetRoot() string

func (*Mixin) MarshalProtoText added in v0.5.0

func (x *Mixin) MarshalProtoText() string

func (*Mixin) MarshalToSizedBufferVT

func (m *Mixin) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Mixin) MarshalToSizedBufferVTStrict

func (m *Mixin) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error)

func (*Mixin) MarshalToVT

func (m *Mixin) MarshalToVT(dAtA []byte) (int, error)

func (*Mixin) MarshalToVTStrict

func (m *Mixin) MarshalToVTStrict(dAtA []byte) (int, error)

func (*Mixin) MarshalVT

func (m *Mixin) MarshalVT() (dAtA []byte, err error)

func (*Mixin) MarshalVTStrict

func (m *Mixin) MarshalVTStrict() (dAtA []byte, err error)

func (*Mixin) ProtoMessage

func (*Mixin) ProtoMessage()

func (*Mixin) Reset

func (x *Mixin) Reset()

func (*Mixin) SizeVT

func (m *Mixin) SizeVT() (n int)

func (*Mixin) String added in v0.5.0

func (x *Mixin) String() string

func (*Mixin) UnmarshalVT

func (m *Mixin) UnmarshalVT(dAtA []byte) error

func (*Mixin) UnmarshalVTUnsafe

func (m *Mixin) UnmarshalVTUnsafe(dAtA []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL