
com.pulumi.azure.apimanagement.kotlin.ApiDiagnosticArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.apimanagement.kotlin
import com.pulumi.azure.apimanagement.ApiDiagnosticArgs.builder
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticBackendRequestArgs
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticBackendRequestArgsBuilder
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticBackendResponseArgs
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticBackendResponseArgsBuilder
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticFrontendRequestArgs
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticFrontendRequestArgsBuilder
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticFrontendResponseArgs
import com.pulumi.azure.apimanagement.kotlin.inputs.ApiDiagnosticFrontendResponseArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
* Manages a API Management Service API Diagnostics Logs.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as azure from "@pulumi/azure";
* const example = new azure.core.ResourceGroup("example", {
* name: "example-resources",
* location: "West Europe",
* });
* const exampleInsights = new azure.appinsights.Insights("example", {
* name: "example-appinsights",
* location: example.location,
* resourceGroupName: example.name,
* applicationType: "web",
* });
* const exampleService = new azure.apimanagement.Service("example", {
* name: "example-apim",
* location: example.location,
* resourceGroupName: example.name,
* publisherName: "My Company",
* publisherEmail: "[email protected]",
* skuName: "Developer_1",
* });
* const exampleApi = new azure.apimanagement.Api("example", {
* name: "example-api",
* resourceGroupName: example.name,
* apiManagementName: exampleService.name,
* revision: "1",
* displayName: "Example API",
* path: "example",
* protocols: ["https"],
* "import": {
* contentFormat: "swagger-link-json",
* contentValue: "http://conferenceapi.azurewebsites.net/?format=json",
* },
* });
* const exampleLogger = new azure.apimanagement.Logger("example", {
* name: "example-apimlogger",
* apiManagementName: exampleService.name,
* resourceGroupName: example.name,
* applicationInsights: {
* instrumentationKey: exampleInsights.instrumentationKey,
* },
* });
* const exampleApiDiagnostic = new azure.apimanagement.ApiDiagnostic("example", {
* identifier: "applicationinsights",
* resourceGroupName: example.name,
* apiManagementName: exampleService.name,
* apiName: exampleApi.name,
* apiManagementLoggerId: exampleLogger.id,
* samplingPercentage: 5,
* alwaysLogErrors: true,
* logClientIp: true,
* verbosity: "verbose",
* httpCorrelationProtocol: "W3C",
* frontendRequest: {
* bodyBytes: 32,
* headersToLogs: [
* "content-type",
* "accept",
* "origin",
* ],
* },
* frontendResponse: {
* bodyBytes: 32,
* headersToLogs: [
* "content-type",
* "content-length",
* "origin",
* ],
* },
* backendRequest: {
* bodyBytes: 32,
* headersToLogs: [
* "content-type",
* "accept",
* "origin",
* ],
* },
* backendResponse: {
* bodyBytes: 32,
* headersToLogs: [
* "content-type",
* "content-length",
* "origin",
* ],
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_azure as azure
* example = azure.core.ResourceGroup("example",
* name="example-resources",
* location="West Europe")
* example_insights = azure.appinsights.Insights("example",
* name="example-appinsights",
* location=example.location,
* resource_group_name=example.name,
* application_type="web")
* example_service = azure.apimanagement.Service("example",
* name="example-apim",
* location=example.location,
* resource_group_name=example.name,
* publisher_name="My Company",
* publisher_email="[email protected]",
* sku_name="Developer_1")
* example_api = azure.apimanagement.Api("example",
* name="example-api",
* resource_group_name=example.name,
* api_management_name=example_service.name,
* revision="1",
* display_name="Example API",
* path="example",
* protocols=["https"],
* import_=azure.apimanagement.ApiImportArgs(
* content_format="swagger-link-json",
* content_value="http://conferenceapi.azurewebsites.net/?format=json",
* ))
* example_logger = azure.apimanagement.Logger("example",
* name="example-apimlogger",
* api_management_name=example_service.name,
* resource_group_name=example.name,
* application_insights=azure.apimanagement.LoggerApplicationInsightsArgs(
* instrumentation_key=example_insights.instrumentation_key,
* ))
* example_api_diagnostic = azure.apimanagement.ApiDiagnostic("example",
* identifier="applicationinsights",
* resource_group_name=example.name,
* api_management_name=example_service.name,
* api_name=example_api.name,
* api_management_logger_id=example_logger.id,
* sampling_percentage=5,
* always_log_errors=True,
* log_client_ip=True,
* verbosity="verbose",
* http_correlation_protocol="W3C",
* frontend_request=azure.apimanagement.ApiDiagnosticFrontendRequestArgs(
* body_bytes=32,
* headers_to_logs=[
* "content-type",
* "accept",
* "origin",
* ],
* ),
* frontend_response=azure.apimanagement.ApiDiagnosticFrontendResponseArgs(
* body_bytes=32,
* headers_to_logs=[
* "content-type",
* "content-length",
* "origin",
* ],
* ),
* backend_request=azure.apimanagement.ApiDiagnosticBackendRequestArgs(
* body_bytes=32,
* headers_to_logs=[
* "content-type",
* "accept",
* "origin",
* ],
* ),
* backend_response=azure.apimanagement.ApiDiagnosticBackendResponseArgs(
* body_bytes=32,
* headers_to_logs=[
* "content-type",
* "content-length",
* "origin",
* ],
* ))
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Azure = Pulumi.Azure;
* return await Deployment.RunAsync(() =>
* {
* var example = new Azure.Core.ResourceGroup("example", new()
* {
* Name = "example-resources",
* Location = "West Europe",
* });
* var exampleInsights = new Azure.AppInsights.Insights("example", new()
* {
* Name = "example-appinsights",
* Location = example.Location,
* ResourceGroupName = example.Name,
* ApplicationType = "web",
* });
* var exampleService = new Azure.ApiManagement.Service("example", new()
* {
* Name = "example-apim",
* Location = example.Location,
* ResourceGroupName = example.Name,
* PublisherName = "My Company",
* PublisherEmail = "[email protected]",
* SkuName = "Developer_1",
* });
* var exampleApi = new Azure.ApiManagement.Api("example", new()
* {
* Name = "example-api",
* ResourceGroupName = example.Name,
* ApiManagementName = exampleService.Name,
* Revision = "1",
* DisplayName = "Example API",
* Path = "example",
* Protocols = new[]
* {
* "https",
* },
* Import = new Azure.ApiManagement.Inputs.ApiImportArgs
* {
* ContentFormat = "swagger-link-json",
* ContentValue = "http://conferenceapi.azurewebsites.net/?format=json",
* },
* });
* var exampleLogger = new Azure.ApiManagement.Logger("example", new()
* {
* Name = "example-apimlogger",
* ApiManagementName = exampleService.Name,
* ResourceGroupName = example.Name,
* ApplicationInsights = new Azure.ApiManagement.Inputs.LoggerApplicationInsightsArgs
* {
* InstrumentationKey = exampleInsights.InstrumentationKey,
* },
* });
* var exampleApiDiagnostic = new Azure.ApiManagement.ApiDiagnostic("example", new()
* {
* Identifier = "applicationinsights",
* ResourceGroupName = example.Name,
* ApiManagementName = exampleService.Name,
* ApiName = exampleApi.Name,
* ApiManagementLoggerId = exampleLogger.Id,
* SamplingPercentage = 5,
* AlwaysLogErrors = true,
* LogClientIp = true,
* Verbosity = "verbose",
* HttpCorrelationProtocol = "W3C",
* FrontendRequest = new Azure.ApiManagement.Inputs.ApiDiagnosticFrontendRequestArgs
* {
* BodyBytes = 32,
* HeadersToLogs = new[]
* {
* "content-type",
* "accept",
* "origin",
* },
* },
* FrontendResponse = new Azure.ApiManagement.Inputs.ApiDiagnosticFrontendResponseArgs
* {
* BodyBytes = 32,
* HeadersToLogs = new[]
* {
* "content-type",
* "content-length",
* "origin",
* },
* },
* BackendRequest = new Azure.ApiManagement.Inputs.ApiDiagnosticBackendRequestArgs
* {
* BodyBytes = 32,
* HeadersToLogs = new[]
* {
* "content-type",
* "accept",
* "origin",
* },
* },
* BackendResponse = new Azure.ApiManagement.Inputs.ApiDiagnosticBackendResponseArgs
* {
* BodyBytes = 32,
* HeadersToLogs = new[]
* {
* "content-type",
* "content-length",
* "origin",
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/apimanagement"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
* Name: pulumi.String("example-resources"),
* Location: pulumi.String("West Europe"),
* })
* if err != nil {
* return err
* }
* exampleInsights, err := appinsights.NewInsights(ctx, "example", &appinsights.InsightsArgs{
* Name: pulumi.String("example-appinsights"),
* Location: example.Location,
* ResourceGroupName: example.Name,
* ApplicationType: pulumi.String("web"),
* })
* if err != nil {
* return err
* }
* exampleService, err := apimanagement.NewService(ctx, "example", &apimanagement.ServiceArgs{
* Name: pulumi.String("example-apim"),
* Location: example.Location,
* ResourceGroupName: example.Name,
* PublisherName: pulumi.String("My Company"),
* PublisherEmail: pulumi.String("[email protected]"),
* SkuName: pulumi.String("Developer_1"),
* })
* if err != nil {
* return err
* }
* exampleApi, err := apimanagement.NewApi(ctx, "example", &apimanagement.ApiArgs{
* Name: pulumi.String("example-api"),
* ResourceGroupName: example.Name,
* ApiManagementName: exampleService.Name,
* Revision: pulumi.String("1"),
* DisplayName: pulumi.String("Example API"),
* Path: pulumi.String("example"),
* Protocols: pulumi.StringArray{
* pulumi.String("https"),
* },
* Import: &apimanagement.ApiImportArgs{
* ContentFormat: pulumi.String("swagger-link-json"),
* ContentValue: pulumi.String("http://conferenceapi.azurewebsites.net/?format=json"),
* },
* })
* if err != nil {
* return err
* }
* exampleLogger, err := apimanagement.NewLogger(ctx, "example", &apimanagement.LoggerArgs{
* Name: pulumi.String("example-apimlogger"),
* ApiManagementName: exampleService.Name,
* ResourceGroupName: example.Name,
* ApplicationInsights: &apimanagement.LoggerApplicationInsightsArgs{
* InstrumentationKey: exampleInsights.InstrumentationKey,
* },
* })
* if err != nil {
* return err
* }
* _, err = apimanagement.NewApiDiagnostic(ctx, "example", &apimanagement.ApiDiagnosticArgs{
* Identifier: pulumi.String("applicationinsights"),
* ResourceGroupName: example.Name,
* ApiManagementName: exampleService.Name,
* ApiName: exampleApi.Name,
* ApiManagementLoggerId: exampleLogger.ID(),
* SamplingPercentage: pulumi.Float64(5),
* AlwaysLogErrors: pulumi.Bool(true),
* LogClientIp: pulumi.Bool(true),
* Verbosity: pulumi.String("verbose"),
* HttpCorrelationProtocol: pulumi.String("W3C"),
* FrontendRequest: &apimanagement.ApiDiagnosticFrontendRequestArgs{
* BodyBytes: pulumi.Int(32),
* HeadersToLogs: pulumi.StringArray{
* pulumi.String("content-type"),
* pulumi.String("accept"),
* pulumi.String("origin"),
* },
* },
* FrontendResponse: &apimanagement.ApiDiagnosticFrontendResponseArgs{
* BodyBytes: pulumi.Int(32),
* HeadersToLogs: pulumi.StringArray{
* pulumi.String("content-type"),
* pulumi.String("content-length"),
* pulumi.String("origin"),
* },
* },
* BackendRequest: &apimanagement.ApiDiagnosticBackendRequestArgs{
* BodyBytes: pulumi.Int(32),
* HeadersToLogs: pulumi.StringArray{
* pulumi.String("content-type"),
* pulumi.String("accept"),
* pulumi.String("origin"),
* },
* },
* BackendResponse: &apimanagement.ApiDiagnosticBackendResponseArgs{
* BodyBytes: pulumi.Int(32),
* HeadersToLogs: pulumi.StringArray{
* pulumi.String("content-type"),
* pulumi.String("content-length"),
* pulumi.String("origin"),
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azure.core.ResourceGroup;
* import com.pulumi.azure.core.ResourceGroupArgs;
* import com.pulumi.azure.appinsights.Insights;
* import com.pulumi.azure.appinsights.InsightsArgs;
* import com.pulumi.azure.apimanagement.Service;
* import com.pulumi.azure.apimanagement.ServiceArgs;
* import com.pulumi.azure.apimanagement.Api;
* import com.pulumi.azure.apimanagement.ApiArgs;
* import com.pulumi.azure.apimanagement.inputs.ApiImportArgs;
* import com.pulumi.azure.apimanagement.Logger;
* import com.pulumi.azure.apimanagement.LoggerArgs;
* import com.pulumi.azure.apimanagement.inputs.LoggerApplicationInsightsArgs;
* import com.pulumi.azure.apimanagement.ApiDiagnostic;
* import com.pulumi.azure.apimanagement.ApiDiagnosticArgs;
* import com.pulumi.azure.apimanagement.inputs.ApiDiagnosticFrontendRequestArgs;
* import com.pulumi.azure.apimanagement.inputs.ApiDiagnosticFrontendResponseArgs;
* import com.pulumi.azure.apimanagement.inputs.ApiDiagnosticBackendRequestArgs;
* import com.pulumi.azure.apimanagement.inputs.ApiDiagnosticBackendResponseArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new ResourceGroup("example", ResourceGroupArgs.builder()
* .name("example-resources")
* .location("West Europe")
* .build());
* var exampleInsights = new Insights("exampleInsights", InsightsArgs.builder()
* .name("example-appinsights")
* .location(example.location())
* .resourceGroupName(example.name())
* .applicationType("web")
* .build());
* var exampleService = new Service("exampleService", ServiceArgs.builder()
* .name("example-apim")
* .location(example.location())
* .resourceGroupName(example.name())
* .publisherName("My Company")
* .publisherEmail("[email protected]")
* .skuName("Developer_1")
* .build());
* var exampleApi = new Api("exampleApi", ApiArgs.builder()
* .name("example-api")
* .resourceGroupName(example.name())
* .apiManagementName(exampleService.name())
* .revision("1")
* .displayName("Example API")
* .path("example")
* .protocols("https")
* .import_(ApiImportArgs.builder()
* .contentFormat("swagger-link-json")
* .contentValue("http://conferenceapi.azurewebsites.net/?format=json")
* .build())
* .build());
* var exampleLogger = new Logger("exampleLogger", LoggerArgs.builder()
* .name("example-apimlogger")
* .apiManagementName(exampleService.name())
* .resourceGroupName(example.name())
* .applicationInsights(LoggerApplicationInsightsArgs.builder()
* .instrumentationKey(exampleInsights.instrumentationKey())
* .build())
* .build());
* var exampleApiDiagnostic = new ApiDiagnostic("exampleApiDiagnostic", ApiDiagnosticArgs.builder()
* .identifier("applicationinsights")
* .resourceGroupName(example.name())
* .apiManagementName(exampleService.name())
* .apiName(exampleApi.name())
* .apiManagementLoggerId(exampleLogger.id())
* .samplingPercentage(5)
* .alwaysLogErrors(true)
* .logClientIp(true)
* .verbosity("verbose")
* .httpCorrelationProtocol("W3C")
* .frontendRequest(ApiDiagnosticFrontendRequestArgs.builder()
* .bodyBytes(32)
* .headersToLogs(
* "content-type",
* "accept",
* "origin")
* .build())
* .frontendResponse(ApiDiagnosticFrontendResponseArgs.builder()
* .bodyBytes(32)
* .headersToLogs(
* "content-type",
* "content-length",
* "origin")
* .build())
* .backendRequest(ApiDiagnosticBackendRequestArgs.builder()
* .bodyBytes(32)
* .headersToLogs(
* "content-type",
* "accept",
* "origin")
* .build())
* .backendResponse(ApiDiagnosticBackendResponseArgs.builder()
* .bodyBytes(32)
* .headersToLogs(
* "content-type",
* "content-length",
* "origin")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: azure:core:ResourceGroup
* properties:
* name: example-resources
* location: West Europe
* exampleInsights:
* type: azure:appinsights:Insights
* name: example
* properties:
* name: example-appinsights
* location: ${example.location}
* resourceGroupName: ${example.name}
* applicationType: web
* exampleService:
* type: azure:apimanagement:Service
* name: example
* properties:
* name: example-apim
* location: ${example.location}
* resourceGroupName: ${example.name}
* publisherName: My Company
* publisherEmail: [email protected]
* skuName: Developer_1
* exampleApi:
* type: azure:apimanagement:Api
* name: example
* properties:
* name: example-api
* resourceGroupName: ${example.name}
* apiManagementName: ${exampleService.name}
* revision: '1'
* displayName: Example API
* path: example
* protocols:
* - https
* import:
* contentFormat: swagger-link-json
* contentValue: http://conferenceapi.azurewebsites.net/?format=json
* exampleLogger:
* type: azure:apimanagement:Logger
* name: example
* properties:
* name: example-apimlogger
* apiManagementName: ${exampleService.name}
* resourceGroupName: ${example.name}
* applicationInsights:
* instrumentationKey: ${exampleInsights.instrumentationKey}
* exampleApiDiagnostic:
* type: azure:apimanagement:ApiDiagnostic
* name: example
* properties:
* identifier: applicationinsights
* resourceGroupName: ${example.name}
* apiManagementName: ${exampleService.name}
* apiName: ${exampleApi.name}
* apiManagementLoggerId: ${exampleLogger.id}
* samplingPercentage: 5
* alwaysLogErrors: true
* logClientIp: true
* verbosity: verbose
* httpCorrelationProtocol: W3C
* frontendRequest:
* bodyBytes: 32
* headersToLogs:
* - content-type
* - accept
* - origin
* frontendResponse:
* bodyBytes: 32
* headersToLogs:
* - content-type
* - content-length
* - origin
* backendRequest:
* bodyBytes: 32
* headersToLogs:
* - content-type
* - accept
* - origin
* backendResponse:
* bodyBytes: 32
* headersToLogs:
* - content-type
* - content-length
* - origin
* ```
*
* ## Import
* API Management Service API Diagnostics Logs can be imported using the `resource id`, e.g.
* ```sh
* $ pulumi import azure:apimanagement/apiDiagnostic:ApiDiagnostic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/diagnostics/diagnostic1
* ```
* @property alwaysLogErrors Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.
* @property apiManagementLoggerId The ID (name) of the Diagnostics Logger.
* @property apiManagementName The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.
* @property apiName The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.
* @property backendRequest A `backend_request` block as defined below.
* @property backendResponse A `backend_response` block as defined below.
* @property frontendRequest A `frontend_request` block as defined below.
* @property frontendResponse A `frontend_response` block as defined below.
* @property httpCorrelationProtocol The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.
* @property identifier Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.
* @property logClientIp Log client IP address.
* @property operationNameFormat The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.
* @property resourceGroupName The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.
* @property samplingPercentage Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.
* @property verbosity Logging verbosity. Possible values are `verbose`, `information` or `error`.
*/
public data class ApiDiagnosticArgs(
public val alwaysLogErrors: Output? = null,
public val apiManagementLoggerId: Output? = null,
public val apiManagementName: Output? = null,
public val apiName: Output? = null,
public val backendRequest: Output? = null,
public val backendResponse: Output? = null,
public val frontendRequest: Output? = null,
public val frontendResponse: Output? = null,
public val httpCorrelationProtocol: Output? = null,
public val identifier: Output? = null,
public val logClientIp: Output? = null,
public val operationNameFormat: Output? = null,
public val resourceGroupName: Output? = null,
public val samplingPercentage: Output? = null,
public val verbosity: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.apimanagement.ApiDiagnosticArgs =
com.pulumi.azure.apimanagement.ApiDiagnosticArgs.builder()
.alwaysLogErrors(alwaysLogErrors?.applyValue({ args0 -> args0 }))
.apiManagementLoggerId(apiManagementLoggerId?.applyValue({ args0 -> args0 }))
.apiManagementName(apiManagementName?.applyValue({ args0 -> args0 }))
.apiName(apiName?.applyValue({ args0 -> args0 }))
.backendRequest(backendRequest?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.backendResponse(backendResponse?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.frontendRequest(frontendRequest?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.frontendResponse(frontendResponse?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.httpCorrelationProtocol(httpCorrelationProtocol?.applyValue({ args0 -> args0 }))
.identifier(identifier?.applyValue({ args0 -> args0 }))
.logClientIp(logClientIp?.applyValue({ args0 -> args0 }))
.operationNameFormat(operationNameFormat?.applyValue({ args0 -> args0 }))
.resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
.samplingPercentage(samplingPercentage?.applyValue({ args0 -> args0 }))
.verbosity(verbosity?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ApiDiagnosticArgs].
*/
@PulumiTagMarker
public class ApiDiagnosticArgsBuilder internal constructor() {
private var alwaysLogErrors: Output? = null
private var apiManagementLoggerId: Output? = null
private var apiManagementName: Output? = null
private var apiName: Output? = null
private var backendRequest: Output? = null
private var backendResponse: Output? = null
private var frontendRequest: Output? = null
private var frontendResponse: Output? = null
private var httpCorrelationProtocol: Output? = null
private var identifier: Output? = null
private var logClientIp: Output? = null
private var operationNameFormat: Output? = null
private var resourceGroupName: Output? = null
private var samplingPercentage: Output? = null
private var verbosity: Output? = null
/**
* @param value Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.
*/
@JvmName("gqbkthujgidcasff")
public suspend fun alwaysLogErrors(`value`: Output) {
this.alwaysLogErrors = value
}
/**
* @param value The ID (name) of the Diagnostics Logger.
*/
@JvmName("nygubkurnyhgcile")
public suspend fun apiManagementLoggerId(`value`: Output) {
this.apiManagementLoggerId = value
}
/**
* @param value The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("aeifhjgbgooufjwt")
public suspend fun apiManagementName(`value`: Output) {
this.apiManagementName = value
}
/**
* @param value The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("leretsnxjyctipae")
public suspend fun apiName(`value`: Output) {
this.apiName = value
}
/**
* @param value A `backend_request` block as defined below.
*/
@JvmName("brsxwcylcwpwhqtd")
public suspend fun backendRequest(`value`: Output) {
this.backendRequest = value
}
/**
* @param value A `backend_response` block as defined below.
*/
@JvmName("rtaqrscnpdcvlvao")
public suspend fun backendResponse(`value`: Output) {
this.backendResponse = value
}
/**
* @param value A `frontend_request` block as defined below.
*/
@JvmName("qngfscltdoebaowo")
public suspend fun frontendRequest(`value`: Output) {
this.frontendRequest = value
}
/**
* @param value A `frontend_response` block as defined below.
*/
@JvmName("dnbhpqcuggclvpmu")
public suspend fun frontendResponse(`value`: Output) {
this.frontendResponse = value
}
/**
* @param value The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.
*/
@JvmName("lkrmvohdxwpyscyw")
public suspend fun httpCorrelationProtocol(`value`: Output) {
this.httpCorrelationProtocol = value
}
/**
* @param value Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("dojmojwtensngegd")
public suspend fun identifier(`value`: Output) {
this.identifier = value
}
/**
* @param value Log client IP address.
*/
@JvmName("bhbelssaixtrxckb")
public suspend fun logClientIp(`value`: Output) {
this.logClientIp = value
}
/**
* @param value The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.
*/
@JvmName("awkqexvbxhwbvwon")
public suspend fun operationNameFormat(`value`: Output) {
this.operationNameFormat = value
}
/**
* @param value The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("ykngtnkwiovuyevy")
public suspend fun resourceGroupName(`value`: Output) {
this.resourceGroupName = value
}
/**
* @param value Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.
*/
@JvmName("hqisporkfecfuhhl")
public suspend fun samplingPercentage(`value`: Output) {
this.samplingPercentage = value
}
/**
* @param value Logging verbosity. Possible values are `verbose`, `information` or `error`.
*/
@JvmName("ubbxxioftrolqmpf")
public suspend fun verbosity(`value`: Output) {
this.verbosity = value
}
/**
* @param value Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.
*/
@JvmName("tcpnmfexiulcipik")
public suspend fun alwaysLogErrors(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.alwaysLogErrors = mapped
}
/**
* @param value The ID (name) of the Diagnostics Logger.
*/
@JvmName("optegfericppcsdm")
public suspend fun apiManagementLoggerId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.apiManagementLoggerId = mapped
}
/**
* @param value The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("sblfxxtapyxclfbr")
public suspend fun apiManagementName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.apiManagementName = mapped
}
/**
* @param value The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("eqxmtiolwhpvgarw")
public suspend fun apiName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.apiName = mapped
}
/**
* @param value A `backend_request` block as defined below.
*/
@JvmName("opcrsjnsfwqbstcq")
public suspend fun backendRequest(`value`: ApiDiagnosticBackendRequestArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.backendRequest = mapped
}
/**
* @param argument A `backend_request` block as defined below.
*/
@JvmName("hfiaxfvsqdqprpop")
public suspend
fun backendRequest(argument: suspend ApiDiagnosticBackendRequestArgsBuilder.() -> Unit) {
val toBeMapped = ApiDiagnosticBackendRequestArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.backendRequest = mapped
}
/**
* @param value A `backend_response` block as defined below.
*/
@JvmName("phtuftqkjwqnkylb")
public suspend fun backendResponse(`value`: ApiDiagnosticBackendResponseArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.backendResponse = mapped
}
/**
* @param argument A `backend_response` block as defined below.
*/
@JvmName("gshvtwcvbcmdqpjx")
public suspend
fun backendResponse(argument: suspend ApiDiagnosticBackendResponseArgsBuilder.() -> Unit) {
val toBeMapped = ApiDiagnosticBackendResponseArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.backendResponse = mapped
}
/**
* @param value A `frontend_request` block as defined below.
*/
@JvmName("rickykruuolrxivp")
public suspend fun frontendRequest(`value`: ApiDiagnosticFrontendRequestArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.frontendRequest = mapped
}
/**
* @param argument A `frontend_request` block as defined below.
*/
@JvmName("ysfuikwvsanlcqxa")
public suspend
fun frontendRequest(argument: suspend ApiDiagnosticFrontendRequestArgsBuilder.() -> Unit) {
val toBeMapped = ApiDiagnosticFrontendRequestArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.frontendRequest = mapped
}
/**
* @param value A `frontend_response` block as defined below.
*/
@JvmName("mtpmbxqrobdcicrj")
public suspend fun frontendResponse(`value`: ApiDiagnosticFrontendResponseArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.frontendResponse = mapped
}
/**
* @param argument A `frontend_response` block as defined below.
*/
@JvmName("cyykiwegntbvauby")
public suspend
fun frontendResponse(argument: suspend ApiDiagnosticFrontendResponseArgsBuilder.() -> Unit) {
val toBeMapped = ApiDiagnosticFrontendResponseArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.frontendResponse = mapped
}
/**
* @param value The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.
*/
@JvmName("tyciqpvwnasybdid")
public suspend fun httpCorrelationProtocol(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.httpCorrelationProtocol = mapped
}
/**
* @param value Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("ejdfdjkepmyoethb")
public suspend fun identifier(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.identifier = mapped
}
/**
* @param value Log client IP address.
*/
@JvmName("lxmgeytsjlieiqui")
public suspend fun logClientIp(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.logClientIp = mapped
}
/**
* @param value The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.
*/
@JvmName("lprjgknwnkshqpnu")
public suspend fun operationNameFormat(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.operationNameFormat = mapped
}
/**
* @param value The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.
*/
@JvmName("ctrggcsdkipsjfib")
public suspend fun resourceGroupName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceGroupName = mapped
}
/**
* @param value Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.
*/
@JvmName("uboiurqteldjkgea")
public suspend fun samplingPercentage(`value`: Double?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.samplingPercentage = mapped
}
/**
* @param value Logging verbosity. Possible values are `verbose`, `information` or `error`.
*/
@JvmName("iqptgspswukfjruy")
public suspend fun verbosity(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.verbosity = mapped
}
internal fun build(): ApiDiagnosticArgs = ApiDiagnosticArgs(
alwaysLogErrors = alwaysLogErrors,
apiManagementLoggerId = apiManagementLoggerId,
apiManagementName = apiManagementName,
apiName = apiName,
backendRequest = backendRequest,
backendResponse = backendResponse,
frontendRequest = frontendRequest,
frontendResponse = frontendResponse,
httpCorrelationProtocol = httpCorrelationProtocol,
identifier = identifier,
logClientIp = logClientIp,
operationNameFormat = operationNameFormat,
resourceGroupName = resourceGroupName,
samplingPercentage = samplingPercentage,
verbosity = verbosity,
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy