Share via


Microsoft.ApiManagement service/apis/diagnostics 2017-03-01

Bicep resource definition

The service/apis/diagnostics resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ApiManagement/service/apis/diagnostics resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.ApiManagement/service/apis/diagnostics@2017-03-01' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    enabled: bool
  }
}

Property Values

Microsoft.ApiManagement/service/apis/diagnostics

Name Description Value
name The resource name string

Constraints:
Min length = 1
Max length = 256
Pattern = ^[^*#&+:<>?]+$ (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: service/apis
properties Diagnostic entity contract properties. DiagnosticContractProperties

DiagnosticContractProperties

Name Description Value
enabled Indicates whether a diagnostic should receive data or not. bool (required)

Usage Examples

Bicep Samples

A basic example of deploying API Management Service API Diagnostics Logs.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource component 'Microsoft.Insights/components@2020-02-02' = {
  name: resourceName
  location: location
  kind: 'web'
  properties: {
    Application_Type: 'web'
    DisableIpMasking: false
    DisableLocalAuth: false
    ForceCustomerStorageForProfiler: false
    RetentionInDays: 90
    SamplingPercentage: 100
    publicNetworkAccessForIngestion: 'Enabled'
    publicNetworkAccessForQuery: 'Enabled'
  }
}

resource service 'Microsoft.ApiManagement/service@2021-08-01' = {
  name: resourceName
  location: location
  properties: {
    certificates: []
    customProperties: {
      'Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30': 'false'
      'Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10': 'false'
      'Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11': 'false'
      'Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10': 'false'
      'Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11': 'false'
    }
    disableGateway: false
    publicNetworkAccess: 'Enabled'
    publisherEmail: 'pub1@email.com'
    publisherName: 'pub1'
    virtualNetworkType: 'None'
  }
  sku: {
    capacity: 0
    name: 'Consumption'
  }
}

resource api 'Microsoft.ApiManagement/service/apis@2021-08-01' = {
  parent: service
  name: '${resourceName};rev=1'
  properties: {
    apiType: 'http'
    apiVersion: ''
    format: 'swagger-link-json'
    path: 'test'
    type: 'http'
    value: 'http://conferenceapi.azurewebsites.net/?format=json'
  }
}

resource logger 'Microsoft.ApiManagement/service/loggers@2021-08-01' = {
  parent: service
  name: resourceName
  properties: {
    credentials: {
      instrumentationKey: component.properties.InstrumentationKey
    }
    description: ''
    isBuffered: true
    loggerType: 'applicationInsights'
  }
}

resource diagnostic 'Microsoft.ApiManagement/service/apis/diagnostics@2021-08-01' = {
  parent: api
  name: 'applicationinsights'
  properties: {
    loggerId: logger.id
    operationNameFormat: 'Name'
  }
}

ARM template resource definition

The service/apis/diagnostics resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ApiManagement/service/apis/diagnostics resource, add the following JSON to your template.

{
  "type": "Microsoft.ApiManagement/service/apis/diagnostics",
  "apiVersion": "2017-03-01",
  "name": "string",
  "properties": {
    "enabled": "bool"
  }
}

Property Values

Microsoft.ApiManagement/service/apis/diagnostics

Name Description Value
apiVersion The api version '2017-03-01'
name The resource name string

Constraints:
Min length = 1
Max length = 256
Pattern = ^[^*#&+:<>?]+$ (required)
properties Diagnostic entity contract properties. DiagnosticContractProperties
type The resource type 'Microsoft.ApiManagement/service/apis/diagnostics'

DiagnosticContractProperties

Name Description Value
enabled Indicates whether a diagnostic should receive data or not. bool (required)

Usage Examples

Terraform (AzAPI provider) resource definition

The service/apis/diagnostics resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ApiManagement/service/apis/diagnostics resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ApiManagement/service/apis/diagnostics@2017-03-01"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      enabled = bool
    }
  }
}

Property Values

Microsoft.ApiManagement/service/apis/diagnostics

Name Description Value
name The resource name string

Constraints:
Min length = 1
Max length = 256
Pattern = ^[^*#&+:<>?]+$ (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: service/apis
properties Diagnostic entity contract properties. DiagnosticContractProperties
type The resource type "Microsoft.ApiManagement/service/apis/diagnostics@2017-03-01"

DiagnosticContractProperties

Name Description Value
enabled Indicates whether a diagnostic should receive data or not. bool (required)

Usage Examples

Terraform Samples

A basic example of deploying API Management Service API Diagnostics Logs.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "component" {
  type      = "Microsoft.Insights/components@2020-02-02"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    kind = "web"
    properties = {
      Application_Type                = "web"
      DisableIpMasking                = false
      DisableLocalAuth                = false
      ForceCustomerStorageForProfiler = false
      RetentionInDays                 = 90
      SamplingPercentage              = 100
      publicNetworkAccessForIngestion = "Enabled"
      publicNetworkAccessForQuery     = "Enabled"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "service" {
  type      = "Microsoft.ApiManagement/service@2021-08-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      certificates = [
      ]
      customProperties = {
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10"         = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11"         = "false"
      }
      disableGateway      = false
      publicNetworkAccess = "Enabled"
      publisherEmail      = "pub1@email.com"
      publisherName       = "pub1"
      virtualNetworkType  = "None"
    }
    sku = {
      capacity = 0
      name     = "Consumption"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "api" {
  type      = "Microsoft.ApiManagement/service/apis@2021-08-01"
  parent_id = azapi_resource.service.id
  name      = "${var.resource_name};rev=1"
  body = {
    properties = {
      apiType    = "http"
      apiVersion = ""
      format     = "swagger-link-json"
      path       = "test"
      type       = "http"
      value      = "http://conferenceapi.azurewebsites.net/?format=json"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "logger" {
  type      = "Microsoft.ApiManagement/service/loggers@2021-08-01"
  parent_id = azapi_resource.service.id
  name      = var.resource_name
  body = {
    properties = {
      credentials = {
        instrumentationKey = azapi_resource.component.output.properties.InstrumentationKey
      }
      description = ""
      isBuffered  = true
      loggerType  = "applicationInsights"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
  lifecycle {
    ignore_changes = [body.properties.credentials.instrumentationKey]
  }
}

resource "azapi_resource" "diagnostic" {
  type      = "Microsoft.ApiManagement/service/apis/diagnostics@2021-08-01"
  parent_id = azapi_resource.api.id
  name      = "applicationinsights"
  body = {
    properties = {
      loggerId            = azapi_resource.logger.id
      operationNameFormat = "Name"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}