diff --git a/website/data/cloud-docs-nav-data.json b/website/data/cloud-docs-nav-data.json index f7eb7a5cd..c78df3884 100644 --- a/website/data/cloud-docs-nav-data.json +++ b/website/data/cloud-docs-nav-data.json @@ -462,28 +462,75 @@ "title": "Integrations", "routes": [ { - "title": "ServiceNow Integration", + "title": "ServiceNow Integrations", "routes": [ - { "title": "Overview", "path": "integrations/service-now" }, { - "title": "Service Catalog", - "path": "integrations/service-now/service-catalog" - }, - { - "title": "Admin Guide", - "path": "integrations/service-now/admin-guide" - }, - { - "title": "Developer Reference", - "path": "integrations/service-now/developer-reference" - }, - { - "title": "Example Customizations", - "path": "integrations/service-now/example-customizations" + "title": "Service Catalog for Terraform", + "routes": [ + { "title": "Overview", "path": "integrations/service-now/service-catalog-terraform" }, + { + "title": "Service Catalog", + "path": "integrations/service-now/service-catalog-terraform/service-catalog-config" + }, + { + "title": "Admin Guide", + "path": "integrations/service-now/service-catalog-terraform/admin-guide" + }, + { + "title": "Developer Reference", + "path": "integrations/service-now/service-catalog-terraform/developer-reference" + }, + { + "title": "Example Customizations", + "path": "integrations/service-now/service-catalog-terraform/example-customizations" + }, + { + "title": "V1 Setup Instructions", + "path": "integrations/service-now/service-catalog-terraform/service-now-v1" + } + ] }, { - "title": "V1 Setup Instructions", - "path": "integrations/service-now/service-now-v1" + "title": "Service Graph Connector for Terraform", + "routes": [ + { + "title": "Overview", + "path": "integrations/service-now/service-graph" + }, + { + "title": "Setup", + "path": "integrations/service-now/service-graph/service-graph-setup" + }, + { + "title": "Resource Coverage", + "routes": [ + { + "title": "Overview", + "path": "integrations/service-now/service-graph/resource-coverage" + }, + { + "title": "AWS", + "path": "integrations/service-now/service-graph/resource-coverage/aws" + }, + { + "title": "Azure", + "path": "integrations/service-now/service-graph/resource-coverage/azure" + }, + { + "title": "GCP", + "path": "integrations/service-now/service-graph/resource-coverage/gcp" + }, + { + "title": "vSphere", + "path": "integrations/service-now/service-graph/resource-coverage/vsphere" + } + ] + }, + { + "title": "Customizations", + "path": "integrations/service-now/service-graph/customizations" + } + ] } ] }, diff --git a/website/docs/cloud-docs/integrations/service-now/admin-guide.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/admin-guide.mdx similarity index 93% rename from website/docs/cloud-docs/integrations/service-now/admin-guide.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/admin-guide.mdx index 774740ff4..d4ca00dee 100644 --- a/website/docs/cloud-docs/integrations/service-now/admin-guide.mdx +++ b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/admin-guide.mdx @@ -9,11 +9,11 @@ ServiceNow administrators have several options with configuring the Terraform integration. If you haven't yet installed the integration, see the [installation -documentation](/terraform/cloud-docs/integrations/service-now). +documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform). Once the integration has been installed, you can add and customize a service catalog and VCS repositories using the [service catalog -documentation](/terraform/cloud-docs/integrations/service-now/service-catalog). +documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config). You can also configure how frequently ServiceNow will poll Terraform Cloud using the documentation below. diff --git a/website/docs/cloud-docs/integrations/service-now/developer-reference.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/developer-reference.mdx similarity index 99% rename from website/docs/cloud-docs/integrations/service-now/developer-reference.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/developer-reference.mdx index 70509b785..a7da89ba4 100644 --- a/website/docs/cloud-docs/integrations/service-now/developer-reference.mdx +++ b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/developer-reference.mdx @@ -93,4 +93,4 @@ For users who only need to order from the Terraform Catalog, we recommend creating another role with read-only permissions for `x_terraform_vcs_repositories` to view the available repositories for ordering infrastructure. Install the Terraform ServiceNow Service Catalog integration by -following [the installation guide](/terraform/cloud-docs/integrations/service-now). +following [the installation guide](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform). diff --git a/website/docs/cloud-docs/integrations/service-now/example-customizations.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/example-customizations.mdx similarity index 100% rename from website/docs/cloud-docs/integrations/service-now/example-customizations.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/example-customizations.mdx diff --git a/website/docs/cloud-docs/integrations/service-now/index.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/index.mdx similarity index 97% rename from website/docs/cloud-docs/integrations/service-now/index.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/index.mdx index fc9e976e4..23da02a6f 100644 --- a/website/docs/cloud-docs/integrations/service-now/index.mdx +++ b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/index.mdx @@ -7,7 +7,7 @@ description: >- # Terraform ServiceNow Service Catalog Integration Setup Instructions --> **Integration version:** v2.2.0 +-> **Integration version:** v2.2.1 The Terraform ServiceNow Service Catalog integration enables your end-users to provision self-serve infrastructure via ServiceNow. By connecting ServiceNow to @@ -16,7 +16,7 @@ Items, create workspaces, and perform Terraform runs using prepared Terraform configurations hosted in VCS repositories. -> **Note:** The v1.x integration is deprecated, but documentation for existing -installations can be found [here](/terraform/cloud-docs/integrations/service-now/service-now-v1) +installations can be found [here](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/service-now-v1) -> **Note:** The ServiceNow Catalog integration is available in Terraform Cloud **Plus** Edition. Refer to [Terraform Cloud pricing](https://www.hashicorp.com/products/terraform/pricing) for details. @@ -216,21 +216,21 @@ Now that you have connected ServiceNow to Terraform Cloud, you are ready to create a Service Catalog using the VCS repositories provided by the Terraform Admin. -Navigate to the [Service Catalog documentation](/terraform/cloud-docs/integrations/service-now/service-catalog) to +Navigate to the [Service Catalog documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config) to begin. You can also refer to this documentation whenever you need to add or update request items. ### ServiceNow Developer Reference ServiceNow developers who wish to customize the Terraform integration can refer -to the [developer documentation](/terraform/cloud-docs/integrations/service-now/developer-reference). +to the [developer documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/developer-reference). ### ServiceNow Administrator's Guide. -Refer to the [ServiceNow Administrator documentation](/terraform/cloud-docs/integrations/service-now/admin-guide) for +Refer to the [ServiceNow Administrator documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/admin-guide) for information about configuring the integration. ### Example Customizations Once the ServiceNow integration is installed, you can consult the [example -customizations documentation](/terraform/cloud-docs/integrations/service-now/example-customizations). +customizations documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/example-customizations). diff --git a/website/docs/cloud-docs/integrations/service-now/service-catalog.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config.mdx similarity index 99% rename from website/docs/cloud-docs/integrations/service-now/service-catalog.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config.mdx index d612836b1..e802db46c 100644 --- a/website/docs/cloud-docs/integrations/service-now/service-catalog.mdx +++ b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config.mdx @@ -19,7 +19,7 @@ reporting the results back to ServiceNow. Before configuring a service catalog, you must install and configure the Terraform Cloud integration software on your ServiceNow instance. These steps -are covered in the [installation documentation](/terraform/cloud-docs/integrations/service-now). +are covered in the [installation documentation](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform). Additionally, you must have have the following information: diff --git a/website/docs/cloud-docs/integrations/service-now/service-now-v1/index.mdx b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-now-v1/index.mdx similarity index 99% rename from website/docs/cloud-docs/integrations/service-now/service-now-v1/index.mdx rename to website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-now-v1/index.mdx index 378d61256..2cdc8df15 100644 --- a/website/docs/cloud-docs/integrations/service-now/service-now-v1/index.mdx +++ b/website/docs/cloud-docs/integrations/service-now/service-catalog-terraform/service-now-v1/index.mdx @@ -7,7 +7,7 @@ description: >- # Terraform ServiceNow Service Catalog Integration Setup Instructions --> **\[DEPRECATED] Integration version:** v1.1.0 (Find the latest version [here](/terraform/cloud-docs/integrations/service-now)) +-> **\[DEPRECATED] Integration version:** v1.1.0 (Find the latest version [here](/terraform/cloud-docs/integrations/service-now/service-catalog-terraform)) !> **Note:** The ServiceNow Catalog integration is designed for use by Terraform Enterprise customers. We do not currently recommend using it with the SaaS version of Terraform Cloud. diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/customizations.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/customizations.mdx new file mode 100644 index 000000000..40a6938ec --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/customizations.mdx @@ -0,0 +1,95 @@ +--- +page_title: Overview - ServiceNow Service Graph Connector for Terraform Integration - instructions on customizations for admins +description: >- + ServiceNow Service Graph Connector for Terraform allows you to edit ETL mapping and add more resources. +--- + +# ETL Mapping Customizations + +-> **ServiceNow roles:** `admin` + +-> **ServiceNow plugin requirement:** `IntegrationHub ETL` + +You can update and customize the default ETL mapping rules offered by the Service Graph Connector for Terraform. + +To ensure that your custom rules remain intact during future updates, you can clone the existing ETL record and maintain it separately from the default one. + +This documentation guides you through the process of mapping a resource using an example of an AWS virtual private network (VPC). Although this resource is already covered by the application, the principles discussed apply to any new potential resource mapping. + +Any customizations should be done from the application's scope: **Service Graph Connector for Terraform**. + +## Clone the ETL map + +Navigate to the **IntegrationHub ETL** in the top menu. Check the **SG-Terraform** record and click **Duplicate**. Refer to the [ServiceNow documentation](https://docs.servicenow.com/en-US/bundle/utah-servicenow-platform/page/product/configuration-management/task/duplicate-cmdb-transform-map.html) to create a duplicate of an existing ETL transform map. + +## Build a resource in Terraform Cloud + +Create a new workspace in your Terraform Cloud organization and create a Terraform resource that you would like to map. It helps to have a Terraform state record of the resource to ensure accurate mapping. + +[Configure a webhook](/terraform/cloud-docs/integrations/service-now/service-graph/service-graph-setup#configure-terraform-webhook) and initiate a Terraform run. + +## Download Terraform State + +Once the run is successfully completed, open your ServiceNow instance, click on **All** and navigate to **Scheduled Imports**. + +Open the **SG-Terraform Scheduled Process State** record, search for the import set corresponding to the latest webhook request. Click the **Import Set** field to open the import set. Wait for the import set to be successfully processed. + +Since there are no existing ETL rules configured for the new resource, it is ignored during the ETL process. + +Open the **Outbound Http Requests** tab to list the requests sent from your ServiceNow instance to Terraform Cloud and get the latest state of the workspace. + +![ServiceNow Service Graph Connector Outbound Http Requests interface](/img/docs/service-now-service-graph-state-object-url.png) + +Open the record that starts with "http://archivist.terraform.io" by clicking on the timestamp. Copy the content of the URL field and open it you your browser to download the Terraform state file. + +Locate the resource in the state object. This JSON record will serve as a source for the future mapping. + +## Identify the CI target + +Pick a suitable Configuration Item (CI) target for your resource. For example, the AWS virtual private network (VPC) resource is mapped to Cloud Network (`cmdb_ci_network`) by the Service Graph Connector for Terraform. Refer to the [ServiceNow CMDB documentation](https://docs.servicenow.com/en-US/bundle/utah-servicenow-platform/page/product/configuration-management/reference/cmdb-tables-details.html) for more details on available CI tables. + +## Consult the CI Class Manager + +After selecting an appropriate CI target, it is important to consult the CI Class Manager for guidance on dependent relationships. Many CMDB resources rely on other CI tables. If a related class is not properly mapped, the ETL job will generate errors or warnings and fail to import your resource into the CMDB. + +In the top navigation, click on **All**, search for **CI Class Manager**, and click on **Open Hierarchy**. Search for your target CI Class and check **Dependent Relationships** tab to learn more about dependent mappings required by the resource. + +For example, according to the **CI Class Manager**, **Cloud Network** should be hosted on **Logical Datacenter** and **Cloud Service Account**. + +## Set the mapping rules + +Open the **IntegrationHub ETL** from the top navigation menu and select your cloned ETL map record prepared for customization. Refer to the [ServiceNow documentation](https://docs.servicenow.com/en-US/bundle/utah-servicenow-platform/page/product/configuration-management/concept/create-etl-transform-map.html) for instructions to create an ETL transform map. + +Click on the first **Specify Basic Details** section of the ETL Transform Map Assistant. Select the import set number containing your resource from the **Sample Import Set** dropdown and click **Mark as Complete**. + +Open the **Preview and Prepare Data** section and review the imported rows. Click **Mark as Complete**. + +The third section provides the interface for mapping resource attributes. Click on **Select CMDB Classes to Map Source Data**. Click on **Add Conditional Class** button at the top. Set the rules that will identify your resource in the import set. Use the `type` field value from the Terraform state object to identify your resource (on the ServiceNow side, field name are prefaced with `u_`). Set the target CMDB CI Class name and click **Save**. + +![ServiceNow Service Graph Connector: setting the Conditional Class rules in the ETL mapping](/img/docs/service-now-service-graph-conditional-class-mapping.png) + +To modify the mapping for your new Conditional Class record, select **Edit Mapping**. On the right side of the interface, drag the relevant data pills and drop them into the corresponding CMDB fields on the left side. Refer to the Terraform state record to verify the presence of attributes. For uniqueness, the **Source Native Key** value is typically mapped to the `arn` field when dealing with AWS resources. All resources mapped in the Service Graph Connector for Terraform will have the **Operational status** and **Name** fields populated. + +![ServiceNow Service Graph Connector: mapping resource attributes in the ETL](/img/docs/service-now-service-graph-etl-attribute-mapping.png) + +Once the mapping is completed, click on the left arrow at the top to return to the list of Conditional Classes. Map two more conditional classes in the same manner, according to the rules set in the CI Class Manager: **Logical Datacenter** (**AWS Datacenter** in case of AWS VPC) and **Cloud Service Account**. Since the AWS cloud provider is already covered by the application, these classes are already present. Click **Edit Class** to include your newly mapped resource into the listed conditional rules. Add another **OR** condition to each of them and click **Save**. + +![ServiceNow Service Graph Connector: updating conditions on existing parent records when a new resource is mapped](/img/docs/service-now-service-graph-etl-condition-update.png) + +Click **Mark as Complete** to finalize the **Select CMDB Classes to Map Source Data** section. + +## Set the required relationships + +Click **Add Relationships** to continue to the next section. Click the **Add Conditional Relationship** button at the top of the page. The following configuration tells the ETL that when a record with `aws_vpc` type is found in the import set, it should be hosted on **AWS Datacenter 1**. Click **Save**. + +![ServiceNow Service Graph Connector: setting dependent relationships in the ETL mapping interface](/img/docs/service-now-service-graph-etl-setting-relationship.png) + +A similar dependent relationship needs to be established from **AWS Datacenter** to **Cloud Service Account**. Since the AWS cloud provider is already covered by the application, the relationship record is present in the application. Click **Edit Relationship** and add another **OR** condition containing your new resource to the list. Click **Save**. + +![ServiceNow Service Graph Connector: updating existing dependent relationships in the ETL mapping interface](/img/docs/service-now-service-graph-etl-editing-relationship.png) + +Click **Mark as Complete** to finalize the **Add Relationships** section. + +## Run a test + +There are two ways to test the new resource mapping. You can utilize the **Test and Rollback Integration Results** interface of the ETL Transform Map Assistant. Alternatively, you can initiate a new run in your Terraform Cloud workspace that includes the deployment of the resource. \ No newline at end of file diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/index.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/index.mdx new file mode 100644 index 000000000..a3185595b --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/index.mdx @@ -0,0 +1,82 @@ +--- +page_title: Overview - ServiceNow Service Graph Connector for Terraform Integration - Terraform Cloud +description: >- + ServiceNow integration enables your users to import Terraform-built + infrastructure into ServiceNow CMDB. +--- + +# ServiceNow Service Graph Connector for Terraform + +-> **Integration version:** v1.0.0 + +Use the Service Graph Connector for Terraform to securely import Terraform Cloud resources into your ServiceNow instance. The ServiceNow Service Graph for Terraform is a certified scoped application available in the [ServiceNow Store](https://store.servicenow.com/sn_appstore_store.do#!/store/application/0b0600891b52c150c216ebd56e4bcb32). + +The integration is based on the [Service Graph Connector](https://www.servicenow.com/products/service-graph-connectors.html) technology that provides a framework for discovering and mapping relationships between the organization's infrastructure and the ServiceNow Configuration Items (CIs), and then automatically updating the [ServiceNow CMDB (Configuration Management Database)](https://www.servicenow.com/products/servicenow-platform/configuration-management-database.html) with this information. This enables platform teams to gain a comprehensive view of the resources they support. The CMDB is a central repository within the ServiceNow platform, which provides a single source of truth for your infrastructure and offers configurable dashboards for monitoring and reporting. + +## Key benefits + +- **Enhanced visibility**: The Service Graph Connector for Terraform updates the CMDB dashboards with resources deployed in Terraform Cloud. +- **Improved efficiency**: By connecting Terraform to the ServiceNow CMDB, platform teams can manage and search Terraform-provisioned resources in the CMDB alongside the rest of the company's infrastructure. +- **Consistent management**: Terraform state file changes get automatically and securely updated in the ServiceNow CMDB, capturing status changes for all technical resources in a timely manner. +- **Extensibility**: ServiceNow admins can customize mappings for additional resource types, potentially working with HashiCorp’s entire Terraform ecosystem made up of thousands of providers. + +## Technical design + +The diagram below shows how the Service Graph Connector for Terraform connects Terraform Cloud to your ServiceNow instance. + +![ServiceNow Service Graph Connector for Terraform: design diagram](/img/docs/service-now-service-graph-design.png) + +The Service Graph Connector for Terraform integrates with Terraform Cloud to fetch up-to-date information about your deployments. It leverages the Terraform state as the primary data source. The application doesn't make any requests to your cloud provider or require you to share any cloud credentials. + +## Import methods + +The integration offers two methods of importing your Terraform resources into CMDB. You can configure the application to periodically pull all your resources in one batch. Alternatively, you can set up webhooks in your Terraform workspaces, which will notify your ServiceNow instance about new deployments. + +### Scheduled polling + +The Service Graph Connector for Terraform can be scheduled to periodically poll Terraform Cloud. Depending on the size of your infrastructure and how frequently the state of your resources needs to be refreshed in CMDB, the polling schedule can be set anywhere from once a week to every second. This option is not recommended for big environments with thousands of Terraform workspaces as the import job will take several hours to complete. + +The scheduled job makes a request to your Terraform Cloud to obtain all organizations that the Terraform Cloud API token provided to the application has access to. It will attempt to import all relevant resources from all workspaces within each of those organizations. The processing time depends of the number of organizations and workspaces in your Terraform Cloud. Configuring the import job to run frequently is not recommended for big environments. + +To access the scheduler, search for **Service Graph Connector for Terraform** in the top navigation menu and select **SG-Import Schedule**. You can change the polling settings and view all previous import sets pulled into your ServiceNow instance using this method. + +### Terraform Cloud Webhook Notifications + +You can configure [webhook notifications](/terraform/cloud-docs/workspaces/settings/notifications) for all relevant workspaces in your Terraform Cloud organization. Webhooks offer an event-based approach to importing your resources. The import is triggered as soon as a Terraform run is successfully completed in the Terraform Cloud. + +Webhook POST requests are sent to an API endpoint exposed by the Service Graph Connector for Terraform in your ServiceNow instance. Each webhook request includes an HMAC token, and the endpoint validates the signature using the secret you provide. Learn more about [Terraform Cloud notification authenticity](/terraform/cloud-docs/workspaces/settings/notifications#notification-authenticity). + +Internally, the application uses a scheduled job as a helper to keep track of the incoming webhook requests. To activate, configure, and view the history of all webhook imports, navigate to **Scheduled Imports** and select **SG-Terraform Scheduled Process State**. By default, the job is set to run every minute. + +-> **Tip:** Both import options may be enabled, or you may choose to configure only the webhooks or the scheduled import. + +The [setup page](/terraform/cloud-docs/integrations/service-now/service-graph/service-graph-setup) provides configuration details for both import modes. + +## ETL (Extract, Transform, Load) + +After the application successfully imports the resources, they are temporarily stored in a staging database table. The import set records are then transferred to the ETL (Extract, Transform, Load) pipeline. Search for **IntegrationHub ETL** in the top navigation menu to view and edit the default ETL rules of the Service Graph Connector for Terraform. The application's ETL Transform Map is called **SG-Terraform**. + +To deactivate resources that you do not want imported into the CMDB, navigate to the **Select CMDB Classes to Map Source Data** section of the application's ETL record, and toggle the switch on the resource mapping record to deactivate it. + +![screenshot: ServiceNow Service Graph Connector for Terraform resource ETL deactivation button](/img/docs/service-now-service-graph-deactivate-etl.png) + +-> **Tip:** Run an import before you open the ETL map as the interface requires at least one import set stored in the memory to be able to display the rules. + +## Supported resources + +The Service Graph Connector for Terraform supports selected resources from the following cloud providers: + +- AWS +- Microsoft Azure +- Google Cloud +- VMware vSphere + +The [resource mapping](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage) documentation contains tables detailing the mapping of objects and attributes between Terraform Cloud and ServiceNow CMDB. + +## Destroyed resources + +After the destroy operation is completed in Terraform Cloud and the application's import job is finished in your ServiceNow instance, the **Operational Status** field of all resources in the CMDB removed from the Terraform state during the deletion process will be updated to **Non-Operational**. + +## Get started + +Refer to the [setup page](/terraform/cloud-docs/integrations/service-now/service-graph/service-graph-setup) for information on how to configure the integration in your ServiceNow instance. diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/aws.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/aws.mdx new file mode 100644 index 000000000..c36e1f72c --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/aws.mdx @@ -0,0 +1,218 @@ +--- +page_title: ServiceNow Service Graph Connector for Terraform Integration - AWS Coverage +description: >- + ServiceNow Service Graph integration allows to import selected resources from AWS into ServiceNow CMDB. +--- + +# AWS + +This page details the mapping rules for importing AWS resources, provisioned with Terraform, into ServiceNow CMDB. + +## Mapping of Terraform resources to CMDB CI Classes + +| AWS resource | Terraform resource name | ServiceNow CMDB CI Class | ServiceNow CMDB Category Name | +|--------------------------------------------------------------------------------------|----------------------------|---------------------------------|-------------------------------| +| AWS account | N/A | `cmdb_ci_cloud_service_account` | Cloud Service Account | +| AWS region | N/A | `cmdb_ci_aws_datacenter` | AWS Datacenter | +| EC2 Instance | `aws_instance` | `cmdb_ci_vm_instance` | Virtual Machine Instance | +| S3 Bucket | `aws_s3_bucket` | `cmdb_ci_cloud_object_storage` | Cloud Object Storage | +| ECS Cluster | `aws_ecs_cluster` | `cmdb_ci_cloud_ecs_cluster` | AWS Cloud ECS Cluster | +| EKS Cluster | `aws_eks_cluster` | `cmdb_ci_kubernetes_cluster` | Kubernetes Cluster | +| VPC | `aws_vpc` | `cmdb_ci_network` | Cloud Network | +| Database Instance (*non-Aurora databases: e.g., MySQL, PostgreSQL, SQL Server, etc.*)| `aws_db_instance` | `cmdb_ci_cloud_database` | Cloud DataBase | +| RDS Aurora Cluster | `aws_rds_cluster` | `cmdb_ci_cloud_db_cluster` | Cloud DataBase Cluster | +| RDS Aurora Instance | `aws_rds_cluster_instance` | `cmdb_ci_cloud_database` | Cloud DataBase | +| DynamoDB Global Table | `aws_dynamodb_global_table`| `cmdb_ci_dynamodb_global_table` | DynamoDB Global Table | +| DynamoDB Table | `aws_dynamodb_table` | `cmdb_ci_dynamodb_table` | DynamoDB Table | +| Security Group | `aws_security_group` | `cmdb_ci_compute_security_group`| Compute Security Group | +| Lambda | `aws_lambda_function` | `cmdb_ci_cloud_function` | Cloud Function | +| Load Balancer | `aws_lb` | `cmdb_ci_cloud_load_balancer` | Cloud Load Balancer | +| Tags | N/A | `cmdb_key_value` | Key Value | + +## Resource relationships + +| Child CI Class | Relationship type| Parent CI Class | +|------------------------------------------------------------|------------------|-----------------------------------------------------------| +| AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | Hosted On::Hosts | Cloud Service Account 1 (`cmdb_ci_cloud_service_account`) | +| AWS Datacenter 2 (`cmdb_ci_aws_datacenter`) | Hosted On::Hosts | Cloud Service Account 6 (`cmdb_ci_cloud_service_account`) | +| Virtual Machine Instance 1 (`cmdb_ci_vm_instance`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Virtual Machine Instance 1 (`cmdb_ci_vm_instance`) | Reference | Key Value 1 (`cmdb_key_value`) | +| AWS Cloud ECS Cluster 1 (`cmdb_ci_cloud_ecs_cluster`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| AWS Cloud ECS Cluster 1 (`cmdb_ci_cloud_ecs_cluster`) | Reference | Key Value 2 (`cmdb_key_value`) | +| Cloud Object Storage 1 (`cmdb_ci_cloud_object_storage`) | Hosted On::Hosts | AWS Datacenter 2 (`cmdb_ci_aws_datacenter`) | +| Cloud Object Storage 1 (`cmdb_ci_cloud_object_storage`) | Reference | Key Value 3 (`cmdb_key_value`) | +| Kubernetes Cluster 1 (`cmdb_ci_kubernetes_cluster`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Kubernetes Cluster 1 (`cmdb_ci_kubernetes_cluster`) | Reference | Key Value 4 (`cmdb_key_value`) | +| Cloud Network 1 (`cmdb_ci_network`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Cloud Network 1 (`cmdb_ci_network`) | Reference | Key Value 5 (`cmdb_key_value`) | +| Cloud DataBase 1 (`cmdb_ci_cloud_database` ) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Cloud DataBase 1 (`cmdb_ci_cloud_database` ) | Reference | Key Value 6 (`cmdb_key_value`) | +| Cloud DataBase Cluster 1 (`cmdb_ci_cloud_db_cluster`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Cloud DataBase Cluster 1 (`cmdb_ci_cloud_db_cluster`) | Reference | Key Value 7 (`cmdb_key_value`) | +| DynamoDB Global Table 1 (`cmdb_ci_dynamodb_global_table`) | Hosted On::Hosts | Cloud Service Account 1 (`cmdb_ci_cloud_service_account`) | +| DynamoDB Table 1 (`cmdb_ci_dynamodb_table`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| DynamoDB Table 1 (`cmdb_ci_dynamodb_table`) | Reference | Key Value 8 (`cmdb_key_value`) | +| Compute Security Group 1 (`cmdb_ci_compute_security_group`)| Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Compute Security Group 1 (`cmdb_ci_compute_security_group`)| Reference | Key Value 10 (`cmdb_key_value`) | +| Cloud Function 1 (`cmdb_ci_cloud_function`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Cloud Function 1 (`cmdb_ci_cloud_function`) | Reference | Key Value 11 (`cmdb_key_value`) | +| Cloud Load Balancer 1 (`cmdb_ci_cloud_load_balancer`) | Hosted On::Hosts | AWS Datacenter 1 (`cmdb_ci_aws_datacenter`) | +| Cloud Load Balancer 1 (`cmdb_ci_cloud_load_balancer`) | Reference | Key Value 12 (`cmdb_key_value`) | + +## Field attributes mapping + +### Cloud Service Account (`cmdb_ci_cloud_service_account`) + +| CMDB field | Terraform state field | +|--------------------|-----------------------------------------------| +| Source Native Key | Resource account number extracted from `arn` | +| Account Id | Resource account number extracted from `arn` | +| Datacenter Type | Resource cloud provider extracted from `arn` | +| Object ID | Resource id extracted from `arn` | +| Name | Resource name extracted from `arn` | +| Operational Status | Defaults to "1" ("Operational") | + +### AWS Datacenter (`cmdb_ci_aws_datacenter`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | Concatenation of region and account number extracted from `arn`| +| Object Id | Region extracted from `arn` | +| Region | Region extracted from `arn` | +| Name | Region extracted from `arn` | +| Operational Status| Defaults to "1" ("Operational") | + + +### Virtual Machine Instance (`cmdb_ci_vm_instance`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Placement Group ID| `placement_group` | +| IP Address | `public_ip` | +| Status | `instance_state` | +| VM Instance ID | `id` | +| Name | `id` | +| State | `state` | +| CPU | `cpu_core_count` | +| Operational Status| Defaults to "1" ("Operational") | + +### AWS Cloud ECS Cluster (`cmdb_ci_cloud_ecs_cluster`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Object Storage (`cmdb_ci_cloud_object_storage`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Cloud Provider | Resource cloud provider extracted from `arn` | +| Name | `bucket` | +| Operational Status| Defaults to "1" ("Operational") | + +### Kubernetes Cluster (`cmdb_ci_kubernetes_cluster`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| IP Address | `endpoint` | +| Port | Defaults to "6443" | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Network (`cmdb_ci_network`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud DataBase (`cmdb_ci_cloud_database`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Version | `engine_version` | +| Type | `engine` | +| TCP port(s) | `port` | +| Category | `instance_class` | +| Fully qualified domain name| `endpoint` | +| Location | Region extracted from `arn` | +| Name | `name` | +| Vendor | Resource cloud provider extracted from `arn` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud DataBase Cluster (`cmdb_ci_cloud_db_cluster`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Cluster ID | `cluster_resource_id` | +| Name | `name` | +| TCP port(s) | `port` | +| Fully qualified domain name| `endpoint` | +| Vendor | Resource cloud provider extracted from `arn` | +| Operational Status| Defaults to "1" ("Operational") | + +### DynamoDB Table (`cmdb_ci_dynamodb_table`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `arn` | +| Location | Region extracted from `arn` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### DynamoDB Global Table (`cmdb_ci_dynamodb_global_table`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `arn` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Compute Security Group (`cmdb_ci_compute_security_group`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Location | Region extracted from `arn` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Function (`cmdb_ci_cloud_function`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `arn` | +| Language | `runtime` | +| Code Size | `source_code_size` | +| Location | Region extracted from `arn` | +| Name | `function_name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Load Balancer (`cmdb_ci_cloud_load_balancer`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Canonical Hosted Zone Name| `dns_name` | +| Canonical Hosted Zone ID| `zone_id` | +| Location | Region extracted from `arn` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | \ No newline at end of file diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/azure.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/azure.mdx new file mode 100644 index 000000000..e5686d10c --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/azure.mdx @@ -0,0 +1,156 @@ +--- +page_title: ServiceNow Service Graph Connector for Terraform Integration - Azure Coverage +description: >- + ServiceNow Service Graph integration allows to import selected resources from Azure into ServiceNow CMDB. +--- + +# Microsoft Azure + +This page describes how Terraform-provisioned Azure resources are mapped to the classes within the ServiceNow CMDB. + +## Mapping of Terraform resources to CMDB CI Classes + +| Azure resource | Terraform resource name | ServiceNow CMDB CI Class | ServiceNow CMDB Category Name | +|----------------------------|------------------------------------|---------------------------------|-------------------------------| +| Azure account | N/A | `cmdb_ci_cloud_service_account` | Cloud Service Account | +| Azure region | N/A | `cmdb_ci_azure_datacenter` | Azure Datacenter | +| Resource Group | `azurerm_resource_group` | `cmdb_ci_resource_group` | Resource Group | +| Windows VM | `azurerm_windows_virtual_machine` | `cmdb_ci_vm_instance` | Virtual Machine Instance | +| Linux VM | `azurerm_linux_virtual_machine` | `cmdb_ci_vm_instance` | Virtual Machine Instance | +| AKS Cluster | `azurerm_kubernetes_cluster` | `cmdb_ci_kubernetes_cluster` | Kubernetes Cluster | +| Storage Container | `azurerm_storage_container` | `cmdb_ci_cloud_storage_account` | Cloud Storage Account | +| MariaDB Database | `azurerm_mariadb_server` | `cmdb_ci_cloud_database` | Cloud DataBase | +| MS SQL Database | `azurerm_mssql_server` | `cmdb_ci_cloud_database` | Cloud DataBase | +| MySQL Database | `azurerm_mysql_server` | `cmdb_ci_cloud_database` | Cloud DataBase | +| PostgreSQL Database | `azurerm_postgresql_server` | `cmdb_ci_cloud_database` | Cloud DataBase | +| Network security group | `azurerm_network_security_group` | `cmdb_ci_compute_security_group`| Compute Security Group | +| Linux Function App | `azurerm_linux_function_app` | `cmdb_ci_cloud_function` | Cloud Function | +| Windows Function App | `azurerm_windows_function_app` | `cmdb_ci_cloud_function` | Cloud Function | +| Virtual Network | `azurerm_virtual_network` | `cmdb_ci_network` | Cloud Network | +| Tags | N/A | `cmdb_key_value` | Key Value | + +## Resource relationships + +| Child CI Class | Relationship type | Parent CI Class | +|------------------------------------------------------------|------------------------|-----------------------------------------------------------| +| Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | Hosted On::Hosts | Cloud Service Account 2 (`cmdb_ci_cloud_service_account`) | +| Azure Datacenter 2 (`cmdb_ci_azure_datacenter`) | Hosted On::Hosts | Cloud Service Account 3 (`cmdb_ci_cloud_service_account`) | +| Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | Contains::Contained by | Resource Group 1 (`cmdb_ci_resource_group`) | +| Cloud Storage Account 1 (`cmdb_ci_cloud_storage_account`) | Hosted On::Hosts | Azure Datacenter 2 (`cmdb_ci_azure_datacenter`) | +| Virtual Machine Instance 2 (`cmdb_ci_vm_instance`) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Virtual Machine Instance 2 (`cmdb_ci_vm_instance`) | Reference | Key Value 14 (`cmdb_key_value`) | +| Virtual Machine Instance 3 (`cmdb_ci_vm_instance`) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Virtual Machine Instance 3 (`cmdb_ci_vm_instance`) | Reference | Key Value 15 (`cmdb_key_value`) | +| Kubernetes Cluster 2 (`cmdb_ci_kubernetes_cluster`) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Kubernetes Cluster 2 (`cmdb_ci_kubernetes_cluster`) | Reference | Key Value 16 (`cmdb_key_value`) | +| Cloud DataBase 2 (`cmdb_ci_cloud_database` ) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Cloud DataBase 2 (`cmdb_ci_cloud_database` ) | Reference | Key Value 9 (`cmdb_key_value`) | +| Compute Security Group 2 (`cmdb_ci_compute_security_group`)| Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Compute Security Group 2 (`cmdb_ci_compute_security_group`)| Reference | Key Value 17 (`cmdb_key_value`) | +| Cloud Function 2 (`cmdb_ci_cloud_function`) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Cloud Function 2 (`cmdb_ci_cloud_function`) | Reference | Key Value 19 (`cmdb_key_value`) | +| Cloud Network 2 (`cmdb_ci_network`) | Hosted On::Hosts | Azure Datacenter 1 (`cmdb_ci_azure_datacenter`) | +| Cloud Network 2 (`cmdb_ci_network`) | Reference | Key Value 20 (`cmdb_key_value`) | + +## Field attributes mapping + +### Cloud Service Account (`cmdb_ci_cloud_service_account`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | Subscription ID extracted from `id` | +| Account Id | Subscription ID extracted from `id` | +| Datacenter Type | Defaults to `azure` | +| Object ID | Subscription ID extracted from `id` | +| Name | Subscription ID extracted from `id` | +| Operational Status| Defaults to "1" ("Operational") | + +### Azure Datacenter (`cmdb_ci_azure_datacenter`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | Concatenation of `location` and Subscription ID | +| Object Id | `location` | +| Region | `location` | +| Name | `location` | +| Operational Status| Defaults to "1" ("Operational") | + +### Virtual Machine Instance (`cmdb_ci_vm_instance`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Storage Account (`cmdb_ci_cloud_storage_account`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `resource_manager_id` | +| Object Id | `resource_manager_id` | +| Fully qualified domain name| `id` | +| Blob Service | `storage_account_name` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Resource Group (`cmdb_ci_resource_group`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Location | `location` | +| Operational Status| Defaults to "1" ("Operational") | + +### Kubernetes Cluster (`cmdb_ci_kubernetes_cluster`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| IP Address | `fqdn` | +| Port | Defaults to "6443" | +| Name | `name` | +| Location | `location` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud DataBase (`cmdb_ci_cloud_database`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Version | `engine_version` | +| Fully qualified domain name| `fqdn` | +| Name | `name` | +| Vendor | Defaults to `azure` | +| Operational Status| Defaults to "1" ("Operational") | + +### Compute Security Group (`cmdb_ci_compute_security_group`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Function (`cmdb_ci_cloud_function`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Network (`cmdb_ci_network`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | \ No newline at end of file diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/gcp.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/gcp.mdx new file mode 100644 index 000000000..ca46ce17d --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/gcp.mdx @@ -0,0 +1,157 @@ +--- +page_title: ServiceNow Service Graph Connector for Terraform Integration - GCP Coverage +description: >- + ServiceNow Service Graph integration allows to import selected resources from Google Cloud Platform into ServiceNow CMDB. +--- + +# Google Cloud Platform + +This page provides details on how Google Cloud resources, set up using Terraform, are corresponded to the classes within the ServiceNow CMDB. + +## Mapping of Terraform resources to CMDB CI Classes + +| Google resource | Terraform resource name | ServiceNow CMDB CI Class | ServiceNow CMDB Category Name | +|----------------------------|-----------------------------------------------------------------------|---------------------------------|-------------------------------| +| Project ID | N/A | `cmdb_ci_cloud_service_account` | Cloud Service Account | +| Region (location) | N/A | `cmdb_ci_google_datacenter` | Google Datacenter | +| Virtual Machine Instance | `google_compute_instance` | `cmdb_ci_vm_instance` | Virtual Machine Instance | +| Kubernetes Cluster | `google_container_cluster` | `cmdb_ci_kubernetes_cluster` | Kubernetes Cluster | +| Google Storage | `google_storage_bucket` | `cmdb_ci_cloud_storage_account` | Cloud Storage Account | +| Google BigQuery | `google_bigquery_table` | `cmdb_ci_cloud_database` | Cloud DataBase | +| Google SQL | `google_sql_database` | `cmdb_ci_cloud_database` | Cloud DataBase | +| Google Compute Firewall | `google_compute_firewall` | `cmdb_ci_compute_security_group`| Compute Security Group | +| Cloud Function | `google_cloudfunctions_function` or `google_cloudfunctions2_function` | `cmdb_ci_cloud_function` | Cloud Function | +| Load Balancer | `google_compute_forwarding_rule` | `cmdb_ci_cloud_load_balancer` | Cloud Load Balancer | +| VPC | `google_compute_network` | `cmdb_ci_network` | Cloud Network | +| Tags | N/A | `cmdb_key_value` | Key Value | + +## Resource relationships + +| Child CI Class | Relationship type | Parent CI Class | +|------------------------------------------------------------|------------------------|-----------------------------------------------------------| +| Google Datacenter 1 (`cmdb_ci_google_datacenter`) | Hosted On::Hosts | Cloud Service Account 4 (`cmdb_ci_cloud_service_account`) | +| Google Datacenter 2 (`cmdb_ci_google_datacenter`) | Hosted On::Hosts | Cloud Service Account 4 (`cmdb_ci_cloud_service_account`) | +| Virtual Machine Instance 4 (`cmdb_ci_vm_instance`) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Virtual Machine Instance 4 (`cmdb_ci_vm_instance`) | Reference | Key Value 13 (`cmdb_key_value`) | +| Cloud Network 3 (`cmdb_ci_network`) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Cloud Network 3 (`cmdb_ci_network`) | Reference | Key Value 18 (`cmdb_key_value`) | +| Compute Security Group 3 (`cmdb_ci_compute_security_group`)| Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Compute Security Group 3 (`cmdb_ci_compute_security_group`)| Reference | Key Value 21 (`cmdb_key_value`) | +| Kubernetes Cluster 3 (`cmdb_ci_kubernetes_cluster`) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Kubernetes Cluster 3 (`cmdb_ci_kubernetes_cluster`) | Reference | Key Value 22 (`cmdb_key_value`) | +| Cloud DataBase 3 (`cmdb_ci_cloud_database` ) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Cloud DataBase 2 (`cmdb_ci_cloud_database` ) | Reference | Key Value 24 (`cmdb_key_value`) | +| Cloud Function 3 (`cmdb_ci_cloud_function`) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Cloud Function 3 (`cmdb_ci_cloud_function`) | Reference | Key Value 25 (`cmdb_key_value`) | +| Cloud Load Balancer 2 (`cmdb_ci_cloud_load_balancer`) | Hosted On::Hosts | Google Datacenter 1 (`cmdb_ci_google_datacenter`) | +| Cloud Load Balancer 2 (`cmdb_ci_cloud_load_balancer`) | Reference | Key Value 26 (`cmdb_key_value`) | +| Cloud Storage Account 2 (`cmdb_ci_cloud_storage_account`) | Hosted On::Hosts | Google Datacenter 2 (`cmdb_ci_google_datacenter`) | +| Cloud Storage Account 2 (`cmdb_ci_cloud_storage_account`) | Reference | Key Value 23 (`cmdb_key_value`) | + +## Field attributes mapping + +### Cloud Service Account (`cmdb_ci_cloud_service_account`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `project` | +| Account Id | `project` | +| Datacenter Type | Defaults to `google` | +| Object ID | `project` | +| Name | `project` | +| Operational Status| Defaults to "1" ("Operational") | + +### Google Datacenter (`cmdb_ci_google_datacenter`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | Concatenation of `project` and region extracted from `id` | +| Object Id | Region extracted from `id` | +| Region | Region extracted from `id` | +| Name | Region extracted from `id` | +| Operational Status| Defaults to "1" ("Operational") | + +### Virtual Machine Instance (`cmdb_ci_vm_instance`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Category | `machine_type` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Network (`cmdb_ci_network`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Compute Security Group (`cmdb_ci_compute_security_group`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Kubernetes Cluster (`cmdb_ci_kubernetes_cluster`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| IP Address | `endpoint` | +| Port | Defaults to "6443" | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Object Storage (`cmdb_ci_cloud_object_storage`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `arn` | +| Object Id | `id` | +| Cloud Provider | Resource cloud provider extracted from `arn` | +| Name | `bucket` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Storage Account (`cmdb_ci_cloud_storage_account`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Name | `location` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud DataBase (`cmdb_ci_cloud_database`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | Name extracted from `id` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Function (`cmdb_ci_cloud_function`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### Cloud Load Balancer (`cmdb_ci_cloud_load_balancer`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | \ No newline at end of file diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/index.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/index.mdx new file mode 100644 index 000000000..899a755aa --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/index.mdx @@ -0,0 +1,33 @@ +--- +page_title: Overview - ServiceNow Service Graph Connector for Terraform Integration - Resource Coverage +description: >- + ServiceNow Service Graph integration allows to import selected resources from major cloud providers into ServiceNow CMDB. +--- + +# Resource Coverage and Mapping + +The tables provided in this section illustrate the mapping of resources from the Terraform state to the ServiceNow CMDB configuration items (CIs) by the Service Graph Connector for Terraform. + +While the default ETL map provided by the application can be utilized without modification, it is also possible to customize it according to the specific requirements of your organization. Check [customizations](/terraform/cloud-docs/integrations/service-now/service-graph/customizations) for more details. + +The application supports selected resources from major cloud providers. The following pages provide mapping details for each supported provider: + +- [AWS](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage/aws) +- [Azure](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage/azure) +- [GCP](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage/gcp) +- [VMware vSphere](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage/vsphere) + +# Importing Tags + +The Service Graph Connector for Terraform imports the Terraform tags associated with your resource into CMDB. Tags are mapped to the **Key Value** CI Class. +Along with the tags assigned in your Terraform code, the integration also includes `tf_organization` and `tf_workspace` tags. These tags are used to indicate the Terraform Cloud organization and workspace where the resource was provisioned. + +The visibility of the **Tags** tab in CMDB varies for different configuration items. By default, not every configuration item has the **Tags** tab enabled. For instance, the **Virtual Machine Instance** class page includes the **Tags** tab, whereas the **AWS Cloud ECS Cluster** page does not. + +The following example illustrates how the **Tags** tab can be enabled for **AWS Cloud ECS Cluster** CI class in CMDB. + +1. Enter `cmdb_ci_cloud_ecs_cluster.list` in the search menu of your ServiceNow instance. +2. Open any record. Right-click on the gray bar at the top, select **Configure** and proceed to **Related Lists**. If you are in a different scope, click **Edit this view**. +3. Transfer **Key Value->Configuration item** from the left column to the right and click **Save**. Tags become available in CMDB for all AWS ECS cluster records. + +![screenshot: ServiceNow Service Graph Connector - enable the Tags tab in CMDB](/img/docs/service-now-service-graph-tags.png) \ No newline at end of file diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/vsphere.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/vsphere.mdx new file mode 100644 index 000000000..19f374f14 --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/resource-coverage/vsphere.mdx @@ -0,0 +1,82 @@ +--- +page_title: ServiceNow Service Graph Connector for Terraform Integration - vSphere Coverage +description: >- + ServiceNow Service Graph integration allows to import selected resources from vSphere into ServiceNow CMDB. +--- + +# VMware vSphere + +This page explains the rules of associating VMware vSphere resources, created via Terraform, with the classes in the ServiceNow CMDB. + +## Mapping of Terraform resources to CMDB CI Classes + +| vSphere resource | Terraform resource name | ServiceNow CMDB CI Class | ServiceNow CMDB Category Name | +|----------------------------|------------------------------------|---------------------------------|--------------------------------| +| vCenter server | N/A | `cmdb_ci_cloud_service_account` | Cloud Service Account | +| vSphere Datacenter | `vsphere_datacenter` | `cmdb_ci_vcenter_datacenter` | VMware vCenter Datacenter | +| vSphere Virtual Machine | `vsphere_virtual_machine` | `cmdb_ci_vmware_instance` | VMware Virtual Machine Instance| +| vSphere Datastore Cluster | `vsphere_datastore_cluster` | `cmdb_ci_vcenter_datastore` | VMware vCenter Datastore | +| vSphere Network | `vsphere_network` | `cmdb_ci_vcenter_network` | VMware vCenter Network | +| Tags | N/A | `cmdb_key_value` | Key Value | + +## Resource relationships + +| Child CI Class | Relationship type | Parent CI Class | +|--------------------------------------------------------------|------------------------|-----------------------------------------------------------| +| VMware vCenter Datacenter 1 (`cmdb_ci_vcenter_datacenter`) | Hosted On::Hosts | Cloud Service Account 5 (`cmdb_ci_cloud_service_account`) | +| VMware Virtual Machine Instance 1 (`cmdb_ci_vmware_instance`)| Hosted On::Hosts | VMware vCenter Datacenter 1 (`cmdb_ci_vcenter_datacenter`)| +| VMware Virtual Machine Instance 1 (`cmdb_ci_vmware_instance`)| Reference | Key Value 27 (`cmdb_key_value`) | +| VMware vCenter Network 1 (`cmdb_ci_vcenter_network`) | Hosted On::Hosts | VMware vCenter Datacenter 1 (`cmdb_ci_vcenter_datacenter`)| +| VMware vCenter Network 1 (`cmdb_ci_vcenter_network`) | Reference | Key Value 28 (`cmdb_key_value`) | +| VMware vCenter Datastore 1 (`cmdb_ci_vcenter_datastore`) | Hosted On::Hosts | VMware vCenter Datacenter 1 (`cmdb_ci_vcenter_datacenter`)| +| VMware vCenter Datastore 1 (`cmdb_ci_vcenter_datastore`) | Reference | Key Value 29 (`cmdb_key_value`) | + +## Field attributes mapping + +### Cloud Service Account (`cmdb_ci_cloud_service_account`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | Defaults to "VMware_vCenter" | +| Account Id | Defaults to "VMware_vCenter" | +| Datacenter Type | Defaults to "VMware_vCenter" | +| Object ID | Defaults to "VMware_vCenter" | +| Name | Defaults to "VMware_vCenter" | +| Operational Status| Defaults to "1" ("Operational") | + +### VMware vCenter Datacenter (`cmdb_ci_vcenter_datacenter`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `datacenter_id` | +| Object Id | `datacenter_id` | +| Region | `datacenter_id` | +| Name | `datacenter_id` | +| Operational Status| Defaults to "1" ("Operational") | + +### VMware Virtual Machine Instance (`cmdb_ci_vmware_instance`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### VMware vCenter Network (`cmdb_ci_vcenter_network`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | + +### VMware vCenter Datastore (`cmdb_ci_vcenter_datastore`) + +| CMDB field | Terraform state field | +|-------------------|----------------------------------------------------------------| +| Source Native Key | `id` | +| Object Id | `id` | +| Name | `name` | +| Operational Status| Defaults to "1" ("Operational") | diff --git a/website/docs/cloud-docs/integrations/service-now/service-graph/service-graph-setup.mdx b/website/docs/cloud-docs/integrations/service-now/service-graph/service-graph-setup.mdx new file mode 100644 index 000000000..80c64faa0 --- /dev/null +++ b/website/docs/cloud-docs/integrations/service-now/service-graph/service-graph-setup.mdx @@ -0,0 +1,156 @@ +--- +page_title: Overview - ServiceNow Service Graph Connector for Terraform Integration - summary of the setup process +description: >- + ServiceNow Service Graph Connector for Terraform integrates with Terraform Cloud and offers two modes of import for Terraform resources. +--- + +# ServiceNow Service Graph Connector for Terraform – Setup + +-> **Note:** Follow the [Configure ServiceNow Service Graph Connector for Terraform Cloud](https://developer.hashicorp.com/terraform/tutorials/it-saas/servicenow-sgc) tutorial for hands-on instructions on how to import an AWS resource deployed in your Terraform Cloud organization to the ServiceNow CMDB by using the Service Graph Connector for Terraform. + +The ServiceNow Service Graph Connector for Terraform is a certified scoped application available in the ServiceNow Store. Search for ”Service Graph Connector for Terraform” published by ”HashiCorp Inc” and click **Install**. + +## Prerequisites + +To start using the Service Graph Connector for Terraform, you must have: + +- An administrator account on a Terraform Enterprise instance or within a Terraform Cloud organization. +- An administrator account on your ServiceNow vendor instance. + +The Service Graph Connector for Terraform supports the following ServiceNow server versions: + +- San Diego +- Tokyo +- Utah + +The following ServiceNow plugins are required dependencies: + +- ITOM Discovery License +- Integration Commons for CMDB +- Discovery and Service Mapping Patterns +- ServiceNow IntegrationHub Standard Pack + +Additionally, you can install the IntegrationHub ETL application if you want to modify the default CMDB mappings. + +-> **Note:** Dependent plugins are installed on your ServiceNow instance automatically when the app is downloaded from the ServiceNow Store. Before installing the Service Graph Connector for Terraform, you must activate the ITOM Discovery License plugin in your production instance. + +## Connect ServiceNow to Terraform Cloud + +-> **ServiceNow roles:** `admin`, `x_hashi_service_gr.terraform_user` + +Once the integration is installed, you can proceed to the guided setup form where you will enter your Terraform credentials. This step will establish a secure connection between Terraform Cloud and your ServiceNow instance. + +### Create and scope Terraform API token + +In order for ServiceNow to connect to Terraform Cloud, you must give it a Terraform Cloud API token. The permissions of this token determine what resources the Service Graph Connector will import into the CMDB. While you could use a user API token, it could import resources from multiple organizations. By providing a team API token, you can scope permissions to only import resources from specified workspaces within a single organization. + +Visit your organization’s **Settings** > **Teams** page. Scroll down to the **Team API Token** section and click **Create a team token**. +Save this token in a safe place since Terraform Cloud only displays it once. You will use it to configure ServiceNow in the next section. + +![ServiceNow Service Graph Connector Configure Team API token in Terraform Cloud](/img/docs/service-now-service-graph-team-token-gen.png) + +### Configure Service Graph Connector for Terraform API token + +In the top navigation of your ServiceNow instance's control panel, click on **All**, search for **Service Graph Connector for Terraform**, and click **SG-Setup**. Next, click **Get Started**. + +Next, in the **Configure the Terraform connection** section, click **Get Started**. + +In the **Configure Terraform authentication credentials** section, click **Configure**. + +If you want to route traffic between your Terraform Cloud and the ServiceNow instance through a MID server acting as a proxy, change the **Applies to** dropdown to "Specific MID servers" and select your previously configured MID server name. If you don't use MID servers, leave the default value. + +Set the **API Key** to the Terraform Cloud team API token that you created in the previous section and click **Update**. + +![ServiceNow Service Graph Connector API Key Credentials configuration screen. The API key is provided, then saved by clicking the Update button](/img/docs/service-now-service-graph-apikey.png) + +In the **Configure Terraform authentication credentials** section, click **Mark as Complete**. + +### Configure Terraform Webhook Notification token + +To improve security, Terraform Cloud includes an HMAC signature on all "generic" webhook notifications using a user-provided **token**. This token is an arbitrary secret string that Terraform Cloud uses to sign each webhook notification. ServiceNow uses the same token to verify the request authenticity. Refer to [Notification Authenticity](/terraform/cloud-docs/api-docs/notification-configurations#notification-authenticity) for more information. + +Create a token and save it in a safe place. This secret token can be any value but should be treated as sensitive. + +In the **Configure Terraform Webhook token** section, click **Configure**. In the **Token** field, enter the secret token that will be shared between the Terraform Cloud and your ServiceNow instance and click **Update**. + +![ServiceNow Service Graph Connector Webhook token configuration screen. The Token is provided, then saved by clicking the Update button](/img/docs/service-now-service-graph-webhook-token.png) + +In the **Configure Terraform Webhook token** section, click **Mark as Complete**. + +### Configure Terraform connection + +In the **Configure Terraform connection** section, click **Configure**. + +If you are using Terraform Enterprise, set the **Connection URL** to the URL of your Terraform Enterprise instance. If you are using Terraform Cloud, leave the **Connection URL** as the default value of `https://app.terraform.io`. + +![ServiceNow Service Graph Connector HTTP Connection configuration screen. A Terraform Enterprise URL may be provided in the Connection URL field, the saved by clicking the Update button](/img/docs/service-now-service-graph-tfconn.png) + +If you want to use a MID server, check **Use MID server** box, change **MID Selection** dropdown to "Specific MID sever" and select your previously configured and validated MID server. + +Click **Update** to save these settings. In the **Configure Terraform connection** section, click **Mark as Complete**. + +## Import Resources + +Refer to the documentation explaining the difference between the [two modes of import](/terraform/cloud-docs/integrations/service-now/service-graph#import-methods) offered by the Service Graph Connector for Terraform. Both options may be enabled, or you may choose to enable only the webhook or scheduled import. + +### Configure scheduled import + +In the **Set up scheduled import job** section of the setup form, proceed to **Configure the scheduled jobs** and click **Configure**. + +You can use the **Execute Now** option to run a single import job, which is useful for testing. The import set will be displayed in the table below the scheduled import form, after refreshing the page. Once the import is successfully triggered, click on the **Import Set** field of the record to view the logs associated with the import run, as well as its status. + +Activate the job by checking the **Activate** box. Set the **Repeat Interval** and click **Update**. Note that the import processing time depends of the number of organizations and workspaces in your Terraform Cloud. Setting the import job to run frequently is not recommended for big environments. + +![ServiceNow Service Graph Connector scheduled import screen](/img/docs/service-now-service-graph-scheduled-import.png) + +You can also access the scheduler interface by searching for **Service Graph Connector for Terraform** in the top navigation menu and selecting **SG-Import Schedule**. + +### Configure Terraform Webhook + +In the top navigation, click on **All**, search for **Scheduled Imports**, and click on **Scheduled Imports**. + +Select the **SG-Terraform Scheduled Process State** record, then click **To edit the record click here**. + +Click the **Active** checkbox to enable it. Leave the default value for the **Repeat Interval** of 5 seconds. Click **Update**. + +![ServiceNow Service Graph Connector scheduled import screen showing the Active checkbox enabled](/img/docs/service-now-service-graph-webhook-schedule.png) + +Next, create the webhook in Terraform Cloud. Select a workspace and click **Settings > Notifications**. Click **Create a Notification**. + +Keep the **Destination** as the default option of **Webhook**. Choose a descriptive name **Name**. + +Set the **Webhook URL** enter `https:///api/x_hashi_service_gr/sg_terraform_webhook` and replace `` with the hostname of your ServiceNow instance. + +In the **Token** field, enter the same string you provided in **Terraform Webhook token** section the of the Service Graph guided setup form. + +Under **Health Events** choose **No events**. + +Under **Run Events** choose **Only certain events** and enable notifications only on **Completed** runs. Click **Create Notification**. + +![Terraform Cloud notification creation screen, showing a webhook pointing to ServiceNow which is only triggered on completed runs](/img/docs/service-now-service-graph-webhook-tfc.png) + +Trigger a run in your workspace. Once the run is successfully completed, a webhook notification request will be sent to your ServiceNow instance. + +### Monitor the import job + +By following these steps, you can track the status of import jobs in ServiceNow and verify the completion of the import process before accessing the imported resources in the CMDB. + +For scheduled imports, navigate back to the **SG-Import Schedule** interface. For webhook imports, go to the **SG-Terraform Scheduled Process State** interface. + +Under the form, you will find a table containing all registered import sets. Locate and select the relevant import set record. + +Click on the **Import Set** field to open it and view its details. The **Outbound Http Requests** tab lists all requests made by your ServiceNow instance to Terraform Cloud in order to retrieve the latest Terraform state. + +Monitor the state of the import job. Wait for it to change to **Complete**, indicated by a green mark. +Once the import job is complete, you can access the imported resources in the CMDB. + +![ServiceNow Service Graph Connector: import set with successfully completed status](/img/docs/service-now-service-graph-import-set.png) + +You can also access all import sets, regardless of the import type, by navigating to **All** and selecting **Import Sets** under the **Advanced** category. + +### View resources in ServiceNow CMDB + +In the top navigation of ServiceNow, click on **All** and search for **CMDB Workspace**, and click on **CMDB Workspace**. + +Perform a search by entering a Configuration Item (CI) name in the **Search** field (for example, **Virtual Machine Instance**). CI names supported by the application are listed on the [resource mapping page](/terraform/cloud-docs/integrations/service-now/service-graph/resource-coverage). + diff --git a/website/img/docs/service-now-service-graph-apikey.png b/website/img/docs/service-now-service-graph-apikey.png new file mode 100644 index 000000000..ae921a662 Binary files /dev/null and b/website/img/docs/service-now-service-graph-apikey.png differ diff --git a/website/img/docs/service-now-service-graph-conditional-class-mapping.png b/website/img/docs/service-now-service-graph-conditional-class-mapping.png new file mode 100644 index 000000000..203e6d0cf Binary files /dev/null and b/website/img/docs/service-now-service-graph-conditional-class-mapping.png differ diff --git a/website/img/docs/service-now-service-graph-deactivate-etl.png b/website/img/docs/service-now-service-graph-deactivate-etl.png new file mode 100644 index 000000000..7905293a6 Binary files /dev/null and b/website/img/docs/service-now-service-graph-deactivate-etl.png differ diff --git a/website/img/docs/service-now-service-graph-design.png b/website/img/docs/service-now-service-graph-design.png new file mode 100644 index 000000000..1d3cdfab4 Binary files /dev/null and b/website/img/docs/service-now-service-graph-design.png differ diff --git a/website/img/docs/service-now-service-graph-etl-attribute-mapping.png b/website/img/docs/service-now-service-graph-etl-attribute-mapping.png new file mode 100644 index 000000000..ebbb8e21a Binary files /dev/null and b/website/img/docs/service-now-service-graph-etl-attribute-mapping.png differ diff --git a/website/img/docs/service-now-service-graph-etl-condition-update.png b/website/img/docs/service-now-service-graph-etl-condition-update.png new file mode 100644 index 000000000..7fac298ed Binary files /dev/null and b/website/img/docs/service-now-service-graph-etl-condition-update.png differ diff --git a/website/img/docs/service-now-service-graph-etl-editing-relationship.png b/website/img/docs/service-now-service-graph-etl-editing-relationship.png new file mode 100644 index 000000000..33c18f072 Binary files /dev/null and b/website/img/docs/service-now-service-graph-etl-editing-relationship.png differ diff --git a/website/img/docs/service-now-service-graph-etl-setting-relationship.png b/website/img/docs/service-now-service-graph-etl-setting-relationship.png new file mode 100644 index 000000000..16b6e5c76 Binary files /dev/null and b/website/img/docs/service-now-service-graph-etl-setting-relationship.png differ diff --git a/website/img/docs/service-now-service-graph-import-set.png b/website/img/docs/service-now-service-graph-import-set.png new file mode 100644 index 000000000..745a6d302 Binary files /dev/null and b/website/img/docs/service-now-service-graph-import-set.png differ diff --git a/website/img/docs/service-now-service-graph-scheduled-import.png b/website/img/docs/service-now-service-graph-scheduled-import.png new file mode 100644 index 000000000..c7aa394cb Binary files /dev/null and b/website/img/docs/service-now-service-graph-scheduled-import.png differ diff --git a/website/img/docs/service-now-service-graph-state-object-url.png b/website/img/docs/service-now-service-graph-state-object-url.png new file mode 100644 index 000000000..b687b2a90 Binary files /dev/null and b/website/img/docs/service-now-service-graph-state-object-url.png differ diff --git a/website/img/docs/service-now-service-graph-tags.png b/website/img/docs/service-now-service-graph-tags.png new file mode 100644 index 000000000..c5db95a3e Binary files /dev/null and b/website/img/docs/service-now-service-graph-tags.png differ diff --git a/website/img/docs/service-now-service-graph-team-token-gen.png b/website/img/docs/service-now-service-graph-team-token-gen.png new file mode 100644 index 000000000..3e2de6f2b Binary files /dev/null and b/website/img/docs/service-now-service-graph-team-token-gen.png differ diff --git a/website/img/docs/service-now-service-graph-tfconn.png b/website/img/docs/service-now-service-graph-tfconn.png new file mode 100644 index 000000000..34e8d9aef Binary files /dev/null and b/website/img/docs/service-now-service-graph-tfconn.png differ diff --git a/website/img/docs/service-now-service-graph-webhook-schedule.png b/website/img/docs/service-now-service-graph-webhook-schedule.png new file mode 100644 index 000000000..d4e4701c7 Binary files /dev/null and b/website/img/docs/service-now-service-graph-webhook-schedule.png differ diff --git a/website/img/docs/service-now-service-graph-webhook-tfc.png b/website/img/docs/service-now-service-graph-webhook-tfc.png new file mode 100644 index 000000000..b6aa99ef8 Binary files /dev/null and b/website/img/docs/service-now-service-graph-webhook-tfc.png differ diff --git a/website/img/docs/service-now-service-graph-webhook-token.png b/website/img/docs/service-now-service-graph-webhook-token.png new file mode 100644 index 000000000..e65e962b7 Binary files /dev/null and b/website/img/docs/service-now-service-graph-webhook-token.png differ diff --git a/website/redirects.js b/website/redirects.js index 3b581ac33..76ddf3860 100644 --- a/website/redirects.js +++ b/website/redirects.js @@ -83,6 +83,38 @@ module.exports = [ "/terraform/plugin/best-practices/hashicorp-provider-design-principles", permanent: true, }, + // Redirects for the ServiceNow Service Catalog for Terraform + // - https://github.com/hashicorp/terraform-docs-common/pull/375 + { + source: "/terraform/cloud-docs/integrations/service-now", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform", + permanent: true, + }, + { + source: "/terraform/cloud-docs/integrations/service-now/service-catalog-config", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/service-catalog-config", + permanent: true, + }, + { + source: "/terraform/cloud-docs/integrations/service-now/admin-guide", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/admin-guide", + permanent: true, + }, + { + source: "/terraform/cloud-docs/integrations/service-now/developer-reference", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/developer-reference", + permanent: true, + }, + { + source: "/terraform/cloud-docs/integrations/service-now/example-customizations", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/example-customizations", + permanent: true, + }, + { + source: "/terraform/cloud-docs/integrations/service-now/service-now-v1", + destination: "/terraform/cloud-docs/integrations/service-now/service-catalog-terraform/service-now-v1", + permanent: true, + }, // Redirect to integrate both Flex and PAYG TFC documentation // - https://github.com/hashicorp/terraform-docs-common/pull/399 {