File: hcl

package info (click to toggle)
ruby-rouge 4.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,836 kB
  • sloc: ruby: 38,168; sed: 2,071; perl: 152; makefile: 8
file content (100 lines) | stat: -rw-r--r-- 2,599 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Comment

# Object with no key/value pairs
data "aws_availability_zones" "available" {}

# Object with single key/value
provider "aws" {
  most_recent = false
}

# Object with various comma-separated values
provider "aws" {
  most_recent = false, other_value = null
}

# Object with various newline-separated values
resource "aws_vpc" "main" {
  most_recent = true
  cidr_block = "10.10.0.0/16"
  region = "${var.aws_region}"
  count = 0
  another_num = 3.14
}

# Object with interpolated values
resource "aws_subnet" "main" {
  count             = "${var.az_count}"
  cidr_block        = "${cidrsubnet(aws_vpc.main.cidr_block, 8, count.index)}"
  availability_zone = "${data.aws_availability_zones.available.names[count.index]}"
  vpc_id            = "${aws_vpc.main.id}"
}

# Object with nested object
resource "aws_route_table" "r" {
  vpc_id = "${aws_vpc.main.id}"

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = "${aws_internet_gateway.gw.id}"
  }
}

# Object with list value
resource "aws_autoscaling_group" "app" {
  vpc_zone_identifier  = ["${aws_subnet.main.*.id}"]
}

# Object with nested interpolation
data "template_file" "cloud_config" {
  template = "${file("${path.module}/cloud-config.yml")}"
}

# Object with HEREDOC string
resource "aws_iam_role" "ecs_service" {
  name = "tf_example_ecs_role"

  assume_role_policy = <<EOF
{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ecs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

## Object with first-class expressions
resource "aws_subnet" "main" {
  count             = var.az_count
  cidr_block        = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index)
  availability_zone = data.aws_availability_zones.available.names[count.index]
  vpc_id            = aws_vpc.main.id
  fqns              = aws_route53_record.cert_validation[*].fqdn
}

## Object with regular expression
resource "aws_cloudfront_distribution" "s3_distribution" {
  aliases = ["www.${replace(var.domain_name, "/\\.$/", "")}"]
}

## operators
locals {
  op01 = var.var1 != var.var2 ? var.var1 : var.var2
  op02 = var.var1 == var.var2 ? var.var1 : var.var2
  op05 = var.var1 < var.var2 ? var.var1 : var.var2
  op06 = var.var1 <= var.var2 ? var.var1 : var.var2
  op07 = var.var1 > var.var2 ? var.var1 : var.var2
  op08 = var.var1 >= var.var2 ? var.var1 : var.var2
  op09 = var.var1 && var.var2 ? var.var1 : var.var2
  op10 = var.var1 || var.var2 ? var.var1 : var.var2
  op11 = !var.var1 ? var.var1 : var.var2
  op12 = 1 + 2 * 3 / 4 % 5 - 6
}