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

commonMain.aws.sdk.kotlin.services.sagemakergeospatial.model.Properties.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.sagemakergeospatial.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Properties associated with the Item.
 */
public class Properties private constructor(builder: Builder) {
    /**
     * Estimate of cloud cover.
     */
    public val eoCloudCover: kotlin.Float? = builder.eoCloudCover
    /**
     * Land cloud cover for Landsat Data Collection.
     */
    public val landsatCloudCoverLand: kotlin.Float? = builder.landsatCloudCoverLand
    /**
     * Platform property. Platform refers to the unique name of the specific platform the instrument is attached to. For satellites it is the name of the satellite, eg. landsat-8 (Landsat-8), sentinel-2a.
     */
    public val platform: kotlin.String? = builder.platform
    /**
     * The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).
     */
    public val viewOffNadir: kotlin.Float? = builder.viewOffNadir
    /**
     * The sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).
     */
    public val viewSunAzimuth: kotlin.Float? = builder.viewSunAzimuth
    /**
     * The sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° means the data was captured during [nautical twilight](https://www.timeanddate.com/astronomy/different-types-twilight.html).
     */
    public val viewSunElevation: kotlin.Float? = builder.viewSunElevation

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

    override fun toString(): kotlin.String = buildString {
        append("Properties(")
        append("eoCloudCover=$eoCloudCover,")
        append("landsatCloudCoverLand=$landsatCloudCoverLand,")
        append("platform=$platform,")
        append("viewOffNadir=$viewOffNadir,")
        append("viewSunAzimuth=$viewSunAzimuth,")
        append("viewSunElevation=$viewSunElevation")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = eoCloudCover?.hashCode() ?: 0
        result = 31 * result + (landsatCloudCoverLand?.hashCode() ?: 0)
        result = 31 * result + (platform?.hashCode() ?: 0)
        result = 31 * result + (viewOffNadir?.hashCode() ?: 0)
        result = 31 * result + (viewSunAzimuth?.hashCode() ?: 0)
        result = 31 * result + (viewSunElevation?.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 Properties

        if (!(eoCloudCover?.equals(other.eoCloudCover) ?: (other.eoCloudCover == null))) return false
        if (!(landsatCloudCoverLand?.equals(other.landsatCloudCoverLand) ?: (other.landsatCloudCoverLand == null))) return false
        if (platform != other.platform) return false
        if (!(viewOffNadir?.equals(other.viewOffNadir) ?: (other.viewOffNadir == null))) return false
        if (!(viewSunAzimuth?.equals(other.viewSunAzimuth) ?: (other.viewSunAzimuth == null))) return false
        if (!(viewSunElevation?.equals(other.viewSunElevation) ?: (other.viewSunElevation == null))) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Estimate of cloud cover.
         */
        public var eoCloudCover: kotlin.Float? = null
        /**
         * Land cloud cover for Landsat Data Collection.
         */
        public var landsatCloudCoverLand: kotlin.Float? = null
        /**
         * Platform property. Platform refers to the unique name of the specific platform the instrument is attached to. For satellites it is the name of the satellite, eg. landsat-8 (Landsat-8), sentinel-2a.
         */
        public var platform: kotlin.String? = null
        /**
         * The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).
         */
        public var viewOffNadir: kotlin.Float? = null
        /**
         * The sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).
         */
        public var viewSunAzimuth: kotlin.Float? = null
        /**
         * The sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° means the data was captured during [nautical twilight](https://www.timeanddate.com/astronomy/different-types-twilight.html).
         */
        public var viewSunElevation: kotlin.Float? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.sagemakergeospatial.model.Properties) : this() {
            this.eoCloudCover = x.eoCloudCover
            this.landsatCloudCoverLand = x.landsatCloudCoverLand
            this.platform = x.platform
            this.viewOffNadir = x.viewOffNadir
            this.viewSunAzimuth = x.viewSunAzimuth
            this.viewSunElevation = x.viewSunElevation
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy