com.google.api.ResourceReferenceKt.kt Maven / Gradle / Ivy
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/api/resource.proto
// Generated files should ignore deprecation warnings
@file:Suppress("DEPRECATION")
package com.google.api;
@kotlin.jvm.JvmName("-initializeresourceReference")
public inline fun resourceReference(block: com.google.api.ResourceReferenceKt.Dsl.() -> kotlin.Unit): com.google.api.ResourceReference =
com.google.api.ResourceReferenceKt.Dsl._create(com.google.api.ResourceReference.newBuilder()).apply { block() }._build()
/**
* ```
* Defines a proto annotation that describes a string field that refers to
* an API resource.
* ```
*
* Protobuf type `google.api.ResourceReference`
*/
public object ResourceReferenceKt {
@kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class)
@com.google.protobuf.kotlin.ProtoDslMarker
public class Dsl private constructor(
private val _builder: com.google.api.ResourceReference.Builder
) {
public companion object {
@kotlin.jvm.JvmSynthetic
@kotlin.PublishedApi
internal fun _create(builder: com.google.api.ResourceReference.Builder): Dsl = Dsl(builder)
}
@kotlin.jvm.JvmSynthetic
@kotlin.PublishedApi
internal fun _build(): com.google.api.ResourceReference = _builder.build()
/**
* ```
* The resource type that the annotated field references.
*
* Example:
*
* message Subscription {
* string topic = 2 [(google.api.resource_reference) = {
* type: "pubsub.googleapis.com/Topic"
* }];
* }
*
* Occasionally, a field may reference an arbitrary resource. In this case,
* APIs use the special value * in their resource reference.
*
* Example:
*
* message GetIamPolicyRequest {
* string resource = 2 [(google.api.resource_reference) = {
* type: "*"
* }];
* }
* ```
*
* `string type = 1;`
*/
public var type: kotlin.String
@JvmName("getType")
get() = _builder.getType()
@JvmName("setType")
set(value) {
_builder.setType(value)
}
/**
* ```
* The resource type that the annotated field references.
*
* Example:
*
* message Subscription {
* string topic = 2 [(google.api.resource_reference) = {
* type: "pubsub.googleapis.com/Topic"
* }];
* }
*
* Occasionally, a field may reference an arbitrary resource. In this case,
* APIs use the special value * in their resource reference.
*
* Example:
*
* message GetIamPolicyRequest {
* string resource = 2 [(google.api.resource_reference) = {
* type: "*"
* }];
* }
* ```
*
* `string type = 1;`
*/
public fun clearType() {
_builder.clearType()
}
/**
* ```
* The resource type of a child collection that the annotated field
* references. This is useful for annotating the `parent` field that
* doesn't have a fixed resource type.
*
* Example:
*
* message ListLogEntriesRequest {
* string parent = 1 [(google.api.resource_reference) = {
* child_type: "logging.googleapis.com/LogEntry"
* };
* }
* ```
*
* `string child_type = 2;`
*/
public var childType: kotlin.String
@JvmName("getChildType")
get() = _builder.getChildType()
@JvmName("setChildType")
set(value) {
_builder.setChildType(value)
}
/**
* ```
* The resource type of a child collection that the annotated field
* references. This is useful for annotating the `parent` field that
* doesn't have a fixed resource type.
*
* Example:
*
* message ListLogEntriesRequest {
* string parent = 1 [(google.api.resource_reference) = {
* child_type: "logging.googleapis.com/LogEntry"
* };
* }
* ```
*
* `string child_type = 2;`
*/
public fun clearChildType() {
_builder.clearChildType()
}
}
}
@kotlin.jvm.JvmSynthetic
public inline fun com.google.api.ResourceReference.copy(block: `com.google.api`.ResourceReferenceKt.Dsl.() -> kotlin.Unit): com.google.api.ResourceReference =
`com.google.api`.ResourceReferenceKt.Dsl._create(this.toBuilder()).apply { block() }._build()