All Downloads are FREE. Search and download functionalities are using the official Maven repository.

protokt.com.google.api.endpoint.kt Maven / Gradle / Ivy

There is a newer version: 0.12.1
Show newest version
// Generated by protokt version 0.12.0. Do not modify.
// Source: google/api/endpoint.proto
package com.google.api

import com.toasttab.protokt.rt.KtDeserializer
import com.toasttab.protokt.rt.KtGeneratedMessage
import com.toasttab.protokt.rt.KtMessage
import com.toasttab.protokt.rt.KtMessageDeserializer
import com.toasttab.protokt.rt.KtMessageSerializer
import com.toasttab.protokt.rt.Tag
import com.toasttab.protokt.rt.UnknownFieldSet
import com.toasttab.protokt.rt.copyList
import com.toasttab.protokt.rt.finishList
import com.toasttab.protokt.rt.sizeof
import kotlin.Any
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.MutableList

/**
 * `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly
 * known as a service endpoint. A service may expose any number of service endpoints, and all service
 * endpoints share the same service definition, such as quota limits and monitoring metrics. 
 *
 *  Example service configuration: 
 *
 *      name: library-example.googleapis.com     endpoints:       # Below entry makes
 * 'google.example.library.v1.Library'       # API be served from endpoint address
 * library-example.googleapis.com.       # It also allows HTTP OPTIONS calls to be passed to the
 * backend, for       # it to decide whether the subsequent cross-origin request is       # allowed to
 * proceed.     - name: library-example.googleapis.com       allow_cors: true
 */
@KtGeneratedMessage("google.api.Endpoint")
@Suppress("DEPRECATION")
class Endpoint private constructor(
    /**
     * The canonical name of this endpoint.
     */
    val name: String,
    /**
     * Unimplemented. Dot not use. 
     *
     *  DEPRECATED: This field is no longer supported. Instead of using aliases, please specify
     * multiple [google.api.Endpoint][google.api.Endpoint] for each of the intended aliases. 
     *
     *  Additional names that this endpoint will be hosted on.
     */
    @Deprecated("deprecated in proto")
    val aliases: List,
    /**
     * Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
     * cross-domain traffic, would allow the backends served from this endpoint to receive and respond
     * to HTTP OPTIONS requests. The response will be used by the browser to determine whether the
     * subsequent cross-origin request is allowed to proceed.
     */
    val allowCors: Boolean,
    /**
     * The specification of an Internet routable address of API frontend that will handle requests
     * to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a
     * valid IPv4 address or a fully-qualified domain name. For example, "8.8.8.8" or
     * "myservice.appspot.com".
     */
    val target: String,
    val unknownFields: UnknownFieldSet = UnknownFieldSet.empty(),
) : KtMessage {
    override val messageSize: Int by lazy { messageSize() }

    private fun messageSize(): Int {
        var result = 0
        if (name.isNotEmpty()) {
            result += sizeof(Tag(1)) + sizeof(name) 
        }
        if (aliases.isNotEmpty()) {
            result += (sizeof(Tag(2)) * aliases.size) + aliases.sumOf { sizeof(it) } 
        }
        if (allowCors) {
            result += sizeof(Tag(5)) + sizeof(allowCors) 
        }
        if (target.isNotEmpty()) {
            result += sizeof(Tag(101)) + sizeof(target) 
        }
        result += unknownFields.size()
        return result
    }

    override fun serialize(serializer: KtMessageSerializer) {
        if (name.isNotEmpty()) {
            serializer.write(Tag(10)).write(name)
        }
        if (aliases.isNotEmpty()) {
            aliases.forEach { serializer.write(Tag(18)).write(it) }
        }
        if (allowCors) {
            serializer.write(Tag(40)).write(allowCors)
        }
        if (target.isNotEmpty()) {
            serializer.write(Tag(810)).write(target)
        }
        serializer.writeUnknown(unknownFields)
    }

    override fun equals(other: Any?): Boolean = other is Endpoint &&
        other.name == name &&
        other.aliases == aliases &&
        other.allowCors == allowCors &&
        other.target == target &&
        other.unknownFields == unknownFields

    override fun hashCode(): Int {
        var result = unknownFields.hashCode()
        result = 31 * result + name.hashCode()
        result = 31 * result + aliases.hashCode()
        result = 31 * result + allowCors.hashCode()
        result = 31 * result + target.hashCode()
        return result
    }

    override fun toString(): String = "Endpoint(" +
        "name=$name, " +
        "aliases=$aliases, " +
        "allowCors=$allowCors, " +
        "target=$target" +
        "${if (unknownFields.isEmpty()) "" else ", unknownFields=$unknownFields"})"

    fun copy(dsl: EndpointDsl.() -> Unit): Endpoint = Endpoint.Deserializer {
        name = [email protected]
        aliases = [email protected]
        allowCors = [email protected]
        target = [email protected]
        unknownFields = [email protected]
        dsl()
    }

    class EndpointDsl {
        var name: String = ""

        @Deprecated("deprecated in proto")
        var aliases: List = emptyList()
            set(newValue) {
                field = copyList(newValue)
            }

        var allowCors: Boolean = false

        var target: String = ""

        var unknownFields: UnknownFieldSet = UnknownFieldSet.empty()

        fun build(): Endpoint = Endpoint(name,
        finishList(aliases),
        allowCors,
        target,
         unknownFields)
    }

    companion object Deserializer : KtDeserializer,
            (EndpointDsl.() -> Unit) -> Endpoint {
        override fun deserialize(deserializer: KtMessageDeserializer): Endpoint {
            var name = ""
            var aliases : MutableList? = null
            var allowCors = false
            var target = ""
            var unknownFields: UnknownFieldSet.Builder? = null
            while (true) {
                when(deserializer.readTag()) {
                    0 -> return Endpoint(name,
                            finishList(aliases),
                            allowCors,
                            target,
                            UnknownFieldSet.from(unknownFields))
                    10 -> name = deserializer.readString()
                    18 -> aliases = (aliases ?: mutableListOf()).apply {
                                   deserializer.readRepeated(false) {
                                       add(deserializer.readString())
                                   }
                               }
                    40 -> allowCors = deserializer.readBool()
                    810 -> target = deserializer.readString()
                    else -> unknownFields = (unknownFields ?:
                            UnknownFieldSet.Builder()).also {it.add(deserializer.readUnknown()) }
                }
            }
        }

        override fun invoke(dsl: EndpointDsl.() -> Unit): Endpoint =
                EndpointDsl().apply(dsl).build()
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy