Policy types for @turbot/servicenow-azure-mysql

Azure > MySQL > Flexible Server > ServiceNow

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/flexibleServerServiceNow
Targets

Azure > MySQL > Flexible Server > ServiceNow > Configuration Item

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

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/flexibleServerServiceNowConfigurationItem
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 > MySQL > Flexible Server > 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 > MySQL > Flexible Server 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-mysql#/policy/types/flexibleServerServiceNowConfigurationItemRecord
Default Template Input
"{\n resource: flexibleServer{\n data\n metadata\n turbot {\n akas\n id\n tags\n title\n }\n }\n}\n"
Default Template
"availability_zone: {{ $.resource.data.availabilityZone | dump | safe }}\nbackup_retention_days: {{ $.resource.data.backup.backupRetentionDays | dump | safe }}\nfully_qualified_domain_name: {{ $.resource.data.fullyQualifiedDomainName | dump | safe }}\ngeo_redundant_backup: {{ $.resource.data.backup.geoRedundantBackup | dump | safe }}\nhigh_availability: {{ $.resource.data.highAvailability | dump | safe }}\nid: {{ $.resource.data.id | dump | safe }}\nmaintenance_window: {{ $.resource.data.maintenanceWindow | dump | safe }}\nmysql_flexible_server_name: {{ $.resource.data.name | dump | safe }}\nnetwork: {{ $.resource.data.network | dump | safe }}\nregion: {{ $.resource.data.location | dump | safe }}\nreplica_capacity: {{ $.resource.data.replicaCapacity | dump | safe }}\nreplication_role: {{ $.resource.data.replicationRole | dump | safe }}\nresource_group: {{ $.resource.metadata.azure.resourceGroupName | dump | safe }}\nsku_name: {{ $.resource.data.sku.name | dump | safe }}\nsku_tier: {{ $.resource.data.sku.tier | dump | safe }}\nstate: {{ $.resource.data.state | dump | safe }}\nstorage_auto_grow: {{ $.resource.data.storage.autoGrow | dump | safe }}\nstorage_iops: {{ $.resource.data.storage.iops | dump | safe }}\nstorage_size_gb: {{ $.resource.data.storage.storageSizeGB | dump | safe }}\nstorage_sku: {{ $.resource.data.storage.storageSku | dump | safe }}\nsubscription_id: {{ $.resource.metadata.azure.subscriptionId | dump | safe }}\ntags: {{ $.resource.turbot.tags | dump | safe }}\ntype: {{ $.resource.data.type | dump | safe }}\nversion: {{ $.resource.data.version | dump | safe }}\n"
Schema
{
"type": "object"
}

Azure > MySQL > Flexible Server > ServiceNow > Configuration Item > Table Definition

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

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/flexibleServerServiceNowConfigurationItemTableDefinition
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-mysql#/policy/types/flexibleServerServiceNowTableDefinition 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 > MySQL > Flexible Server > ServiceNow > Table

Configure a Table for Azure > MySQL > Flexible Server resource type in ServiceNow via the Azure > MySQL > Flexible Server > ServiceNow > Table > * policies.

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

Azure > MySQL > Flexible Server > 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 > MySQL > Flexible Server data.

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/flexibleServerServiceNowTableDefinition
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_mysql_flexibleserver",
"label": "Azure > MySQL > Flexible Server",
"extendsTable": "cmdb_ci"
},
"columns": [
{
"name": "availability_zone",
"label": "Availability Zone"
},
{
"name": "backup_retention_days",
"label": "Backup Retention Days"
},
{
"name": "fully_qualified_domain_name",
"label": "Fully Qualified Domain Name"
},
{
"name": "geo_redundant_backup",
"label": "Geo Redundant Backup"
},
{
"name": "high_availability",
"label": "High Availability",
"type": "string",
"size": 1000
},
{
"name": "id",
"label": "ID"
},
{
"name": "maintenance_window",
"label": "Maintenance Window",
"type": "string",
"size": 1000
},
{
"name": "mysql_flexible_server_name",
"label": "Mysql Flexible Server Name"
},
{
"name": "network",
"label": "Network",
"type": "string",
"size": 1000
},
{
"name": "region",
"label": "Region"
},
{
"name": "replica_capacity",
"label": "Replica Capacity"
},
{
"name": "replication_role",
"label": "Replication Role"
},
{
"name": "resource_group",
"label": "Resource Group",
"type": "string",
"size": 200
},
{
"name": "sku_name",
"label": "SKU Name"
},
{
"name": "sku_tier",
"label": "SKU Tier"
},
{
"name": "state",
"label": "State"
},
{
"name": "storage_auto_grow",
"label": "Storage Auto Grow"
},
{
"name": "storage_iops",
"label": "Storage IOPS"
},
{
"name": "storage_size_gb",
"label": "Storage Size GB"
},
{
"name": "storage_sku",
"label": "Storage SKU"
},
{
"name": "subscription_id",
"label": "Subscription ID"
},
{
"name": "tags",
"label": "Tags",
"type": "string",
"size": 1000
},
{
"name": "type",
"label": "Type"
},
{
"name": "version",
"label": "Version"
}
]
}
}

Azure > MySQL > Server > ServiceNow

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/serverServiceNow
Targets

Azure > MySQL > Server > ServiceNow > Configuration Item

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

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/serverServiceNowConfigurationItem
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 > MySQL > Server > 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 > MySQL > Server 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-mysql#/policy/types/serverServiceNowConfigurationItemRecord
Default Template Input
"{\n resource: server{\n data\n metadata\n turbot {\n akas\n id\n tags\n title\n }\n }\n}\n"
Default Template
"administrator_login: {{ $.resource.data.administratorLogin | dump | safe }}\nbackup_retention_days: {{ $.resource.data.storageProfile.backupRetentionDays | dump | safe }}\nearliest_restore_date: {{ $.resource.data.earliestRestoreDate | dump | safe }}\nfully_qualified_domain_name: {{ $.resource.data.fullyQualifiedDomainName | dump | safe }}\ngeo_redundant_backup: {{ $.resource.data.storageProfile.geoRedundantBackup | dump | safe }}\nid: {{ $.resource.data.id | dump | safe }}\nmaster_server_id: {{ $.resource.data.masterServerId | dump | safe }}\nregion: {{ $.resource.data.location | dump | safe }}\nreplica_capacity: {{ $.resource.data.replicaCapacity | dump | safe }}\nreplication_role: {{ $.resource.data.replicationRole | dump | safe }}\nresource_group: {{ $.resource.metadata.azure.resourceGroupName | dump | safe }}\nserver_name: {{ $.resource.data.name | dump | safe }}\nsku_capacity: {{ $.resource.data.sku.capacity | dump | safe }}\nsku_family: {{ $.resource.data.sku.family | dump | safe }}\nsku_name: {{ $.resource.data.sku.name | dump | safe }}\nsku_size: {{ $.resource.data.sku.size | dump | safe }}\nsku_tier: {{ $.resource.data.sku.tier | dump | safe }}\nssl_enforcement: {{ $.resource.data.sslEnforcement | dump | safe }}\nstorage_auto_grow: {{ $.resource.data.storageProfile.storageAutogrow | dump | safe }}\nstorage_mb: {{ $.resource.data.storageProfile.storageMB | dump | safe }}\nsubscription_id: {{ $.resource.metadata.azure.subscriptionId | dump | safe }}\ntags: {{ $.resource.turbot.tags | dump | safe }}\ntype: {{ $.resource.data.type | dump | safe }}\nuser_visible_state: {{ $.resource.data.userVisibleState | dump | safe }}\nversion: {{ $.resource.data.version | dump | safe }}\n"
Schema
{
"type": "object"
}

Azure > MySQL > Server > ServiceNow > Configuration Item > Table Definition

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

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/serverServiceNowConfigurationItemTableDefinition
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-mysql#/policy/types/serverServiceNowTableDefinition 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 > MySQL > Server > ServiceNow > Table

Configure a Table for Azure > MySQL > Server resource type in ServiceNow via the Azure > MySQL > Server > ServiceNow > Table > * policies.

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

Azure > MySQL > Server > 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 > MySQL > Server data.

URI
tmod:@turbot/servicenow-azure-mysql#/policy/types/serverServiceNowTableDefinition
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_mysql_server",
"label": "Azure > MySQL > Server",
"extendsTable": "cmdb_ci"
},
"columns": [
{
"name": "administrator_login",
"label": "Administrator Login"
},
{
"name": "backup_retention_days",
"label": "Backup Retention Days",
"type": "integer"
},
{
"name": "earliest_restore_date",
"label": "Earliest Restore Date"
},
{
"name": "fully_qualified_domain_name",
"label": "Fully Qualified Domain Name"
},
{
"name": "geo_redundant_backup",
"label": "Geo Redundant Backup"
},
{
"name": "id",
"label": "ID"
},
{
"name": "master_server_id",
"label": "Master Server ID"
},
{
"name": "region",
"label": "Region"
},
{
"name": "replica_capacity",
"label": "Replica Capacity",
"type": "integer"
},
{
"name": "replication_role",
"label": "Replication Role"
},
{
"name": "resource_group",
"label": "Resource Group",
"type": "string",
"size": 200
},
{
"name": "server_name",
"label": "Server Name"
},
{
"name": "sku_capacity",
"label": "SKU Capacity"
},
{
"name": "sku_family",
"label": "SKU Family"
},
{
"name": "sku_name",
"label": "SKU Name"
},
{
"name": "sku_size",
"label": "SKU Size"
},
{
"name": "sku_tier",
"label": "SKU Tier"
},
{
"name": "ssl_enforcement",
"label": "SSL Enforcement"
},
{
"name": "storage_auto_grow",
"label": "Storage Auto Grow"
},
{
"name": "storage_mb",
"label": "Storage MB"
},
{
"name": "subscription_id",
"label": "Subscription ID"
},
{
"name": "tags",
"label": "Tags",
"type": "string",
"size": 1000
},
{
"name": "type",
"label": "Type"
},
{
"name": "user_visible_state",
"label": "User Visible State"
},
{
"name": "version",
"label": "Version"
}
]
}
}