{"id":14041,"date":"2023-05-23T12:26:10","date_gmt":"2023-05-23T06:56:10","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=14041"},"modified":"2023-05-23T14:23:45","modified_gmt":"2023-05-23T08:53:45","slug":"cloud-cost-estimation-with-infracost","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2023\/05\/23\/cloud-cost-estimation-with-infracost\/","title":{"rendered":"Cloud Cost Estimation with Infracost"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">Estimating costs can be a nightmare for many enterprises. Cloud cost estimation is important for organizations to plan their budget and forecast expenses accurately. It is essential to monitor and analyze cloud usage regularly to optimize cloud spending and avoid unexpected expenses.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">This process is very time-consuming, so there was a need for change. With Terraform, you can easily estimate cloud costs by leveraging Infracost, and you can easily compare potential bills between different vendors.<\/p>\n\n\n\n<p>Working with cloud providers and DevOps is all about speed, efficiency, and cost management.<\/p>\n\n\n\n<p>Infracost is a tool that is used to figure out how much the cloud resources will cost.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Infracost?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"97\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image.png?w=519\" alt=\"\" class=\"wp-image-14044\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Infracost is a super cool tool that lets you calculate the cost of your Terraform resources on AWS, GCP, or Microsoft Azure before you even hit deploy. This enables you to see cloud cost estimates for Terraform in pull requests.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Modules<\/strong><\/h2>\n\n\n\n<ul>\n<li>Infracost&nbsp;can even scan modules within your project and pull all the pricing details in seconds.<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Public modules are automatically downloaded, but you need to setup access for private modules so Infracost can process them.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Private modules<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>S3 modules<\/strong><\/h4>\n\n\n\n<p>If you store your private modules in an S3 bucket, you need to provide readonly AWS IAM credentials, so the CLI can download them and estimate their costs.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>\"Version\": \"2012-10-17\",<br>\"Statement\": &#091;<br>{<br>\"Sid\": \"AllowObjectDownload\",<br>\"Effect\": \"Allow\",<br>\"Action\": &#091;<br>\"s3:ListBucket\",<br>\"s3:GetObject\"<br>],<br>\"Resource\": &#091;<br>\"arn:aws:s3:::BUCKET_NAME\",<br>\"arn:aws:s3:::BUCKET_NAME\/*\"<br>]<br>}<br>]<br>}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Running Infracost in module repos<\/h2>\n\n\n\n<p>You can run&nbsp;<span style=\"text-decoration: underline\"><strong>infracost breakdown &#8211;path modules\/my-module&nbsp;<\/strong><\/span>to get a cost estimate for an individual module. Module variables can be passed in using the&nbsp;<strong><span style=\"text-decoration: underline\">&#8211;terraform-var-file&nbsp;<\/span><\/strong>\/&nbsp;<strong><span style=\"text-decoration: underline\">terraform-var<\/span><\/strong>&nbsp;flags.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: 0.10.22\nprojects:\n- path: my-s3-module\nterraform_var_files:\n- my-s3.tfvars<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Use Cases of Infracost<\/strong><\/h2>\n\n\n\n<p><strong>Cost change understanding:<\/strong> This helps you better understand when &amp; where cost changes were introduced, as well as upcoming changes.<\/p>\n\n\n\n<p><strong>Cost Awareness:<\/strong> Infracost Increased cost awareness and shown the estimated cost of infrastructure upfront, before any resources are launched or changed.<\/p>\n\n\n\n<p><strong>Aligned budgets and costs:<\/strong> If the changes to infrastructure or the launch of a new product break budgets, communication can happen in advance, not after the bill arrives.<\/p>\n\n\n\n<p>As Infrastructure as Code is written, the cost estimation and forecasting of the project is automated and delivered with no overhead. As changes are proposed, cost estimates are kept up to date and live.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installing Infracost and Registering for API key<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Install Infracost<\/h3>\n\n\n\n<p>The easiest way is to use our install script, This will install the binary for infracost and will also add the same to path (\/usr\/local\/bin\/infracost). <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/raw.githubusercontent.com\/infracost\/infracost\/master\/scripts\/install.sh | sh<\/code><\/pre>\n\n\n\n<p>Check that it works correctly<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>infracost --version<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Get API Key<\/h3>\n\n\n\n<p>Register for a free API key, used by the CLI to authenticate\/retrieve prices from our Cloud Pricing API. Run <strong>infracost auth login<\/strong> to get a free API key.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>infracost auth login<\/code><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image-1.png?w=1024\" alt=\"\" class=\"wp-image-14048\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<ul>\n<li>After this step, your API key will be stored in credentials.yml&nbsp;file and Infracost will be all set<em>.<\/em><\/li>\n\n\n\n<li>To be able to run Infracost locally or in CI you will need to save the API key in an environment variable<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>export INFRACOST_API_KEY=ico-Something<\/code><\/pre>\n\n\n\n<ul>\n<li>Infracost also has an optional <a href=\"https:\/\/www.infracost.io\/pricing\/\" target=\"_blank\" rel=\"noopener\">Infracost Cloud<\/a>, which comes with a paid tier and includes features like Jira integration, custom price books, and a dashboard to keep track of costs over time.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"353\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image-3.png?w=780\" alt=\"\" class=\"wp-image-14053\" \/><figcaption class=\"wp-element-caption\">The paid tier includes a dashboard to track spending over time.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.<strong> <\/strong>Output showing cost addition<strong><\/strong><\/h3>\n\n\n\n<p>Below screenshot shows infra cost that will be added to the AWS bill because new infra being created.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image-4.png?w=1024\" alt=\"\" class=\"wp-image-14055\" width=\"630\" height=\"529\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Generate a report of all the estimations.<\/h2>\n\n\n\n<p>You can also save this output in a json\/Html\/table file by running.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>infracost breakdown --path . --format json --out-file infracost-base.json<\/code><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/screenshot-2023-05-17-at-1.06.52-pm.png?w=1024\" alt=\"\" class=\"wp-image-14112\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>infracost breakdown --path . --format table --out-file infracost-base.txt<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/screenshot-2023-05-17-at-1.10.59-pm.png?w=1024\" alt=\"\" class=\"wp-image-14113\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>The best part of infracost is that at last, it helps to generate reports. The report is in html form. Let&#8217;s generate the report now.<\/p>\n\n\n\n<p>Use the below command to generate the report.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>infracost breakdown --path . --format html &gt; report.html<\/code><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image-5.png?w=1024\" alt=\"\" class=\"wp-image-14058\" width=\"630\" height=\"64\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>The below image shows the file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/image-6.png?w=1024\" alt=\"\" class=\"wp-image-14060\" width=\"800\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h1>\n\n\n\n<p class=\"has-text-align-justify\">So in the above blog, I discussed how to generate AWS cost estimation by using infracost tool and generated output in different forms. Infracost helps organizations and individuals estimate and manage the cost of their cloud infrastructure. <\/p>\n\n\n\n<p class=\"has-text-align-justify\">Overall, Infracost is a valuable tool It provides a simple and effective way to estimate and manage costs, identify cost-saving opportunities, and make informed decisions about infrastructure changes.<\/p>\n\n\n\n<p><br><strong>Blog Pundits: <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/bhupendersinghb5dca0b393\/\" target=\"_blank\">Bhupender Rawat<\/a> and <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\">Sandeep Rawat<\/a><\/strong><\/p>\n\n\n\n<p><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution Provider<\/a>.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/opstree.com\/contact-us\/?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=Cloud+Cost+Estimation+with+Infracost\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect with Us<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/twitter.com\/opstreedevops\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Estimating costs can be a nightmare for many enterprises. Cloud cost estimation is important for organizations to plan their budget and forecast expenses accurately. It is essential to monitor and analyze cloud usage regularly to optimize cloud spending and avoid unexpected expenses. This process is very time-consuming, so there was a need for change. &hellip; <a href=\"https:\/\/opstree.com\/blog\/2023\/05\/23\/cloud-cost-estimation-with-infracost\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Cloud Cost Estimation with Infracost&#8221;<\/span><\/a><\/p>\n","protected":false},"author":235127854,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[44070,768739294,768739308,676319247,25,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-3Et","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14041"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/235127854"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=14041"}],"version-history":[{"count":26,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14041\/revisions"}],"predecessor-version":[{"id":29659,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14041\/revisions\/29659"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=14041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=14041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=14041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}