mirror of
https://github.com/oscarhermoso/terraform-provider-binarylane
synced 2026-10-18 13:38:08 +11:00
448 lines
13 KiB
JSON
448 lines
13 KiB
JSON
{
|
|
"provider": {
|
|
"name": "binarylane"
|
|
},
|
|
"resources": [
|
|
{
|
|
"name": "server",
|
|
"schema": {
|
|
"attributes": [
|
|
{
|
|
"name": "backups",
|
|
"bool": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "If true this will enable two daily backups for the server. `options.daily_backups` will override this value if provided. Setting this to false has no effect.\n"
|
|
}
|
|
},
|
|
{
|
|
"name": "image",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The slug of the selected operating system."
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The hostname of your server, such as vps01.yourcompany.com. If not provided, the server will be created with a random name."
|
|
}
|
|
},
|
|
{
|
|
"name": "password",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "If this is provided the specified or default remote user's account password will be set to this value. Only valid if the server supports password change actions. If omitted and the server supports password change actions a random password will be generated and emailed to the account email address.\n"
|
|
}
|
|
},
|
|
{
|
|
"name": "port_blocking",
|
|
"bool": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "Port blocking of outgoing connections for email, SSH and Remote Desktop (TCP ports 22, 25, and 3389) is enabled by default for all new servers. If this is false port blocking will be disabled. Disabling port blocking is only available to reviewed accounts."
|
|
}
|
|
},
|
|
{
|
|
"name": "region",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The slug of the selected region.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The slug of the selected size.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ssh_keys",
|
|
"list": {
|
|
"computed_optional_required": "computed_optional",
|
|
"element_type": {
|
|
"int64": {}
|
|
},
|
|
"description": "This is a list of SSH key ids. If this is null or not provided, any SSH keys that have been marked as default will be deployed (assuming the operating system supports SSH Keys). Submit an empty list to disable deployment of default keys.\n"
|
|
}
|
|
},
|
|
{
|
|
"name": "user_data",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "If provided this will be used to initialise the new server. This must be left null if the Image does not support UserData, see DistributionInfo.Features for more information.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtMost(65536)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vpc_id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "Leave null to use default (public) network for the selected region."
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The ID of the server to fetch."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "server_firewall_rules",
|
|
"schema": {
|
|
"attributes": [
|
|
{
|
|
"name": "firewall_rules",
|
|
"list_nested": {
|
|
"computed_optional_required": "required",
|
|
"nested_object": {
|
|
"attributes": [
|
|
{
|
|
"name": "action",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The action to take when there is a match on this rule.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.OneOf(\n\"drop\",\n\"accept\",\n)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "A description to assist in identifying this rule. Commonly used to record the reason for the rule or the intent behind it, e.g. \"Block access to RDP\" or \"Allow access from HQ\".",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthBetween(0, 250)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "destination_addresses",
|
|
"list": {
|
|
"computed_optional_required": "required",
|
|
"element_type": {
|
|
"string": {}
|
|
},
|
|
"description": "The destination addresses to match for this rule. Each address may be an individual IPv4 address or a range in IPv4 CIDR notation.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "listvalidator.SizeAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "destination_ports",
|
|
"list": {
|
|
"computed_optional_required": "computed_optional",
|
|
"element_type": {
|
|
"string": {}
|
|
},
|
|
"description": "The destination ports to match for this rule. Leave null or empty to match on all ports."
|
|
}
|
|
},
|
|
{
|
|
"name": "protocol",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The protocol to match for this rule.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.OneOf(\n\"all\",\n\"icmp\",\n\"tcp\",\n\"udp\",\n)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "source_addresses",
|
|
"list": {
|
|
"computed_optional_required": "required",
|
|
"element_type": {
|
|
"string": {}
|
|
},
|
|
"description": "The source addresses to match for this rule. Each address may be an individual IPv4 address or a range in IPv4 CIDR notation.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "listvalidator.SizeAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"description": "A list of rules for the server. NB: that any existing rules that are not included will be removed. Submit an empty list to clear all rules."
|
|
}
|
|
},
|
|
{
|
|
"name": "server_id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The ID of the server for which firewall rules should be listed."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ssh_key",
|
|
"schema": {
|
|
"attributes": [
|
|
{
|
|
"name": "default",
|
|
"bool": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "Optional: If true this will be added to all new server installations (if we support SSH Key injection for the server's operating system)."
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "A name to help you identify the key.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "public_key",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The public key in OpenSSH \"authorized_keys\" format.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The ID or fingerprint of the SSH Key to fetch."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vpc",
|
|
"schema": {
|
|
"attributes": [
|
|
{
|
|
"name": "ip_range",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "A private address range that you select during creation, such as the default value of 10.240.0.0/16. Because the virtual network is dedicated to your use, you may use whatever IP address range you like."
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "A name to help identify this VPC.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthBetween(0, 250)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The target vpc id."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vpc_route_entries",
|
|
"schema": {
|
|
"attributes": [
|
|
{
|
|
"name": "route_entries",
|
|
"list_nested": {
|
|
"computed_optional_required": "computed_optional",
|
|
"nested_object": {
|
|
"attributes": [
|
|
{
|
|
"name": "description",
|
|
"string": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "An optional description for the route.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtMost(250)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "destination",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The destination address for this route entry. This may be in CIDR format.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "router",
|
|
"string": {
|
|
"computed_optional_required": "required",
|
|
"description": "The server that will receive traffic sent to the destination property in this VPC.",
|
|
"validators": [
|
|
{
|
|
"custom": {
|
|
"imports": [
|
|
{
|
|
"path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
}
|
|
],
|
|
"schema_definition": "stringvalidator.LengthAtLeast(1)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"description": "Submit null to leave unaltered, submit an empty list to clear all route entries. It is not possible to PATCH individual route entries, to alter a route entry submit the entire list of route entries you wish to save."
|
|
}
|
|
},
|
|
{
|
|
"name": "vpc_id",
|
|
"int64": {
|
|
"computed_optional_required": "computed_optional",
|
|
"description": "The target vpc id."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"version": "0.1"
|
|
} |