ApiDiagnosticArgs

data class ApiDiagnosticArgs(val alwaysLogErrors: Output<Boolean>? = null, val apiManagementLoggerId: Output<String>? = null, val apiManagementName: Output<String>? = null, val apiName: Output<String>? = null, val backendRequest: Output<ApiDiagnosticBackendRequestArgs>? = null, val backendResponse: Output<ApiDiagnosticBackendResponseArgs>? = null, val frontendRequest: Output<ApiDiagnosticFrontendRequestArgs>? = null, val frontendResponse: Output<ApiDiagnosticFrontendResponseArgs>? = null, val httpCorrelationProtocol: Output<String>? = null, val identifier: Output<String>? = null, val logClientIp: Output<Boolean>? = null, val operationNameFormat: Output<String>? = null, val resourceGroupName: Output<String>? = null, val samplingPercentage: Output<Double>? = null, val verbosity: Output<String>? = null) : ConvertibleToJava<ApiDiagnosticArgs>

Manages a API Management Service API Diagnostics Logs.

Example Usage

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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.location("West Europe")
.build());
var exampleInsights = new Insights("exampleInsights", InsightsArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.applicationType("web")
.build());
var exampleService = new Service("exampleService", ServiceArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.publisherName("My Company")
.publisherEmail("company@mycompany.io")
.skuName("Developer_1")
.build());
var exampleApi = new Api("exampleApi", ApiArgs.builder()
.resourceGroupName(exampleResourceGroup.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()
.apiManagementName(exampleService.name())
.resourceGroupName(exampleResourceGroup.name())
.applicationInsights(LoggerApplicationInsightsArgs.builder()
.instrumentationKey(exampleInsights.instrumentationKey())
.build())
.build());
var exampleApiDiagnostic = new ApiDiagnostic("exampleApiDiagnostic", ApiDiagnosticArgs.builder()
.identifier("applicationinsights")
.resourceGroupName(exampleResourceGroup.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());
}
}

Import

API Management Service API Diagnostics Logs can be imported using the resource id, e.g.

$ pulumi import azure:apimanagement/apiDiagnostic:ApiDiagnostic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/diagnostics/diagnostic1

Constructors

Link copied to clipboard
fun ApiDiagnosticArgs(alwaysLogErrors: Output<Boolean>? = null, apiManagementLoggerId: Output<String>? = null, apiManagementName: Output<String>? = null, apiName: Output<String>? = null, backendRequest: Output<ApiDiagnosticBackendRequestArgs>? = null, backendResponse: Output<ApiDiagnosticBackendResponseArgs>? = null, frontendRequest: Output<ApiDiagnosticFrontendRequestArgs>? = null, frontendResponse: Output<ApiDiagnosticFrontendResponseArgs>? = null, httpCorrelationProtocol: Output<String>? = null, identifier: Output<String>? = null, logClientIp: Output<Boolean>? = null, operationNameFormat: Output<String>? = null, resourceGroupName: Output<String>? = null, samplingPercentage: Output<Double>? = null, verbosity: Output<String>? = null)

Functions

Link copied to clipboard
open override fun toJava(): ApiDiagnosticArgs

Properties

Link copied to clipboard
val alwaysLogErrors: Output<Boolean>? = null

Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.

Link copied to clipboard
val apiManagementLoggerId: Output<String>? = null

The ID (name) of the Diagnostics Logger.

Link copied to clipboard
val apiManagementName: Output<String>? = null

The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.

Link copied to clipboard
val apiName: Output<String>? = null

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.

Link copied to clipboard

A backend_request block as defined below.

Link copied to clipboard

A backend_response block as defined below.

Link copied to clipboard

A frontend_request block as defined below.

Link copied to clipboard

A frontend_response block as defined below.

Link copied to clipboard
val httpCorrelationProtocol: Output<String>? = null

The HTTP Correlation Protocol to use. Possible values are None, Legacy or W3C.

Link copied to clipboard
val identifier: Output<String>? = null

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.

Link copied to clipboard
val logClientIp: Output<Boolean>? = null

Log client IP address.

Link copied to clipboard
val operationNameFormat: Output<String>? = null

The format of the Operation Name for Application Insights telemetries. Possible values are Name, and Url. Defaults to Name.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

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.

Link copied to clipboard
val samplingPercentage: Output<Double>? = null

Sampling (%). For high traffic APIs, please read this documentation to understand performance implications and log sampling. Valid values are between 0.0 and 100.0.

Link copied to clipboard
val verbosity: Output<String>? = null

Logging verbosity. Possible values are verbose, information or error.