/dhall-aws-cloudformation/gh-pages/examples/dynamo.dhall.html

Copy path to clipboard

Source

<!DOCTYPE HTML><html><head><title>/examples/dynamo.dhall</title><link rel="stylesheet" type="text/css" href="../index.css"><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&amp;family=Lato:ital,wght@0,400;0,700;1,400&amp;display=swap"><script type="text/javascript" src="../index.js"></script><meta charset="UTF-8"></head><body><div class="nav-bar"><img class="dhall-icon" src="../dhall-icon.svg"><p class="package-title">dhall-aws-cloudformation</p><div class="nav-bar-content-divider"></div><a id="switch-light-dark-mode" class="nav-option">Switch Light/Dark Mode</a></div><div class="main-container"><h2 class="doc-title"><span class="crumb-divider">/</span><a href="../index.html">dhall-aws-cloudformation</a><span class="crumb-divider">/</span><a class="title-crumb" href="index.html">examples</a><span class="crumb-divider">/</span><span class="title-crumb" href="index.html">dynamo.dhall</span></h2><a class="copy-to-clipboard" data-path="https://raw.githubusercontent.com/jcouyang/dhall-aws-cloudformation/0.9.81/examples/dynamo.dhall"><i><small>Copy path to clipboard</small></i></a><br><div class="doc-contents"></div><h3>Source</h3><div class="source-code"><pre>let <span id="var1-5" class="name-decl" data-name="var1-5">cf</span> = (<a href="../package.dhall.html">../package.dhall</a>).Cloudformation<br><br>let <span id="var3-5" class="name-decl" data-name="var3-5">Table</span> = <a href="#var1-5" class="name-use" data-name="var1-5">cf</a>.`AWS::DynamoDB::Table`<br><br>let <span id="var5-5" class="name-decl" data-name="var5-5">Role</span> = <a href="#var1-5" class="name-use" data-name="var1-5">cf</a>.`AWS::IAM::Role`<br><br>let <span id="var7-5" class="name-decl" data-name="var7-5">SPolicy</span> = <a href="#var1-5" class="name-use" data-name="var1-5">cf</a>.`AWS::ApplicationAutoScaling::ScalingPolicy`<br><br>let <span id="var9-5" class="name-decl" data-name="var9-5">ScalableTarget</span> = <a href="#var1-5" class="name-use" data-name="var1-5">cf</a>.`AWS::ApplicationAutoScaling::ScalableTarget`<br><br>let <span id="var11-5" class="name-decl" data-name="var11-5">Fn</span> = <a href="../Fn.dhall.html">../Fn.dhall</a><br><br>let <span id="var13-5" class="name-decl" data-name="var13-5">fn</span> = <a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.render<br><br>let <span id="var15-5" class="name-decl" data-name="var15-5">JSON</span> = (<a href="../Prelude.dhall.html">../Prelude.dhall</a>).JSON<br><br>let <span id="var17-5" class="name-decl" data-name="var17-5">s</span> = <a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.renderText<br><br>let <span id="var19-5" class="name-decl" data-name="var19-5">DeletePolicy</span> = <a href="../DeletionPolicy.dhall.html">../DeletionPolicy.dhall</a><br><br>let <span id="var21-5" class="name-decl" data-name="var21-5">policyTamplate</span> = <a href="../sam/policy-template/package.dhall.html">../sam/policy-template/package.dhall</a><br><br>in { Resources =<br> { DDBTable = <a href="#var3-5" class="name-use" data-name="var3-5">Table</a>.Resources::{<br> , DeletionPolicy = Some <a href="#var19-5" class="name-use" data-name="var19-5">DeletePolicy</a>.Retain<br> , Properties = <a href="#var3-5" class="name-use" data-name="var3-5">Table</a>.Properties::{<br> , AttributeDefinitions = Some<br> [ { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;ArtistId&quot;, AttributeType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;S&quot; }<br> , { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;Concert&quot;, AttributeType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;S&quot; }<br> , { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;TicketSales&quot;, AttributeType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;S&quot; }<br> ]<br> , GlobalSecondaryIndexes = Some<br> [ <a href="#var3-5" class="name-use" data-name="var3-5">Table</a>.GlobalSecondaryIndex::{<br> , IndexName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;GSI&quot;<br> , KeySchema =<br> [ { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;TicketSales&quot;, KeyType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;HASH&quot; } ]<br> , Projection = <a href="#var3-5" class="name-use" data-name="var3-5">Table</a>.Projection::{<br> , ProjectionType = Some (<a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;KEYS_ONLY&quot;)<br> }<br> , ProvisionedThroughput = Some<br> { ReadCapacityUnits = +5, WriteCapacityUnits = +5 }<br> }<br> ]<br> , KeySchema =<br> [ { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;ArtistId&quot;, KeyType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;HASH&quot; }<br> , { AttributeName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;Concert&quot;, KeyType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;RANGE&quot; }<br> ]<br> , ProvisionedThroughput = Some<br> { ReadCapacityUnits = +5, WriteCapacityUnits = +5 }<br> }<br> }<br> , ScalingRole = <a href="#var5-5" class="name-use" data-name="var5-5">Role</a>.Resources::{<br> , Properties = <a href="#var5-5" class="name-use" data-name="var5-5">Role</a>.Properties::{<br> , AssumeRolePolicyDocument =<br> <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.object<br> ( toMap<br> { Statement =<br> <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.array<br> [ <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.object<br> ( toMap<br> { Action =<br> <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.array<br> [ <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.string &quot;sts:AssumeRole&quot; ]<br> , Effect = <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.string &quot;Allow&quot;<br> , Principal =<br> <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.object<br> ( toMap<br> { Service =<br> <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.array<br> [ <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.string<br> &quot;application-autoscaling.amazonaws.com&quot;<br> ]<br> }<br> )<br> }<br> )<br> ]<br> , Version = <a href="#var15-5" class="name-use" data-name="var15-5">JSON</a>.string &quot;2012-10-17&quot;<br> }<br> )<br> , Path = Some (<a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;/&quot;)<br> , Policies = Some<br> [ <a href="#var5-5" class="name-use" data-name="var5-5">Role</a>.Policy::{<br> , PolicyDocument =<br> <a href="#var21-5" class="name-use" data-name="var21-5">policyTamplate</a>.DynamoDBReadPolicy (<a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.String &quot;Name&quot;)<br> , PolicyName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;root&quot;<br> }<br> ]<br> }<br> }<br> , WriteCapacityScalableTarget = <a href="#var9-5" class="name-use" data-name="var9-5">ScalableTarget</a>.Resources::{<br> , Properties = <a href="#var9-5" class="name-use" data-name="var9-5">ScalableTarget</a>.Properties::{<br> , MaxCapacity = +15<br> , MinCapacity = +5<br> , ResourceId =<br> <a href="#var13-5" class="name-use" data-name="var13-5">fn</a> (<a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.Join &quot;/&quot; [ <a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.String &quot;table&quot;, <a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.Ref &quot;DDBTable&quot; ])<br> , RoleARN = Some (<a href="#var13-5" class="name-use" data-name="var13-5">fn</a> (<a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.GetAtt &quot;ScalingRole.Arn&quot;))<br> , ScalableDimension = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;dynamodb:table:WriteCapacityUnits&quot;<br> , ServiceNamespace = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;dynamodb&quot;<br> }<br> }<br> , WriteScalingPolicy = <a href="#var7-5" class="name-use" data-name="var7-5">SPolicy</a>.Resources::{<br> , Properties = <a href="#var7-5" class="name-use" data-name="var7-5">SPolicy</a>.Properties::{<br> , PolicyName = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;WriteAutoScalingPolicy&quot;<br> , PolicyType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;TargetTrackingScaling&quot;<br> , ScalingTargetId = Some (<a href="#var13-5" class="name-use" data-name="var13-5">fn</a> (<a href="#var11-5" class="name-use" data-name="var11-5">Fn</a>.Ref &quot;WriteCapacityScalableTarget&quot;))<br> , TargetTrackingScalingPolicyConfiguration = Some <a href="#var7-5" class="name-use" data-name="var7-5">SPolicy</a>.TargetTrackingScalingPolicyConfiguration::{<br> , PredefinedMetricSpecification = Some <a href="#var7-5" class="name-use" data-name="var7-5">SPolicy</a>.PredefinedMetricSpecification::{<br> , PredefinedMetricType = <a href="#var17-5" class="name-use" data-name="var17-5">s</a> &quot;DynamoDBWriteCapacityUtilization&quot;<br> }<br> , ScaleInCooldown = Some +60<br> , ScaleOutCooldown = Some +60<br> , TargetValue = 50.0<br> }<br> }<br> }<br> }<br> }<br></pre></div></div></body></html>