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

commonMain.aws.sdk.kotlin.services.codeguruprofiler.model.BatchGetFrameMetricDataRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.codeguruprofiler.model

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

/**
 * The structure representing the BatchGetFrameMetricDataRequest.
 */
public class BatchGetFrameMetricDataRequest private constructor(builder: Builder) {
    /**
     * The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
     */
    public val endTime: aws.smithy.kotlin.runtime.time.Instant? = builder.endTime
    /**
     * The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.
     */
    public val frameMetrics: List? = builder.frameMetrics
    /**
     * The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (`PT24H` or `P1D`).
     */
    public val period: kotlin.String? = builder.period
    /**
     * The name of the profiling group associated with the the frame metrics used to return the time series values.
     */
    public val profilingGroupName: kotlin.String? = requireNotNull(builder.profilingGroupName) { "A non-null value must be provided for profilingGroupName" }
    /**
     * The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
     */
    public val startTime: aws.smithy.kotlin.runtime.time.Instant? = builder.startTime
    /**
     * The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by falling back to the most granular available resolution after the target resolution. There are 3 valid values.
     * + `P1D` — 1 day
     * + `PT1H` — 1 hour
     * + `PT5M` — 5 minutes
     */
    public val targetResolution: aws.sdk.kotlin.services.codeguruprofiler.model.AggregationPeriod? = builder.targetResolution

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

    override fun toString(): kotlin.String = buildString {
        append("BatchGetFrameMetricDataRequest(")
        append("endTime=$endTime,")
        append("frameMetrics=$frameMetrics,")
        append("period=$period,")
        append("profilingGroupName=$profilingGroupName,")
        append("startTime=$startTime,")
        append("targetResolution=$targetResolution")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = endTime?.hashCode() ?: 0
        result = 31 * result + (frameMetrics?.hashCode() ?: 0)
        result = 31 * result + (period?.hashCode() ?: 0)
        result = 31 * result + (profilingGroupName?.hashCode() ?: 0)
        result = 31 * result + (startTime?.hashCode() ?: 0)
        result = 31 * result + (targetResolution?.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 BatchGetFrameMetricDataRequest

        if (endTime != other.endTime) return false
        if (frameMetrics != other.frameMetrics) return false
        if (period != other.period) return false
        if (profilingGroupName != other.profilingGroupName) return false
        if (startTime != other.startTime) return false
        if (targetResolution != other.targetResolution) return false

        return true
    }

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

    public class Builder {
        /**
         * The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
         */
        public var endTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.
         */
        public var frameMetrics: List? = null
        /**
         * The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (`PT24H` or `P1D`).
         */
        public var period: kotlin.String? = null
        /**
         * The name of the profiling group associated with the the frame metrics used to return the time series values.
         */
        public var profilingGroupName: kotlin.String? = null
        /**
         * The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
         */
        public var startTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by falling back to the most granular available resolution after the target resolution. There are 3 valid values.
         * + `P1D` — 1 day
         * + `PT1H` — 1 hour
         * + `PT5M` — 5 minutes
         */
        public var targetResolution: aws.sdk.kotlin.services.codeguruprofiler.model.AggregationPeriod? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.codeguruprofiler.model.BatchGetFrameMetricDataRequest) : this() {
            this.endTime = x.endTime
            this.frameMetrics = x.frameMetrics
            this.period = x.period
            this.profilingGroupName = x.profilingGroupName
            this.startTime = x.startTime
            this.targetResolution = x.targetResolution
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.codeguruprofiler.model.BatchGetFrameMetricDataRequest = BatchGetFrameMetricDataRequest(this)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy