forked from mirrors/terraform-provider-binarylane
1f24f45af7
* WIP commit - Adding VPC resource * Tests passing for VPC resource * Eject vpc_route_entries into its own resource so it can be applied later
295 lines
8.3 KiB
JSON
295 lines
8.3 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 (check server.password_change_supported via the servers endpoint). If omitted and the server supports password change actions a random password will be generated and emailed to the account email address.\n"
|
|
}
|
|
},
|
|
{
|
|
"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": "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": "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"
|
|
} |