Policy types for @turbot/servicenow-azure-loadbalancer

Azure > Load Balancer > Load Balancer > ServiceNow

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNow
Targets

Azure > Load Balancer > Load Balancer > ServiceNow > Configuration Item

Synchronize the data for the Azure > Load Balancer > Load Balancer based on the policies Azure > Load Balancer > Load Balancer > ServiceNow > Configuration Item > *

The Configuration Item control is responsible for automatically synchronizing records in a designated ServiceNow table, maintaining an up-to-date reflection of the Azure > Load Balancer > Load Balancer information within the ServiceNow CMDB.

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowConfigurationItem
Valid Value
[
"Skip",
"Check: Archived",
"Check: Deleted",
"Check: Sync",
"Enforce: Archived",
"Enforce: Deleted",
"Enforce: Sync",
"Enforce: Sync, archive on delete"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Archived",
"Check: Deleted",
"Check: Sync",
"Enforce: Archived",
"Enforce: Deleted",
"Enforce: Sync",
"Enforce: Sync, archive on delete"
],
"example": [
"Skip"
],
"default": "Skip"
}

Azure > Load Balancer > Load Balancer > ServiceNow > Configuration Item > Record

The policy facilitates the accurate representation of cloud resource within the ServiceNow environment, ensuring that critical data is effectively mapped and managed. Attribute of an Azure > Load Balancer > Load Balancer is systematically mapped to a specific column in a ServiceNow table.

The policy allows enabling organizations to select and map only those attributes that are most relevant to their operational needs. It significantly reduces the manual effort involved in data transfer and minimizes the risk of errors, thereby enhancing the overall efficiency of data management.

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowConfigurationItemRecord
Default Template Input
"{\n resource: loadBalancer{\n data\n metadata\n turbot {\n akas\n id\n tags\n title\n }\n }\n}\n"
Default Template
"backend_address_pools: {{ $.resource.data.backendAddressPools | dump | safe }}\nextended_location_name: {{ $.resource.data.extendedLocation.name | dump | safe }}\nextended_location_type: {{ $.resource.data.extendedLocation.type | dump | safe }}\nfrontend_ip_configurations: {{ $.resource.data.frontendIPConfiguration | dump | safe }}\nid: {{ $.resource.data.id | dump | safe }}\ninbound_nat_pools: {{ $.resource.data.inboundNatPools | dump | safe }}\ninbound_nat_rules: {{ $.resource.data.inboundNatRules | dump | safe }}\nload_balancer_name: {{ $.resource.data.loadBalancerName | dump | safe }}\nload_balancing_rules: {{ $.resource.data.loadBalancingRules | dump | safe }}\noutbound_rules: {{ $.resource.data.outboundRules | dump | safe }}\nprobes: {{ $.resource.data.probes | dump | safe }}\nprovisioning_state: {{ $.resource.data.provisioningState | dump | safe }}\nregion: {{ $.resource.data.location | dump | safe }}\nresource_group: {{ $.resource.metadata.azure.resourceGroupName | dump | safe }}\nresource_guid: {{ $.resource.data.resourceGuid | dump | safe }}\nsku_name: {{ $.resource.data.sku.name | dump | safe }}\nsku_tier: {{ $.resource.data.sku.tier | dump | safe }}\nsubscription_id: {{ $.resource.metadata.azure.subscriptionId | dump | safe }}\ntags: {{ $.resource.turbot.tags | dump | safe }}\ntype: {{ $.resource.data.type | dump | safe }}\n"
Schema
{
"type": "object"
}

Azure > Load Balancer > Load Balancer > ServiceNow > Configuration Item > Table Definition

This policy specifically allows users to define two key aspects: the name of the ServiceNow table where the Azure > Load Balancer > Load Balancer data will be stored, and the details of the columns used for archiving purposes.

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowConfigurationItemTableDefinition
Default Template Input
[
"{\n serviceNowInstance: resources(filter: \"resourceTypeId:tmod:@turbot/servicenow#/resource/types/instance level:self limit:1\") {\n items {\n turbot {\n id\n }\n }\n }\n}\n",
"{\n tableDefinition: policyValues(filter: \"policyTypeId:tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowTableDefinition resourceId:{{$.serviceNowInstance.items[0].turbot.id}} level:self\") {\n items {\n value\n }\n }\n applicationScope: policyValues(filter: \"policyTypeId:tmod:@turbot/servicenow#/policy/types/serviceNowApplicationScope resourceId:{{$.serviceNowInstance.items[0].turbot.id}} level:self\") {\n items {\n value\n }\n }\n}\n"
]
Default Template
"tableName: "{%- if $.applicationScope.items | length == 0 or $.tableDefinition.items | length == 0 %} {%- else %}{{$.applicationScope.items[0].value}}_{{$.tableDefinition.items[0].value.table.name | lower}}{% endif %}"\n"
Schema
{
"type": "object",
"additionalProperties": false,
"required": [
"tableName"
],
"properties": {
"tableName": {
"type": "string"
},
"archiveColumns": {
"type": "object"
}
}
}

Azure > Load Balancer > Load Balancer > ServiceNow > Table

Configure a Table for Azure > Load Balancer > Load Balancer resource type in ServiceNow via the Azure > Load Balancer > Load Balancer > ServiceNow > Table > * policies.

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowTable
Valid Value
[
"Skip",
"Check: Configured",
"Enforce: Configured"
]
Schema
{
"type": "string",
"enum": [
"Skip",
"Check: Configured",
"Enforce: Configured"
],
"example": [
"Skip"
],
"default": "Skip"
}

Azure > Load Balancer > Load Balancer > ServiceNow > Table > Definition

The policy enables the definition of ServiceNow table properties, including its name and the base table from which it extends, and details the specific columns required for representing Azure > Load Balancer > Load Balancer data.

URI
tmod:@turbot/servicenow-azure-loadbalancer#/policy/types/loadBalancerServiceNowTableDefinition
Schema
{
"type": "object",
"additionalProperties": false,
"required": [
"table",
"columns"
],
"properties": {
"table": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"pattern": "^([0-9a-z_])+$"
},
"label": {
"type": "string"
},
"extendsTable": {
"type": "string",
"pattern": "^([0-9a-z_])+$"
}
}
},
"columns": {
"type": "array",
"description": "An array of columns with their mappings to the CMDB.",
"default": [],
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the column in the table.",
"pattern": "^([0-9a-z_])+$"
},
"label": {
"type": "string",
"description": "The label for the column."
},
"type": {
"description": "The data type of the column.",
"type": "string"
},
"size": {
"type": "integer",
"description": "The length for data type."
}
}
}
}
},
"default": {
"table": {
"name": "guardrails_azure_loadbalancer_loadbalancer",
"label": "Azure > Load Balancer > Load Balancer",
"extendsTable": "cmdb_ci"
},
"columns": [
{
"name": "backend_address_pools",
"label": "Backend Address Pools",
"type": "string",
"size": 1000
},
{
"name": "extended_location_name",
"label": "Extended Location Name"
},
{
"name": "extended_location_type",
"label": "Extended Location Type"
},
{
"name": "frontend_ip_configurations",
"label": "Frontend IP Configurations",
"type": "string",
"size": 1000
},
{
"name": "id",
"label": "ID"
},
{
"name": "inbound_nat_pools",
"label": "Inbound Nat Pools",
"type": "string",
"size": 1000
},
{
"name": "inbound_nat_rules",
"label": "Inbound Nat Rules",
"type": "string",
"size": 1000
},
{
"name": "load_balancer_name",
"label": "Load Balancer Name"
},
{
"name": "load_balancing_rules",
"label": "Load Balancing Rules",
"type": "string",
"size": 1000
},
{
"name": "outbound_rules",
"label": "Outbound Rules",
"type": "string",
"size": 1000
},
{
"name": "probes",
"label": "Probes",
"type": "string",
"size": 1000
},
{
"name": "provisioning_state",
"label": "Provisioning State"
},
{
"name": "region",
"label": "Region"
},
{
"name": "resource_group",
"label": "Resource Group"
},
{
"name": "resource_guid",
"label": "Resource GUID"
},
{
"name": "sku_name",
"label": "SKU Name"
},
{
"name": "sku_tier",
"label": "SKU Tier"
},
{
"name": "subscription_id",
"label": "Subscription ID"
},
{
"name": "tags",
"label": "Tags",
"type": "string",
"size": 1000
},
{
"name": "type",
"label": "Type"
}
]
}
}