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

commonMain.aws.sdk.kotlin.services.glue.model.SourceControlDetails.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.glue.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.
 */
public class SourceControlDetails private constructor(builder: Builder) {
    /**
     * The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.
     */
    public val authStrategy: aws.sdk.kotlin.services.glue.model.SourceControlAuthStrategy? = builder.authStrategy
    /**
     * The value of an authorization token.
     */
    public val authToken: kotlin.String? = builder.authToken
    /**
     * An optional branch in the remote repository.
     */
    public val branch: kotlin.String? = builder.branch
    /**
     * An optional folder in the remote repository.
     */
    public val folder: kotlin.String? = builder.folder
    /**
     * The last commit ID for a commit in the remote repository.
     */
    public val lastCommitId: kotlin.String? = builder.lastCommitId
    /**
     * The owner of the remote repository that contains the job artifacts.
     */
    public val owner: kotlin.String? = builder.owner
    /**
     * The provider for the remote repository.
     */
    public val provider: aws.sdk.kotlin.services.glue.model.SourceControlProvider? = builder.provider
    /**
     * The name of the remote repository that contains the job artifacts.
     */
    public val repository: kotlin.String? = builder.repository

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.SourceControlDetails = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("SourceControlDetails(")
        append("authStrategy=$authStrategy,")
        append("authToken=$authToken,")
        append("branch=$branch,")
        append("folder=$folder,")
        append("lastCommitId=$lastCommitId,")
        append("owner=$owner,")
        append("provider=$provider,")
        append("repository=$repository")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = authStrategy?.hashCode() ?: 0
        result = 31 * result + (authToken?.hashCode() ?: 0)
        result = 31 * result + (branch?.hashCode() ?: 0)
        result = 31 * result + (folder?.hashCode() ?: 0)
        result = 31 * result + (lastCommitId?.hashCode() ?: 0)
        result = 31 * result + (owner?.hashCode() ?: 0)
        result = 31 * result + (provider?.hashCode() ?: 0)
        result = 31 * result + (repository?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as SourceControlDetails

        if (authStrategy != other.authStrategy) return false
        if (authToken != other.authToken) return false
        if (branch != other.branch) return false
        if (folder != other.folder) return false
        if (lastCommitId != other.lastCommitId) return false
        if (owner != other.owner) return false
        if (provider != other.provider) return false
        if (repository != other.repository) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.SourceControlDetails = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.
         */
        public var authStrategy: aws.sdk.kotlin.services.glue.model.SourceControlAuthStrategy? = null
        /**
         * The value of an authorization token.
         */
        public var authToken: kotlin.String? = null
        /**
         * An optional branch in the remote repository.
         */
        public var branch: kotlin.String? = null
        /**
         * An optional folder in the remote repository.
         */
        public var folder: kotlin.String? = null
        /**
         * The last commit ID for a commit in the remote repository.
         */
        public var lastCommitId: kotlin.String? = null
        /**
         * The owner of the remote repository that contains the job artifacts.
         */
        public var owner: kotlin.String? = null
        /**
         * The provider for the remote repository.
         */
        public var provider: aws.sdk.kotlin.services.glue.model.SourceControlProvider? = null
        /**
         * The name of the remote repository that contains the job artifacts.
         */
        public var repository: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.glue.model.SourceControlDetails) : this() {
            this.authStrategy = x.authStrategy
            this.authToken = x.authToken
            this.branch = x.branch
            this.folder = x.folder
            this.lastCommitId = x.lastCommitId
            this.owner = x.owner
            this.provider = x.provider
            this.repository = x.repository
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.glue.model.SourceControlDetails = SourceControlDetails(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy