github.com/mineiros-io/terradoc@v0.0.9-0.20220711062319-018bd4ae81f5/test/testdata/golden-readme.md (about)

     1  [<img src="https://raw.githubusercontent.com/mineiros-io/brand/3bffd30e8bdbbde32c143e2650b2faa55f1df3ea/mineiros-primary-logo.svg" width="400"/>](https://mineiros.io/?ref=terraform-google-secret-manager-iam)
     2  
     3  [![Terraform Version](https://img.shields.io/badge/Terraform-1.x-623CE4.svg?logo=terraform)](https://github.com/hashicorp/terraform/releases)
     4  [![Google Provider Version](https://img.shields.io/badge/google-3.x-1A73E8.svg?logo=terraform)](https://github.com/terraform-providers/terraform-provider-google/releases)
     5  [![Join Slack](https://img.shields.io/badge/slack-@mineiros--community-f32752.svg?logo=slack)](https://mineiros.io/slack)
     6  
     7  # terraform-google-secret-manager-iam
     8  
     9  A [Terraform](https://www.terraform.io) module to create a [Google Secret Manager IAM](https://cloud.google.com/secret-manager/docs/access-control) on [Google Cloud Services (GCP)](https://cloud.google.com/).
    10  
    11  **_This module supports Terraform version 1
    12  and is compatible with the Terraform Google Provider version 3._**
    13  
    14  This module is part of our Infrastructure as Code (IaC) framework
    15  that enables our users and customers to easily deploy and manage reusable,
    16  secure, and production-grade cloud infrastructure.
    17  
    18  
    19  - [Module Features](#module-features)
    20  - [Getting Started](#getting-started)
    21  - [Module Argument Reference](#module-argument-reference)
    22    - [Top-level Arguments](#top-level-arguments)
    23      - [Module Configuration](#module-configuration)
    24      - [Main Resource Configuration](#main-resource-configuration)
    25      - [Extended Resource Configuration](#extended-resource-configuration)
    26  - [Module Attributes Reference](#module-attributes-reference)
    27  - [External Documentation](#external-documentation)
    28    - [Google Documentation](#google-documentation)
    29    - [Terraform Google Provider Documentation](#terraform-google-provider-documentation)
    30  - [Module Versioning](#module-versioning)
    31    - [Backwards compatibility in `0.0.z` and `0.y.z` version](#backwards-compatibility-in-00z-and-0yz-version)
    32  - [About Mineiros](#about-mineiros)
    33  - [Reporting Issues](#reporting-issues)
    34  - [Contributing](#contributing)
    35  - [Makefile Targets](#makefile-targets)
    36  - [License](#license)
    37  
    38  ## Module Features
    39  
    40  This module implements the following terraform resources:
    41  
    42  - `google_secret_manager_secret_iam_binding`
    43  - `google_secret_manager_secret_iam_member`
    44  - `google_secret_manager_secret_iam_policy`
    45  
    46  ## Getting Started
    47  
    48  Most basic usage just setting required arguments:
    49  
    50  ```hcl
    51  module "terraform-google-secret-manager-iam" {
    52    source = "github.com/mineiros-io/terraform-google-secret-manager-iam.git?ref=v0.1.0"
    53  
    54    secret_id = google_secret_manager_secret.secret-basic.secret_id
    55    role      = "roles/secretmanager.secretAccessor"
    56    members   = ["user:admin@example.com"]
    57  }
    58  ```
    59  
    60  ## Module Argument Reference
    61  
    62  See [variables.tf] and [examples/] for details and use-cases.
    63  
    64  ### Top-level Arguments
    65  
    66  #### Module Configuration
    67  
    68  - [**`module_enabled`**](#var-module_enabled): *(Optional `bool`)*<a name="var-module_enabled"></a>
    69  
    70    Specifies whether resources in the module will be created.
    71  
    72    Default is `true`.
    73  
    74  - [**`module_depends_on`**](#var-module_depends_on): *(Optional `list(dependencies)`)*<a name="var-module_depends_on"></a>
    75  
    76    A list of dependencies. Any object can be _assigned_ to this list to define a hidden external dependency.
    77  
    78    Example:
    79  
    80    ```hcl
    81    module_depends_on = [
    82      google_network.network
    83    ]
    84    ```
    85  
    86  #### Main Resource Configuration
    87  
    88  - [**`secret_id`**](#var-secret_id): *(**Required** `string`)*<a name="var-secret_id"></a>
    89  
    90    The id of the secret.
    91  
    92  - [**`members`**](#var-members): *(Optional `set(string)`)*<a name="var-members"></a>
    93  
    94    Identities that will be granted the privilege in role. Each entry can have one of the following values:
    95    - `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
    96    - `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
    97    - `user:{emailid}`: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
    98    - `serviceAccount:{emailid}`: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
    99    - `group:{emailid}`: An email address that represents a Google group. For example, admins@example.com.
   100    - `domain:{domain}`: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
   101    - `projectOwner:projectid`: Owners of the given project. For example, `projectOwner:my-example-project`
   102    - `projectEditor:projectid`: Editors of the given project. For example, `projectEditor:my-example-project`
   103    - `projectViewer:projectid`: Viewers of the given project. For example, `projectViewer:my-example-project`
   104  
   105    Default is `[]`.
   106  
   107  - [**`role`**](#var-role): *(Optional `string`)*<a name="var-role"></a>
   108  
   109    The role that should be applied. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.
   110  
   111  - [**`project`**](#var-project): *(Optional `string`)*<a name="var-project"></a>
   112  
   113    The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
   114  
   115  - [**`authoritative`**](#var-authoritative): *(Optional `bool`)*<a name="var-authoritative"></a>
   116  
   117    Whether to exclusively set (authoritative mode) or add (non-authoritative/additive mode) members to the role.
   118  
   119    Default is `true`.
   120  
   121  - [**`policy_bindings`**](#var-policy_bindings): *(Optional `list(policy_bindings)`)*<a name="var-policy_bindings"></a>
   122  
   123    A list of IAM policy bindings.
   124  
   125    Example:
   126  
   127    ```hcl
   128    policy_bindings = [{
   129      role    = "roles/secretmanager.secretAccessor"
   130      members = ["user:member@example.com"]
   131    }]
   132    ```
   133  
   134    Each `policy_bindings` object in the list accepts the following attributes:
   135  
   136    - [**`role`**](#attr-policy_bindings-role): *(**Required** `string`)*<a name="attr-policy_bindings-role"></a>
   137  
   138      The role that should be applied.
   139  
   140    - [**`members`**](#attr-policy_bindings-members): *(Optional `set(string)`)*<a name="attr-policy_bindings-members"></a>
   141  
   142      Identities that will be granted the privilege in `role`.
   143  
   144      Default is `var.members`.
   145  
   146    - [**`condition`**](#attr-policy_bindings-condition): *(Optional `object(condition)`)*<a name="attr-policy_bindings-condition"></a>
   147  
   148      An IAM Condition for a given binding.
   149  
   150      Example:
   151  
   152      ```hcl
   153      condition = {
   154        expression = "request.time < timestamp(\"2022-01-01T00:00:00Z\")"
   155        title      = "expires_after_2021_12_31"
   156      }
   157      ```
   158  
   159      The `condition` object accepts the following attributes:
   160  
   161      - [**`expression`**](#attr-policy_bindings-condition-expression): *(**Required** `string`)*<a name="attr-policy_bindings-condition-expression"></a>
   162  
   163        Textual representation of an expression in Common Expression Language syntax.
   164  
   165      - [**`title`**](#attr-policy_bindings-condition-title): *(**Required** `string`)*<a name="attr-policy_bindings-condition-title"></a>
   166  
   167        A title for the expression, i.e. a short string describing its purpose.
   168  
   169      - [**`description`**](#attr-policy_bindings-condition-description): *(Optional `string`)*<a name="attr-policy_bindings-condition-description"></a>
   170  
   171        An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
   172  
   173  #### Extended Resource Configuration
   174  
   175  ## Module Attributes Reference
   176  
   177  The following attributes are exported in the outputs of the module:
   178  
   179  - [**`module_enabled`**](#output-module_enabled): *(`bool`)*<a name="output-module_enabled"></a>
   180  
   181    Whether this module is enabled.
   182  
   183  - [**`iam`**](#output-iam): *(`object(iam_output)`)*<a name="output-iam"></a>
   184  
   185    All attributes of the created `iam_binding` or `iam_member` or `iam_policy` resource according to the mode.
   186  
   187  ## External Documentation
   188  
   189  ### Google Documentation
   190  
   191  - Secret Manager: <https://cloud.google.com/secret-manager/docs>
   192  - Secret Manager Access Control: <https://cloud.google.com/secret-manager/docs/access-control>
   193  
   194  ### Terraform Google Provider Documentation
   195  
   196  - <https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/secret_manager_secret>
   197  - <https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/secret_manager_secret_iam>
   198  
   199  ## Module Versioning
   200  
   201  This Module follows the principles of [Semantic Versioning (SemVer)].
   202  
   203  Given a version number `MAJOR.MINOR.PATCH`, we increment the:
   204  
   205  1. `MAJOR` version when we make incompatible changes,
   206  2. `MINOR` version when we add functionality in a backwards compatible manner, and
   207  3. `PATCH` version when we make backwards compatible bug fixes.
   208  
   209  ### Backwards compatibility in `0.0.z` and `0.y.z` version
   210  
   211  - Backwards compatibility in versions `0.0.z` is **not guaranteed** when `z` is increased. (Initial development)
   212  - Backwards compatibility in versions `0.y.z` is **not guaranteed** when `y` is increased. (Pre-release)
   213  
   214  ## About Mineiros
   215  
   216  [Mineiros][homepage] is a remote-first company headquartered in Berlin, Germany
   217  that solves development, automation and security challenges in cloud infrastructure.
   218  
   219  Our vision is to massively reduce time and overhead for teams to manage and
   220  deploy production-grade and secure cloud infrastructure.
   221  
   222  We offer commercial support for all of our modules and encourage you to reach out
   223  if you have any questions or need help. Feel free to email us at [hello@mineiros.io] or join our
   224  [Community Slack channel][slack].
   225  
   226  ## Reporting Issues
   227  
   228  We use GitHub [Issues] to track community reported issues and missing features.
   229  
   230  ## Contributing
   231  
   232  Contributions are always encouraged and welcome! For the process of accepting changes, we use
   233  [Pull Requests]. If you'd like more information, please see our [Contribution Guidelines].
   234  
   235  ## Makefile Targets
   236  
   237  This repository comes with a handy [Makefile].
   238  Run `make help` to see details on each available target.
   239  
   240  ## License
   241  
   242  [![license][badge-license]][apache20]
   243  
   244  This module is licensed under the Apache License Version 2.0, January 2004.
   245  Please see [LICENSE] for full details.
   246  
   247  Copyright &copy; 2020-2021 [Mineiros GmbH][homepage]
   248  
   249  
   250  <!-- References -->
   251  
   252  [homepage]: https://mineiros.io/?ref=terraform-google-secret-manager-iam
   253  [hello@mineiros.io]: mailto:hello@mineiros.io
   254  [badge-build]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/workflows/Tests/badge.svg
   255  [badge-semver]: https://img.shields.io/github/v/tag/mineiros-io/terraform-google-secret-manager-iam.svg?label=latest&sort=semver
   256  [badge-license]: https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg
   257  [badge-terraform]: https://img.shields.io/badge/Terraform-1.x-623CE4.svg?logo=terraform
   258  [badge-slack]: https://img.shields.io/badge/slack-@mineiros--community-f32752.svg?logo=slack
   259  [build-status]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/actions
   260  [releases-github]: https://github.com/mineiros-io/erraform-google-secret-manager-iam/releases
   261  [releases-terraform]: https://github.com/hashicorp/terraform/releases
   262  [badge-tf-gcp]: https://img.shields.io/badge/google-3.x-1A73E8.svg?logo=terraform
   263  [releases-google-provider]: https://github.com/terraform-providers/terraform-provider-google/releases
   264  [apache20]: https://opensource.org/licenses/Apache-2.0
   265  [slack]: https://mineiros.io/slack
   266  [terraform]: https://www.terraform.io
   267  [gcp]: https://cloud.google.com/
   268  [semantic versioning (semver)]: https://semver.org/
   269  [variables.tf]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/blob/main/variables.tf
   270  [examples/]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/blob/main/examples
   271  [issues]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/issues
   272  [license]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/blob/main/LICENSE
   273  [makefile]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/blob/main/Makefile
   274  [pull requests]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/pulls
   275  [contribution guidelines]: https://github.com/mineiros-io/terraform-google-secret-manager-iam/blob/main/CONTRIBUTING.md