Cleanup (#50)
* Cleanup some of the repo, prep for release * Rework docs to new registry structure * Add docs generator tooling * Generate the docs * update deps * docs: add docs generation command to readme Co-authored-by: Jeff Malnick <malnick@gmail.com>
This commit is contained in:
1 parent
7ee5c9c47b
commit
8bb38f1fd6
74 files changed
+1306
-1076
No files matched your search
@@ -1,5 +0,0 @@
|
||||
# Code of Conduct
|
||||
|
||||
HashiCorp Community Guidelines apply to you when interacting with the community here on GitHub and contributing code.
|
||||
|
||||
Please read the full text at https://www.hashicorp.com/community-guidelines
|
||||
@@ -0,0 +1 @@
|
||||
1.15.2
|
||||
@@ -1,59 +0,0 @@
|
||||
# Visit https://goreleaser.com for documentation on how to customize this
|
||||
# behavior.
|
||||
|
||||
before:
|
||||
hooks:
|
||||
- go mod tidy
|
||||
builds:
|
||||
- env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- freebsd
|
||||
- openbsd
|
||||
- solaris
|
||||
- windows
|
||||
- linux
|
||||
- darwin
|
||||
goarch:
|
||||
- amd64
|
||||
- '386'
|
||||
- arm
|
||||
- arm64
|
||||
ignore:
|
||||
- goos: darwin
|
||||
goarch: '386'
|
||||
- goos: darwin
|
||||
goarch: arm
|
||||
- goos: darwin
|
||||
goarch: arm64
|
||||
- goos: openbsd
|
||||
goarch: arm
|
||||
- goos: openbsd
|
||||
goarch: arm64
|
||||
- goos: solaris
|
||||
goarch: arm
|
||||
- goos: solaris
|
||||
goarch: arm64
|
||||
- goos: solaris
|
||||
goarch: '386'
|
||||
binary: '{{ .ProjectName }}_v{{ .Version }}'
|
||||
archives:
|
||||
- format: zip
|
||||
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
|
||||
checksum:
|
||||
name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
|
||||
algorithm: sha256
|
||||
signs:
|
||||
- artifacts: checksum
|
||||
args:
|
||||
- "--local-user"
|
||||
- "51852D87348FFC4C" # Replace this with your GPG signing key ID
|
||||
- "--output"
|
||||
- "${signature}"
|
||||
- "--detach-sign"
|
||||
- "${artifact}"
|
||||
release:
|
||||
# Visit your project's GitHub Releases page to publish this release.
|
||||
draft: true
|
||||
changelog:
|
||||
skip: true
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
## 0.1.0 (Unreleased)
|
||||
|
||||
BACKWARDS INCOMPATIBILITIES / NOTES:
|
||||
Initial release!
|
||||
@@ -7,7 +7,7 @@ Requirements
|
||||
------------
|
||||
|
||||
- [Terraform](https://www.terraform.io/downloads.html) >= 0.12.x
|
||||
- [Go](https://golang.org/doc/install) >= 1.12
|
||||
- [Go](https://golang.org/doc/install) >= 1.15
|
||||
|
||||
Building The Provider
|
||||
---------------------
|
||||
@@ -59,6 +59,15 @@ In order to run the full suite of Acceptance tests, run `make testacc`.
|
||||
$ make testacc
|
||||
```
|
||||
|
||||
Generating Docs
|
||||
----------------------
|
||||
|
||||
From the root of the repo run:
|
||||
|
||||
```
|
||||
go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs
|
||||
```
|
||||
|
||||
Using the provider
|
||||
----------------------
|
||||
Please see our detailed docs for individual resource usage. Below is a complex example using the Boundary provider to configure all resource types available:
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
page_title: "Provider: Boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Terraform provider for configuring Boundary.
|
||||
---
|
||||
|
||||
# Boundary Provider
|
||||
|
||||
Terraform provider for configuring Boundary.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Do not keep your authentication password in HCL for production environments, use Terraform environment variables.
|
||||
|
||||
```terraform
|
||||
provider "boundary" {
|
||||
addr = "http://127.0.0.1:9200"
|
||||
auth_method_id = "ampw_1234567890" # changeme
|
||||
password_auth_method_login_name = "myuser" # changeme
|
||||
password_auth_method_password = "passpass" # changeme
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **addr** (String, Required) The base url of the Boundary API, e.g. "http://127.0.0.1". If not set, it will be read from the "BOUNDARY_ADDR" env var.
|
||||
|
||||
### Optional
|
||||
|
||||
- **auth_method_id** (String, Optional) The auth method ID e.g. ampw_1234567890
|
||||
- **password_auth_method_login_name** (String, Optional) The auth method login name for password-style auth methods
|
||||
- **password_auth_method_password** (String, Optional) The auth method password for password-style auth methods
|
||||
- **recovery_kms_hcl** (String, Optional) Can be a heredoc string or a path on disk. If set, the string/file will be parsed as HCL and used with the recovery KMS mechanism. While this is set, it will override any other authentication information; the KMS mechanism will always be used.
|
||||
- **token** (String, Optional) The Boundary token to use, as a string or path on disk containing just the string. If set, the token read here will be used in place of authenticating with the auth method specified in "auth_method_id", although the recovery KMS mechanism will still override this. Can also be set with the BOUNDARY_TOKEN environment variable.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
page_title: "boundary_account Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The account resource allows you to configure a Boundary account.
|
||||
---
|
||||
|
||||
# Resource `boundary_account`
|
||||
|
||||
The account resource allows you to configure a Boundary account.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **auth_method_id** (String, Required) The resource ID for the authentication method.
|
||||
- **type** (String, Required) The resource type.
|
||||
|
||||
### Optional
|
||||
|
||||
- **description** (String, Optional) The account description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **login_name** (String, Optional) The login name for this account.
|
||||
- **name** (String, Optional) The account name. Defaults to the resource name.
|
||||
- **password** (String, Optional) The account password.
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
page_title: "boundary_auth_method Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The auth method resource allows you to configure a Boundary auth_method.
|
||||
---
|
||||
|
||||
# Resource `boundary_auth_method`
|
||||
|
||||
The auth method resource allows you to configure a Boundary auth_method.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID.
|
||||
- **type** (String, Required) The resource type.
|
||||
|
||||
### Optional
|
||||
|
||||
- **description** (String, Optional) The auth method description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **min_login_name_length** (Number, Optional) The minimum login name length.
|
||||
- **min_password_length** (Number, Optional) The minimum password length.
|
||||
- **name** (String, Optional) The auth method name. Defaults to the resource name.
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: group_resource"
|
||||
sidebar_current: "docs-boundary-group-resource"
|
||||
page_title: "boundary_group Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Group resource for the Boundary Terraform provider.
|
||||
The group resource allows you to configure a Boundary group.
|
||||
---
|
||||
|
||||
# boundary_group_resource
|
||||
# Resource `boundary_group`
|
||||
|
||||
The group resource allows you to configure a Boundary group.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -34,7 +34,7 @@ resource "boundary_group" "example" {
|
||||
|
||||
Usage for project-specific group:
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -62,10 +62,15 @@ resource "boundary_group" "example" {
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
## Schema
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The group description.
|
||||
* `name` - The group name. Defaults to the resource name.
|
||||
* `scope_id` - The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
* `member_ids` - Resource IDs for group members, these are most likely boundary users.
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
|
||||
### Optional
|
||||
|
||||
- **description** (String, Optional) The group description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **member_ids** (Set of String, Optional) Resource IDs for group members, these are most likely boundary users.
|
||||
- **name** (String, Optional) The group name. Defaults to the resource name.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
page_title: "boundary_host Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The host resource allows you to configure a Boundary static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
|
||||
---
|
||||
|
||||
# Resource `boundary_host`
|
||||
|
||||
The host resource allows you to configure a Boundary static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host!"
|
||||
address = "10.0.0.1"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **host_catalog_id** (String, Required)
|
||||
- **type** (String, Required)
|
||||
|
||||
### Optional
|
||||
|
||||
- **address** (String, Optional) The static address of the host resource as `<IP>:<port>` or a domain name.
|
||||
- **description** (String, Optional) The host description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The host name. Defaults to the resource name.
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
page_title: "boundary_host_catalog Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The host catalog resource allows you to configure a Boundary host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
|
||||
---
|
||||
|
||||
# Resource `boundary_host_catalog`
|
||||
|
||||
The host catalog resource allows you to configure a Boundary host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host catalog!"
|
||||
type = "Static"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID in which the resource is created.
|
||||
- **type** (String, Required) The host catalog type. Only `Static` (yes, title case) is supported.
|
||||
|
||||
### Optional
|
||||
|
||||
- **description** (String, Optional) The host catalog description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The host catalog name. Defaults to the resource name.
|
||||
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
page_title: "boundary_host_set Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The host_set resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
|
||||
---
|
||||
|
||||
# Resource `boundary_host_set`
|
||||
|
||||
The host_set resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "static" {
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "1" {
|
||||
name = "host_1"
|
||||
description = "My first host!"
|
||||
address = "10.0.0.1"
|
||||
host_catalog_id = boundary_host_catalog.static.id
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "2" {
|
||||
name = "host_2"
|
||||
description = "My second host!"
|
||||
address = "10.0.0.2"
|
||||
host_catalog_id = boundary_host_catalog.static.id
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "web" {
|
||||
host_catalog_id = boundary_host_catalog.static.id
|
||||
host_ids = [
|
||||
boundary_host.1.id,
|
||||
boundary_host.2.id,
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **host_catalog_id** (String, Required) The catalog for the hostset.
|
||||
- **type** (String, Required)
|
||||
|
||||
### Optional
|
||||
|
||||
- **description** (String, Optional) The hostset description.
|
||||
- **host_ids** (Set of String, Optional) The list of host IDs contained in this set.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The hostset name. Defaults to the resource name.
|
||||
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: role_resource"
|
||||
sidebar_current: "docs-boundary-role-resource"
|
||||
page_title: "boundary_role Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Role resource for the Boundary Terraform provider.
|
||||
The role resource allows you to configure a Boundary role.
|
||||
---
|
||||
|
||||
# role_resource
|
||||
# Resource `boundary_role`
|
||||
|
||||
The role resource allows you to configure a Boundary role.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Basic usage:
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -29,7 +30,7 @@ resource "boundary_role" "example" {
|
||||
|
||||
Usage with a user resource:
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -53,12 +54,11 @@ resource "boundary_role" "example" {
|
||||
principals = [boundary_user.foo.id, boundary_user.bar.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Usage with user and grants resource:
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -83,7 +83,7 @@ resource "boundary_role" "readonly" {
|
||||
|
||||
Usage for a project-specific role:
|
||||
|
||||
```hcl
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -113,11 +113,18 @@ resource "boundary_role" "readonly" {
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
## Schema
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The role description.
|
||||
* `grants` - A list of stringified grants for the role.
|
||||
* `name` - The role name. Defaults to the resource name.
|
||||
* `principals` - A list of principal (user or group) IDs to add as principals on the role.
|
||||
* `scope_id` - The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
|
||||
### Optional
|
||||
|
||||
- **default_role** (Boolean, Optional) Indicates that the role containing this value is the default role (that is, has the id 'r_default'), which triggers some specialized behavior to allow it to be imported and managed.
|
||||
- **description** (String, Optional) The role description.
|
||||
- **grant_scope_id** (String, Optional)
|
||||
- **grant_strings** (Set of String, Optional) A list of stringified grants for the role.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The role name. Defaults to the resource name.
|
||||
- **principal_ids** (Set of String, Optional) A list of principal (user or group) IDs to add as principals on the role.
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
page_title: "boundary_scope Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The scope resource allows you to configure a Boundary scope.
|
||||
---
|
||||
|
||||
# Resource `boundary_scope`
|
||||
|
||||
The scope resource allows you to configure a Boundary scope.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Creating the global scope:
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an organization scope within global:
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an project scope within an organization:
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an organization scope with a managed role for administration (auto create role set false):
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "org_admin" {
|
||||
scope_id = boundary_scope.global.id
|
||||
grant_scope_id = boundary_scope.org.id
|
||||
grant_strings = ["id=*;type=*;actions=*"]
|
||||
principal_ids = ["u_auth"]
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID containing the sub scope resource.
|
||||
|
||||
### Optional
|
||||
|
||||
- **auto_create_admin_role** (Boolean, Optional) If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives permissions to manage the scope to the provider's user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.
|
||||
- **auto_create_default_role** (Boolean, Optional) If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives listing of scopes and auth methods and the ability to authenticate to the anonymous user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.
|
||||
- **description** (String, Optional) The scope description.
|
||||
- **global_scope** (Boolean, Optional) Indicates that the scope containing this value is the global scope, which triggers some specialized behavior to allow it to be imported and managed.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The scope name. Defaults to the resource name.
|
||||
@@ -0,0 +1,94 @@
|
||||
---
|
||||
page_title: "boundary_target Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The target resource allows you to configure a Boundary target.
|
||||
---
|
||||
|
||||
# Resource `boundary_target`
|
||||
|
||||
The target resource allows you to configure a Boundary target.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "foo" {
|
||||
name = "test"
|
||||
description = "test catalog"
|
||||
scope_id = boundary_scope.project.id
|
||||
type = "static"
|
||||
}
|
||||
|
||||
resource "boundary_host" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host" "bar" {
|
||||
name = "bar"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
|
||||
host_ids = [
|
||||
boundary_host.foo.id,
|
||||
boundary_host.bar.id,
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "foo" {
|
||||
name = "foo"
|
||||
description = "Foo target"
|
||||
default_port = "22"
|
||||
scope_id = boundary_scope.project.id
|
||||
host_set_ids = [
|
||||
boundary_host_set.foo.id
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
- **type** (String, Required) The target resource type.
|
||||
|
||||
### Optional
|
||||
|
||||
- **default_port** (Number, Optional) The default port for this target.
|
||||
- **description** (String, Optional) The target description.
|
||||
- **host_set_ids** (Set of String, Optional) A list of host set ID's.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The target name. Defaults to the resource name.
|
||||
- **session_connection_limit** (Number, Optional)
|
||||
- **session_max_seconds** (Number, Optional)
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
page_title: "boundary_user Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The user resource allows you to configure a Boundary user.
|
||||
---
|
||||
|
||||
# Resource `boundary_user`
|
||||
|
||||
The user resource allows you to configure a Boundary user.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
|
||||
resource "boundary_user" "jeff" {
|
||||
name = "jeff"
|
||||
description = "Jeff's user resource"
|
||||
account_ids = [boundary_account.jeff.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
```
|
||||
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- **scope_id** (String, Required) The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
|
||||
### Optional
|
||||
|
||||
- **account_ids** (Set of String, Optional) Account ID's to associate with this user resource.
|
||||
- **description** (String, Optional) The user description.
|
||||
- **id** (String, Optional) The ID of this resource.
|
||||
- **name** (String, Optional) The username. Defaults to the resource name.
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
provider "boundary" {
|
||||
addr = "http://127.0.0.1:9200"
|
||||
auth_method_id = "ampw_1234567890" # changeme
|
||||
password_auth_method_login_name = "myuser" # changeme
|
||||
password_auth_method_password = "passpass" # changeme
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "foo" {
|
||||
description = "foo user"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_group" "example" {
|
||||
name = "My group"
|
||||
description = "My first group!"
|
||||
member_ids = [boundary_user.foo.id]
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "foo" {
|
||||
description = "foo user"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_group" "example" {
|
||||
name = "My group"
|
||||
description = "My first group!"
|
||||
member_ids = [boundary_user.foo.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host!"
|
||||
address = "10.0.0.1"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host catalog!"
|
||||
type = "Static"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
+1
-29
@@ -1,20 +1,3 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: hostset_resource"
|
||||
sidebar_current: "docs-boundary-hostset-catalog-resource"
|
||||
description: |-
|
||||
Hostset resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# host_set_resource
|
||||
The host_set resource allows you to configure a Boundary host set. Host sets are
|
||||
always part of a host catalog, so a host catalog resource should be used inline
|
||||
or you should have the host catalog ID in hand to successfully configure a host
|
||||
set.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
@@ -51,19 +34,8 @@ resource "boundary_host" "2" {
|
||||
|
||||
resource "boundary_host_set" "web" {
|
||||
host_catalog_id = boundary_host_catalog.static.id
|
||||
host_ids = [
|
||||
host_ids = [
|
||||
boundary_host.1.id,
|
||||
boundary_host.2.id,
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are required:
|
||||
* `host_catalog_id`- The catalog for the hostset.
|
||||
|
||||
The following arguments are optional:
|
||||
* `name` - The hostset name. Defaults to the resource name.
|
||||
* `description` - The hostset description.
|
||||
* `host_ids` - The list of host IDs contained in this set.
|
||||
@@ -0,0 +1,27 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly user"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly role"
|
||||
principals = [boundary_user.readonly.id]
|
||||
grants = ["id=*;action=read"]
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_role" "example" {
|
||||
name = "My role"
|
||||
description = "My first role!"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly user"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly role"
|
||||
principals = [boundary_user.readonly.id]
|
||||
grants = ["id=*;action=read"]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "foo" {
|
||||
name = "User 1"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_user" "bar" {
|
||||
name = "User 2"
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "example" {
|
||||
name = "My role"
|
||||
description = "My first role!"
|
||||
principals = [boundary_user.foo.id, boundary_user.bar.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "org_admin" {
|
||||
scope_id = boundary_scope.global.id
|
||||
grant_scope_id = boundary_scope.org.id
|
||||
grant_strings = ["id=*;type=*;actions=*"]
|
||||
principal_ids = ["u_auth"]
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "foo" {
|
||||
name = "test"
|
||||
description = "test catalog"
|
||||
scope_id = boundary_scope.project.id
|
||||
type = "static"
|
||||
}
|
||||
|
||||
resource "boundary_host" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host" "bar" {
|
||||
name = "bar"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
|
||||
host_ids = [
|
||||
boundary_host.foo.id,
|
||||
boundary_host.bar.id,
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "foo" {
|
||||
name = "foo"
|
||||
description = "Foo target"
|
||||
default_port = "22"
|
||||
scope_id = boundary_scope.project.id
|
||||
host_set_ids = [
|
||||
boundary_host_set.foo.id
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
|
||||
resource "boundary_user" "jeff" {
|
||||
name = "jeff"
|
||||
description = "Jeff's user resource"
|
||||
account_ids = [boundary_account.jeff.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
@@ -1,29 +1,31 @@
|
||||
module github.com/hashicorp/terraform-provider-boundary
|
||||
|
||||
go 1.13
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.66.0 // indirect
|
||||
cloud.google.com/go v0.68.0 // indirect
|
||||
cloud.google.com/go/storage v1.11.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go v46.4.0+incompatible // indirect
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.2 // indirect
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.3 // indirect
|
||||
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
|
||||
github.com/Azure/go-autorest/autorest/validation v0.3.0 // indirect
|
||||
github.com/DataDog/datadog-go v4.0.0+incompatible // indirect
|
||||
github.com/agext/levenshtein v1.2.3 // indirect
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.530 // indirect
|
||||
github.com/aws/aws-sdk-go v1.34.32 // indirect
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.545 // indirect
|
||||
github.com/aws/aws-sdk-go v1.35.4 // indirect
|
||||
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
|
||||
github.com/circonus-labs/circonusllhist v0.1.4 // indirect
|
||||
github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe // indirect
|
||||
github.com/golang/snappy v0.0.2 // indirect
|
||||
github.com/hashicorp/boundary v0.1.0-beta.1.0.20201001145154-fa700dc00278
|
||||
github.com/hashicorp/boundary v0.1.0-beta.3
|
||||
github.com/hashicorp/go-immutable-radix v1.3.0 // indirect
|
||||
github.com/hashicorp/go-kms-wrapping v0.5.16
|
||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
||||
github.com/hashicorp/hcl/v2 v2.6.0 // indirect
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.3
|
||||
github.com/hashicorp/terraform-plugin-docs v0.2.0
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.4
|
||||
github.com/hashicorp/yamux v0.0.0-20200609203250-aecfd211c9ce // indirect
|
||||
github.com/mattn/go-colorable v0.1.8 // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
|
||||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||
@@ -32,10 +34,10 @@ require (
|
||||
github.com/prometheus/common v0.14.0 // indirect
|
||||
github.com/prometheus/procfs v0.2.0 // indirect
|
||||
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c // indirect
|
||||
github.com/ulikunitz/xz v0.5.8 // indirect
|
||||
github.com/zclconf/go-cty v1.6.1 // indirect
|
||||
golang.org/x/net v0.0.0-20200925080053-05aa5d4ee321 // indirect
|
||||
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c // indirect
|
||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 // indirect
|
||||
golang.org/x/sys v0.0.0-20201006155630-ac719f4daadf // indirect
|
||||
google.golang.org/api v0.32.0 // indirect
|
||||
gopkg.in/ini.v1 v1.61.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20201006033701-bcad7cf615f2 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
)
|
||||
@@ -22,12 +22,15 @@ cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eA
|
||||
cloud.google.com/go v0.61.0 h1:NLQf5e1OMspfNT1RAHOB3ublr1TW3YTXO8OiWwVjK2U=
|
||||
cloud.google.com/go v0.61.0/go.mod h1:XukKJg4Y7QsUu0Hxg3qQKUWR4VuWivmyMK2+rUyxAqw=
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.63.0/go.mod h1:GmezbQc7T2snqkEXWfZ0sy0VfkB/ivI2DdtJL2DEmlg=
|
||||
cloud.google.com/go v0.64.0 h1:xVP3LPvMjGT4J0a55y02Gw5y/dkY/rxGz58sfK1jqIo=
|
||||
cloud.google.com/go v0.64.0/go.mod h1:xfORb36jGvE+6EexW71nMEtL025s3x6xvuYUKM4JLv4=
|
||||
cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=
|
||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||
cloud.google.com/go v0.66.0 h1:DZeAkuQGQqnm9Xv36SbMJEU8aFBz4wL04UpMWPWwjzg=
|
||||
cloud.google.com/go v0.66.0/go.mod h1:dgqGAjKCDxyhGTtC9dAREQGUJpkceNm1yt590Qno0Ko=
|
||||
cloud.google.com/go v0.68.0 h1:AnVkaPGAuWaIY/8a75HlNzZNrHDee6YL4rWkwS+CeyE=
|
||||
cloud.google.com/go v0.68.0/go.mod h1:91NO4SCDjUfe1zeC0f4/dpckkUNpuNEyqm4X2KLrzNQ=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0 h1:xE3CPsOgttP4ACBePh79zTKALtXwn/Edhcr16R5hMWU=
|
||||
@@ -48,6 +51,7 @@ cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIA
|
||||
cloud.google.com/go/pubsub v1.3.1 h1:ukjixP1wl0LpnZ6LWtZJ0mX5tBmjp1f8Sqer8Z2OMUU=
|
||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
||||
cloud.google.com/go/spanner v1.8.0/go.mod h1:mdAPDiFUbE9vCmhHHlxyDUtaPPsIK+pUdf5KmHaUfT8=
|
||||
cloud.google.com/go/spanner v1.9.0/go.mod h1:xvlEn0NZ5v1iJPYsBnUVRDNvccDxsBTEi16pJRKQVws=
|
||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||
cloud.google.com/go/storage v1.5.0 h1:RPUcBvDeYgQFMfQu1eBMq6piD1SXmLH+vK3qjewZPus=
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
@@ -75,6 +79,8 @@ github.com/Azure/go-autorest/autorest v0.10.1 h1:uaB8A32IZU9YKs9v50+/LWIWTDHJk2v
|
||||
github.com/Azure/go-autorest/autorest v0.10.1/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
|
||||
github.com/Azure/go-autorest/autorest v0.11.6 h1:LIzfhNo9I3+il0KO2JY1/lgJmjig7lY0wFulQNZkbtg=
|
||||
github.com/Azure/go-autorest/autorest v0.11.6/go.mod h1:V6p3pKZx1KKkJubbxnDWrzNhEIfOy/pTGasLqzHIPHs=
|
||||
github.com/Azure/go-autorest/autorest v0.11.9 h1:P0ZF0dEYoUPUVDQo3mA1CvH5b8mKev7DDcmTwauuNME=
|
||||
github.com/Azure/go-autorest/autorest v0.11.9/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
|
||||
@@ -82,14 +88,20 @@ github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8H
|
||||
github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.4 h1:1/DtH4Szusk4psLBrJn/gocMRIf1ji30WAz3GfyULRQ=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.4/go.mod h1:/3SMAM86bP6wC9Ev35peQDUeqFZBMH07vvUOmg4z/fE=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 h1:iM6UAvjR97ZIeR93qTcwpKNMpV+/FTWjwEbuPD495Tk=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.2 h1:R1pgoZkhXuv4+0ky9r3e5pcnRXWcXGIuPXpC/xkc7uI=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.2/go.mod h1:q98IH4qgc3eWM4/WOeR5+YPmBuy8Lq0jNRDwSM0CuFk=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.3 h1:lZifaPRAk1bqg5vGqreL6F8uLC5V0fDpY8nFvc3boFc=
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.3/go.mod h1:4bJZhUhcq8LB20TruwHbAQsmUs2Xh+QR7utuJpLXX3A=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.1 h1:jwcD1wURu0+hKceV04MubZmKLzwEYOCz6q4aOtVZ+Ng=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.1/go.mod h1:JfDgiIO1/RPu6z42AdQTyjOoCM2MFhLqSBDvMEkDgcg=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.2 h1:dMOmEJfkLKW/7JsokJqkyoYSgmR08hi9KrhjZb+JALY=
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.2/go.mod h1:7qkJkT+j6b+hIpzMOwPChJhTqS8VbsqqgULzMNRugoM=
|
||||
github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
|
||||
github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM=
|
||||
github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
|
||||
@@ -169,6 +181,8 @@ github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f h1:oRD
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ=
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.530 h1:nWiPIMi6MUSoxJph1U2UDa1BmVMJraP290N+pn7kftA=
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.530/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA=
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.545 h1:JlwB4oyTQFRZ4owg+KGkA0DDHGfH1f2qdKNosqT/amg=
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.545/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA=
|
||||
github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
|
||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA=
|
||||
@@ -215,6 +229,8 @@ github.com/aws/aws-sdk-go v1.30.27 h1:9gPjZWVDSoQrBO2AvqrWObS6KAZByfEJxQoCYo4ZfK
|
||||
github.com/aws/aws-sdk-go v1.30.27/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||
github.com/aws/aws-sdk-go v1.34.32 h1:EHjowHEGXyLHWhcO7M7AVA+oA2c8aLE9WfRvqHwxd3A=
|
||||
github.com/aws/aws-sdk-go v1.34.32/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||
github.com/aws/aws-sdk-go v1.35.4 h1:GG0sdhmzQSe4/UcF9iuQP9i+58bPRyU4OpujyzMlVjo=
|
||||
github.com/aws/aws-sdk-go v1.35.4/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
||||
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
@@ -238,6 +254,7 @@ github.com/cenkalti/backoff/v3 v3.0.0 h1:ske+9nBpD9qZsTBoF41nW5L+AIuFBKMeze18XQ3
|
||||
github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
|
||||
github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M=
|
||||
github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
|
||||
github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||
@@ -349,6 +366,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga
|
||||
github.com/favadi/protoc-go-inject-tag v1.1.0/go.mod h1:13goAxKedbu5IbfI0n2wIKh1CCgZOwPNZQd0igDWvko=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||
github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
|
||||
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
|
||||
github.com/frankban/quicktest v1.10.0 h1:Gfh+GAJZOAoKZsIZeZbdn2JF10kN1XHNvjsvQK8gVkE=
|
||||
@@ -502,6 +521,7 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
|
||||
github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
|
||||
github.com/golang-migrate/migrate/v4 v4.12.2 h1:QI43Tlouiwpp2dK5Y767OouX0snJNRP/NubsVaArzDU=
|
||||
github.com/golang-migrate/migrate/v4 v4.12.2/go.mod h1:HQ1DaC8uLHkg4afY8ZQ8D/P5SG+YW9X5INZBVvm+d2k=
|
||||
github.com/golang-migrate/migrate/v4 v4.13.0/go.mod h1:RUEXGkgYXTOdBY9Rbs9izc/SOalUK+dDi7YphFV/CUI=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||
@@ -616,14 +636,19 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.0.0-beta.5/go.mod h1:fR9dOEfEyRM7lt
|
||||
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
|
||||
github.com/hashicorp/boundary v0.1.0-beta.1.0.20201001145154-fa700dc00278 h1:YP21FwAzTw5W3xZJN2w9GcYq0yCr6n4MmhFzYpVW8ms=
|
||||
github.com/hashicorp/boundary v0.1.0-beta.1.0.20201001145154-fa700dc00278/go.mod h1:BS5RWZUH8Y0Styc9k0oyWgJwtKreyYicKC2NZ3fO1Gc=
|
||||
github.com/hashicorp/boundary v0.1.0-beta.3 h1:4v9WcKvZL1TVxfW1I/kV1MxJ5msa9IWh4S7zPG0Ssk4=
|
||||
github.com/hashicorp/boundary v0.1.0-beta.3/go.mod h1:dzlfVFErEDtf36iqT5p1I+oXQvedvgcCAf0UVy+XMTE=
|
||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
|
||||
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
|
||||
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/dbassert v0.0.0-20200928193136-88d5f2091187 h1:KULp/ad4VAihhHelqgAy7610xMVEsCIXQ9Tu+uK6Asg=
|
||||
github.com/hashicorp/dbassert v0.0.0-20200928193136-88d5f2091187/go.mod h1:+B5eZq7vXqN4Gxkgjm4ub1bwG6OTcYzFL0r+bMvWorg=
|
||||
github.com/hashicorp/dbassert v0.0.0-20200930125617-6218396928df/go.mod h1:+B5eZq7vXqN4Gxkgjm4ub1bwG6OTcYzFL0r+bMvWorg=
|
||||
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU=
|
||||
github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
@@ -633,8 +658,8 @@ github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUK
|
||||
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs=
|
||||
github.com/hashicorp/go-getter v1.4.0 h1:ENHNi8494porjD0ZhIrjlAHnveSFhY7hvOJrV/fsKkw=
|
||||
github.com/hashicorp/go-getter v1.4.0/go.mod h1:7qxyCd8rBfcShwsvxgIguu4KbS3l8bUCwg2Umn7RjeY=
|
||||
github.com/hashicorp/go-getter v1.4.2-0.20200106182914-9813cbd4eb02 h1:l1KB3bHVdvegcIf5upQ5mjcHjs2qsWnKh4Yr9xgIuu8=
|
||||
github.com/hashicorp/go-getter v1.4.2-0.20200106182914-9813cbd4eb02/go.mod h1:7qxyCd8rBfcShwsvxgIguu4KbS3l8bUCwg2Umn7RjeY=
|
||||
github.com/hashicorp/go-getter v1.5.0 h1:ciWJaeZWSMbc5OiLMpKp40MKFPqO44i0h3uyfXPBkkk=
|
||||
github.com/hashicorp/go-getter v1.5.0/go.mod h1:a7z7NPPfNQpJWcn4rSWFtdrSldqLdLPEF3d8nFMsSLM=
|
||||
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
|
||||
github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
||||
github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
|
||||
@@ -711,14 +736,15 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p
|
||||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
||||
github.com/hashicorp/shared-secure-libs v0.0.2 h1:+izKlB8vxpBK+K6zNmB4DZtDEl1a7fB8JmqdBNhnhjs=
|
||||
github.com/hashicorp/shared-secure-libs v0.0.2/go.mod h1:xhtA0FH6AYYFOy0sir7u0O0zzdLi7ofU6oWxy+gjnuc=
|
||||
github.com/hashicorp/terraform-exec v0.9.0/go.mod h1:tOT8j1J8rP05bZBGWXfMyU3HkLi1LWyqL3Bzsc3CJjo=
|
||||
github.com/hashicorp/terraform-exec v0.10.0 h1:3nh/1e3u9gYRUQGOKWp/8wPR7ABlL2F14sZMZBrp+dM=
|
||||
github.com/hashicorp/terraform-exec v0.10.0/go.mod h1:tOT8j1J8rP05bZBGWXfMyU3HkLi1LWyqL3Bzsc3CJjo=
|
||||
github.com/hashicorp/terraform-json v0.5.0 h1:7TV3/F3y7QVSuN4r9BEXqnWqrAyeOtON8f0wvREtyzs=
|
||||
github.com/hashicorp/terraform-json v0.5.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU=
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.3 h1:X7VmKpcIxq+rIbuqe5TPN27KLzbO9aXQcjG4c5iC3tk=
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.3/go.mod h1:oz4kkpfTJ/hA2VMD0WpITTd3yPDGpT4uN7CiKdre/YI=
|
||||
github.com/hashicorp/terraform-plugin-test/v2 v2.1.2 h1:p96IIn+XpvVjw7AtN8y9MKxn0x69S7wtbGf7JgDJoIk=
|
||||
github.com/hashicorp/terraform-plugin-test/v2 v2.1.2/go.mod h1:jerO5mrd+jVNALy8aiq+VZOg/CR8T2T1QR3jd6JKGOI=
|
||||
github.com/hashicorp/terraform-plugin-docs v0.2.0 h1:A1Uk+WIvU0B4VP4pBbTBP9bZJ9w9F8yoVGj7MC1vYc0=
|
||||
github.com/hashicorp/terraform-plugin-docs v0.2.0/go.mod h1:4jopztPjeyZAr51wPzX4b8Ld8bFQKQ9dbF40JbCQIts=
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.4 h1:GYkUL3zjrZgig9Gm+/61+YglzESJxXRDMp7qhJsh4j0=
|
||||
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.4/go.mod h1:GP0lmw4Y+XV1OfTmi/hK75t5KWGGzoOzEgUBPGZ6Wq4=
|
||||
github.com/hashicorp/vault/api v1.0.5-0.20200514164214-89b1987e38c2 h1:lfjJouPlC/inHjTOqe48N/BiLshU2YZqkxkUbNPj4fU=
|
||||
github.com/hashicorp/vault/api v1.0.5-0.20200514164214-89b1987e38c2/go.mod h1:P8A7gn1a6j/7qQ4zOaWI6FC/Q9jQWEBRTOwZH33tC9o=
|
||||
github.com/hashicorp/vault/api v1.0.5-0.20200519221902-385fac77e20f h1:PYtnlUZzFSZxPcq7mYp5oC9N+BcJ8IKYf6/EG0GHM2Y=
|
||||
@@ -769,6 +795,7 @@ github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr
|
||||
github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
|
||||
github.com/jackc/pgconn v1.6.4 h1:S7T6cx5o2OqmxdHaXLH1ZeD1SbI8jBznyYE9Ec0RCQ8=
|
||||
github.com/jackc/pgconn v1.6.4/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78=
|
||||
github.com/jackc/pgconn v1.7.0/go.mod h1:sF/lPpNEMEOp+IYhyQGdAvrG20gWf6A1tKlr0v7JMeA=
|
||||
github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE=
|
||||
github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8=
|
||||
github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA=
|
||||
@@ -785,6 +812,7 @@ github.com/jackc/pgproto3/v2 v2.0.1 h1:Rdjp4NFjwHnEslx2b66FfCI2S0LhO4itac3hXz6WX
|
||||
github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
|
||||
github.com/jackc/pgproto3/v2 v2.0.2 h1:q1Hsy66zh4vuNsajBUF2PNqfAMMfxU5mk594lPE9vjY=
|
||||
github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
|
||||
github.com/jackc/pgproto3/v2 v2.0.5/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
|
||||
github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8 h1:Q3tB+ExeflWUW7AFcAhXqk40s9mnNYLk1nOkKNZ5GnU=
|
||||
github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
|
||||
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg=
|
||||
@@ -797,6 +825,7 @@ github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkAL
|
||||
github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ=
|
||||
github.com/jackc/pgtype v1.4.2 h1:t+6LWm5eWPLX1H5Se702JSBcirq6uWa4jiG4wV1rAWY=
|
||||
github.com/jackc/pgtype v1.4.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig=
|
||||
github.com/jackc/pgtype v1.5.0/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig=
|
||||
github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y=
|
||||
github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM=
|
||||
github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc=
|
||||
@@ -805,10 +834,12 @@ github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6
|
||||
github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg=
|
||||
github.com/jackc/pgx/v4 v4.8.1 h1:SUbCLP2pXvf/Sr/25KsuI4aTxiFYIvpfk4l6aTSdyCw=
|
||||
github.com/jackc/pgx/v4 v4.8.1/go.mod h1:4HOLxrl8wToZJReD04/yB20GDwf4KBYETvlHciCnwW0=
|
||||
github.com/jackc/pgx/v4 v4.9.0/go.mod h1:MNGWmViCgqbZck9ujOOBN63gK9XVGILXWCvKLGKmnms=
|
||||
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v1.1.2/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
|
||||
github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
|
||||
@@ -936,6 +967,8 @@ github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+v
|
||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw=
|
||||
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
|
||||
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
@@ -1005,6 +1038,7 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
||||
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
||||
github.com/mutecomm/go-sqlcipher/v4 v4.4.0/go.mod h1:PyN04SaWalavxRGH9E8ZftG6Ju7rsPrGmQRjrEaVpiY=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
|
||||
@@ -1074,6 +1108,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
|
||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
||||
github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs=
|
||||
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
|
||||
github.com/pierrec/lz4 v1.0.1 h1:w6GMGWSsCI04fTM8wQRdnW74MuJISakuUU0onU0TYB4=
|
||||
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
|
||||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
|
||||
@@ -1148,6 +1183,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
||||
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
|
||||
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
|
||||
github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s=
|
||||
@@ -1235,7 +1272,6 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM
|
||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
|
||||
github.com/ulikunitz/xz v0.5.5 h1:pFrO0lVpTBXLpYw+pnLj6TbvHuyjXMfjGeCwSqCVwok=
|
||||
github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8=
|
||||
github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ=
|
||||
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||
@@ -1266,6 +1302,7 @@ github.com/zalando/go-keyring v0.1.0 h1:ffq972Aoa4iHNzBlUHgK5Y+k8+r/8GvcGd80/OFZ
|
||||
github.com/zalando/go-keyring v0.1.0/go.mod h1:RaxNwUITJaHVdQ0VC7pELPZ3tOWn13nr0gZMZEhpVU0=
|
||||
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
|
||||
github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
|
||||
github.com/zclconf/go-cty v1.4.1/go.mod h1:nHzOclRkoj++EU9ZjSrZvRG0BXIWt8c7loYc0qXAFGQ=
|
||||
github.com/zclconf/go-cty v1.6.1 h1:wHtZ+LSSQVwUSb+XIJ5E9hgAQxyWATZsAWT+ESJ9dQ0=
|
||||
github.com/zclconf/go-cty v1.6.1/go.mod h1:VDR4+I79ubFBGm1uJac1226K5yANQFHeauxPBoP54+o=
|
||||
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
|
||||
@@ -1342,6 +1379,9 @@ golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA
|
||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
|
||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200930160638-afb6bcd081ae/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE=
|
||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -1391,6 +1431,7 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r
|
||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190225153610-fe579d43d832/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
@@ -1431,6 +1472,9 @@ golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOL
|
||||
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200925080053-05aa5d4ee321 h1:lleNcKRbcaC8MqgLwghIkzZ2JBQAb7QQ9MiwRt1BisA=
|
||||
golang.org/x/net v0.0.0-20200925080053-05aa5d4ee321/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
|
||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -1516,11 +1560,15 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c=
|
||||
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c h1:38q6VNPWR010vN82/SB121GujZNIfAUb4YttE2rhGuc=
|
||||
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201006155630-ac719f4daadf h1:Bg47KQy0JhTHuf4sLiQwTMKwUMfSDwgSGatrxGR7nLM=
|
||||
golang.org/x/sys v0.0.0-20201006155630-ac719f4daadf/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -1598,7 +1646,10 @@ golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc
|
||||
golang.org/x/tools v0.0.0-20200725200936-102e7d357031/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200806022845-90696ccdc692/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200817023811-d00afeaade8f/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200818005847-188abfa75333/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200827163409-021d7c6f1ec3/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200828161849-5deb26317202 h1:DrWbY9UUFi/sl/3HkNVoBjDbGfIPZZfgoGsGxOL1EU8=
|
||||
@@ -1609,6 +1660,8 @@ golang.org/x/tools v0.0.0-20200915173823-2db8f0ff891c/go.mod h1:z6u4i615ZeAfBE4X
|
||||
golang.org/x/tools v0.0.0-20200921190806-0f52b63a40e8/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||
golang.org/x/tools v0.0.0-20200924224222-8d73f17870ce h1:XRr763sMfaUSNR4EsxbddvVEqYFa9picrx6ks9pJkKw=
|
||||
golang.org/x/tools v0.0.0-20200924224222-8d73f17870ce/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||
golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||
golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -1695,6 +1748,7 @@ google.golang.org/genproto v0.0.0-20200720141249-1244ee217b7e/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20200726014623-da3ae01ef02d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70 h1:wboULUXGF3c5qdUnKp+6gLAccE6PRpa/czkYvQ4UXv8=
|
||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
@@ -1707,6 +1761,10 @@ google.golang.org/genproto v0.0.0-20200921165018-b9da36f5f452/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20200923140941-5646d36feee1/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200925023002-c2d885f95484 h1:Rr9EZdYRq2WLckzJQVtN3ISKoP7dvgwi7jbglILNZ34=
|
||||
google.golang.org/genproto v0.0.0-20200925023002-c2d885f95484/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201001141541-efaab9d3c4f7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201002142447-3860012362da/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201006033701-bcad7cf615f2 h1:rBG1miiV00OG3NTbgxg42kPWohjVNn1sGhJyt4xyPLQ=
|
||||
google.golang.org/genproto v0.0.0-20201006033701-bcad7cf615f2/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
@@ -1773,6 +1831,8 @@ gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
|
||||
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.61.0 h1:LBCdW4FmFYL4s/vDZD1RQYX7oAR6IjujCYgMdbHBR10=
|
||||
gopkg.in/ini.v1 v1.61.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU=
|
||||
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=
|
||||
gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q=
|
||||
gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4=
|
||||
|
||||
@@ -14,6 +14,11 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// descriptions are written in markdown for docs
|
||||
schema.DescriptionKind = schema.StringMarkdown
|
||||
}
|
||||
|
||||
func New() *schema.Provider {
|
||||
p := &schema.Provider{
|
||||
Schema: map[string]*schema.Schema{
|
||||
|
||||
@@ -13,9 +13,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||
)
|
||||
|
||||
var testProvider *schema.Provider
|
||||
var testProviders map[string]*schema.Provider
|
||||
|
||||
var (
|
||||
tcLoginName = "user"
|
||||
tcPassword = "passpass"
|
||||
@@ -28,11 +25,10 @@ var (
|
||||
tcRecoveryKey = "7xtkEoS5EXPbgynwd+dDLHopaCqK8cq0Rpep4eooaTs="
|
||||
)
|
||||
|
||||
func init() {
|
||||
testProvider = New()
|
||||
testProviders = map[string]*schema.Provider{
|
||||
"boundary": testProvider,
|
||||
}
|
||||
var providerFactories = map[string]func() (*schema.Provider, error){
|
||||
"boundary": func() (*schema.Provider, error) {
|
||||
return New(), nil
|
||||
},
|
||||
}
|
||||
|
||||
func testWrapper(t *testing.T, key string) wrapping.Wrapper {
|
||||
|
||||
@@ -18,36 +18,44 @@ const (
|
||||
|
||||
func resourceAccount() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The account resource allows you to configure a Boundary account.",
|
||||
|
||||
CreateContext: resourceAccountCreate,
|
||||
ReadContext: resourceAccountRead,
|
||||
UpdateContext: resourceAccountUpdate,
|
||||
DeleteContext: resourceAccountDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The account name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The account description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
AuthMethodIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The resource ID for the authentication method.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The resource type.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
accountLoginNameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The login name for this account.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
accountPasswordKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The account password.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -62,8 +62,8 @@ func TestAccAccount(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckAccountResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckAccountResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
//create
|
||||
|
||||
@@ -19,38 +19,46 @@ const (
|
||||
|
||||
func resourceAuthMethod() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The auth method resource allows you to configure a Boundary auth_method.",
|
||||
|
||||
CreateContext: resourceAuthMethodCreate,
|
||||
ReadContext: resourceAuthMethodRead,
|
||||
UpdateContext: resourceAuthMethodUpdate,
|
||||
DeleteContext: resourceAuthMethodDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The auth method name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The auth method description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The resource type.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
authmethodMinLoginNameLengthKey: {
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
Computed: true,
|
||||
Description: "The minimum login name length.",
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
Computed: true,
|
||||
},
|
||||
authmethodMinPasswordLengthKey: {
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
Computed: true,
|
||||
Description: "The minimum password length.",
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
Computed: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ func TestAccAuthMethod(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckAuthMethodResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckAuthMethodResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
//create
|
||||
|
||||
@@ -16,28 +16,34 @@ const (
|
||||
|
||||
func resourceGroup() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The group resource allows you to configure a Boundary group.",
|
||||
|
||||
CreateContext: resourceGroupCreate,
|
||||
ReadContext: resourceGroupRead,
|
||||
UpdateContext: resourceGroupUpdate,
|
||||
DeleteContext: resourceGroupDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The group name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The group description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
groupMemberIdsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: "Resource IDs for group members, these are most likely boundary users.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -120,8 +120,8 @@ func TestAccGroup(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckGroupResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckGroupResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
@@ -197,7 +197,8 @@ func TestAccGroupWithMembers(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
ProviderFactories: providerFactories,
|
||||
|
||||
CheckDestroy: testAccCheckGroupResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
|
||||
@@ -17,18 +17,24 @@ const (
|
||||
|
||||
func resourceHost() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The host resource allows you to configure a Boundary static host. Hosts are " +
|
||||
"always part of a project, so a project resource should be used inline or you should have " +
|
||||
"the project ID in hand to successfully configure a host.",
|
||||
|
||||
CreateContext: resourceHostCreate,
|
||||
ReadContext: resourceHostRead,
|
||||
UpdateContext: resourceHostUpdate,
|
||||
DeleteContext: resourceHostDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The host name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The host description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
@@ -40,8 +46,9 @@ func resourceHost() *schema.Resource {
|
||||
Required: true,
|
||||
},
|
||||
hostAddressKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The static address of the host resource as `<IP>:<port>` or a domain name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -16,28 +16,36 @@ const (
|
||||
|
||||
func resourceHostCatalog() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The host catalog resource allows you to configure a Boundary host catalog. Host " +
|
||||
"catalogs are always part of a project, so a project resource should be used inline or you " +
|
||||
"should have the project ID in hand to successfully configure a host catalog.",
|
||||
|
||||
CreateContext: resourceHostCatalogCreate,
|
||||
ReadContext: resourceHostCatalogRead,
|
||||
UpdateContext: resourceHostCatalogUpdate,
|
||||
DeleteContext: resourceHostCatalogDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The host catalog name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The host catalog description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID in which the resource is created.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The host catalog type. Only `Static` (yes, title case) is supported.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ func TestAccHostCatalogCreate(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckHostCatalogResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckHostCatalogResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
|
||||
@@ -17,18 +17,24 @@ const (
|
||||
|
||||
func resourceHostset() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The host_set resource allows you to configure a Boundary host set. Host sets are " +
|
||||
"always part of a host catalog, so a host catalog resource should be used inline or you " +
|
||||
"should have the host catalog ID in hand to successfully configure a host set.",
|
||||
|
||||
CreateContext: resourceHostsetCreate,
|
||||
ReadContext: resourceHostsetRead,
|
||||
UpdateContext: resourceHostsetUpdate,
|
||||
DeleteContext: resourceHostsetDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The hostset name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The hostset description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
@@ -36,13 +42,15 @@ func resourceHostset() *schema.Resource {
|
||||
ForceNew: true,
|
||||
},
|
||||
HostCatalogIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
Description: "The catalog for the hostset.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
},
|
||||
hostsetHostIdsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: "The list of host IDs contained in this set.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ func TestAccHostset(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckHostsetResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckHostsetResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test project hostset create
|
||||
|
||||
@@ -62,8 +62,8 @@ func TestAccHost(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckHostResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckHostResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test project host create
|
||||
|
||||
@@ -19,33 +19,40 @@ const (
|
||||
|
||||
func resourceRole() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The role resource allows you to configure a Boundary role.",
|
||||
|
||||
CreateContext: resourceRoleCreate,
|
||||
ReadContext: resourceRoleRead,
|
||||
UpdateContext: resourceRoleUpdate,
|
||||
DeleteContext: resourceRoleDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The role name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The role description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
rolePrincipalIdsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: "A list of principal (user or group) IDs to add as principals on the role.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
roleGrantStringsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: " A list of stringified grants for the role.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
roleGrantScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
|
||||
@@ -153,8 +153,8 @@ func TestAccRoleToOrgToProject(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test org role create
|
||||
@@ -202,8 +202,8 @@ func TestAccRoleWithGrants(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test project role create with grants
|
||||
@@ -236,8 +236,8 @@ func TestAccRoleWithPrincipals(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
@@ -271,8 +271,8 @@ func TestAccRoleWithGroups(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckRoleResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
|
||||
@@ -18,6 +18,8 @@ const (
|
||||
|
||||
func resourceScope() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The scope resource allows you to configure a Boundary scope.",
|
||||
|
||||
CreateContext: resourceScopeCreate,
|
||||
ReadContext: resourceScopeRead,
|
||||
UpdateContext: resourceScopeUpdate,
|
||||
@@ -25,32 +27,35 @@ func resourceScope() *schema.Resource {
|
||||
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The scope name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The scope description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID containing the sub scope resource.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
scopeGlobalScopeKey: {
|
||||
Description: "Indicates that the scope containing this value is the global scope, which triggers some specialized behavior to allow it to be imported and managed.",
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Description: "Indicates that the scope containing this value is the global scope, which triggers some specialized behavior to allow it to be imported and managed.",
|
||||
},
|
||||
scopeAutoCreateAdminRole: {
|
||||
Description: "If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives permissions to manage the scope to the provider's user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.",
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Description: "If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives permissions to manage the scope to the provider's user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.",
|
||||
},
|
||||
scopeAutoCreateDefaultRole: {
|
||||
Description: "If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives listing of scopes and auth methods and the ability to authenticate to the anonymous user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.",
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Description: "If set, when a new scope is created, the provider will not disable the functionality that automatically creates a role in the new scope and gives listing of scopes and auth methods and the ability to authenticate to the anonymous user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -89,8 +89,8 @@ func TestAccScopeCreation(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckScopeResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckScopeResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
Config: testConfig(url, fooOrg, firstProjectFoo, secondProject),
|
||||
|
||||
@@ -22,37 +22,45 @@ const (
|
||||
|
||||
func resourceTarget() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The target resource allows you to configure a Boundary target.",
|
||||
|
||||
CreateContext: resourceTargetCreate,
|
||||
ReadContext: resourceTargetRead,
|
||||
UpdateContext: resourceTargetUpdate,
|
||||
DeleteContext: resourceTargetDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The target name. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The target description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
TypeKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The target resource type.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
targetDefaultPortKey: {
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
Description: "The default port for this target.",
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
},
|
||||
targetHostSetIdsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: "A list of host set ID's.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
targetSessionMaxSecondsKey: {
|
||||
Type: schema.TypeInt,
|
||||
|
||||
@@ -90,8 +90,8 @@ func TestAccTarget(t *testing.T) {
|
||||
url := tc.ApiAddrs()[0]
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckTargetResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckTargetResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
|
||||
@@ -14,28 +14,34 @@ const userAccountIDsKey = "account_ids"
|
||||
|
||||
func resourceUser() *schema.Resource {
|
||||
return &schema.Resource{
|
||||
Description: "The user resource allows you to configure a Boundary user.",
|
||||
|
||||
CreateContext: resourceUserCreate,
|
||||
ReadContext: resourceUserRead,
|
||||
UpdateContext: resourceUserUpdate,
|
||||
DeleteContext: resourceUserDelete,
|
||||
Schema: map[string]*schema.Schema{
|
||||
NameKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The username. Defaults to the resource name.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
DescriptionKey: {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Description: "The user description.",
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
ScopeIdKey: {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
Description: "The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.",
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
userAccountIDsKey: {
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Description: "Account ID's to associate with this user resource.",
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -65,8 +65,8 @@ func TestAccUser(t *testing.T) {
|
||||
token := tc.Token().Token
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckUserResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckUserResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
@@ -97,8 +97,8 @@ func TestAccUserWithAccounts(t *testing.T) {
|
||||
token := tc.Token().Token
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
Providers: testProviders,
|
||||
CheckDestroy: testAccCheckUserResourceDestroy(t),
|
||||
ProviderFactories: providerFactories,
|
||||
CheckDestroy: testAccCheckUserResourceDestroy(t),
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
// test create
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
page_title: "Provider: Boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Terraform provider for configuring Boundary.
|
||||
---
|
||||
|
||||
# Boundary Provider
|
||||
|
||||
Terraform provider for configuring Boundary.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Do not keep your authentication password in HCL for production environments, use Terraform environment variables.
|
||||
|
||||
{{tffile "examples/provider/provider.tf"}}
|
||||
|
||||
{{ .SchemaMarkdown | trimspace }}
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
page_title: "boundary_group Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
|
||||
---
|
||||
|
||||
# Resource `boundary_group`
|
||||
|
||||
{{ .Description | trimspace }}
|
||||
|
||||
## Example Usage
|
||||
|
||||
{{tffile "examples/resources/boundary_group/simple/resource.tf"}}
|
||||
|
||||
Usage for project-specific group:
|
||||
|
||||
{{tffile "examples/resources/boundary_group/project-specific/resource.tf"}}
|
||||
|
||||
{{ .SchemaMarkdown | trimspace }}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
page_title: "boundary_role Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
|
||||
---
|
||||
|
||||
# Resource `boundary_role`
|
||||
|
||||
{{ .Description | trimspace }}
|
||||
|
||||
## Example Usage
|
||||
|
||||
Basic usage:
|
||||
|
||||
{{tffile "examples/resources/boundary_role/simple/resource.tf"}}
|
||||
|
||||
Usage with a user resource:
|
||||
|
||||
{{tffile "examples/resources/boundary_role/user/resource.tf"}}
|
||||
|
||||
Usage with user and grants resource:
|
||||
|
||||
{{tffile "examples/resources/boundary_role/user-grants/resource.tf"}}
|
||||
|
||||
Usage for a project-specific role:
|
||||
|
||||
{{tffile "examples/resources/boundary_role/project-specific/resource.tf"}}
|
||||
|
||||
{{ .SchemaMarkdown | trimspace }}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
page_title: "boundary_scope Resource - terraform-provider-boundary"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
|
||||
---
|
||||
|
||||
# Resource `boundary_scope`
|
||||
|
||||
{{ .Description | trimspace }}
|
||||
|
||||
## Example Usage
|
||||
|
||||
Creating the global scope:
|
||||
|
||||
{{tffile "examples/resources/boundary_scope/global.tf"}}
|
||||
|
||||
Creating an organization scope within global:
|
||||
|
||||
{{tffile "examples/resources/boundary_scope/organization.tf"}}
|
||||
|
||||
Creating an project scope within an organization:
|
||||
|
||||
{{tffile "examples/resources/boundary_scope/project.tf"}}
|
||||
|
||||
Creating an organization scope with a managed role for administration (auto create role set false):
|
||||
|
||||
{{tffile "examples/resources/boundary_scope/role.tf"}}
|
||||
|
||||
{{ .SchemaMarkdown | trimspace }}
|
||||
@@ -0,0 +1,8 @@
|
||||
// +build tools
|
||||
|
||||
package tools
|
||||
|
||||
import (
|
||||
// docs generator
|
||||
_ "github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs"
|
||||
)
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
layout: "scaffolding"
|
||||
page_title: "Scaffolding: scaffolding_data_source"
|
||||
sidebar_current: "docs-scaffolding-data-source"
|
||||
description: |-
|
||||
Sample data source in the Terraform provider scaffolding.
|
||||
---
|
||||
|
||||
# scaffolding_data_source
|
||||
|
||||
Sample data source in the Terraform provider scaffolding.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
data "scaffolding_data_source" "example" {
|
||||
sample_attribute = "foo"
|
||||
}
|
||||
```
|
||||
|
||||
## Attributes Reference
|
||||
|
||||
* `sample_attribute` - Sample attribute.
|
||||
@@ -1,316 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Provider: Boundary"
|
||||
sidebar_current: "docs-boundary-index"
|
||||
description: |-
|
||||
Terraform provider Boundary.
|
||||
---
|
||||
|
||||
# Boundary Provider
|
||||
|
||||
This provider configures Boundary.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Do not keep your authentication password in HCL for production environments, use Terraform environment variables.
|
||||
|
||||
```hcl
|
||||
provider "boundary" {
|
||||
addr = "http://127.0.0.1:9200"
|
||||
auth_method_id = "ampw_1234567890" # changeme
|
||||
password_auth_method_login_name = "myuser" # changeme
|
||||
password_auth_method_password = "passpass" # changeme
|
||||
}
|
||||
```
|
||||
|
||||
## Complex Usage
|
||||
|
||||
```hcl
|
||||
provider "boundary" {
|
||||
addr = "http://127.0.0.1:9200"
|
||||
auth_method_id = "ampw_1234567890" # changeme
|
||||
password_auth_method_login_name = "myuser" # changeme
|
||||
password_auth_method_password = "passpass" # changeme
|
||||
}
|
||||
|
||||
variable "backend_team" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"Jim Lambert",
|
||||
"Mike Gaffney",
|
||||
"Todd Knight",
|
||||
]
|
||||
}
|
||||
|
||||
variable "frontend_team" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"Randall Morey",
|
||||
"Susmitha Girumala",
|
||||
]
|
||||
}
|
||||
|
||||
variable "leadership_team" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"Jeff Mitchell",
|
||||
"Pete Pacent",
|
||||
"Jonathan Thomas (JT)",
|
||||
"Jeff Malnick"
|
||||
]
|
||||
}
|
||||
|
||||
variable "web_server_ips" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"10.0.0.1",
|
||||
"10.0.0.2",
|
||||
]
|
||||
}
|
||||
|
||||
variable "backend_server_ips" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"10.1.0.1",
|
||||
"10.1.0.2",
|
||||
]
|
||||
}
|
||||
|
||||
variable "frontend_server_ips" {
|
||||
type = set(string)
|
||||
default = [
|
||||
"10.2.0.1",
|
||||
"10.2.0.2",
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
}
|
||||
|
||||
resource "boundary_scope" "corp" {
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_user" "backend" {
|
||||
for_each = var.backend_team
|
||||
name = each.key
|
||||
description = "Backend user: ${each.key}"
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
resource "boundary_user" "frontend" {
|
||||
for_each = var.frontend_team
|
||||
name = each.key
|
||||
description = "Frontend user: ${each.key}"
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
resource "boundary_user" "leadership" {
|
||||
for_each = var.leadership_team
|
||||
name = each.key
|
||||
description = "WARNING: Managers should be read-only"
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
// organiation level group for the leadership team
|
||||
resource "boundary_group" "leadership" {
|
||||
name = "leadership_team"
|
||||
description = "Organization group for leadership team"
|
||||
member_ids = [for user in boundary_user.leadership : user.id]
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
// add org-level role for readonly access
|
||||
resource "boundary_role" "organization_readonly" {
|
||||
name = "readonly"
|
||||
description = "Read-only role"
|
||||
principal_ids = [boundary_group.leadership.id]
|
||||
grant_strings = ["id=*;type=*;actions=read"]
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
// add org-level role for administration access
|
||||
resource "boundary_role" "organization_admin" {
|
||||
name = "admin"
|
||||
description = "Administrator role"
|
||||
principal_ids = concat(
|
||||
[for user in boundary_user.backend : user.id],
|
||||
[for user in boundary_user.frontend : user.id]
|
||||
)
|
||||
grant_strings = ["id=*;type=*;actions=create,read,update,delete"]
|
||||
scope_id = boundary_scope.corp.id
|
||||
}
|
||||
|
||||
// create a project for core infrastructure
|
||||
resource "boundary_scope" "core_infra" {
|
||||
description = "Core infrastrcture"
|
||||
scope_id = boundary_scope.corp.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_group" "backend_core_infra" {
|
||||
name = "backend"
|
||||
description = "Backend team group"
|
||||
member_ids = [for user in boundary_user.backend : user.id]
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
resource "boundary_group" "frontend_core_infra" {
|
||||
name = "frontend"
|
||||
description = "Frontend team group"
|
||||
member_ids = [for user in boundary_user.frontend : user.id]
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "backend_servers_service" {
|
||||
for_each = var.backend_server_ips
|
||||
type = "static"
|
||||
name = "backend_server_service_${each.value}"
|
||||
description = "Backend server host for service port"
|
||||
address = "${each.key}:9200"
|
||||
host_catalog_id = boundary_host_catalog.backend_servers.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "backend_servers_ssh" {
|
||||
for_each = var.backend_server_ips
|
||||
type = "static"
|
||||
name = "backend_server_ssh_${each.value}"
|
||||
description = "Backend server host for SSH port"
|
||||
address = "${each.key}:22"
|
||||
host_catalog_id = boundary_host_catalog.backend_servers.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "frontend_servers_console" {
|
||||
for_each = var.frontend_server_ips
|
||||
type = "static"
|
||||
name = "frontend_server_console_${each.value}"
|
||||
description = "Frontend server host for console port"
|
||||
address = "${each.key}:443"
|
||||
host_catalog_id = boundary_host_catalog.frontend_servers.id
|
||||
}
|
||||
|
||||
resource "boundary_host" "frontend_servers_ssh" {
|
||||
for_each = var.frontend_server_ips
|
||||
type = "static"
|
||||
name = "frontend_server_ssh_${each.value}"
|
||||
description = "Frontend server host for SSH port"
|
||||
address = "${each.key}:22"
|
||||
host_catalog_id = boundary_host_catalog.frontend_servers.id
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "web_servers" {
|
||||
name = "web_servers"
|
||||
description = "Web servers for frontend team"
|
||||
type = "static"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "backend_servers" {
|
||||
name = "backend_servers"
|
||||
description = "Web servers for backend team"
|
||||
type = "static"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "frontend_servers" {
|
||||
name = "frontend_servers"
|
||||
description = "Web servers for backend team"
|
||||
type = "static"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "backend_servers_service" {
|
||||
type = "static"
|
||||
name = "backend_servers_service"
|
||||
description = "Host set for services servers"
|
||||
host_catalog_id = boundary_host_catalog.backend_servers.id
|
||||
host_ids = [for host in boundary_host.backend_servers_service : host.id]
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "backend_servers_ssh" {
|
||||
type = "static"
|
||||
name = "backend_servers_ssh"
|
||||
description = "Host set for backend servers SSH access"
|
||||
host_catalog_id = boundary_host_catalog.backend_servers.id
|
||||
host_ids = [for host in boundary_host.backend_servers_ssh : host.id]
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "frontend_servers_console" {
|
||||
type = "static"
|
||||
name = "frontend_servers_console"
|
||||
description = "Host set for frontend servers console access"
|
||||
host_catalog_id = boundary_host_catalog.frontend_servers.id
|
||||
host_ids = [for host in boundary_host.frontend_servers_console : host.id]
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "frontend_servers_ssh" {
|
||||
type = "static"
|
||||
name = "frontend_servers_ssh"
|
||||
description = "Host set for frontend servers SSH access"
|
||||
host_catalog_id = boundary_host_catalog.frontend_servers.id
|
||||
host_ids = [for host in boundary_host.frontend_servers_ssh : host.id]
|
||||
}
|
||||
|
||||
resource "boundary_target" "frontend_servers_console" {
|
||||
type = "tcp"
|
||||
name = "frontend_servers_console"
|
||||
description = "Frontend console target"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
|
||||
host_set_ids = [
|
||||
boundary_host_set.frontend_servers_console.id
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "frontend_servers_ssh" {
|
||||
type = "tcp"
|
||||
name = "frontend_servers_ssh"
|
||||
description = "Frontend SSH target"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
|
||||
host_set_ids = [
|
||||
boundary_host_set.frontend_servers_ssh.id
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "backend_servers_service" {
|
||||
type = "tcp"
|
||||
name = "backend_servers_service"
|
||||
description = "Backend service target"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
|
||||
host_set_ids = [
|
||||
boundary_host_set.backend_servers_service.id
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "backend_servers_ssh" {
|
||||
type = "tcp"
|
||||
name = "backend_servers_ssh"
|
||||
description = "Backend SSH target"
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
|
||||
host_set_ids = [
|
||||
boundary_host_set.backend_servers_ssh.id
|
||||
]
|
||||
}
|
||||
|
||||
// only allow the backend team access to the backend web servers host catalog
|
||||
resource "boundary_role" "admin_backend_core_infra" {
|
||||
description = "Administrator role for backend core infrastructure"
|
||||
principal_ids = [boundary_group.backend_core_infra.id]
|
||||
grant_strings = ["id=${boundary_host_catalog.backend_servers.id};actions=create,read,update,delete"]
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
|
||||
// only allow the frontend team access to the frontend web servers host catalog
|
||||
resource "boundary_role" "admin_frontend_core_infra" {
|
||||
description = "Administrator role for frontend core infrastructure"
|
||||
principal_ids = [boundary_group.frontend_core_infra.id]
|
||||
grant_strings = ["id=${boundary_host_catalog.web_servers.id};actions=create,read,update,delete"]
|
||||
scope_id = boundary_scope.core_infra.id
|
||||
}
|
||||
```
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: account_resource"
|
||||
sidebar_current: "docs-boundary-account-resource"
|
||||
description: |-
|
||||
Account resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# boundary_account_resource
|
||||
The account resource allows you to configure a Boundary account.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are required:
|
||||
* `auth_method_id` - The resource ID for the authentication method.
|
||||
* `type` - The resource type
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The account description.
|
||||
* `name` - The account name. Defaults to the resource name.
|
||||
* `login_name` - The login name for this account.
|
||||
* `password` - The account password.
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: auth_method_resource"
|
||||
sidebar_current: "docs-boundary-auth-method-resource"
|
||||
description: |-
|
||||
Auth Method resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# boundary_auth_method_resource
|
||||
The auth method resource allows you to configure a Boundary auth_method.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are required:
|
||||
* `scope_id` - The scope ID.
|
||||
* `type` - The resource type.
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The auth method description.
|
||||
* `name` - The auth method name. Defaults to the resource name.
|
||||
* `min_login_name_length` - The minimum login name length.
|
||||
* `min_password_length` - The minimum password length.
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: host_resource"
|
||||
sidebar_current: "docs-boundary-host-catalog-resource"
|
||||
description: |-
|
||||
Host resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# host_resource
|
||||
The host resource allows you to configure a Boundary static host. Hosts are always part
|
||||
of a project, so a project resource should be used inline or you should have the project
|
||||
ID in hand to successfully configure a host.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host!"
|
||||
address = "10.0.0.1"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are required:
|
||||
* `scope_id` - The scope ID in which the resource is created.
|
||||
|
||||
The following arguments are optional:
|
||||
* `name` - The host name. Defaults to the resource name.
|
||||
* `description` - The host description.
|
||||
* `address` - The static address of the host resource as <IP>:<port> or a domain name.
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: host_catalog_resource"
|
||||
sidebar_current: "docs-boundary-host-catalog-resource"
|
||||
description: |-
|
||||
Host catalog resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# host_catalog_resource
|
||||
The host catalog resource allows you to configure a Boundary host catalog. Host catalogs
|
||||
are always part of a project, so a project resource should be used inline or you should have
|
||||
the project ID in hand to successfully configure a host catalog.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host catalog!"
|
||||
type = "Static"
|
||||
scope_id = boundary_scope.project.id
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are required:
|
||||
* `type` - The host catalog type. Only `Static` (yes, title case) is supported.
|
||||
* `scope_id` - The scope ID in which the resource is created.
|
||||
|
||||
The following arguments are optional:
|
||||
* `name` - The host catalog name. Defaults to the resource name.
|
||||
* `description` - The host catalog description.
|
||||
@@ -1,71 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: scope_resource"
|
||||
sidebar_current: "docs-boundary-scope-resource"
|
||||
description: |-
|
||||
Scope resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# boundary_scope_resource
|
||||
The scope resource allows you to configure a Boundary scope.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Creating the global scope:
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an organization scope within global:
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an project scope within an organization:
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
```
|
||||
|
||||
Creating an organization scope with a managed role for administration (auto create role set false):
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
}
|
||||
|
||||
resource "boundary_role" "org_admin" {
|
||||
scope_id = boundary_scope.global.id
|
||||
grant_scope_id = boundary_scope.org.id
|
||||
grant_strings = ["id=*;type=*;actions=*"]
|
||||
principal_ids = ["u_auth"]
|
||||
>>>>>>> docs: add scope resource
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The scope description.
|
||||
* `name` - The scope name. Defaults to the resource name.
|
||||
* `global_scope` - Indicates that the scope containing this value is the global scope, which triggers some specialized behavior to allow it to be imported and managed.
|
||||
* `auto_create_role` - If set, when a new scope is created, the provider will not disable the functionality that automatically crates a role in the new scope and gives permissions to manage the scope to the provider's user. Marking this true makes for simpler HCL but results in role resources that are unmanaged by Terraform.
|
||||
* `scope_id` - The scope ID containing the sub scope resource.
|
||||
@@ -1,85 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: target_resource"
|
||||
sidebar_current: "docs-boundary-target-resource"
|
||||
description: |-
|
||||
Target resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# boundary_target_resource
|
||||
The target resource allows you to configure a Boundary target.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "global" {
|
||||
global_scope = true
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.global.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_scope" "project" {
|
||||
name = "project_one"
|
||||
description = "My first scope!"
|
||||
scope_id = boundary_scope.org.id
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_host_catalog" "foo" {
|
||||
name = "test"
|
||||
description = "test catalog"
|
||||
scope_id = boundary_scope.project.id
|
||||
type = "static"
|
||||
}
|
||||
|
||||
resource "boundary_host" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host" "bar" {
|
||||
name = "bar"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
scope_id = boundary_scope.project.id
|
||||
address = "10.0.0.1"
|
||||
}
|
||||
|
||||
resource "boundary_host_set" "foo" {
|
||||
name = "foo"
|
||||
host_catalog_id = boundary_host_catalog.foo.id
|
||||
|
||||
host_ids = [
|
||||
boundary_host.foo.id,
|
||||
boundary_host.bar.id,
|
||||
]
|
||||
}
|
||||
|
||||
resource "boundary_target" "foo" {
|
||||
name = "foo"
|
||||
description = "Foo target"
|
||||
default_port = "22"
|
||||
scope_id = boundary_scope.project.id
|
||||
host_set_ids = [
|
||||
boundary_host_set.foo.id
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are optional:
|
||||
* `description` - The target description.
|
||||
* `name` - The target name. Defaults to the resource name.
|
||||
* `scope_id` - The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
* `host_set_ids` - A list of host set ID's.
|
||||
* `default_port` - The default port for this target.
|
||||
* `type` - The target resource type.
|
||||
@@ -1,48 +0,0 @@
|
||||
---
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: user_resource"
|
||||
sidebar_current: "docs-boundary-user-resource"
|
||||
description: |-
|
||||
User resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# user_resource
|
||||
The user resource allows you to configure a Boundary user.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "boundary_scope" "org" {
|
||||
name = "organization_one"
|
||||
description = "My first scope!"
|
||||
scope_id = "global"
|
||||
auto_create_role = true
|
||||
}
|
||||
|
||||
resource "boundary_auth_method" "password" {
|
||||
scope_id = boundary_scope.org.id
|
||||
type = "password"
|
||||
}
|
||||
|
||||
resource "boundary_account" "jeff" {
|
||||
auth_method_id = boundary_auth_method.password.id
|
||||
type = "password"
|
||||
login_name = "jeff"
|
||||
password = "$uper$ecure"
|
||||
}
|
||||
|
||||
resource "boundary_user" "jeff" {
|
||||
name = "jeff"
|
||||
description = "Jeff's user resource"
|
||||
account_ids = [boundary_account.jeff.id]
|
||||
scope_id = boundary_scope.org.id
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are optional:
|
||||
* `account_ids` - Account ID's to associate with this user resource.
|
||||
* `name` - The username. Defaults to the resource name.
|
||||
* `description` - The user description.
|
||||
* `scope_id` - The scope ID in which the resource is created. Defaults to the provider's `default_scope` if unset.
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
layout: "scaffolding"
|
||||
page_title: "Scaffolding: scaffolding_resource"
|
||||
sidebar_current: "docs-scaffolding-resource"
|
||||
description: |-
|
||||
Sample resource in the Terraform provider scaffolding.
|
||||
---
|
||||
|
||||
# scaffolding_resource
|
||||
|
||||
Sample resource in the Terraform provider scaffolding.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "scaffolding_resource" "example" {
|
||||
sample_attribute = "foo"
|
||||
}
|
||||
```
|
||||
|
||||
## Argument Reference
|
||||
|
||||
The following arguments are supported:
|
||||
|
||||
* `sample_attribute` - Sample attribute.
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
<% wrap_layout :inner do %>
|
||||
<% content_for :sidebar do %>
|
||||
<div class="docs-sidebar hidden-print affix-top" role="complementary">
|
||||
<ul class="nav docs-sidenav">
|
||||
<li<%= sidebar_current("docs-home") %>>
|
||||
<a href="/docs/providers/index.html">All Providers</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-scaffolding-index") %>>
|
||||
<a href="/docs/providers/scaffolding/index.html">Scaffolding Provider</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-scaffolding-datasource") %>>
|
||||
<a href="#">Data Sources</a>
|
||||
<ul class="nav nav-visible">
|
||||
<li<%= sidebar_current("docs-scaffolding-datasource") %>>
|
||||
<a href="/docs/providers/scaffolding/d/scaffolding_data_source.html">scaffolding_data_source</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-scaffolding-resource") %>>
|
||||
<a href="#">Resources</a>
|
||||
<ul class="nav nav-visible">
|
||||
<li<%= sidebar_current("docs-scaffolding-resource") %>>
|
||||
<a href="/docs/providers/scaffolding/r/scaffolding_resource.html">scaffolding_resource</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= yield %>
|
||||
<% end %>
|
||||
Reference in new issue
Block a user