{"id":12951,"date":"2023-08-18T06:21:46","date_gmt":"2023-08-18T06:21:46","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=12951"},"modified":"2023-08-18T06:24:37","modified_gmt":"2023-08-18T06:24:37","slug":"introdcution-of-built-in-functions-in-terraform","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/introdcution-of-built-in-functions-in-terraform\/","title":{"rendered":"Terraform Tutorials: Functions in terraform"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-442-1024x455.png\" alt=\"\" class=\"wp-image-38399\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-442-1024x455.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-442-300x133.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-442-768x341.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-442.png 1534w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The Terraform language includes a number of built-in functions that you can call from within expressions to transform and combine values. The general syntax for function calls is a function name followed by comma-separated arguments in parentheses:<\/p>\n\n\n\n<p>max(5, 12, 9)<\/p>\n\n\n\n<p><strong>The Terraform language does not support user-defined functions<\/strong>, and so only the functions built in to the language are available for use.<\/p>\n\n\n\n<p>You can experiment with the behavior of Terraform&#8217;s built-in functions from the Terraform expression console, by running the <strong>terraform console<\/strong> command:<\/p>\n\n\n\n<p>max(5, 12, 9)<br>12<\/p>\n\n\n\n<p><strong>List of category of terraform Built-in Functions<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"620\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/04\/terraform-in-built-functions.jpg\" alt=\"\" class=\"wp-image-12952\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/04\/terraform-in-built-functions.jpg 558w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/04\/terraform-in-built-functions-270x300.jpg 270w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">List of top 20 terraform Function<\/h2>\n\n\n\n<p>Here are the top 20 Terraform functions with one-liner explanations:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>concat<\/code>: Concatenates two or more lists together.<\/li>\n\n\n\n<li><code>element<\/code>: Selects a specific element from a list.<\/li>\n\n\n\n<li><code>join<\/code>: Joins a list of strings into a single string.<\/li>\n\n\n\n<li><code>map<\/code>: Creates a map from a list of keys and values.<\/li>\n\n\n\n<li><code>slice<\/code>: Extracts a slice of a list.<\/li>\n\n\n\n<li><code>format<\/code>: Formats a string with placeholders for variables.<\/li>\n\n\n\n<li><code>file<\/code>: Reads the contents of a file.<\/li>\n\n\n\n<li><code>lookup<\/code>: Looks up a value in a map based on a key.<\/li>\n\n\n\n<li><code>replace<\/code>: Replaces parts of a string with other values.<\/li>\n\n\n\n<li><code>setproduct<\/code>: Generates all combinations of elements from multiple sets.<\/li>\n\n\n\n<li><code>sort<\/code>: Sorts a list of values.<\/li>\n\n\n\n<li><code>toset<\/code>: Converts a list to a set, removing any duplicates.<\/li>\n\n\n\n<li><code>transpose<\/code>: Transposes a matrix.<\/li>\n\n\n\n<li><code>uuid<\/code>: Generates a unique ID.<\/li>\n\n\n\n<li><code>abs<\/code>: Returns the absolute value of a number.<\/li>\n\n\n\n<li><code>ceil<\/code>: Rounds up to the nearest integer.<\/li>\n\n\n\n<li><code>floor<\/code>: Rounds down to the nearest integer.<\/li>\n\n\n\n<li><code>max<\/code>: Returns the maximum value from a list.<\/li>\n\n\n\n<li><code>min<\/code>: Returns the minimum value from a list.<\/li>\n\n\n\n<li><code>timeadd<\/code>: Adds a duration to a timestamp.<\/li>\n<\/ol>\n\n\n\n<p>These functions can be used to manipulate and transform data within your Terraform configurations, and can help you to write more flexible and dynamic infrastructure as code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Top terraform function with example usecase with aws provider<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>count<\/code>: The <code>count<\/code> function allows you to create multiple instances of a resource based on a variable value. For example, you can use <code>count<\/code> to create multiple EC2 instances.<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  count = <span class=\"hljs-keyword\">var<\/span>.instance_count\n  ami = <span class=\"hljs-string\">\"ami-0c55b159cbfafe1f0\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong><code>element<\/code>: The <code>element<\/code> function allows you to select a specific element from a list. For example, you can use <code>element<\/code> to select a specific subnet in a list of subnets.<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  subnet_id = element(<span class=\"hljs-keyword\">var<\/span>.subnet_ids, <span class=\"hljs-number\">0<\/span>)\n  ami = <span class=\"hljs-string\">\"ami-0c55b159cbfafe1f0\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong><code>join<\/code>: The <code>join<\/code> function allows you to join a list of strings into a single string. For example, you can use <code>join<\/code> to create a comma-separated list of security group IDs.<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_security_group_rule\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  security_group_id = aws_security_group.example.id\n  type = <span class=\"hljs-string\">\"ingress\"<\/span>\n  from_port = <span class=\"hljs-number\">0<\/span>\n  to_port = <span class=\"hljs-number\">65535<\/span>\n  protocol = <span class=\"hljs-string\">\"tcp\"<\/span>\n  cidr_blocks = &#91;join(<span class=\"hljs-string\">\",\"<\/span>, aws_security_group.allow_all_sg.*.id)]\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong><code>merge<\/code>: The <code>merge<\/code> function allows you to merge multiple maps into a single map. For example, you can use <code>merge<\/code> to merge multiple tags into a single map.<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  ami = <span class=\"hljs-string\">\"ami-0c55b159cbfafe1f0\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n  tags = merge(\n    {\n      <span class=\"hljs-string\">\"Name\"<\/span> = <span class=\"hljs-string\">\"example-instance\"<\/span>\n    },\n    <span class=\"hljs-keyword\">var<\/span>.extra_tags\n  )\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List 20 of terraform functions command example on terraform console<\/h2>\n\n\n\n<p>Here are 20 examples of Terraform functions that you can try out in the Terraform console:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>abs(-5)<\/code> &#8211; Returns the absolute value of a number.<\/li>\n\n\n\n<li><code>basename(\"path\/to\/file.txt\")<\/code> &#8211; Returns the basename of a file path.<\/li>\n\n\n\n<li><code>ceil(3.14159)<\/code> &#8211; Returns the smallest integer greater than or equal to a number.<\/li>\n\n\n\n<li><code>coalesce(null, \"default\")<\/code> &#8211; Returns the first non-null argument.<\/li>\n\n\n\n<li><code>compact([\"a\", \"\", \"b\", null])<\/code> &#8211; Returns a list with all empty and null values removed.<\/li>\n\n\n\n<li><code>element([\"a\", \"b\", \"c\"], 1)<\/code> &#8211; Returns the element at a specific index of a list.<\/li>\n\n\n\n<li><code>file(\"path\/to\/file.txt\")<\/code> &#8211; Returns the contents of a file.<\/li>\n\n\n\n<li><code>format(\"Hello, %s!\", \"Terraform\")<\/code> &#8211; Returns a formatted string.<\/li>\n\n\n\n<li><code>index([\"a\", \"b\", \"c\"], \"b\")<\/code> &#8211; Returns the index of an element in a list.<\/li>\n\n\n\n<li><code>join(\", \", [\"a\", \"b\", \"c\"])<\/code> &#8211; Returns a string with the elements of a list joined together with a delimiter.<\/li>\n\n\n\n<li><code>jsonencode({\"key\": \"value\"})<\/code> &#8211; Returns a JSON-encoded string.<\/li>\n\n\n\n<li><code>length(\"hello\")<\/code> &#8211; Returns the length of a string.<\/li>\n\n\n\n<li><code>list(\"a\", \"b\", \"c\")<\/code> &#8211; Returns a list.<\/li>\n\n\n\n<li><code>lower(\"HELLO\")<\/code> &#8211; Returns a string with all characters in lowercase.<\/li>\n\n\n\n<li><code>map(\"key\", \"value\")<\/code> &#8211; Returns a map.<\/li>\n\n\n\n<li><code>merge({\"a\": 1}, {\"b\": 2})<\/code> &#8211; Returns a map with two maps merged together.<\/li>\n\n\n\n<li><code>range(1, 5)<\/code> &#8211; Returns a list of numbers between two values.<\/li>\n\n\n\n<li><code>regex(\"hello\", \"^h\")<\/code> &#8211; Returns a boolean indicating whether a string matches a regular expression.<\/li>\n\n\n\n<li><code>reverse([\"a\", \"b\", \"c\"])<\/code> &#8211; Returns a list with the elements in reverse order.<\/li>\n\n\n\n<li><code>timeadd(\"2022-02-15T00:00:00Z\", \"24h\")<\/code> &#8211; Returns a string representing a time that is a specified duration after a given time.<\/li>\n<\/ol>\n\n\n\n<p>You can try these functions out in the Terraform console by running <code>terraform console<\/code> in your terminal and typing in the function call. For example, to try out <code>lower(\"HELLO\")<\/code>, you would type <code>lower(\"HELLO\")<\/code> into the console and hit enter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example Program<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">variable <span class=\"hljs-string\">\"instance_count1\"<\/span> {\n  type = number\n  <span class=\"hljs-keyword\">default<\/span> = <span class=\"hljs-number\">1<\/span>\n}\n\nvariable <span class=\"hljs-string\">\"instance_count2\"<\/span> {\n  type = number\n  <span class=\"hljs-keyword\">default<\/span> = <span class=\"hljs-number\">2<\/span>\n}\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"web\"<\/span> {\n  ami           = <span class=\"hljs-string\">\"ami-053b0d53c279acc90\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t3.micro\"<\/span>\n  count = sum(&#91;<span class=\"hljs-keyword\">var<\/span>.instance_count1,<span class=\"hljs-keyword\">var<\/span>.instance_count2])\n  tags = {\n    Name = <span class=\"hljs-string\">\"RajeshKumar\"<\/span>\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">variable <span class=\"hljs-string\">\"plans\"<\/span> {\n    type = map\n    <span class=\"hljs-keyword\">default<\/span> = {\n        <span class=\"hljs-string\">\"5USD\"<\/span>  = <span class=\"hljs-string\">\"1xCPU-1GB\"<\/span>\n        <span class=\"hljs-string\">\"10USD\"<\/span> = <span class=\"hljs-string\">\"1xCPU-2GB\"<\/span>\n        <span class=\"hljs-string\">\"20USD\"<\/span> = <span class=\"hljs-string\">\"2xCPU-4GB\"<\/span>\n    }\n}\n\nvariable <span class=\"hljs-string\">\"storage_sizes\"<\/span> {\n    type = map\n    <span class=\"hljs-keyword\">default<\/span> = {\n        <span class=\"hljs-string\">\"1xCPU-1GB\"<\/span>  = <span class=\"hljs-string\">\"25\"<\/span>\n        <span class=\"hljs-string\">\"1xCPU-2GB\"<\/span>  = <span class=\"hljs-string\">\"50\"<\/span>\n        <span class=\"hljs-string\">\"2xCPU-4GB\"<\/span>  = <span class=\"hljs-string\">\"80\"<\/span>\n    }\n}\n\nresource <span class=\"hljs-string\">\"aws_ebs_volume\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  availability_zone = <span class=\"hljs-string\">\"us-east-1a\"<\/span>       \n  size              = lookup(<span class=\"hljs-keyword\">var<\/span>.storage_sizes, <span class=\"hljs-keyword\">var<\/span>.plans&#91;<span class=\"hljs-string\">\"5USD\"<\/span>])                \n\n  tags = {\n    Name = <span class=\"hljs-string\">\"example-ebs-volume\"<\/span>\n  }\n}\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_key_pair\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  key_name   = <span class=\"hljs-string\">\"examplekey\"<\/span>\n  public_key = file(<span class=\"hljs-string\">\"~\/.ssh\/terraform.pub\"<\/span>)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">resource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example\"<\/span> {\n  key_name      = aws_key_pair.example.key_name\n  ami           = <span class=\"hljs-string\">\"ami-04590e7389a6e577c\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n\n  connection {\n    type        = <span class=\"hljs-string\">\"ssh\"<\/span>\n    user        = <span class=\"hljs-string\">\"ec2-user\"<\/span>\n    private_key = file(<span class=\"hljs-string\">\"rajesh.pem\"<\/span>)\n    host        = <span class=\"hljs-keyword\">self<\/span>.public_ip\n  }\n\n  provisioner <span class=\"hljs-string\">\"remote-exec\"<\/span> {\n    inline = &#91;\n      <span class=\"hljs-string\">\"sudo amazon-linux-extras enable nginx1.12\"<\/span>,\n      <span class=\"hljs-string\">\"sudo yum -y install nginx\"<\/span>,\n      <span class=\"hljs-string\">\"sudo systemctl start nginx\"<\/span>\n    ]\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_53449\"><figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_27440\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_53449\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>The Terraform language includes a number of built-in functions that you can call from within expressions to transform and combine values. The general syntax for function calls is a function name followed by comma-separated arguments in parentheses: max(5, 12, 9) The Terraform language does not support user-defined functions, and so only the functions built in&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[5129],"tags":[],"class_list":["post-12951","post","type-post","status-publish","format-standard","hentry","category-terraform"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=12951"}],"version-history":[{"count":12,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12951\/revisions"}],"predecessor-version":[{"id":38400,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12951\/revisions\/38400"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=12951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=12951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=12951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}