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 inheriting 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";
}
...
}

Generated

from message google.protobuf.Mixin

Hierarchy

Constructors

  • Parameters

    Returns Mixin

Properties

name: string

The fully qualified name of the interface which is included.

Generated

from field: string name = 1;

root: string

If non-empty specifies a path under which inherited HTTP paths are rooted.

Generated

from field: string root = 2;

fields: FieldList
runtime: ProtoRuntime
typeName: "google.protobuf.Mixin" = "google.protobuf.Mixin"

Methods

  • Create a deep copy.

    Returns Mixin

  • Compare with a message of the same type.

    Parameters

    Returns boolean

  • Parse from binary data, merging fields.

    Repeated fields are appended. Map entries are added, overwriting existing keys.

    If a message field is already present, it will be merged with the new data.

    Parameters

    Returns Mixin

  • Parse a message from a JSON value.

    Parameters

    Returns Mixin

  • Parse a message from a JSON string.

    Parameters

    Returns Mixin

  • Retrieve the MessageType of this message - a singleton that represents the protobuf message declaration and provides metadata for reflection- based operations.

    Returns MessageType<Mixin>

  • Serialize the message to binary data.

    Parameters

    Returns Uint8Array

  • Override for serialization behavior. This will be invoked when calling JSON.stringify on this message (i.e. JSON.stringify(msg)).

    Note that this will not serialize google.protobuf.Any with a packed message because the protobuf JSON format specifies that it needs to be unpacked, and this is only possible with a type registry to look up the message type. As a result, attempting to serialize a message with this type will throw an Error.

    This method is protected because you should not need to invoke it directly -- instead use JSON.stringify or toJsonString for stringified JSON. Alternatively, if actual JSON is desired, you should use toJson.

    Returns JsonValue

  • Serialize the message to a JSON value, a JavaScript value that can be passed to JSON.stringify().

    Parameters

    Returns JsonValue

  • Serialize the message to a JSON string.

    Parameters

    Returns string

  • Parameters

    Returns boolean

  • Parameters

    Returns Mixin

  • Parameters

    Returns Mixin

  • Parameters

    Returns Mixin

Generated using TypeDoc