{"id":1888,"date":"2024-06-27T02:59:41","date_gmt":"2024-06-27T02:59:41","guid":{"rendered":"https:\/\/www.nicktailor.com\/?p=1888"},"modified":"2026-01-06T11:33:18","modified_gmt":"2026-01-06T11:33:18","slug":"how-to-integrate-vrops-with-ansible","status":"publish","type":"post","link":"https:\/\/nicktailor.com\/tech-blog\/how-to-integrate-vrops-with-ansible\/","title":{"rendered":"How to integrate VROPS with Ansible"},"content":{"rendered":"<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Automating VMware vRealize Operations (vROps) with Ansible<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">In the world of IT operations, automation is the key to efficiency and consistency. VMware\u2019s vRealize Operations (vROps) provides powerful monitoring and management capabilities for virtualized environments. Integrating vROps with Ansible, an open-source automation tool, can take your infrastructure management to the next level. In this blog post, we\u2019ll explore how to achieve this integration and demonstrate its benefits with a practical example.<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>What is vRealize Operations (vROps)?<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">vRealize Operations (vROps) is a comprehensive monitoring and analytics solution from VMware. It helps IT administrators manage the performance, capacity, and overall health of their virtual environments. Key features of vROps include:<\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Performance Monitoring<\/strong>: Continuous tracking of VMs, hosts, and other resources.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Capacity Management<\/strong>: Planning and optimizing resource usage.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Troubleshooting<\/strong>: Identifying and resolving issues promptly.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Automated Actions<\/strong>: Responding to specific events with predefined actions.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Why Integrate vROps with Ansible?<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Integrating vROps with Ansible allows you to automate routine tasks, enforce consistent configurations, and rapidly respond to changes or issues in your virtual environment. This integration enables you to:<\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Automate Monitoring Setup<\/strong>: Configure monitoring for new virtual machines or environments automatically.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Trigger Remediation Actions<\/strong>: Automate responses to alerts generated by vROps.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Generate Reports<\/strong>: Automate the creation and distribution of performance and capacity reports.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Maintain Configuration Compliance<\/strong>: Ensure consistent vROps configurations across environments.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Setting Up the Integration<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Prerequisites<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Before you start, ensure you have:<\/p>\n<div class=\"ol\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 12pt;\">1.<\/span><strong>vROps Environment<\/strong>: A running instance of VMware vRealize Operations.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 12pt;\">2.<\/span><strong>Ansible Installed<\/strong>: Ansible should be installed on your control node.<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step-by-Step Guide<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step 1: Configure API Access in vROps<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">First, ensure you have the necessary API access in vROps. You\u2019ll need:<\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>vROps Host<\/strong>: The URL of your vROps instance.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>vROps Username<\/strong>: A user with API access permissions.<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>vROps Password<\/strong>: The password for the above user.<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step 2: Install Ansible<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">If you haven\u2019t installed Ansible yet, you can do so by following these commands:<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">sh<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">sudo apt update<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">sudo apt install ansible<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step 3: Create an Ansible Playbook<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Create an Ansible playbook to interact with vROps. Below is an example playbook that retrieves the status of vROps resources.<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Note: to use the other api end points you will need to acquire the token and set it as a fact to pass later.<\/strong><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">Example<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">&#8212;<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">&#8212;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">If you want to acquire the auth token:<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">&#8212;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">&#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Authenticate with <\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> and Check <\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> Status<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">hosts<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">localhost<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">vars<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">vrops_host<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;your-<\/span><span style=\"color: #ce9178;\">vrops<\/span><span style=\"color: #ce9178;\">-host&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">vrops_username<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;your-username&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">vrops_password<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;your-password&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">tasks<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0 \u00a0 &#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Authenticate with <\/span><span style=\"color: #ce9178;\">vROps<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">uri<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">url<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;https:\/<\/span><span style=\"color: #ce9178;\">\/{<\/span><span style=\"color: #ce9178;\">{ <\/span><span style=\"color: #ce9178;\">vrops_host<\/span><span style=\"color: #ce9178;\"> }}\/suite-<\/span><span style=\"color: #ce9178;\">api<\/span><span style=\"color: #ce9178;\">\/<\/span><span style=\"color: #ce9178;\">api<\/span><span style=\"color: #ce9178;\">\/auth\/token\/acquire&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">method<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">POST<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">body_format<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">json<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">body<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">username<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;<\/span><span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">vrops<\/span><span style=\"color: #ce9178;\">_username<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">password<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;<\/span><span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">vrops<\/span><span style=\"color: #ce9178;\">_password<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">headers<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">Content-Type<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;application\/<\/span><span style=\"color: #ce9178;\">json<\/span><span style=\"color: #ce9178;\">&#8220;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">validate_certs<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #569cd6;\">no<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">register<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">auth_response<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0 \u00a0 &#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Fail if authentication failed<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">fail<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">msg<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;Authentication with <\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> failed: <\/span><span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">auth<\/span><span style=\"color: #ce9178;\">_response.json<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">when<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">auth_<\/span><span style=\"color: #ce9178;\">response.status<\/span><span style=\"color: #ce9178;\"> != 200<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0 \u00a0 &#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Set auth token as fact<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">set_fact<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">auth_token<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;<\/span><span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">auth<\/span><span style=\"color: #ce9178;\">_response.json.token<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0 \u00a0 &#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Get <\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> status<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">uri<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">url<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;https:\/<\/span><span style=\"color: #ce9178;\">\/{<\/span><span style=\"color: #ce9178;\">{ <\/span><span style=\"color: #ce9178;\">vrops_host<\/span><span style=\"color: #ce9178;\"> }}\/suite-<\/span><span style=\"color: #ce9178;\">api<\/span><span style=\"color: #ce9178;\">\/<\/span><span style=\"color: #ce9178;\">api<\/span><span style=\"color: #ce9178;\">\/resources&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">method<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">GET<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">headers<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">Authorization<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;<\/span><span style=\"color: #ce9178;\">vRealizeOpsToken<\/span> <span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">auth<\/span><span style=\"color: #ce9178;\">_token<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">Content-Type<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;application\/<\/span><span style=\"color: #ce9178;\">json<\/span><span style=\"color: #ce9178;\">&#8220;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">validate_certs<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #569cd6;\">no<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">register<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">vrops_response<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0 \u00a0 &#8211; <\/span><span style=\"color: #569cd6;\">name<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">Display <\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> status<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">debug<\/span><span style=\"color: #cccccc;\">:<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.43;\"><span style=\"color: #cccccc;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #569cd6;\">msg<\/span><span style=\"color: #cccccc;\">: <\/span><span style=\"color: #ce9178;\">&#8220;<\/span><span style=\"color: #ce9178;\">vROps<\/span><span style=\"color: #ce9178;\"> response: <\/span><span style=\"color: #ce9178;\">{{ <\/span><span style=\"color: #ce9178;\">vrops<\/span><span style=\"color: #ce9178;\">_response.json<\/span><span style=\"color: #ce9178;\"> }}&#8221;<\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Save this playbook to a file, for example, check_vrops_status.yml.<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step 4: Define Variables<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Create a variables file to store your vROps credentials and host information.<br \/>\n<strong>Save it as vars.yml:<\/strong><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">vrops_host: your-vrops-host<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">vrops_username: your-username<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">vrops_password: your-password<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Step 5: Run the Playbook<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Execute the playbook using the following command:<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\">sh<\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.2;\"><strong>ansible-playbook -e @vars.yml check_vrops_status.yml<\/strong><\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">This above command runs the playbook and retrieves the status of vROps resources, displaying the results if you used the first example.<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">Here are some of the key API functions you can use:<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>The Authentication to use the endpoints listed below, you will need to acquire the auth token and set it as a fact to pass to other tasks inside ansible to use with the various endpoints below.<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Login<\/strong>: Authenticate and get a session token.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/auth\/token\/acquire<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Resource Management<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Resources<\/strong>: Retrieve a list of resources managed by vROps.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Resource by ID<\/strong>: Retrieve details of a specific resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/{resourceId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Create Resource<\/strong>: Add a new resource to vROps.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/resources<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Update Resource<\/strong>: Update information for an existing resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: PUT \/suite-api\/api\/resources\/{resourceId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Delete Resource<\/strong>: Remove a resource from vROps.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: DELETE \/suite-api\/api\/resources\/{resourceId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Metrics and Data<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Metrics for a Resource<\/strong>: Retrieve metrics for a specific resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/{resourceId}\/stats<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Metric Definitions<\/strong>: List available metrics for a resource kind.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/kind\/{resourceKindKey}\/statkeys<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Historical Metrics<\/strong>: Retrieve historical metric data for a resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/{resourceId}\/stats\/historical<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Alerts and Notifications<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Alerts<\/strong>: Retrieve a list of alerts.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/alerts<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Alert by ID<\/strong>: Retrieve details of a specific alert.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/alerts\/{alertId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Acknowledge Alert<\/strong>: Acknowledge a specific alert.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/alerts\/{alertId}\/acknowledge<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Cancel Alert<\/strong>: Cancel a specific alert.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/alerts\/{alertId}\/cancel<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Generate Notifications<\/strong>: Send notifications based on specific conditions.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/notifications<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Policies and Configurations<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Policies<\/strong>: Retrieve a list of policies.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/policies<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Policy by ID<\/strong>: Retrieve details of a specific policy.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/policies\/{policyId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Create Policy<\/strong>: Add a new policy.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/policies<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Update Policy<\/strong>: Update an existing policy.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: PUT \/suite-api\/api\/policies\/{policyId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Delete Policy<\/strong>: Remove a policy.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: DELETE \/suite-api\/api\/policies\/{policyId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Dashboards and Reports<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Dashboards<\/strong>: Retrieve a list of dashboards.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/dashboards<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Dashboard by ID<\/strong>: Retrieve details of a specific dashboard.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/dashboards\/{dashboardId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Create Dashboard<\/strong>: Add a new dashboard.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/dashboards<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Update Dashboard<\/strong>: Update an existing dashboard.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: PUT \/suite-api\/api\/dashboards\/{dashboardId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Delete Dashboard<\/strong>: Remove a dashboard.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: DELETE \/suite-api\/api\/dashboards\/{dashboardId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Reports<\/strong>: Retrieve a list of reports.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/reports<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Generate Report<\/strong>: Generate a new report based on a template.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/reports\/{reportTemplateId}\/generate<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Report by ID<\/strong>: Retrieve details of a specific report.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/reports\/{reportId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Capacity and Utilization<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Capacity Remaining<\/strong>: Retrieve remaining capacity for a specific resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/{resourceId}\/capacity\/remaining<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Capacity Usage<\/strong>: Retrieve capacity usage for a specific resource.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/resources\/{resourceId}\/capacity\/usage<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><strong>Additional Functionalities<\/strong><\/p>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Custom Groups<\/strong>: Retrieve a list of custom groups.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/groups<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Create Custom Group<\/strong>: Add a new custom group.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: POST \/suite-api\/api\/groups<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Update Custom Group<\/strong>: Update an existing custom group.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: PUT \/suite-api\/api\/groups\/{groupId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Delete Custom Group<\/strong>: Remove a custom group.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: DELETE \/suite-api\/api\/groups\/{groupId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Recommendations<\/strong>: Retrieve a list of recommendations.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/recommendations<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 36pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.34em; left: 0; font-size: 2em;\">\u2022<\/span>\u00a0<\/span><strong>Get Recommendation by ID<\/strong>: Retrieve details of a specific recommendation.<\/div>\n<div class=\"ul\" style=\"margin: 0;\">\n<div class=\"li\" style=\"margin: 0;\">\n<div style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2; margin-left: 72pt;\"><span style=\"display: inline-block; position: relative; text-indent: -18pt; font-size: 10pt;\"><span style=\"position: absolute; top: -0.37em; left: 0; font-size: 2em;\">\u25e6<\/span>\u00a0<\/span>Endpoint: GET \/suite-api\/api\/recommendations\/{recommendationId}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\">These are just a few examples of the many functions available through the vROps REST API.<\/p>\n<p style=\"margin-top: 5pt; padding-top: 0; margin-bottom: 5pt; padding-bottom: 0; line-height: 1.2;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n<p style=\"margin-top: 0pt; padding-top: 0; margin-bottom: 8pt; padding-bottom: 0; line-height: 1.3;\"><span style=\"display: inline-block; height: 1em;\"><span style=\"display: none;\">.<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Automating VMware vRealize Operations (vROps) with Ansible In the world of IT operations, automation is the key to efficiency and consistency. VMware\u2019s vRealize Operations (vROps) provides powerful monitoring and management capabilities for virtualized environments. Integrating vROps with Ansible, an open-source automation tool, can take your infrastructure management to the next level. In this blog post, we\u2019ll explore how to achieve<a href=\"https:\/\/nicktailor.com\/tech-blog\/how-to-integrate-vrops-with-ansible\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129],"tags":[],"class_list":["post-1888","post","type-post","status-publish","format-standard","hentry","category-vmware"],"_links":{"self":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=1888"}],"version-history":[{"count":12,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1888\/revisions"}],"predecessor-version":[{"id":1904,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1888\/revisions\/1904"}],"wp:attachment":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=1888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=1888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=1888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}