Policy types for @turbot/servicenow-azure-frontdoorservice

Azure > Front Door > Front Door > ServiceNow

URI
tmod:@turbot/servicenow-azure-frontdoorservice#/policy/types/frontDoorServiceNow
Targets

Azure > Front Door > Front Door > ServiceNow > Configuration Item

Synchronize the data for the Azure > Front Door > Front Door based on the policies Azure > Front Door > Front Door > 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 > Front Door > Front Door information within the ServiceNow CMDB.

URI
tmod:@turbot/servicenow-azure-frontdoorservice#/policy/types/frontDoorServiceNowConfigurationItem
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 > Front Door > Front Door > 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 > Front Door > Front Door 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-frontdoorservice#/policy/types/frontDoorServiceNowConfigurationItemRecord
Default Template Input
"{\n resource: frontDoor{\n data\n metadata\n turbot {\n akas\n id\n tags\n title\n }\n }\n}\n"
Default Template
"backend_pools: {{ $.resource.data.backendPools | dump | safe }}\nbackend_pools_settings: {{ $.resource.data.backendPoolsSettings | dump | safe }}\ncname: {{ $.resource.data.cname | dump | safe }}\ndiagnostic_settings: {{ $.resource.data.diagnosticSettings | dump | safe }}\nenabled_state: {{ $.resource.data.enabledState | dump | safe }}\nfront_door_id: {{ $.resource.data.frontDoorId | dump | safe }}\nfront_door_name: {{ $.resource.data.frontDoorName | dump | safe }}\nfrontend_endpoints: {{ $.resource.data.frontendEndpoints | dump | safe }}\nhealth_probe_settings: {{ $.resource.data.healthProbeSettings | dump | safe }}\nid: {{ $.resource.data.id | dump | safe }}\nload_balancing_settings: {{ $.resource.data.loadBalancingSettings | dump | safe }}\nprovisioning_state: {{ $.resource.data.provisioningState | dump | safe }}\nregion: {{ $.resource.data.location | dump | safe }}\nresource_group: {{ $.resource.metadata.azure.resourceGroupName | dump | safe }}\nresource_state: {{ $.resource.data.resourceState | dump | safe }}\nrouting_rules: {{ $.resource.data.routingRules | dump | safe }}\nrules_engines: {{ $.resource.data.rulesEngines | 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 > Front Door > Front Door > ServiceNow > Configuration Item > Table Definition

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

URI
tmod:@turbot/servicenow-azure-frontdoorservice#/policy/types/frontDoorServiceNowConfigurationItemTableDefinition
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-frontdoorservice#/policy/types/frontDoorServiceNowTableDefinition 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 > Front Door > Front Door > ServiceNow > Table

Configure a Table for Azure > Front Door > Front Door resource type in ServiceNow via the Azure > Front Door > Front Door > ServiceNow > Table > * policies.

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

Azure > Front Door > Front Door > 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 > Front Door > Front Door data.

URI
tmod:@turbot/servicenow-azure-frontdoorservice#/policy/types/frontDoorServiceNowTableDefinition
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_frontdoorservice_frontdoor",
"label": "Azure > Front Door > Front Door",
"extendsTable": "cmdb_ci"
},
"columns": [
{
"name": "backend_pools",
"label": "Backend Pools",
"type": "string",
"size": 1000
},
{
"name": "backend_pools_settings",
"label": "Backend Pools Settings",
"type": "string",
"size": 1000
},
{
"name": "cname",
"label": "Cname"
},
{
"name": "diagnostic_settings",
"label": "Diagnostic Settings",
"type": "string",
"size": 1000
},
{
"name": "enabled_state",
"label": "Enabled State"
},
{
"name": "front_door_id",
"label": "Front Door ID"
},
{
"name": "front_door_name",
"label": "Front Door Name"
},
{
"name": "frontend_endpoints",
"label": "Frontend Endpoints",
"type": "string",
"size": 1000
},
{
"name": "health_probe_settings",
"label": "Health Probe Settings",
"type": "string",
"size": 1000
},
{
"name": "id",
"label": "ID"
},
{
"name": "load_balancing_settings",
"label": "Load Balancing Settings",
"type": "string",
"size": 1000
},
{
"name": "provisioning_state",
"label": "Provisioning State"
},
{
"name": "region",
"label": "Region"
},
{
"name": "resource_group",
"label": "Resource Group"
},
{
"name": "resource_state",
"label": "Resource State"
},
{
"name": "routing_rules",
"label": "Routing Rules",
"type": "string",
"size": 1000
},
{
"name": "rules_engines",
"label": "Rules Engines",
"type": "string",
"size": 1000
},
{
"name": "subscription_id",
"label": "Subscription ID"
},
{
"name": "tags",
"label": "Tags",
"type": "string",
"size": 1000
},
{
"name": "type",
"label": "Type"
}
]
}
}