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

commonMain.aws.sdk.kotlin.services.s3control.model.JobDescriptor.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.s3control.model

import aws.smithy.kotlin.runtime.time.Instant

/**
 * A container element for the job configuration and status information returned by a `Describe Job` request.
 */
public class JobDescriptor private constructor(builder: Builder) {
    /**
     * Indicates whether confirmation is required before Amazon S3 begins running the specified job. Confirmation is required only for jobs created through the Amazon S3 console.
     */
    public val confirmationRequired: kotlin.Boolean? = builder.confirmationRequired
    /**
     * A timestamp indicating when this job was created.
     */
    public val creationTime: aws.smithy.kotlin.runtime.time.Instant? = builder.creationTime
    /**
     * The description for this job, if one was provided in this job's `Create Job` request.
     */
    public val description: kotlin.String? = builder.description
    /**
     * If the specified job failed, this field contains information describing the failure.
     */
    public val failureReasons: List? = builder.failureReasons
    /**
     * The attribute of the JobDescriptor containing details about the job's generated manifest.
     */
    public val generatedManifestDescriptor: aws.sdk.kotlin.services.s3control.model.S3GeneratedManifestDescriptor? = builder.generatedManifestDescriptor
    /**
     * The Amazon Resource Name (ARN) for this job.
     */
    public val jobArn: kotlin.String? = builder.jobArn
    /**
     * The ID for the specified job.
     */
    public val jobId: kotlin.String? = builder.jobId
    /**
     * The configuration information for the specified job's manifest object.
     */
    public val manifest: aws.sdk.kotlin.services.s3control.model.JobManifest? = builder.manifest
    /**
     * The manifest generator that was used to generate a job manifest for this job.
     */
    public val manifestGenerator: aws.sdk.kotlin.services.s3control.model.JobManifestGenerator? = builder.manifestGenerator
    /**
     * The operation that the specified job is configured to run on the objects listed in the manifest.
     */
    public val operation: aws.sdk.kotlin.services.s3control.model.JobOperation? = builder.operation
    /**
     * The priority of the specified job.
     */
    public val priority: kotlin.Int = builder.priority
    /**
     * Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.
     */
    public val progressSummary: aws.sdk.kotlin.services.s3control.model.JobProgressSummary? = builder.progressSummary
    /**
     * Contains the configuration information for the job-completion report if you requested one in the `Create Job` request.
     */
    public val report: aws.sdk.kotlin.services.s3control.model.JobReport? = builder.report
    /**
     * The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role assigned to run the tasks for this job.
     */
    public val roleArn: kotlin.String? = builder.roleArn
    /**
     * The current status of the specified job.
     */
    public val status: aws.sdk.kotlin.services.s3control.model.JobStatus? = builder.status
    /**
     * The reason for updating the job.
     */
    public val statusUpdateReason: kotlin.String? = builder.statusUpdateReason
    /**
     * The reason why the specified job was suspended. A job is only suspended if you create it through the Amazon S3 console. When you create the job, it enters the `Suspended` state to await confirmation before running. After you confirm the job, it automatically exits the `Suspended` state.
     */
    public val suspendedCause: kotlin.String? = builder.suspendedCause
    /**
     * The timestamp when this job was suspended, if it has been suspended.
     */
    public val suspendedDate: aws.smithy.kotlin.runtime.time.Instant? = builder.suspendedDate
    /**
     * A timestamp indicating when this job terminated. A job's termination date is the date and time when it succeeded, failed, or was canceled.
     */
    public val terminationDate: aws.smithy.kotlin.runtime.time.Instant? = builder.terminationDate

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

    override fun toString(): kotlin.String = buildString {
        append("JobDescriptor(")
        append("confirmationRequired=$confirmationRequired,")
        append("creationTime=$creationTime,")
        append("description=$description,")
        append("failureReasons=$failureReasons,")
        append("generatedManifestDescriptor=$generatedManifestDescriptor,")
        append("jobArn=$jobArn,")
        append("jobId=$jobId,")
        append("manifest=$manifest,")
        append("manifestGenerator=$manifestGenerator,")
        append("operation=$operation,")
        append("priority=$priority,")
        append("progressSummary=$progressSummary,")
        append("report=$report,")
        append("roleArn=$roleArn,")
        append("status=$status,")
        append("statusUpdateReason=$statusUpdateReason,")
        append("suspendedCause=$suspendedCause,")
        append("suspendedDate=$suspendedDate,")
        append("terminationDate=$terminationDate")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = confirmationRequired?.hashCode() ?: 0
        result = 31 * result + (creationTime?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (failureReasons?.hashCode() ?: 0)
        result = 31 * result + (generatedManifestDescriptor?.hashCode() ?: 0)
        result = 31 * result + (jobArn?.hashCode() ?: 0)
        result = 31 * result + (jobId?.hashCode() ?: 0)
        result = 31 * result + (manifest?.hashCode() ?: 0)
        result = 31 * result + (manifestGenerator?.hashCode() ?: 0)
        result = 31 * result + (operation?.hashCode() ?: 0)
        result = 31 * result + (priority)
        result = 31 * result + (progressSummary?.hashCode() ?: 0)
        result = 31 * result + (report?.hashCode() ?: 0)
        result = 31 * result + (roleArn?.hashCode() ?: 0)
        result = 31 * result + (status?.hashCode() ?: 0)
        result = 31 * result + (statusUpdateReason?.hashCode() ?: 0)
        result = 31 * result + (suspendedCause?.hashCode() ?: 0)
        result = 31 * result + (suspendedDate?.hashCode() ?: 0)
        result = 31 * result + (terminationDate?.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 JobDescriptor

        if (confirmationRequired != other.confirmationRequired) return false
        if (creationTime != other.creationTime) return false
        if (description != other.description) return false
        if (failureReasons != other.failureReasons) return false
        if (generatedManifestDescriptor != other.generatedManifestDescriptor) return false
        if (jobArn != other.jobArn) return false
        if (jobId != other.jobId) return false
        if (manifest != other.manifest) return false
        if (manifestGenerator != other.manifestGenerator) return false
        if (operation != other.operation) return false
        if (priority != other.priority) return false
        if (progressSummary != other.progressSummary) return false
        if (report != other.report) return false
        if (roleArn != other.roleArn) return false
        if (status != other.status) return false
        if (statusUpdateReason != other.statusUpdateReason) return false
        if (suspendedCause != other.suspendedCause) return false
        if (suspendedDate != other.suspendedDate) return false
        if (terminationDate != other.terminationDate) return false

        return true
    }

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

    public class Builder {
        /**
         * Indicates whether confirmation is required before Amazon S3 begins running the specified job. Confirmation is required only for jobs created through the Amazon S3 console.
         */
        public var confirmationRequired: kotlin.Boolean? = null
        /**
         * A timestamp indicating when this job was created.
         */
        public var creationTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The description for this job, if one was provided in this job's `Create Job` request.
         */
        public var description: kotlin.String? = null
        /**
         * If the specified job failed, this field contains information describing the failure.
         */
        public var failureReasons: List? = null
        /**
         * The attribute of the JobDescriptor containing details about the job's generated manifest.
         */
        public var generatedManifestDescriptor: aws.sdk.kotlin.services.s3control.model.S3GeneratedManifestDescriptor? = null
        /**
         * The Amazon Resource Name (ARN) for this job.
         */
        public var jobArn: kotlin.String? = null
        /**
         * The ID for the specified job.
         */
        public var jobId: kotlin.String? = null
        /**
         * The configuration information for the specified job's manifest object.
         */
        public var manifest: aws.sdk.kotlin.services.s3control.model.JobManifest? = null
        /**
         * The manifest generator that was used to generate a job manifest for this job.
         */
        public var manifestGenerator: aws.sdk.kotlin.services.s3control.model.JobManifestGenerator? = null
        /**
         * The operation that the specified job is configured to run on the objects listed in the manifest.
         */
        public var operation: aws.sdk.kotlin.services.s3control.model.JobOperation? = null
        /**
         * The priority of the specified job.
         */
        public var priority: kotlin.Int = 0
        /**
         * Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.
         */
        public var progressSummary: aws.sdk.kotlin.services.s3control.model.JobProgressSummary? = null
        /**
         * Contains the configuration information for the job-completion report if you requested one in the `Create Job` request.
         */
        public var report: aws.sdk.kotlin.services.s3control.model.JobReport? = null
        /**
         * The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role assigned to run the tasks for this job.
         */
        public var roleArn: kotlin.String? = null
        /**
         * The current status of the specified job.
         */
        public var status: aws.sdk.kotlin.services.s3control.model.JobStatus? = null
        /**
         * The reason for updating the job.
         */
        public var statusUpdateReason: kotlin.String? = null
        /**
         * The reason why the specified job was suspended. A job is only suspended if you create it through the Amazon S3 console. When you create the job, it enters the `Suspended` state to await confirmation before running. After you confirm the job, it automatically exits the `Suspended` state.
         */
        public var suspendedCause: kotlin.String? = null
        /**
         * The timestamp when this job was suspended, if it has been suspended.
         */
        public var suspendedDate: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * A timestamp indicating when this job terminated. A job's termination date is the date and time when it succeeded, failed, or was canceled.
         */
        public var terminationDate: aws.smithy.kotlin.runtime.time.Instant? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.s3control.model.JobDescriptor) : this() {
            this.confirmationRequired = x.confirmationRequired
            this.creationTime = x.creationTime
            this.description = x.description
            this.failureReasons = x.failureReasons
            this.generatedManifestDescriptor = x.generatedManifestDescriptor
            this.jobArn = x.jobArn
            this.jobId = x.jobId
            this.manifest = x.manifest
            this.manifestGenerator = x.manifestGenerator
            this.operation = x.operation
            this.priority = x.priority
            this.progressSummary = x.progressSummary
            this.report = x.report
            this.roleArn = x.roleArn
            this.status = x.status
            this.statusUpdateReason = x.statusUpdateReason
            this.suspendedCause = x.suspendedCause
            this.suspendedDate = x.suspendedDate
            this.terminationDate = x.terminationDate
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.s3control.model.S3GeneratedManifestDescriptor] inside the given [block]
         */
        public fun generatedManifestDescriptor(block: aws.sdk.kotlin.services.s3control.model.S3GeneratedManifestDescriptor.Builder.() -> kotlin.Unit) {
            this.generatedManifestDescriptor = aws.sdk.kotlin.services.s3control.model.S3GeneratedManifestDescriptor.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.s3control.model.JobManifest] inside the given [block]
         */
        public fun manifest(block: aws.sdk.kotlin.services.s3control.model.JobManifest.Builder.() -> kotlin.Unit) {
            this.manifest = aws.sdk.kotlin.services.s3control.model.JobManifest.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.s3control.model.JobOperation] inside the given [block]
         */
        public fun operation(block: aws.sdk.kotlin.services.s3control.model.JobOperation.Builder.() -> kotlin.Unit) {
            this.operation = aws.sdk.kotlin.services.s3control.model.JobOperation.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.s3control.model.JobProgressSummary] inside the given [block]
         */
        public fun progressSummary(block: aws.sdk.kotlin.services.s3control.model.JobProgressSummary.Builder.() -> kotlin.Unit) {
            this.progressSummary = aws.sdk.kotlin.services.s3control.model.JobProgressSummary.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.s3control.model.JobReport] inside the given [block]
         */
        public fun report(block: aws.sdk.kotlin.services.s3control.model.JobReport.Builder.() -> kotlin.Unit) {
            this.report = aws.sdk.kotlin.services.s3control.model.JobReport.invoke(block)
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy