
commonMain.protokt.v1.google.api.visibility.kt Maven / Gradle / Ivy
// Generated by protokt version 1.0.0-beta.2. Do not modify.
// Source: google/api/visibility.proto
@file:Suppress("DEPRECATION")
package protokt.v1.google.api
import protokt.v1.AbstractDeserializer
import protokt.v1.AbstractMessage
import protokt.v1.BuilderDsl
import protokt.v1.Collections.copyList
import protokt.v1.Collections.unmodifiableList
import protokt.v1.GeneratedMessage
import protokt.v1.GeneratedProperty
import protokt.v1.Reader
import protokt.v1.SizeCodecs.sizeOf
import protokt.v1.UnknownFieldSet
import protokt.v1.Writer
import kotlin.Any
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.MutableList
import kotlin.jvm.JvmStatic
/**
* `Visibility` restricts service consumer's access to service elements, such as whether an
* application can call a visibility-restricted method. The restriction is expressed by applying
* visibility labels on service elements. The visibility labels are elsewhere linked to service
* consumers.
*
* A service can define multiple visibility labels, but a service consumer should be granted at
* most one visibility label. Multiple visibility labels for a single service consumer are not
* supported.
*
* If an element and all its parents have no visibility label, its visibility is unconditionally
* granted.
*
* Example:
*
* visibility: rules: - selector: google.calendar.Calendar.EnhancedSearch
* restriction: PREVIEW - selector: google.calendar.Calendar.Delegate restriction:
* INTERNAL
*
* Here, all methods are publicly visible except for the restricted methods EnhancedSearch and
* Delegate.
*/
@GeneratedMessage("google.api.Visibility")
public class Visibility private constructor(
/**
* A list of visibility rules that apply to individual API elements.
*
* **NOTE:** All service configuration rules follow "last one wins" order.
*/
@GeneratedProperty(1)
public val rules: List,
public val unknownFields: UnknownFieldSet = UnknownFieldSet.empty()
) : AbstractMessage() {
private val `$messageSize`: Int by lazy {
var result = 0
if (rules.isNotEmpty()) {
result += (sizeOf(10u) * rules.size) + rules.sumOf { sizeOf(it) }
}
result += unknownFields.size()
result
}
override fun messageSize(): Int = `$messageSize`
override fun serialize(writer: Writer) {
rules.forEach { writer.writeTag(10u).write(it) }
writer.writeUnknown(unknownFields)
}
override fun equals(other: Any?): Boolean =
other is Visibility &&
other.rules == rules &&
other.unknownFields == unknownFields
override fun hashCode(): Int {
var result = unknownFields.hashCode()
result = 31 * result + rules.hashCode()
return result
}
override fun toString(): String =
"Visibility(" +
"rules=$rules" +
if (unknownFields.isEmpty()) ")" else ", unknownFields=$unknownFields)"
public fun copy(builder: Builder.() -> Unit): Visibility =
Builder().apply {
rules = [email protected]
unknownFields = [email protected]
builder()
}.build()
@BuilderDsl
public class Builder {
public var rules: List = emptyList()
set(newValue) {
field = copyList(newValue)
}
public var unknownFields: UnknownFieldSet = UnknownFieldSet.empty()
public fun build(): Visibility =
Visibility(
unmodifiableList(rules),
unknownFields
)
}
public companion object Deserializer : AbstractDeserializer() {
@JvmStatic
override fun deserialize(reader: Reader): Visibility {
var rules: MutableList? = null
var unknownFields: UnknownFieldSet.Builder? = null
while (true) {
when (reader.readTag()) {
0u -> return Visibility(
unmodifiableList(rules),
UnknownFieldSet.from(unknownFields)
)
10u ->
rules =
(rules ?: mutableListOf()).apply {
reader.readRepeated(false) {
add(reader.readMessage(VisibilityRule))
}
}
else ->
unknownFields =
(unknownFields ?: UnknownFieldSet.Builder()).also {
it.add(reader.readUnknown())
}
}
}
}
@JvmStatic
public operator fun invoke(dsl: Builder.() -> Unit): Visibility = Builder().apply(dsl).build()
}
}
/**
* A visibility rule provides visibility configuration for an individual API element.
*/
@GeneratedMessage("google.api.VisibilityRule")
public class VisibilityRule private constructor(
/**
* Selects methods, messages, fields, enums, etc. to which this rule applies.
*
* Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
*/
@GeneratedProperty(1)
public val selector: String,
/**
* A comma-separated list of visibility labels that apply to the `selector`. Any of the listed
* labels can be used to grant the visibility.
*
* If a rule has multiple labels, removing one of the labels but not all of them can break
* clients.
*
* Example:
*
* visibility: rules: - selector: google.calendar.Calendar.EnhancedSearch
* restriction: INTERNAL, PREVIEW
*
* Removing INTERNAL from this restriction will break clients that rely on this method and only
* had access to it through INTERNAL.
*/
@GeneratedProperty(2)
public val restriction: String,
public val unknownFields: UnknownFieldSet = UnknownFieldSet.empty()
) : AbstractMessage() {
private val `$messageSize`: Int by lazy {
var result = 0
if (selector.isNotEmpty()) {
result += sizeOf(10u) + sizeOf(selector)
}
if (restriction.isNotEmpty()) {
result += sizeOf(18u) + sizeOf(restriction)
}
result += unknownFields.size()
result
}
override fun messageSize(): Int = `$messageSize`
override fun serialize(writer: Writer) {
if (selector.isNotEmpty()) {
writer.writeTag(10u).write(selector)
}
if (restriction.isNotEmpty()) {
writer.writeTag(18u).write(restriction)
}
writer.writeUnknown(unknownFields)
}
override fun equals(other: Any?): Boolean =
other is VisibilityRule &&
other.selector == selector &&
other.restriction == restriction &&
other.unknownFields == unknownFields
override fun hashCode(): Int {
var result = unknownFields.hashCode()
result = 31 * result + selector.hashCode()
result = 31 * result + restriction.hashCode()
return result
}
override fun toString(): String =
"VisibilityRule(" +
"selector=$selector, " +
"restriction=$restriction" +
if (unknownFields.isEmpty()) ")" else ", unknownFields=$unknownFields)"
public fun copy(builder: Builder.() -> Unit): VisibilityRule =
Builder().apply {
selector = [email protected]
restriction = [email protected]
unknownFields = [email protected]
builder()
}.build()
@BuilderDsl
public class Builder {
public var selector: String = ""
public var restriction: String = ""
public var unknownFields: UnknownFieldSet = UnknownFieldSet.empty()
public fun build(): VisibilityRule =
VisibilityRule(
selector,
restriction,
unknownFields
)
}
public companion object Deserializer : AbstractDeserializer() {
@JvmStatic
override fun deserialize(reader: Reader): VisibilityRule {
var selector = ""
var restriction = ""
var unknownFields: UnknownFieldSet.Builder? = null
while (true) {
when (reader.readTag()) {
0u -> return VisibilityRule(
selector,
restriction,
UnknownFieldSet.from(unknownFields)
)
10u -> selector = reader.readString()
18u -> restriction = reader.readString()
else ->
unknownFields =
(unknownFields ?: UnknownFieldSet.Builder()).also {
it.add(reader.readUnknown())
}
}
}
}
@JvmStatic
public operator fun invoke(dsl: Builder.() -> Unit): VisibilityRule = Builder().apply(dsl).build()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy