forked from cloudfoundry/csb-brokerpak-aws
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaws-dynamodb.yml
219 lines (219 loc) · 7.89 KB
/
aws-dynamodb.yml
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# Copyright 2018 the Service Broker Project Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
version: 1
name: csb-aws-dynamodb
id: bf1db66a-1316-11eb-b959-e73b704ea230
description: Beta - CSB Amazon DynamoDB
display_name: CSB Amazon DynamoDB (Beta)
image_url: file://service-images/csb.png
documentation_url: https://docs.vmware.com/en/Tanzu-Cloud-Service-Broker-for-AWS/1.2/csb-aws/GUID-reference-aws-dynamodb.html
provider_display_name: VMware
support_url: https://aws.amazon.com/dynamodb/
tags: [aws, dynamodb, beta]
plan_updateable: true
plans:
- name: ondemand
id: 52b109ee-1318-11eb-851b-dbe6aa707e6b
description: 'Beta - With on-demand capacity mode, DynamoDB charges you for the data reads and writes your application performs on your tables.'
display_name: "ondemand (Beta)"
properties:
billing_mode: "PAY_PER_REQUEST"
- name: provisioned
id: 591808b4-1318-11eb-b932-cbf259c3124c
description: 'Beta - With provisioned capacity mode, you specify the number of reads and writes per second that you expect your application to require.'
display_name: "provisioned (Beta)"
properties:
billing_mode: "PROVISIONED"
provision:
plan_inputs:
- field_name: billing_mode
required: true
type: string
details: Controls how you are billed for read/write throughput and how you manage capacity.
user_inputs:
- field_name: instance_name
type: string
details: Name of the DynamoDB table
default: csb-dynamodb-${request.instance_id}
constraints:
maxLength: 98
minLength: 6
pattern: ^[a-z][a-z0-9-]+$
prohibit_update: true
- field_name: hash_key
type: string
details: The attribute to use as the hash (partition) key. Must also be defined as an attribute
required: true
- field_name: table_name
type: string
details: Name of the DynamoDB table
required: true
- field_name: attributes
type: array
details: List of nested attribute definitions. Only required for hash_key and range_key attributes.
required: true
- field_name: global_secondary_indexes
type: array
details: Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc.
required: true
- field_name: local_secondary_indexes
type: array
details: Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource.
required: false
default: []
- field_name: range_key
type: string
details: The attribute to use as the range (sort) key. Must also be defined as an attribute
required: true
- field_name: ttl_attribute_name
type: string
details: The name of the table attribute to store the TTL timestamp in
default: ""
- field_name: ttl_enabled
type: boolean
details: Indicates whether ttl is enabled
default: false
- field_name: stream_enabled
type: boolean
details: Indicates whether Streams are to be enabled (true) or disabled (false).
default: false
- field_name: stream_view_type
type: string
details: When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES.
default: null
- field_name: server_side_encryption_kms_key_arn
type: string
details: The ARN of the CMK that should be used for the AWS KMS encryption. This attribute should only be specified if the key is different from the default DynamoDB CMK, alias/aws/dynamodb.
default: null
- field_name: server_side_encryption_enabled
type: boolean
details: Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK)
default: false
- field_name: write_capacity
type: number
details: The number of write units for this table. If the billing_mode is PROVISIONED, this field should be greater than 0
- field_name: read_capacity
type: number
details: The number of read units for this table. If the billing_mode is PROVISIONED, this field should be greater than 0
- field_name: region
type: string
details: The region of AWS.
default: us-west-2
constraints:
examples:
- us-central1
- asia-northeast1
pattern: ^[a-z][a-z0-9-]+$
prohibit_update: true
- field_name: aws_access_key_id
type: string
details: AWS access key
default: ${config("aws.access_key_id")}
- field_name: aws_secret_access_key
type: string
details: AWS secret key
default: ${config("aws.secret_access_key")}
- field_name: aws_vpc_id
details: VPC ID for instance
default: ""
computed_inputs:
- name: labels
default: ${json.marshal(request.default_labels)}
overwrite: true
type: object
- name: billing_mode
default: ${billing_mode}
overwrite: true
type: string
template_refs:
main: terraform/dynamodb/provision/main.tf
outputs: terraform/dynamodb/provision/outputs.tf
provider: terraform/dynamodb/provision/provider.tf
versions: terraform/dynamodb/provision/versions.tf
variables: terraform/dynamodb/provision/variables.tf
outputs:
- field_name: dynamodb_table_arn
type: string
details: DynamoDB table ARN.
- field_name: dynamodb_table_id
type: string
details: DynamoDB table ID.
- field_name: dynamodb_table_name
type: string
details: DynamoDB table name.
- field_name: region
type: string
details: AWS region for the bucket
bind:
plan_inputs: []
user_inputs:
- field_name: aws_access_key_id
type: string
details: AWS access key
default: ${config("aws.access_key_id")}
- field_name: aws_secret_access_key
type: string
details: AWS secret key
default: ${config("aws.secret_access_key")}
computed_inputs:
- name: dynamodb_table_arn
type: string
default: ${instance.details["dynamodb_table_arn"]}
overwrite: true
- name: dynamodb_table_id
type: string
default: ${instance.details["dynamodb_table_id"]}
overwrite: true
- name: dynamodb_table_name
type: string
default: ${instance.details["dynamodb_table_name"]}
overwrite: true
- name: user_name
default: csb-${request.binding_id}
overwrite: true
type: string
- name: region
default: ${instance.details["region"]}
overwrite: true
type: string
template_refs:
data: terraform/dynamodb/bind/data.tf
main: terraform/dynamodb/bind/main.tf
outputs: terraform/dynamodb/bind/outputs.tf
provider: terraform/dynamodb/bind/provider.tf
versions: terraform/dynamodb/bind/versions.tf
variables: terraform/dynamodb/bind/variables.tf
outputs:
- field_name: dynamodb_table_arn
type: string
details: DynamoDB table ARN.
- field_name: dynamodb_table_id
type: string
details: DynamoDB table ID.
- field_name: access_key_id
type: string
details: AWS access key
- field_name: secret_access_key
type: string
details: AWS secret access key
- field_name: region
type: string
details: AWS region for the bucket
examples:
- name: ondemand
description: Create a dynamodb instance
plan_id: 52b109ee-1318-11eb-851b-dbe6aa707e6b
provision_params: {"table_name": "example_table", "hash_key": "id", "range_key": "title", "attributes": [{"name": "id", "type": "N"},{"name": "title", "type": "S"},{"name": "age", "type": "N"}], "global_secondary_indexes": [{"name": "TitleIndex", "hash_key": "title", "range_key": "age", "projection_type": "ALL"}]}
bind_params: {}