com.google.protobuf.MixinKt.kt Maven / Gradle / Ivy
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/protobuf/api.proto
// Generated files should ignore deprecation warnings
@file:Suppress("DEPRECATION")
package com.google.protobuf;
@kotlin.jvm.JvmName("-initializemixin")
public inline fun mixin(block: com.google.protobuf.MixinKt.Dsl.() -> kotlin.Unit): com.google.protobuf.Mixin =
com.google.protobuf.MixinKt.Dsl._create(com.google.protobuf.Mixin.newBuilder()).apply { block() }._build()
/**
* ```
* 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";
* }
* ...
* }
* ```
*
* Protobuf type `google.protobuf.Mixin`
*/
public object MixinKt {
@kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class)
@com.google.protobuf.kotlin.ProtoDslMarker
public class Dsl private constructor(
private val _builder: com.google.protobuf.Mixin.Builder
) {
public companion object {
@kotlin.jvm.JvmSynthetic
@kotlin.PublishedApi
internal fun _create(builder: com.google.protobuf.Mixin.Builder): Dsl = Dsl(builder)
}
@kotlin.jvm.JvmSynthetic
@kotlin.PublishedApi
internal fun _build(): com.google.protobuf.Mixin = _builder.build()
/**
* ```
* The fully qualified name of the interface which is included.
* ```
*
* `string name = 1;`
*/
public var name: kotlin.String
@JvmName("getName")
get() = _builder.getName()
@JvmName("setName")
set(value) {
_builder.setName(value)
}
/**
* ```
* The fully qualified name of the interface which is included.
* ```
*
* `string name = 1;`
*/
public fun clearName() {
_builder.clearName()
}
/**
* ```
* If non-empty specifies a path under which inherited HTTP paths
* are rooted.
* ```
*
* `string root = 2;`
*/
public var root: kotlin.String
@JvmName("getRoot")
get() = _builder.getRoot()
@JvmName("setRoot")
set(value) {
_builder.setRoot(value)
}
/**
* ```
* If non-empty specifies a path under which inherited HTTP paths
* are rooted.
* ```
*
* `string root = 2;`
*/
public fun clearRoot() {
_builder.clearRoot()
}
}
}
@kotlin.jvm.JvmSynthetic
public inline fun com.google.protobuf.Mixin.copy(block: `com.google.protobuf`.MixinKt.Dsl.() -> kotlin.Unit): com.google.protobuf.Mixin =
`com.google.protobuf`.MixinKt.Dsl._create(this.toBuilder()).apply { block() }._build()