Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add registered-domain module #41

Merged
merged 1 commit into from
Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/labeler.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
":floppy_disk: public-zone":
- modules/public-zone/**/*

":floppy_disk: registered-domain":
- modules/registered-domain/**/*

":floppy_disk: resolver-inbound-endpoint":
- modules/resolver-inbound-endpoint/**/*

Expand Down
3 changes: 3 additions & 0 deletions .github/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@
- color: "fbca04"
description: "This issue or pull request is related to public-zone module."
name: ":floppy_disk: public-zone"
- color: "fbca04"
description: "This issue or pull request is related to registered-domain module."
name: ":floppy_disk: registered-domain"
- color: "fbca04"
description: "This issue or pull request is related to resolver-inbound-endpoint module."
name: ":floppy_disk: resolver-inbound-endpoint"
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Terraform module which creates Route53 related resources on AWS.
- [private-ca-issued-cert](./modules/private-ca-issued-cert)
- [private-zone](./modules/private-zone)
- [public-zone](./modules/public-zone)
- [registered-domain](./modules/registered-domain)
- [resolver-inbound-endpoint](./modules/resolver-inbound-endpoint)
- [resolver-query-logging](./modules/resolver-query-logging)

Expand All @@ -21,6 +22,8 @@ Terraform module which creates Route53 related resources on AWS.
Terraform Modules from [this package](https://github.com/tedilabs/terraform-aws-domain) were written to manage the following AWS Services with Terraform.

- **Route53**
- Registrar
- Registered Domain
- Hosted Zone
- Public Hosted Zone
- Private Hosted Zone
Expand Down
72 changes: 72 additions & 0 deletions modules/registered-domain/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# registered-domain

This module creates following resources.

- `aws_route53domains_registered_domain`

<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
## Requirements

| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.6 |
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.41 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.47.0 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| <a name="module_resource_group"></a> [resource\_group](#module\_resource\_group) | tedilabs/misc/aws//modules/resource-group | ~> 0.10.0 |

## Resources

| Name | Type |
|------|------|
| [aws_route53domains_registered_domain.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53domains_registered_domain) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_name"></a> [name](#input\_name) | (Required) The name of the registred domain. | `string` | n/a | yes |
| <a name="input_admin_contact"></a> [admin\_contact](#input\_admin\_contact) | (Optional) The configuration of the domain administrative contact. `admin_contact` as defined below.<br> (Optional) `type` - Whether the contact is a person, company, association, or public organization. Valid values are `PERSON`, `COMPANY`, `ASSOCIATION`, or `PUBLIC_BODY`, `RESELLER`. Defaults to `PERSON`.<br> (Optional) `organization` - The name of the organization for contact types other than `PERSON`.<br> (Optional) `first_name` - First name of contact.<br> (Optional) `last_name` - Last name of contact.<br> (Optional) `email` - The email address of the contact.<br> (Optional) `phone` - The phone number of the contact. Phone number must be specified in the format `+[country dialing code].[number including any area code]`.<br> (Optional) `fax` - The fax number of the contact. Fax number must be specified in the format `+[country dialing code].[number including any area code]`.<br><br> (Optional) `country_code` - The ISO-3166 two-letter country code for the contact address.<br> (Optional) `state` - The state or province of the contact's city.<br> (Optional) `city` - The city of the contact's address.<br> (Optional) `address_line_1` - The first line of the contact address.<br> (Optional) `address_line_2` - The second line of the contact address, if any.<br> (Optional) `postal_code` - The zip or postal code of the contact's address.<br><br> (Optional) `extra_params` - A key-value map of parameters required by certain top-level domains.<br> (Optional) `privacy_protection_enabled` - Whether domain contact information is concealed from WHOIS queries. Defaults to `true`. | <pre>object({<br> type = optional(string, "PERSON")<br> organization = optional(string)<br> first_name = optional(string)<br> last_name = optional(string)<br> email = optional(string)<br> phone = optional(string)<br> fax = optional(string)<br><br> country_code = optional(string)<br> state = optional(string)<br> city = optional(string)<br> address_line_1 = optional(string)<br> address_line_2 = optional(string)<br> postal_code = optional(string)<br><br> extra_params = optional(map(string), {})<br> privacy_protection_enabled = optional(bool, true)<br> })</pre> | `{}` | no |
| <a name="input_auto_renew_enabled"></a> [auto\_renew\_enabled](#input\_auto\_renew\_enabled) | (Optional) Whether the domain registration is set to renew automatically. Defaults to `true`. | `bool` | `true` | no |
| <a name="input_billing_contact"></a> [billing\_contact](#input\_billing\_contact) | (Optional) The configuration of the domain billing contact. `billing_contact` as defined below.<br> (Optional) `type` - Whether the contact is a person, company, association, or public organization. Valid values are `PERSON`, `COMPANY`, `ASSOCIATION`, or `PUBLIC_BODY`, `RESELLER`. Defaults to `PERSON`.<br> (Optional) `organization` - The name of the organization for contact types other than `PERSON`.<br> (Optional) `first_name` - First name of contact.<br> (Optional) `last_name` - Last name of contact.<br> (Optional) `email` - The email address of the contact.<br> (Optional) `phone` - The phone number of the contact. Phone number must be specified in the format `+[country dialing code].[number including any area code]`.<br> (Optional) `fax` - The fax number of the contact. Fax number must be specified in the format `+[country dialing code].[number including any area code]`.<br><br> (Optional) `country_code` - The ISO-3166 two-letter country code for the contact address.<br> (Optional) `state` - The state or province of the contact's city.<br> (Optional) `city` - The city of the contact's address.<br> (Optional) `address_line_1` - The first line of the contact address.<br> (Optional) `address_line_2` - The second line of the contact address, if any.<br> (Optional) `postal_code` - The zip or postal code of the contact's address.<br><br> (Optional) `extra_params` - A key-value map of parameters required by certain top-level domains.<br> (Optional) `privacy_protection_enabled` - Whether domain contact information is concealed from WHOIS queries. Defaults to `true`. | <pre>object({<br> type = optional(string, "PERSON")<br> organization = optional(string)<br> first_name = optional(string)<br> last_name = optional(string)<br> email = optional(string)<br> phone = optional(string)<br> fax = optional(string)<br><br> country_code = optional(string)<br> state = optional(string)<br> city = optional(string)<br> address_line_1 = optional(string)<br> address_line_2 = optional(string)<br> postal_code = optional(string)<br><br> extra_params = optional(map(string), {})<br> privacy_protection_enabled = optional(bool, true)<br> })</pre> | `{}` | no |
| <a name="input_module_tags_enabled"></a> [module\_tags\_enabled](#input\_module\_tags\_enabled) | (Optional) Whether to create AWS Resource Tags for the module informations. | `bool` | `true` | no |
| <a name="input_name_servers"></a> [name\_servers](#input\_name\_servers) | (Optional) A set of fully qualified host name of name servers for the registered domain. | `set(string)` | `[]` | no |
| <a name="input_registrant_contact"></a> [registrant\_contact](#input\_registrant\_contact) | (Optional) The configuration of the domain registrant contact. `registrant_contact` as defined below.<br> (Optional) `type` - Whether the contact is a person, company, association, or public organization. Valid values are `PERSON`, `COMPANY`, `ASSOCIATION`, or `PUBLIC_BODY`, `RESELLER`. Defaults to `PERSON`.<br> (Optional) `organization` - The name of the organization for contact types other than `PERSON`.<br> (Optional) `first_name` - First name of contact.<br> (Optional) `last_name` - Last name of contact.<br> (Optional) `email` - The email address of the contact.<br> (Optional) `phone` - The phone number of the contact. Phone number must be specified in the format `+[country dialing code].[number including any area code]`.<br> (Optional) `fax` - The fax number of the contact. Fax number must be specified in the format `+[country dialing code].[number including any area code]`.<br><br> (Optional) `country_code` - The ISO-3166 two-letter country code for the contact address.<br> (Optional) `state` - The state or province of the contact's city.<br> (Optional) `city` - The city of the contact's address.<br> (Optional) `address_line_1` - The first line of the contact address.<br> (Optional) `address_line_2` - The second line of the contact address, if any.<br> (Optional) `postal_code` - The zip or postal code of the contact's address.<br><br> (Optional) `extra_params` - A key-value map of parameters required by certain top-level domains.<br> (Optional) `privacy_protection_enabled` - Whether domain contact information is concealed from WHOIS queries. Defaults to `true`. | <pre>object({<br> type = optional(string, "PERSON")<br> organization = optional(string)<br> first_name = optional(string)<br> last_name = optional(string)<br> email = optional(string)<br> phone = optional(string)<br> fax = optional(string)<br><br> country_code = optional(string)<br> state = optional(string)<br> city = optional(string)<br> address_line_1 = optional(string)<br> address_line_2 = optional(string)<br> postal_code = optional(string)<br><br> extra_params = optional(map(string), {})<br> privacy_protection_enabled = optional(bool, true)<br> })</pre> | `{}` | no |
| <a name="input_resource_group_description"></a> [resource\_group\_description](#input\_resource\_group\_description) | (Optional) The description of Resource Group. | `string` | `"Managed by Terraform."` | no |
| <a name="input_resource_group_enabled"></a> [resource\_group\_enabled](#input\_resource\_group\_enabled) | (Optional) Whether to create Resource Group to find and group AWS resources which are created by this module. | `bool` | `true` | no |
| <a name="input_resource_group_name"></a> [resource\_group\_name](#input\_resource\_group\_name) | (Optional) The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`. | `string` | `""` | no |
| <a name="input_tags"></a> [tags](#input\_tags) | (Optional) A map of tags to add to all resources. | `map(string)` | `{}` | no |
| <a name="input_technical_contact"></a> [technical\_contact](#input\_technical\_contact) | (Optional) The configuration of the domain technical contact. `technical_contact` as defined below.<br> (Optional) `type` - Whether the contact is a person, company, association, or public organization. Valid values are `PERSON`, `COMPANY`, `ASSOCIATION`, or `PUBLIC_BODY`, `RESELLER`. Defaults to `PERSON`.<br> (Optional) `organization` - The name of the organization for contact types other than `PERSON`.<br> (Optional) `first_name` - First name of contact.<br> (Optional) `last_name` - Last name of contact.<br> (Optional) `email` - The email address of the contact.<br> (Optional) `phone` - The phone number of the contact. Phone number must be specified in the format `+[country dialing code].[number including any area code]`.<br> (Optional) `fax` - The fax number of the contact. Fax number must be specified in the format `+[country dialing code].[number including any area code]`.<br><br> (Optional) `country_code` - The ISO-3166 two-letter country code for the contact address.<br> (Optional) `state` - The state or province of the contact's city.<br> (Optional) `city` - The city of the contact's address.<br> (Optional) `address_line_1` - The first line of the contact address.<br> (Optional) `address_line_2` - The second line of the contact address, if any.<br> (Optional) `postal_code` - The zip or postal code of the contact's address.<br><br> (Optional) `extra_params` - A key-value map of parameters required by certain top-level domains.<br> (Optional) `privacy_protection_enabled` - Whether domain contact information is concealed from WHOIS queries. Defaults to `true`. | <pre>object({<br> type = optional(string, "PERSON")<br> organization = optional(string)<br> first_name = optional(string)<br> last_name = optional(string)<br> email = optional(string)<br> phone = optional(string)<br> fax = optional(string)<br><br> country_code = optional(string)<br> state = optional(string)<br> city = optional(string)<br> address_line_1 = optional(string)<br> address_line_2 = optional(string)<br> postal_code = optional(string)<br><br> extra_params = optional(map(string), {})<br> privacy_protection_enabled = optional(bool, true)<br> })</pre> | `{}` | no |
| <a name="input_transfer_lock_enabled"></a> [transfer\_lock\_enabled](#input\_transfer\_lock\_enabled) | (Optional) Whether the domain is locked for transfer. Defaults to `true`. | `bool` | `true` | no |

## Outputs

| Name | Description |
|------|-------------|
| <a name="output_abuse_contact"></a> [abuse\_contact](#output\_abuse\_contact) | The contact informations to report incorrect contact information for a domain, to report that the domain is being used to send spam, to report that someone is cybersquatting on a domain name, or report some other type of abuse. |
| <a name="output_admin_contact"></a> [admin\_contact](#output\_admin\_contact) | The configuration of the domain administrative contact. |
| <a name="output_auto_renew_enabled"></a> [auto\_renew\_enabled](#output\_auto\_renew\_enabled) | Whether the domain registration is set to renew automatically. |
| <a name="output_billing_contact"></a> [billing\_contact](#output\_billing\_contact) | The configuration of the domain billing contact. |
| <a name="output_created_at"></a> [created\_at](#output\_created\_at) | The date when the domain was created as found in the response to a WHOIS query. |
| <a name="output_expired_at"></a> [expired\_at](#output\_expired\_at) | The date when the registration for the domain is set to expire. |
| <a name="output_id"></a> [id](#output\_id) | The ID of the registered domain. |
| <a name="output_name"></a> [name](#output\_name) | The name of the registered domain. |
| <a name="output_name_servers"></a> [name\_servers](#output\_name\_servers) | A list of name servers for the registered domain. |
| <a name="output_registrant_contact"></a> [registrant\_contact](#output\_registrant\_contact) | The configuration of the domain registrant contact. |
| <a name="output_registrar"></a> [registrar](#output\_registrar) | The informations about the registrar for the domain. |
| <a name="output_reseller"></a> [reseller](#output\_reseller) | Reseller of the domain. |
| <a name="output_status_codes"></a> [status\_codes](#output\_status\_codes) | A list of domain name status codes. |
| <a name="output_technical_contact"></a> [technical\_contact](#output\_technical\_contact) | The configuration of the domain technical contact. |
| <a name="output_transfer_lock_enabled"></a> [transfer\_lock\_enabled](#output\_transfer\_lock\_enabled) | Whether the domain is locked for transfer. |
| <a name="output_updated_at"></a> [updated\_at](#output\_updated\_at) | The last updated date of the domain as found in the response to a WHOIS query. |
| <a name="output_whois_server"></a> [whois\_server](#output\_whois\_server) | The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain. |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
Loading
Loading