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

com.pulumi.googlenative.apigee.v1.kotlin.HostSecurityReportArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.apigee.v1.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.apigee.v1.HostSecurityReportArgs.builder
import com.pulumi.googlenative.apigee.v1.kotlin.inputs.GoogleCloudApigeeV1SecurityReportQueryMetricArgs
import com.pulumi.googlenative.apigee.v1.kotlin.inputs.GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Submit a query at host level to be processed in the background. If the submission of the query succeeds, the API returns a 201 status and an ID that refer to the query. In addition to the HTTP status 201, the `state` of "enqueued" means that the request succeeded.
 * Auto-naming is currently not supported for this resource.
 * Note - this resource's API doesn't support deletion. When deleted, the resource will persist
 * on Google Cloud even though it will be deleted from Pulumi state.
 * @property csvDelimiter Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\t`).
 * @property dimensions A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions
 * @property displayName Security Report display name which users can specify.
 * @property envgroupHostname Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostSecurityReport where analytics data will be grouped by organization and hostname.
 * @property filter Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax
 * @property groupByTimeUnit Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.
 * @property limit Maximum number of rows that can be returned in the result.
 * @property metrics A list of Metrics.
 * @property mimeType Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.
 * @property organizationId
 * @property reportDefinitionId Report Definition ID.
 * @property timeRange Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: "timeRange": { "start": "2018-07-29T00:13:00Z", "end": "2018-08-01T00:18:00Z" }
 */
public data class HostSecurityReportArgs(
    public val csvDelimiter: Output? = null,
    public val dimensions: Output>? = null,
    public val displayName: Output? = null,
    public val envgroupHostname: Output? = null,
    public val filter: Output? = null,
    public val groupByTimeUnit: Output? = null,
    public val limit: Output? = null,
    public val metrics: Output>? = null,
    public val mimeType: Output? = null,
    public val organizationId: Output? = null,
    public val reportDefinitionId: Output? = null,
    public val timeRange: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.apigee.v1.HostSecurityReportArgs =
        com.pulumi.googlenative.apigee.v1.HostSecurityReportArgs.builder()
            .csvDelimiter(csvDelimiter?.applyValue({ args0 -> args0 }))
            .dimensions(dimensions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .envgroupHostname(envgroupHostname?.applyValue({ args0 -> args0 }))
            .filter(filter?.applyValue({ args0 -> args0 }))
            .groupByTimeUnit(groupByTimeUnit?.applyValue({ args0 -> args0 }))
            .limit(limit?.applyValue({ args0 -> args0 }))
            .metrics(
                metrics?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .mimeType(mimeType?.applyValue({ args0 -> args0 }))
            .organizationId(organizationId?.applyValue({ args0 -> args0 }))
            .reportDefinitionId(reportDefinitionId?.applyValue({ args0 -> args0 }))
            .timeRange(timeRange?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [HostSecurityReportArgs].
 */
@PulumiTagMarker
public class HostSecurityReportArgsBuilder internal constructor() {
    private var csvDelimiter: Output? = null

    private var dimensions: Output>? = null

    private var displayName: Output? = null

    private var envgroupHostname: Output? = null

    private var filter: Output? = null

    private var groupByTimeUnit: Output? = null

    private var limit: Output? = null

    private var metrics: Output>? = null

    private var mimeType: Output? = null

    private var organizationId: Output? = null

    private var reportDefinitionId: Output? = null

    private var timeRange: Output? = null

    /**
     * @param value Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\t`).
     */
    @JvmName("eqnkfnfdhrqymqbn")
    public suspend fun csvDelimiter(`value`: Output) {
        this.csvDelimiter = value
    }

    /**
     * @param value A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions
     */
    @JvmName("muokxoodmybltklw")
    public suspend fun dimensions(`value`: Output>) {
        this.dimensions = value
    }

    @JvmName("qywbghvdrrnsyqyr")
    public suspend fun dimensions(vararg values: Output) {
        this.dimensions = Output.all(values.asList())
    }

    /**
     * @param values A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions
     */
    @JvmName("bukofybqykmplfjv")
    public suspend fun dimensions(values: List>) {
        this.dimensions = Output.all(values)
    }

    /**
     * @param value Security Report display name which users can specify.
     */
    @JvmName("hilfjtjadddpmnjv")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostSecurityReport where analytics data will be grouped by organization and hostname.
     */
    @JvmName("aahanelhvintmeml")
    public suspend fun envgroupHostname(`value`: Output) {
        this.envgroupHostname = value
    }

    /**
     * @param value Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax
     */
    @JvmName("ffijptobvwklatvj")
    public suspend fun filter(`value`: Output) {
        this.filter = value
    }

    /**
     * @param value Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.
     */
    @JvmName("rhhbmgkaclastdwy")
    public suspend fun groupByTimeUnit(`value`: Output) {
        this.groupByTimeUnit = value
    }

    /**
     * @param value Maximum number of rows that can be returned in the result.
     */
    @JvmName("myvwojutcepvnxar")
    public suspend fun limit(`value`: Output) {
        this.limit = value
    }

    /**
     * @param value A list of Metrics.
     */
    @JvmName("ykjlyxkpveqkbigk")
    public suspend fun metrics(`value`: Output>) {
        this.metrics = value
    }

    @JvmName("qadychgujdossqml")
    public suspend fun metrics(vararg values: Output) {
        this.metrics = Output.all(values.asList())
    }

    /**
     * @param values A list of Metrics.
     */
    @JvmName("ovqdoocirpbofeyh")
    public suspend fun metrics(values: List>) {
        this.metrics = Output.all(values)
    }

    /**
     * @param value Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.
     */
    @JvmName("wmhxgguuocqycxcw")
    public suspend fun mimeType(`value`: Output) {
        this.mimeType = value
    }

    /**
     * @param value
     */
    @JvmName("ergmksjlkciskrht")
    public suspend fun organizationId(`value`: Output) {
        this.organizationId = value
    }

    /**
     * @param value Report Definition ID.
     */
    @JvmName("tmipkgmkmdteakmi")
    public suspend fun reportDefinitionId(`value`: Output) {
        this.reportDefinitionId = value
    }

    /**
     * @param value Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: "timeRange": { "start": "2018-07-29T00:13:00Z", "end": "2018-08-01T00:18:00Z" }
     */
    @JvmName("jvnxratdepagrcas")
    public suspend fun timeRange(`value`: Output) {
        this.timeRange = value
    }

    /**
     * @param value Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\t`).
     */
    @JvmName("ljihhoueqanewuaj")
    public suspend fun csvDelimiter(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.csvDelimiter = mapped
    }

    /**
     * @param value A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions
     */
    @JvmName("aulhuspnteokdssg")
    public suspend fun dimensions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dimensions = mapped
    }

    /**
     * @param values A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions
     */
    @JvmName("voaxgaurbetdnpet")
    public suspend fun dimensions(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dimensions = mapped
    }

    /**
     * @param value Security Report display name which users can specify.
     */
    @JvmName("lhtnqqieybrdrmlf")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostSecurityReport where analytics data will be grouped by organization and hostname.
     */
    @JvmName("rlcyhlstpbqdggvm")
    public suspend fun envgroupHostname(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.envgroupHostname = mapped
    }

    /**
     * @param value Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax
     */
    @JvmName("urqolbenqkkqdnah")
    public suspend fun filter(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.filter = mapped
    }

    /**
     * @param value Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.
     */
    @JvmName("dxtgvwdhupbydqml")
    public suspend fun groupByTimeUnit(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groupByTimeUnit = mapped
    }

    /**
     * @param value Maximum number of rows that can be returned in the result.
     */
    @JvmName("ssuclqqmnhvfjlnp")
    public suspend fun limit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.limit = mapped
    }

    /**
     * @param value A list of Metrics.
     */
    @JvmName("cblgutrnifxidixh")
    public suspend fun metrics(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metrics = mapped
    }

    /**
     * @param argument A list of Metrics.
     */
    @JvmName("nuaydebqyfstnjej")
    public suspend fun metrics(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.metrics = mapped
    }

    /**
     * @param argument A list of Metrics.
     */
    @JvmName("yaishixakmtakbuo")
    public suspend fun metrics(vararg argument: suspend GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.metrics = mapped
    }

    /**
     * @param argument A list of Metrics.
     */
    @JvmName("mjllyiaffsflfbsx")
    public suspend fun metrics(argument: suspend GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            GoogleCloudApigeeV1SecurityReportQueryMetricArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.metrics = mapped
    }

    /**
     * @param values A list of Metrics.
     */
    @JvmName("asthsoaurkhihekm")
    public suspend fun metrics(vararg values: GoogleCloudApigeeV1SecurityReportQueryMetricArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.metrics = mapped
    }

    /**
     * @param value Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.
     */
    @JvmName("fchlaflbrmqnxmlk")
    public suspend fun mimeType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mimeType = mapped
    }

    /**
     * @param value
     */
    @JvmName("yoeelblyrnjrpmcp")
    public suspend fun organizationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.organizationId = mapped
    }

    /**
     * @param value Report Definition ID.
     */
    @JvmName("dqffmhstpjlfmtqa")
    public suspend fun reportDefinitionId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reportDefinitionId = mapped
    }

    /**
     * @param value Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: "timeRange": { "start": "2018-07-29T00:13:00Z", "end": "2018-08-01T00:18:00Z" }
     */
    @JvmName("glyfwmcijkhrkwep")
    public suspend fun timeRange(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeRange = mapped
    }

    internal fun build(): HostSecurityReportArgs = HostSecurityReportArgs(
        csvDelimiter = csvDelimiter,
        dimensions = dimensions,
        displayName = displayName,
        envgroupHostname = envgroupHostname,
        filter = filter,
        groupByTimeUnit = groupByTimeUnit,
        limit = limit,
        metrics = metrics,
        mimeType = mimeType,
        organizationId = organizationId,
        reportDefinitionId = reportDefinitionId,
        timeRange = timeRange,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy