Skip to content

Commit

Permalink
Add registered-domain module (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
posquit0 authored Apr 30, 2024
1 parent 5ad3474 commit 5402247
Show file tree
Hide file tree
Showing 9 changed files with 790 additions and 0 deletions.
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

0 comments on commit 5402247

Please sign in to comment.