diff --git a/apis/generate.go b/apis/generate.go index 233d170e..f74d30ac 100644 --- a/apis/generate.go +++ b/apis/generate.go @@ -19,7 +19,7 @@ Copyright 2021 Upbound Inc. //go:generate rm -rf ../examples-generated // Generate documentation from Terraform docs. -//go:generate go run github.com/crossplane/upjet/cmd/scraper -n ${TERRAFORM_PROVIDER_SOURCE} -r ../.work/${TERRAFORM_PROVIDER_SOURCE}/${TERRAFORM_DOCS_PATH} -o ../config/provider-metadata.yaml +//go:generate go run github.com/crossplane/upjet/cmd/scraper -n ${TERRAFORM_PROVIDER_SOURCE} -r ../.work/${TERRAFORM_PROVIDER_SOURCE}/${TERRAFORM_DOCS_PATH} -o ../config/provider-metadata.yaml --prelude-xpath "//text()[(contains(., \"description\") and contains(., \"page_title\")) or contains(., \"subcategory\")]" // Run Upjet generator //go:generate go run ../cmd/generator/main.go .. diff --git a/config/common/common.go b/config/common/common.go new file mode 100644 index 00000000..76648f82 --- /dev/null +++ b/config/common/common.go @@ -0,0 +1,25 @@ +// Inspired from https://github.com/crossplane-contrib/provider-upjet-aws/blob/main/config/cluster/common/common.go + +package common + +import ( + "github.com/crossplane/crossplane-runtime/pkg/fieldpath" + "github.com/crossplane/crossplane-runtime/pkg/reference" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" +) + +func PrivateNetworkOpenStackIdExtractor() reference.ExtractValueFn { + return func(mg xpresource.Managed) string { + paved, err := fieldpath.PaveObject(mg) + if err != nil { + // todo(hasan): should we log this error? + return "" + } + r, err := paved.GetString("status.atProvider.regionsAttributes[0].openstackid") + if err != nil { + // todo(hasan): should we log this error? + return "" + } + return r + } +} diff --git a/config/gateway/config.go b/config/gateway/config.go index a9af15ac..5cd50ad3 100644 --- a/config/gateway/config.go +++ b/config/gateway/config.go @@ -12,7 +12,8 @@ func Configure(p *config.Provider) { r.ShortGroup = shortGroup r.Kind = "ProjectGateway" r.References["network_id"] = config.Reference{ - Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Extractor: "github.com/edixos/provider-ovh/config/common.PrivateNetworkOpenStackIdExtractor()", } r.References["subnet_id"] = config.Reference{ Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.Subnet", diff --git a/config/kube/config.go b/config/kube/config.go index 1053187b..f7a5b664 100644 --- a/config/kube/config.go +++ b/config/kube/config.go @@ -13,7 +13,11 @@ func Configure(p *config.Provider) { r.UseAsync = true r.Kind = "Cluster" r.References["private_network_id"] = config.Reference{ - Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Extractor: "github.com/edixos/provider-ovh/config/common.PrivateNetworkOpenStackIdExtractor()", + } + r.References["nodes_subnet_id"] = config.Reference{ + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.Subnet", } }) p.AddResourceConfigurator("ovh_cloud_project_kube_iprestrictions", func(r *config.Resource) { diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 2c7e7b6d..9b6611b3 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -76,61 +76,35 @@ resources: soyoustart-ca: for So you Start Canada API soyoustart-eu: for So you Start Europe API importStatements: [] - cloud_project.html.markdown: - subCategory: Cloud Project - description: 'cloud_project.html.markdownsubcategory: "Cloud Project"' - name: cloud_project.html.markdown - title: cloud_project.html.markdown - argumentDocs: - access: '- project access right for the identity that trigger the terraform script.' - catalog_name: '- Catalog name' - configuration: '- (Optional) Representation of a configuration item for personalizing product' - date: '- date' - description: '- A description associated with the user.' - details: '- Information about a Bill entry' - domain: '- expiration date' - duration: '- (Required) duration' - expiration_date: '- expiration date' - label: '- (Required) Identifier of the resource' - order: '- Details about the order that was used to create the public cloud project' - order_detail_id: '- order detail id' - order_id: '- order id, the same as the id' - ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' - plan: '- (Required) Product Plan to order' - plan_code: '- (Required) Plan code. This value must be adapted depending on your OVH_ENDPOINT value. It''s project.2018 for ovh-{eu,ca} and project when using ovh-us.' - plan_option: '- (Optional) Product Plan to order' - pricing_mode: '- (Required) Pricing model identifier' - project_id: '- openstack project id' - project_name: '- openstack project name' - quantity: '- quantity' - status: '- project status' - urn: '- The URN of the cloud project' - value: '- (Required) Path to the resource in API.OVH.COM' - importStatements: [] - cloud_project_alerting.html.markdown: + cloud_project: subCategory: "" - description: 'cloud_project_alerting.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_alerting.html.markdown - title: cloud_project_alerting.html.markdown + name: cloud_project + title: "" argumentDocs: - creationDate: '- Alerting creation date' - currency_code: '- Currency of the monthly threshold' - delay: '- Delay between two alerts in seconds' - email: '- Email to contact' - formatted_monthly_threshold: '- Formatted monthly threshold for this alerting' - id: '- Alert ID' - monthly_threshold: '- Monthly threshold for this alerting in currency' + access: '- Project access' + creation_date: '- Project creation date' + description: '- Description of your project' + display_name: '- Resource display name' + expiration: '- Expiration date of your project. After this date, your project will be deleted' + iam: '- IAM resource information' + id: '- Unique identifier of the resource in the IAM' + manual_quota: '- Manual quota prevent automatic quota upgrade' + order_id: '- Project order ID' + plan_code: '- Order plan code' + project_id: '- Project ID' + project_name: '- Project name' service_name: |- - - The id of the public cloud project. If omitted, + - (Required) The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - text: ': Text representation of the monthly threshold' - value: ': Value of the monthly threshold' + status: '- Current status' + tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' + unleash: '- Project unleashed' + urn: '- URN of the private database, used when writing IAM policies' importStatements: [] - cloud_project_capabilities_containerregistry.html.markdown: + cloud_project_capabilities_containerregistry: subCategory: "" - description: 'cloud_project_capabilities_containerregistry.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_capabilities_containerregistry.html.markdown - title: cloud_project_capabilities_containerregistry.html.markdown + name: cloud_project_capabilities_containerregistry + title: "" argumentDocs: code: '- Plan code from the catalog' created_at: '- Plan creation date' @@ -149,11 +123,10 @@ resources: updated_at: '- Plan last update date' vulnerability: '- Vulnerability scanning' importStatements: [] - cloud_project_capabilities_containerregistry_filter.html.markdown: + cloud_project_capabilities_containerregistry_filter: subCategory: "" - description: 'cloud_project_capabilities_containerregistry_filter.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_capabilities_containerregistry_filter.html.markdown - title: cloud_project_capabilities_containerregistry_filter.html.markdown + name: cloud_project_capabilities_containerregistry_filter + title: "" argumentDocs: code: '- Plan code from the catalog' created_at: '- Plan creation date' @@ -171,11 +144,10 @@ resources: updated_at: '- Plan last update date' vulnerability: '- Vulnerability scanning' importStatements: [] - cloud_project_containerregistries.html.markdown: + cloud_project_containerregistries: subCategory: "" - description: 'cloud_project_containerregistries.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistries.html.markdown - title: cloud_project_containerregistries.html.markdown + name: cloud_project_containerregistries + title: "" argumentDocs: created_at: '- Registry creation date' id: '- Registry ID' @@ -192,39 +164,30 @@ resources: url: '- Access url of the registry' version: '- Version of your registry' importStatements: [] - cloud_project_containerregistry.html.markdown: + cloud_project_containerregistry: subCategory: "" - description: 'cloud_project_containerregistry.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry.html.markdown - title: cloud_project_containerregistry.html.markdown + name: cloud_project_containerregistry + title: "" argumentDocs: - code: '- Plan code from the catalog' created_at: '- Registry creation date' - features: '- Features of the plan' id: '- Registry ID' - image_storage: '- Docker image storage limits in bytes' name: '- Registry name' - parallel_request: '- Parallel requests on Docker image API (/v2 Docker registry API)' - plan: '- Plan of the registry' - plan_id: '- Plan ID of the registry' project_id: '- Project ID of your registry' region: '- Region of the registry' - registry_limits: '- Container registry limits' + registry_id: '- Registry ID' service_name: |- - The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. size: '- Current size of the registry (bytes)' status: '- Registry status' - updated_at: '- Plan last update date' + updated_at: '- Registry last update date' url: '- Access url of the registry' version: '- Version of your registry' - vulnerability: '- Vulnerability scanning' importStatements: [] - cloud_project_containerregistry_ip_restrictions_management.html.markdown: + cloud_project_containerregistry_ip_restrictions_management: subCategory: "" - description: 'cloud_project_containerregistry_ip_restrictions_management.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry_ip_restrictions_management.html.markdown - title: cloud_project_containerregistry_ip_restrictions_management.html.markdown + name: cloud_project_containerregistry_ip_restrictions_management + title: "" argumentDocs: description: '- The Description of Whitelisted IpBlock.' ip_block: '- Whitelisted IpBlock (CIDR format).' @@ -232,11 +195,10 @@ resources: registry_id: '- The id of the Managed Private Registry.' service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' importStatements: [] - cloud_project_containerregistry_ip_restrictions_registry.html.markdown: + cloud_project_containerregistry_ip_restrictions_registry: subCategory: "" - description: 'cloud_project_containerregistry_ip_restrictions_registry.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry_ip_restrictions_registry.html.markdown - title: cloud_project_containerregistry_ip_restrictions_registry.html.markdown + name: cloud_project_containerregistry_ip_restrictions_registry + title: "" argumentDocs: description: '- The Description of Whitelisted IpBlock.' ip_block: '- Whitelisted IpBlock (CIDR format).' @@ -244,49 +206,27 @@ resources: registry_id: '- The id of the Managed Private Registry.' service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' importStatements: [] - cloud_project_containerregistry_oidc.html.markdown: + cloud_project_containerregistry_oidc: subCategory: "" - description: 'cloud_project_containerregistry_oidc.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry_oidc.html.markdown - title: cloud_project_containerregistry_oidc.html.markdown + name: cloud_project_containerregistry_oidc + title: "" argumentDocs: - create: '- (Default 10m)' - delete: '- (Default 10m)' - delete_users: '- Delete existing users from Harbor. OIDC can''t be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. Changing this value recreates the resource.' oidc_admin_group: '- Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.' oidc_auto_onboard: '- Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.' oidc_client_id: '- The client ID with which Harbor is registered as client application with the OIDC provider.' - oidc_client_secret: '- The secret for the Harbor client application.' oidc_endpoint: '- The URL of an OIDC-compliant server.' oidc_groups_claim: '- The name of Claim in the ID token whose value is the list of group names.' oidc_name: '- The name of the OIDC provider.' oidc_scope: '- The scope sent to OIDC server during authentication. It''s a comma-separated string that must contain ''openid'' and usually also contains ''profile'' and ''email''. To obtain refresh tokens it should also contain ''offline_access''.' oidc_user_claim: '- The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to ''name'' (only useful when automatic Onboarding is enabled).' oidc_verify_cert: '- Set it to false if your OIDC server is hosted via self-signed certificate.' - registry_id: '- The ID of the Managed Private Registry. Changing this value recreates the resource.' - service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' - update: '- (Default 10m)' - importStatements: [] - cloud_project_containerregistry_user.html.markdown: - subCategory: "" - description: 'cloud_project_containerregistry_user.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry_user.html.markdown - title: cloud_project_containerregistry_user.html.markdown - argumentDocs: - email: '- User email' - id: '- User ID' - password: '- (Sensitive) User password' - registry_id: '- Registry ID' - service_name: |- - - The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - user: '- User name' + registry_id: '- The id of the Managed Private Registry.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' importStatements: [] - cloud_project_containerregistry_users.html.markdown: + cloud_project_containerregistry_users: subCategory: "" - description: 'cloud_project_containerregistry_users.html.markdownsubcategory : "Managed Private Registry"' - name: cloud_project_containerregistry_users.html.markdown - title: cloud_project_containerregistry_users.html.markdown + name: cloud_project_containerregistry_users + title: "" argumentDocs: email: '- User email' id: '- User ID' @@ -297,66 +237,53 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user: '- User name' importStatements: [] - cloud_project_database.html.markdown: + cloud_project_database: subCategory: "" - description: 'cloud_project_database.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database.html.markdown - title: cloud_project_database.html.markdown + name: cloud_project_database + title: "" argumentDocs: - advanced_configuration: '- (Optional) Advanced configuration key / value.' - backup_regions: '- List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field' - backup_time: '- Time on which backups start every day (this parameter is not usable on the following engines: "m3db", "grafana", "kafka", "kafkaconnect", "kafkamirrormaker", "opensearch", "m3aggregator").' + advanced_configuration: '- Advanced configuration key / value.' + backup_regions: '- List of region where backups are pushed.' + backup_time: '- Time on which backups start every day.' component: '- Type of component the URI relates to.' - create: '- (Default 20m)' created_at: '- Date of the creation of the cluster.' - delete: '- (Default 20m)' - description: '- (Optional) Small description of the database service.' - disk_size: '- (Optional) The disk size (in GB) of the database service.' - disk_type: '- Defines the disk type of the database service.' + description: '- Small description of the database service.' + disk_size: '- The disk size (in GB) of the database service.' + disk_type: '- The disk type of the database service.' domain: '- Domain of the cluster.' endpoints: '- List of all endpoints objects of the service.' engine: |- - - (Required, Forces new resource) The database engine you want to deploy. To get a full list of available engine visit. + - (Required) The database engine you want to get information. To get a full list of available engine visit: public documentation. - flavor: |- - - (Required) A valid OVHcloud public cloud database flavor name in which the nodes will be started. - Ex: "db1-7". Changing this value upgrade the nodes with the new flavor. - You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ - id: '- Public Cloud Database Service ID' - ip: '- (Optional) Authorized IP' - ip_restrictions: '- (Optional) IP Blocks authorized to access to the cluster.' - kafka_rest_api: '- (Optional) Defines whether the REST API is enabled on a kafka cluster' - kafka_schema_registry: '- (Optional) Defines whether the schema registry is enabled on a Kafka cluster' + flavor: '- A valid OVHcloud public cloud database flavor name in which the nodes will be started.' + id: '- (Required) Cluster ID' + ip: '- Authorized IP' + ip_restrictions: '- IP Blocks authorized to access to the cluster.' + kafka_rest_api: '- Defines whether the REST API is enabled on a kafka cluster.' + kafka_schema_registry: '- Defines whether the schema registry is enabled on a Kafka cluster' maintenance_time: '- Time on which maintenances can start every day.' - network_id: '- (Optional, Forces new resource) Private network id in which the node should be deployed. It''s the regional openstackId of the private network' + network_id: '- Private network id in which the node should be deployed. It''s the regional openstackId of the private network' network_type: '- Type of network of the cluster.' - nodes: |- - - (Required, Minimum Items: 1) List of nodes object. - Multi region cluster are not yet available, all node should be identical. - opensearch_acls_enabled: '- (Optional) Defines whether the ACLs are enabled on an OpenSearch cluster' + nodes: '- List of nodes object.' path: '- Path of the endpoint.' - plan: '- (Required) Plan of the cluster.' + plan: '- Plan of the cluster.' port: '- Connection port for the endpoint.' - region: |- - - (Required, Forces new resource) Public cloud region in which the node should be deployed. - Ex: "GRA'. + region: '- Public cloud region in which the node should be deployed.' scheme: '- Scheme used to generate the URI.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. ssl: '- Defines whether the endpoint uses SSL.' ssl_mode: '- SSL mode used to connect to the service if the SSL is enabled.' status: '- Current status of the IP restriction.' - subnet_id: '- (Optional, Forces new resource) Private subnet ID in which the node is.' - update: '- (Default 40m)' + subnet_id: '- Private subnet ID in which the node is.' uri: '- URI of the endpoint.' - version: '- (Required) The version of the engine in which the service should be deployed' + version: '- The version of the engine in which the service should be deployed' importStatements: [] - cloud_project_database_capabilities.html.markdown: + cloud_project_database_capabilities: subCategory: "" - description: 'cloud_project_database_capabilities.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_capabilities.html.markdown - title: cloud_project_database_capabilities.html.markdown + name: cloud_project_database_capabilities + title: "" argumentDocs: backup_retention: '- Automatic backup retention duration.' core: '- Flavor core number.' @@ -376,11 +303,10 @@ resources: type: '- Type of the option.' versions: '- Versions available for this engine.' importStatements: [] - cloud_project_database_certificates.html.markdown: + cloud_project_database_certificates: subCategory: "" - description: 'cloud_project_database_certificates.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_certificates.html.markdown - title: cloud_project_database_certificates.html.markdown + name: cloud_project_database_certificates + title: "" argumentDocs: ca: '- CA certificate used for the service.' cluster_id: '- (Required) Cluster ID' @@ -392,30 +318,28 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_database.html.markdown: + cloud_project_database_database: subCategory: "" - description: 'cloud_project_database_database.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_database.html.markdown - title: cloud_project_database_database.html.markdown + name: cloud_project_database_database + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' + created_at: '- Date of the creation of the database.' default: '- Defines if the database has been created by default.' - delete: '- (Default 20m)' engine: |- - - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + - (Required) The engine of the database cluster you want database information. To get a full list of available engine visit: + public documentation. Available engines: id: '- ID of the database.' - name: '- (Required, Forces new resource) Name of the database.' + name: '- (Required) Name of the database.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_databases.html.markdown: + cloud_project_database_databases: subCategory: "" - description: 'cloud_project_database_databases.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_databases.html.markdown - title: cloud_project_database_databases.html.markdown + name: cloud_project_database_databases + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' database_ids: '- The list of databases ids of the database cluster associated with the project.' @@ -427,36 +351,29 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_integration.html.markdown: + cloud_project_database_integration: subCategory: "" - description: 'cloud_project_database_integration.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_integration.html.markdown - title: cloud_project_database_integration.html.markdown + name: cloud_project_database_integration + title: "" argumentDocs: cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - destination_service_id: '- (Required, Forces new resource) ID of the destination service.' + destination_service_id: '- ID of the destination service.' engine: |- - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. - All engines available exept mongodb. - id: '- - ID of the integration.' - parameters: '- (Optional, Forces new resource) Parameters for the integration.' + All engines available exept mongodb + id: '- (Required) Integration ID' + parameters: '- Parameters for the integration.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - source_service_id: '- (Required, Forces new resource) ID of the source service.' + source_service_id: '- ID of the source service.' status: '- Current status of the integration.' - type: |- - - (Optional, Forces new resource) Type of the integration. - Available types: - update: '- (Default 20m)' + type: '- Type of the integration.' importStatements: [] - cloud_project_database_integrations.html.markdown: + cloud_project_database_integrations: subCategory: "" - description: 'cloud_project_database_integrations.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_integrations.html.markdown - title: cloud_project_database_integrations.html.markdown + name: cloud_project_database_integrations + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' engine: |- @@ -468,31 +385,10 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_ip_restriction.html.markdown: - subCategory: "" - description: 'cloud_project_database_ip_restriction.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_ip_restriction.html.markdown - title: cloud_project_database_ip_restriction.html.markdown - argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - description: '- (Optional) Description of the IP restriction.' - engine: |- - - (Required, Forces new resource) The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. - public documentation. - ip: '- (Required, Forces new resource) Authorized IP.' - service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - status: '- Current status of the IP restriction.' - update: '- (Default 20m)' - importStatements: [] - cloud_project_database_ip_restrictions.html.markdown: + cloud_project_database_ip_restrictions: subCategory: "" - description: 'cloud_project_database_ip_restrictions.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_ip_restrictions.html.markdown - title: cloud_project_database_ip_restrictions.html.markdown + name: cloud_project_database_ip_restrictions + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' engine: |- @@ -503,30 +399,24 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_kafka_acl.html.markdown: + cloud_project_database_kafka_acl: subCategory: "" - description: 'cloud_project_database_kafka_acl.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_acl.html.markdown - title: cloud_project_database_kafka_acl.html.markdown + name: cloud_project_database_kafka_acl + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - id: '- ID of the ACL.' - permission: |- - - (Required, Forces new resource) Permission to give to this username on this topic. - Available permissions: + cluster_id: '- (Required) Cluster ID' + id: '- (Required) ACL ID' + permission: '- Permission to give to this username on this topic.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - topic: '- (Required, Forces new resource) Topic affected by this ACL.' - username: '- (Required, Forces new resource) Username affected by this ACL.' + topic: '- Topic affected by this ACL.' + username: '- Username affected by this ACL.' importStatements: [] - cloud_project_database_kafka_acls.html.markdown: + cloud_project_database_kafka_acls: subCategory: "" - description: 'cloud_project_database_kafka_acls.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_acls.html.markdown - title: cloud_project_database_kafka_acls.html.markdown + name: cloud_project_database_kafka_acls + title: "" argumentDocs: acl_ids: '- The list of ACLs ids of the kafka cluster associated with the project.' cluster_id: '- (Required) Cluster ID' @@ -534,30 +424,24 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_kafka_schemaregistryacl.html.markdown: + cloud_project_database_kafka_schemaregistryacl: subCategory: "" - description: 'cloud_project_database_kafka_schemaregistryacl.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_schemaregistryacl.html.markdown - title: cloud_project_database_kafka_schemaregistryacl.html.markdown + name: cloud_project_database_kafka_schemaregistryacl + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - id: '- ID of the ACL.' - permission: |- - - (Required, Forces new resource) Permission to give to this username on this resource. - Available permissions: - resource: '- (Required, Forces new resource) Resource affected by this schema registry ACL.' + cluster_id: '- (Required) Cluster ID' + id: '- (Required) Schema registry ACL ID' + permission: '- Permission to give to this username on this topic.' + resource: '- Resource affected by this ACL.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - username: '- (Required, Forces new resource) Username affected by this schema registry ACL.' + username: '- Username affected by this ACL.' importStatements: [] - cloud_project_database_kafka_schemaregistryacls.html.markdown: + cloud_project_database_kafka_schemaregistryacls: subCategory: "" - description: 'cloud_project_database_kafka_schemaregistryacls.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_schemaregistryacls.html.markdown - title: cloud_project_database_kafka_schemaregistryacls.html.markdown + name: cloud_project_database_kafka_schemaregistryacls + title: "" argumentDocs: acl_ids: '- The list of schema refistry ACLs ids of the kafka cluster associated with the project.' cluster_id: '- (Required) Cluster ID' @@ -565,31 +449,27 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_kafka_topic.html.markdown: + cloud_project_database_kafka_topic: subCategory: "" - description: 'cloud_project_database_kafka_topic.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_topic.html.markdown - title: cloud_project_database_kafka_topic.html.markdown + name: cloud_project_database_kafka_topic + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - id: '- ID of the topic.' - min_insync_replicas: '- (Optional, Forces new resource) Minimum insync replica accepted for this topic. Should be superior to 0' - name: '- (Required, Forces new resource) Name of the topic. No spaces allowed.' - partitions: '- (Optional, Forces new resource) Number of partitions for this topic. Should be superior to 0' - replication: '- (Optional, Forces new resource) Number of replication for this topic. Should be superior to 1' - retention_bytes: '- (Optional, Forces new resource) Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited' - retention_hours: '- (Optional, Forces new resource) Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited' + cluster_id: '- (Required) Cluster ID' + id: '- (Required) Topic ID' + min_insync_replicas: '- Minimum insync replica accepted for this topic.' + name: '- Name of the topic.' + partitions: '- Number of partitions for this topic.' + replication: '- Number of replication for this topic.' + retention_bytes: '- Number of bytes for the retention of the data for this topic. Inferior to 0 mean Unlimited' + retention_hours: '- Number of hours for the retention of the data for this topic. Inferior to 0 mean Unlimited' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_kafka_topics.html.markdown: + cloud_project_database_kafka_topics: subCategory: "" - description: 'cloud_project_database_kafka_topics.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_topics.html.markdown - title: cloud_project_database_kafka_topics.html.markdown + name: cloud_project_database_kafka_topics + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' service_name: |- @@ -597,11 +477,10 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. topic_ids: '- The list of topics ids of the kafka cluster associated with the project.' importStatements: [] - cloud_project_database_kafka_user_access.html.markdown: + cloud_project_database_kafka_user_access: subCategory: "" - description: 'cloud_project_database_kafka_user_access.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_kafka_user_access.html.markdown - title: cloud_project_database_kafka_user_access.html.markdown + name: cloud_project_database_kafka_user_access + title: "" argumentDocs: cert: '- User cert.' cluster_id: '- (Required) Cluster ID' @@ -611,37 +490,31 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user_id: '- (Required) User ID' importStatements: [] - cloud_project_database_log_subscription.html.markdown: + cloud_project_database_log_subscription: subCategory: "" - description: 'cloud_project_database_log_subscription.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_log_subscription.html.markdown - title: cloud_project_database_log_subscription.html.markdown + name: cloud_project_database_log_subscription + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID.' created_at: '- Creation date of the subscription.' - delete: '- (Default 20m)' engine: |- - - (Required, Forces new resource) The database engine for which you want to manage a subscription. To get a full list of available engine visit. + - (Required) The database engine for which you want to retrieve a subscription. To get a full list of available engine visit. public documentation. - id: '- ID of the log subscription.' + id: '- (Required) Id of the log subscription.' kind: '- Log kind name of this subscription.' ldp_service_name: '- Name of the destination log service.' - operation_id: '- Identifier of the operation.' resource_name: '- Name of subscribed resource, where the logs come from.' resource_type: '- Type of subscribed resource, where the logs come from.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - stream_id: '- (Required, Forces new resource) Id of the target Log data platform stream.' - update: '- (Default 20m)' + stream_id: '- See Argument Reference above.' updated_at: '- Last update date of the subscription.' importStatements: [] - cloud_project_database_log_subscriptions.html.markdown: + cloud_project_database_log_subscriptions: subCategory: "" - description: 'cloud_project_database_log_subscriptions.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_log_subscriptions.html.markdown - title: cloud_project_database_log_subscriptions.html.markdown + name: cloud_project_database_log_subscriptions + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID.' engine: |- @@ -652,36 +525,31 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. subscription_ids: '- The list of log subscription ids of the cluster associated with the project.' importStatements: [] - cloud_project_database_m3db_namespace.html.markdown: + cloud_project_database_m3db_namespace: subCategory: "" - description: 'cloud_project_database_m3db_namespace.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_m3db_namespace.html.markdown - title: cloud_project_database_m3db_namespace.html.markdown + name: cloud_project_database_m3db_namespace + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' id: '- ID of the namespace.' - name: '- (Required, Forces new resource) Name of the namespace. A namespace named "default" is mapped with already created default namespace instead of creating a new namespace.' - resolution: '- (Optional) Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.' - retention_block_data_expiration_duration: '- (Optional) Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.' - retention_block_size_duration: '- (Optional, Forces new resource) Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.' - retention_buffer_future_duration: '- (Optional) Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' - retention_buffer_past_duration: '- (Optional) Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' - retention_period_duration: '- (Optional) Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.' + name: '- (Required, Forces new resource) Name of the namespace.' + resolution: '- Resolution for an aggregated namespace.' + retention_block_data_expiration_duration: '- Controls how long we wait before expiring stale data.' + retention_block_size_duration: '- Controls how long to keep a block in memory before flushing to a fileset on disk.' + retention_buffer_future_duration: '- Controls how far into the future writes to the namespace will be accepted.' + retention_buffer_past_duration: '- Controls how far into the past writes to the namespace will be accepted.' + retention_period_duration: '- Controls the duration of time that M3DB will retain data for the namespace.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - snapshot_enabled: '- (Optional) Defines whether M3DB will create snapshot files for this namespace.' + snapshot_enabled: '- SDefines whether M3db will create snapshot files for this namespace.' type: '- Type of namespace.' - update: '- (Default 20m)' - writes_to_commit_log_enabled: '- (Optional) Defines whether M3DB will include writes to this namespace in the commit log.' + writes_to_commit_log_enabled: '- Defines whether M3DB will include writes to this namespace in the commit log.' importStatements: [] - cloud_project_database_m3db_namespaces.html.markdown: + cloud_project_database_m3db_namespaces: subCategory: "" - description: 'cloud_project_database_m3db_namespaces.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_m3db_namespaces.html.markdown - title: cloud_project_database_m3db_namespaces.html.markdown + name: cloud_project_database_m3db_namespaces + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' namespace_ids: '- The list of namespaces ids of the M3DB cluster associated with the project.' @@ -689,71 +557,53 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_m3db_user.html.markdown: + cloud_project_database_m3db_user: subCategory: "" - description: 'cloud_project_database_m3db_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_m3db_user.html.markdown - title: cloud_project_database_m3db_user.html.markdown + name: cloud_project_database_m3db_user + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' - group: '- (Optional) Group of the user:' + group: '- See Argument Reference above.' id: '- ID of the user.' - name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + name: '- (Required, Forces new resource) Name of the user.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_mongodb_user.html.markdown: + cloud_project_database_mongodb_user: subCategory: "" - description: 'cloud_project_database_mongodb_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_mongodb_user.html.markdown - title: cloud_project_database_mongodb_user.html.markdown + name: cloud_project_database_mongodb_user + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' id: '- ID of the user.' - name: '- (Required, Forces new resource) Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' - roles: |- - - (Optional: if omit, default role) Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles - Available roles: + name: '- (Required) Name of the user with the authentication database in the format name@authDB, for example: johndoe@admin' + roles: '- Roles the user belongs to' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_opensearch_pattern.html.markdown: + cloud_project_database_opensearch_pattern: subCategory: "" - description: 'cloud_project_database_opensearch_pattern.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_opensearch_pattern.html.markdown - title: cloud_project_database_opensearch_pattern.html.markdown + name: cloud_project_database_opensearch_pattern + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - delete: '- (Default 20m)' - id: '- ID of the pattern.' - max_index_count: '- (Optional, Forces new resource) Maximum number of index for this pattern.' - pattern: '- (Required, Forces new resource) Pattern format.' + cluster_id: '- (Required) Cluster ID' + id: '- (Required) Pattern ID.' + max_index_count: '- Maximum number of index for this pattern.' + pattern: '- Pattern format.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_opensearch_patterns.html.markdown: + cloud_project_database_opensearch_patterns: subCategory: "" - description: 'cloud_project_database_opensearch_patterns.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_opensearch_patterns.html.markdown - title: cloud_project_database_opensearch_patterns.html.markdown + name: cloud_project_database_opensearch_patterns + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' pattern_ids: '- The list of patterns ids of the opensearch cluster associated with the project.' @@ -761,60 +611,47 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_opensearch_user.html.markdown: + cloud_project_database_opensearch_user: subCategory: "" - description: 'cloud_project_database_opensearch_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_opensearch_user.html.markdown - title: cloud_project_database_opensearch_user.html.markdown + name: cloud_project_database_opensearch_user + title: "" argumentDocs: - acls: '- (Optional) Acls of the user.' - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + acls: '- Acls of the user.' + cluster_id: '- (Required) Cluster ID' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' id: '- ID of the user.' - name: '- (Required, Forces new resource) Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' - pattern: '- (Required) Pattern of the ACL.' - permission: |- - - (Required) Permission of the ACL - Available permission: + name: '- (Required) Name of the user.' + pattern: '- Pattern of the ACL.' + permission: '- Permission of the ACL.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_postgresql_connection_pool.html.markdown: + cloud_project_database_postgresql_connection_pool: subCategory: "" - description: 'cloud_project_database_postgresql_connection_pool.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_postgresql_connection_pool.html.markdown - title: cloud_project_database_postgresql_connection_pool.html.markdown + name: cloud_project_database_postgresql_connection_pool + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' - database_id: '- (Required, Forces new resource) Database ID for a database that belongs to the Database cluster given above.' - delete: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID.' + database_id: '- Database ID for a database that belongs to the Database cluster given above.' mode: |- - - (Required) Connection mode to the connection pool + - Connection mode to the connection pool Available modes: - name: '- (Required, Forces new resource) Name of the connection pool.' + name: '- (Required) Name of the Connection pool.' port: '- Port of the connection pool.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - size: '- (Required) Size of the connection pool.' + size: '- Size of the connection pool.' ssl_mode: '- Ssl connection mode for the pool.' - update: '- (Default 20m)' uri: '- Connection URI to the pool.' - user_id: '- (Optional) Database user authorized to connect to the pool, if none all the users are allowed.' + user_id: '- Database user authorized to connect to the pool, if none all the users are allowed.' importStatements: [] - cloud_project_database_postgresql_connection_pools.html.markdown: + cloud_project_database_postgresql_connection_pools: subCategory: "" - description: 'cloud_project_database_postgresql_connection_pools.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_postgresql_connection_pools.html.markdown - title: cloud_project_database_postgresql_connection_pools.html.markdown + name: cloud_project_database_postgresql_connection_pools + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID.' connection_pool_ids: '- The list of patterns ids of the opensearch cluster associated with the project.' @@ -822,81 +659,61 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_database_postgresql_user.html.markdown: + cloud_project_database_postgresql_user: subCategory: "" - description: 'cloud_project_database_postgresql_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_postgresql_user.html.markdown - title: cloud_project_database_postgresql_user.html.markdown + name: cloud_project_database_postgresql_user + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' id: '- ID of the user.' - name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' - roles: |- - - (Optional: if omit, default role) Roles the user belongs to. - Available roles: + name: '- (Required) Name of the user.' + roles: '- Roles the user belongs to.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_redis_user.html.markdown: + cloud_project_database_redis_user: subCategory: "" - description: 'cloud_project_database_redis_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_redis_user.html.markdown - title: cloud_project_database_redis_user.html.markdown + name: cloud_project_database_redis_user + title: "" argumentDocs: - categories: '- (Optional) Categories of the user.' - channels: '- (Optional: if omit, all channels) Channels of the user.' - cluster_id: '- (Required, Forces new resource) Cluster ID.' - commands: '- (Optional) Commands of the user.' - create: '- (Default 20m)' + categories: '- Categories of the user.' + channels: '- Channels of the user.' + cluster_id: '- (Required) Cluster ID' + commands: '- Commands of the user.' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' id: '- ID of the user.' - keys: '- (Optional) Keys of the user.' - name: '- (Required, Forces new resource) Name of the user.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + keys: '- Keys of the user.' + name: '- (Required) Name of the user' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_user.html.markdown: + cloud_project_database_user: subCategory: "" - description: 'cloud_project_database_user.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_user.html.markdown - title: cloud_project_database_user.html.markdown + name: cloud_project_database_user + title: "" argumentDocs: - cluster_id: '- (Required, Forces new resource) Cluster ID.' - create: '- (Default 20m)' + cluster_id: '- (Required) Cluster ID' created_at: '- Date of the creation of the user.' - delete: '- (Default 20m)' engine: |- - - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + - (Required) The engine of the database cluster you want user information. To get a full list of available engine visit : + public documentation. Available engines: id: '- ID of the user.' - name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping.' - password: '- (Sensitive) Password of the user.' - password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + name: '- (Required) Name of the user.' service_name: |- - - (Required, Forces new resource) The id of the public cloud project. If omitted, + - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- Current status of the user.' - update: '- (Default 20m)' importStatements: [] - cloud_project_database_users.html.markdown: + cloud_project_database_users: subCategory: "" - description: 'cloud_project_database_users.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_database_users.html.markdown - title: cloud_project_database_users.html.markdown + name: cloud_project_database_users + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' engine: |- @@ -907,11 +724,10 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user_ids: '- The list of users ids of the database cluster associated with the project.' importStatements: [] - cloud_project_databases.html.markdown: + cloud_project_databases: subCategory: "" - description: 'cloud_project_databases.html.markdownsubcategory : "Managed Databases"' - name: cloud_project_databases.html.markdown - title: cloud_project_databases.html.markdown + name: cloud_project_databases + title: "" argumentDocs: cluster_ids: '- The list of managed databases ids of the project.' engine: |- @@ -921,19 +737,17 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_failover_ip_attach.html.markdown: + cloud_project_failover_ip_attach: subCategory: "" - description: 'cloud_project_failover_ip_attach.html.markdownsubcategory : "Additional IP"' - name: cloud_project_failover_ip_attach.html.markdown - title: cloud_project_failover_ip_attach.html.markdown + name: cloud_project_failover_ip_attach + title: "" argumentDocs: block: '- The IP block' continentCode: '- The Ip continent' geoloc: '- The Ip location' id: '- The Ip id' - ip: '- The failover ip address to attach' + ip: '- The failover ip address to query' progress: '- Current operation progress in percent' - routed_to: '- The GUID of an instance to which the failover IP address is be attached' routedTo: '- Instance where ip is routed to' service_name: |- - The id of the public cloud project. If omitted, @@ -941,111 +755,74 @@ resources: status: '- Ip status, can be ok or operationPending' subType: '- IP sub type, can be cloud or ovh' importStatements: [] - cloud_project_gateway.html.markdown: - subCategory: Public Cloud Network - description: 'cloud_project_gateway.html.markdownsubcategory: "Public Cloud Network"' - name: cloud_project_gateway.html.markdown - title: cloud_project_gateway.html.markdown - argumentDocs: - external_information: '- List of External Information of the gateway.' - id: '- Identifier of the gateway.' - interfaces: '- Interfaces list of the gateway.' - ip: '- External IP of the gateway.' - ips: '- List of external ips of the gateway.' - model: '- (Required) Model of the gateway.' - name: '- (Required) Name of the gateway.' - network_id: '- (Required) ID of the private network.' - region: '- (Required) Region of the gateway.' - service_name: '- (Required) ID of the private network.' - status: '- Status of the gateway.' - subnet_id: '- (Required) ID of the subnet.' - importStatements: [] - cloud_project_gateway_interface.html.markdown: + cloud_project_gateway_interface: subCategory: Public Cloud Network - description: 'cloud_project_gateway_interface.html.markdownsubcategory: "Public Cloud Network"' - name: cloud_project_gateway_interface.html.markdown - title: cloud_project_gateway_interface.html.markdown + name: cloud_project_gateway_interface + title: "" argumentDocs: id: '- (Required) ID of the gateway' - interface_id: '- ID of the interface' + interface_id: '- (Required) ID of the interface' ip: '- IP of the interface' network_id: '- Network ID of the interface' region: '- (Required) Region of the gateway' service_name: '- (Required) ID of the cloud project' - subnet_id: '- (Required) ID of the subnet to add' + subnet_id: '- ID of the subnet to add' importStatements: [] - cloud_project_kube.html.markdown: + cloud_project_kube: subCategory: "" - description: 'cloud_project_kube.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube.html.markdown - title: cloud_project_kube.html.markdown + name: cloud_project_kube + title: "" argumentDocs: - admissionplugins: '- (Optional) Kubernetes API server admission plugins customization' + admissionplugins: '- Kubernetes API server admission plugins customization' apiserver: '- Kubernetes API server customization' - client_certificate: '- The kubernetes API server client certificate.' - client_key: '- The kubernetes API server client key.' - cluster_ca_certificate: '- The kubernetes API server CA certificate.' control_plane_is_up_to_date: '- True if control-plane is up-to-date.' - create: '- (Default 10m)' customization: '- Deprecated (Optional) Use customization_apiserver and customization_kube_proxy instead. Kubernetes cluster customization' customization_apiserver: '- Kubernetes API server customization' customization_kube_proxy: '- Kubernetes kube-proxy customization' - default_vrack_gateway: '- If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.' - delete: '- (Default 10m)' - disabled: '- (Optional) Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.' - enabled: '- (Optional) Array of admission plugins enabled, default is ["NodeRestriction","AlwaysPulImages"] and only these admission plugins can be enabled at this time.' - host: '- The kubernetes API server URL.' - id: '- Managed Kubernetes Service ID' - iptables: '- (Optional) Kubernetes cluster kube-proxy customization of iptables specific config (durations format is RFC3339 duration, e.g. PT60S)' - ipvs: '- (Optional) Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is RFC3339 duration, e.g. PT60S)' + disabled: '- Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.' + enabled: '- Array of admission plugins enabled, default is ["NodeRestriction","AlwaysPulImages"] and only these admission plugins can be enabled at this time.' + iptables: '- Kubernetes cluster kube-proxy customization of iptables specific config.' + ipvs: '- Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is RFC3339 duration.' is_up_to_date: '- True if all nodes and control-plane are up-to-date.' + kube_id: '- The id of the managed kubernetes cluster.' kube_proxy: '- Kubernetes kube-proxy customization' - kube_proxy_mode: '- (Optional) Selected mode for kube-proxy. Changing this value recreates the resource, including ETCD user data. Defaults to iptables.' - kubeconfig: '- The kubeconfig file. Use this file to connect to your kubernetes cluster.' - kubeconfig_attributes: '- The kubeconfig file attributes.' - load_balancers_subnet_id: '- (Optional) Subnet ID to use for Public Load Balancers, this subnet must belong to  private_network_id. Defaults to the same subnet as the nodes (see nodes_subnet_id). Requires private_network_id to be defined. See more network requirements in the documentation for more information.' - min_sync_period: '- (Optional) Period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S). Must be greater than 0.' - name: '- (Optional) The name of the kubernetes cluster.' + kube_proxy_mode: '- Selected mode for kube-proxy.' + load_balancers_subnet_id: '- Openstack private network (or vRack) ID to use for load balancers.' + min_sync_period: '- Period that iptables rules are refreshed, in RFC3339 duration format.' + name: '- The name of the managed kubernetes cluster.' next_upgrade_versions: '- Kubernetes versions available for upgrade.' - nodes_subnet_id: '- (Optional) Subnet ID to use for nodes, this subnet must belong to private_network_id. Default uses the first subnet belonging to the private network with id private_network_id. This attribute requires private_network_id to be defined. Cannot be updated, it can only be used at cluster creation or reset.' + nodes_subnet_id: '- Openstack private network (or vRack) ID to use for nodes.' nodes_url: '- Cluster nodes URL.' - private_network_configuration: '- (Optional) The private network configuration. If this is set then the 2 parameters below shall be defined.' - private_network_id: '- (Optional) Private network ID to use. Changing this value recreates the resource, including ETCD user data. Defaults - not use private network.' - private_network_routing_as_default: '- Defines whether routing should default to using the nodes'' private interface, instead of their public interface. Default is false.' - region: '- a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: "GRA1". Defaults to all public cloud regions. Changing this value recreates the resource.' - scheduler: '- (Optional) IPVS scheduler.' - service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + private_network_id: '- OpenStack private network (or vrack) ID to use.' + region: '- The OVHcloud public cloud region ID of the managed kubernetes cluster.' + scheduler: '- IPVS scheduler.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' status: '- Cluster status. Should be normally set to ''READY''.' - sync_period: '- (Optional) Minimum period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S).' - tcp_fin_timeout: '- (Optional) Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' - tcp_timeout: '- (Optional) Timeout value used for idle IPVS TCP sessions in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' - udp_timeout: '- (Optional) timeout value used for IPVS UDP packets in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' - update: '- (Default 10m)' - update_policy: '- Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].' + sync_period: '- Minimum period that iptables rules are refreshed, in RFC3339 duration format.' + tcp_fin_timeout: '- Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration.' + tcp_timeout: '- Timeout value used for idle IPVS TCP sessions in RFC3339 duration.' + udp_timeout: '- timeout value used for IPVS UDP packets in RFC3339 duration.' + update_policy: '- Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]''.' url: '- Management URL of your cluster.' - version: '- (Optional) kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.' + version: '- Kubernetes version of the managed kubernetes cluster.' importStatements: [] - cloud_project_kube_iprestrictions.html.markdown: + cloud_project_kube_iprestrictions: subCategory: "" - description: 'cloud_project_kube_iprestrictions.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube_iprestrictions.html.markdown - title: cloud_project_kube_iprestrictions.html.markdown + name: cloud_project_kube_iprestrictions + title: "" argumentDocs: - create: '- (Default 10m)' - delete: '- (Default 5m)' - ips: '- List of CIDR authorized to interact with the managed Kubernetes cluster.' - kube_id: '- The id of the managed Kubernetes cluster. Changing this value recreates the resource.' - service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' - update: '- (Default 5m)' + ips: '- The list of CIDRs that restricts the access to the API server.' + kube_id: '- The id of the managed kubernetes cluster.' + service_name: |- + - (Optional) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_kube_nodepool.html.markdown: + cloud_project_kube_nodepool: subCategory: "" - description: 'cloud_project_kube_nodepool.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube_nodepool.html.markdown - title: cloud_project_kube_nodepool.html.markdown + name: cloud_project_kube_nodepool + title: "" argumentDocs: - annotations: '- Annotations to apply to each node' - anti_affinity: '- (Optional) should the pool use the anti-affinity feature. Default to false. Changing this value recreates the resource.' + anti_affinity: '- (Optional) should the pool use the anti-affinity feature. Default to false.' autoscale: '- (Optional) Enable auto-scaling for the pool. Default to false.' autoscaling_scale_down_unneeded_time_seconds: |- - (Optional) scaleDownUnneededTimeSeconds autoscaling parameter @@ -1057,43 +834,36 @@ resources: - (Optional) scaleDownUtilizationThreshold autoscaling parameter Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down available_nodes: '- Number of nodes which are actually ready in the pool' - create: '- (Default 20m)' created_at: '- Creation date' current_nodes: '- Number of nodes present in the pool' - delete: '- (Default 10m)' desired_nodes: '- number of nodes to start.' - effect: '- mandatory possible values: NoExecute, NoSchedule, PreferNoSchedule' - finalizers: '- Finalizers to apply to each node. A finalizer name must be fully qualified, e.g. kubernetes.io/pv-protection , where you prefix it with hostname of your service which is related to the controller responsible for the finalizer.' flavor: '- Flavor name' flavor_name: |- - - a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: "b2-7". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. - Changing this value recreates the resource. - key: '- mandatory' - kube_id: '- The id of the managed kubernetes cluster. Changing this value recreates the resource.' - labels: '- Labels to apply to each node' - max_nodes: '- maximum number of nodes allowed in the pool. Setting desired_nodes over this value will raise an error.' - metadata: '- Metadata of each node in the pool' - min_nodes: '- minimum number of nodes allowed in the pool. Setting desired_nodes under this value will raise an error.' - monthly_billed: '- (Optional) should the nodes be billed on a monthly basis. Default to false. Changing this value recreates the resource.' - name: '- (Optional) The name of the nodepool. Warning: _ char is not allowed! Changing this value recreates the resource.' + - a valid OVHcloud public cloud flavor ID in which the nodes will be started. + Ex: "b2-7". Changing this value recreates the resource. + You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/ + kube_id: '- The id of the managed kubernetes cluster.' + max_nodes: |- + - maximum number of nodes allowed in the pool. + Setting desired_nodes over this value will raise an error. + min_nodes: |- + - minimum number of nodes allowed in the pool. + Setting desired_nodes under this value will raise an error. + monthly_billed: '- (Optional) should the nodes be billed on a monthly basis. Default to false.' + name: '- The name of the node pool.' project_id: '- Project id' - service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + service_name: |- + - (Optional) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. size_status: '- Status describing the state between number of nodes wanted and available ones' - spec: '- Spec of each node in the pool' status: '- Current status' - taints: '- Taints to apply to each node NodeSpec kubernetes documentation' - 'template ': '- (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:' - unschedulable: '- If true, set nodes as un-schedulable' up_to_date_nodes: '- Number of nodes with the latest version installed in the pool' - update: '- (Default 10m)' updated_at: '- Last update date' - value: '- (Optional)' importStatements: [] - cloud_project_kube_nodepool_nodes.html.markdown: + cloud_project_kube_nodepool_nodes: subCategory: "" - description: 'cloud_project_kube_nodepool_nodes.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube_nodepool_nodes.html.markdown - title: cloud_project_kube_nodepool_nodes.html.markdown + name: cloud_project_kube_nodepool_nodes + title: "" argumentDocs: created_at: '- Creation date.' deployed_at: '- (Optional) Date of the effective deployment.' @@ -1113,11 +883,10 @@ resources: updated_at: '- Last update date.' version: '- Version in which the node is.' importStatements: [] - cloud_project_kube_nodes.html.markdown: + cloud_project_kube_nodes: subCategory: "" - description: 'cloud_project_kube_nodes.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube_nodes.html.markdown - title: cloud_project_kube_nodes.html.markdown + name: cloud_project_kube_nodes + title: "" argumentDocs: created_at: '- Creation date' deployed_at: '- (Optional) Date of the effective deployment' @@ -1137,32 +906,29 @@ resources: updated_at: '- Last update date' version: '- Version in which the node is' importStatements: [] - cloud_project_kube_oidc.html.markdown: + cloud_project_kube_oidc: subCategory: "" - description: 'cloud_project_kube_oidc.html.markdownsubcategory : "Managed Kubernetes Service"' - name: cloud_project_kube_oidc.html.markdown - title: cloud_project_kube_oidc.html.markdown + name: cloud_project_kube_oidc + title: "" argumentDocs: client_id: '- The OIDC client ID.' - create: '- (Default 10m)' - delete: '- (Default 10m)' issuer_url: '- The OIDC issuer url.' - kube_id: '- The ID of the managed kubernetes cluster. Changing this value recreates the resource.' - oidc_ca_content: '- Content of the certificate for the CA, in Base64 format, that signed your identity provider''s web certificate. Defaults to the host''s root CAs.' + kube_id: '- The id of the managed kubernetes cluster.' + oidc_ca_content: '- Content of the certificate for the CA, in base64 format, that signed your identity provider''s web certificate. Defaults to the host''s root CAs.' oidc_groups_claim: '- Array of JWT claim to use as the user''s group. If the claim is present it must be an array of strings.' - oidc_groups_prefix: '- Prefix prepended to group claims to prevent clashes with existing names (such as system:groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.' + oidc_groups_prefix: '- Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.' oidc_required_claim: '- Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."' - oidc_signing_algs: '- Array of signing algorithms accepted. Default is RS256.' - oidc_username_claim: '- JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.' - oidc_username_prefix: '- Prefix prepended to username claims to prevent clashes with existing names (such as system:users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn''t set and oidc_username_claim is a value other than email the prefix defaults to issuer_url where issuer_url is the value of issuer_url. The value - can be used to disable all prefixing.' - service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' - update: '- (Default 10m)' + oidc_signing_algs: '- Array of signing algorithms accepted. Default is "RS256".' + oidc_username_claim: '- JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.' + oidc_username_prefix: '- Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn''t set and oidc_username_claim is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing.' + service_name: |- + - (Optional) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_loadbalancer.html.markdown: + cloud_project_loadbalancer: subCategory: "" - description: 'cloud_project_loadbalancer.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_loadbalancer.html.markdown - title: cloud_project_loadbalancer.html.markdown + name: cloud_project_loadbalancer + title: "" argumentDocs: created_at: '- Date of creation of the loadbalancer' flavor_id: ': ID of the flavor' @@ -1181,11 +947,10 @@ resources: vip_network_id: ': Openstack ID of the network for the Virtual IP' vip_subnet_id: ': ID of the subnet for the Virtual IP' importStatements: [] - cloud_project_loadbalancers.html.markdown: + cloud_project_loadbalancers: subCategory: "" - description: 'cloud_project_loadbalancers.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_loadbalancers.html.markdown - title: cloud_project_loadbalancers.html.markdown + name: cloud_project_loadbalancers + title: "" argumentDocs: created_at: '- Date of creation of the loadbalancer' flavor_id: ': ID of the flavor' @@ -1206,136 +971,44 @@ resources: vip_network_id: ': Openstack ID of the network for the Virtual IP' vip_subnet_id: ': ID of the subnet for the Virtual IP' importStatements: [] - cloud_project_network_private.html.markdown: + cloud_project_network_private: subCategory: "" - description: 'cloud_project_network_private.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_network_private.html.markdown - title: cloud_project_network_private.html.markdown + name: cloud_project_network_private + title: "" argumentDocs: - id: '- The id of the network' - name: '- (Required) The name of the network.' - regions: |- - - an array of valid OVHcloud public cloud region ID in which the network - will be available. Ex.: "GRA1". Defaults to all public cloud regions. - regions_attributes: '- A map representing information about the region.' - regions_attributes/openstackid: '- The private network id in the region.' - regions_attributes/region: '- The id of the region.' - regions_attributes/status: '- The status of the network in the region.' - regions_status: '- (Deprecated) A map representing the status of the network per region.' - regions_status/region: '- (Deprecated) The id of the region.' - regions_status/status: '- (Deprecated) The status of the network in the region.' - service_name: |- - - (Required) The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - status: '- the status of the network. should be normally set to ''ACTIVE''.' - type: '- the type of the network. Either ''private'' or ''public''.' - vlan_id: |- - - a vlan id to associate with the network. - Changing this value recreates the resource. Defaults to 0. + name: ': Name of the network' + network_id: ': (Required) ID of the network' + openstack_id: ': Network ID on openstack region' + region: ': Name of the region' + regions: ': Information about the private network in the openstack region' + service_name: '- (Required) The ID of the public cloud project.' + status: ': Status of the network' + type: ': Type of the network' + vlan_id: ': VLAN ID of the network' importStatements: [] - cloud_project_network_private_subnet.html.markdown: + cloud_project_network_private_subnets: subCategory: "" - description: 'cloud_project_network_private_subnet.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_network_private_subnet.html.markdown - title: cloud_project_network_private_subnet.html.markdown + name: cloud_project_network_private_subnets + title: "" argumentDocs: - cidr: '- Ip Block representing the subnet cidr.' - dhcp: |- - - (Optional) Enable DHCP. - Changing this forces a new resource to be created. Defaults to false. - dhcp_id: '- See Argument Reference above.' - end: |- - - (Required) Last ip for this region. - Changing this value recreates the subnet. - gateway_ip: '- The IP of the gateway' - ip_pools: '- List of ip pools allocated in the subnet.' - ip_pools/dhcp: '- DHCP enabled.' - ip_pools/end: '- Last ip for this region.' - ip_pools/network: '- Global network with cidr.' - ip_pools/region: '- Region where this subnet is created.' - ip_pools/start: '- First ip for this region.' - network: |- - - (Required) Global network in CIDR format. - Changing this value recreates the subnet - network_id: |- - - (Required) The id of the network. - Changing this forces a new resource to be created. - no_gateway: |- - - Set to true if you don't want to set a default gateway IP. - Changing this value recreates the resource. Defaults to false. - region: |- - - The region in which the network subnet will be created. - Ex.: "GRA1". Changing this value recreates the resource. - service_name: |- - - (Required) The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - start: |- - - (Required) First ip for this region. - Changing this value recreates the subnet. + cidr: '- CIDR of the subnet' + dhcp: '- Whether or not if DHCP is enabled' + dhcp_enabled: '- Whether or not if DHCP is enabled for the subnet' + end: '- Last IP for this region (eg: 192.168.1.24)' + gateway_ip: '- Gateway IP of the subnet' + id: '- ID of the subnet' + ip_pools: '- List of ip pools allocated in the subnet' + network: '- Global network with cidr (eg: 192.168.1.0/24)' + network_id: ': (Required) ID of the network' + region: '- Region associated to the subnet' + service_name: '- (Required) The ID of the public cloud project.' + start: '- First IP for this region (eg: 192.168.1.12)' + subnets: '- List of subnets' importStatements: [] - cloud_project_network_private_subnet_v2.html.markdown: + cloud_project_network_privates: subCategory: "" - description: 'cloud_project_network_private_subnet_v2.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_network_private_subnet_v2.html.markdown - title: cloud_project_network_private_subnet_v2.html.markdown - argumentDocs: - allocation_pools: |- - - List of IP allocation pools - Changing this value recreates the resource. - cidr: |- - - (Required) IP range of the subnet - Changing this value recreates the subnet. - dhcp: |- - - (Optional) Enable DHCP. - Changing this forces a new resource to be created. Defaults to true. - dns_nameservers: |- - - DNS nameservers used by DHCP - Changing this value recreates the resource. Defaults to OVH default DNS nameserver. - enable_gateway_ip: |- - - Set to true if you want to set a default gateway IP. - Changing this value recreates the resource. Defaults to true. - gateway_ip: '- See Argument Reference above.' - host_routes: |- - - List of custom host routes. - Changing this value recreates the resource. - name: |- - - (Required) Name of the subnet - Changing this value recreates the subnet. - network_id: |- - - (Required) The id of the network. - Changing this forces a new resource to be created. - region: |- - - (Required) The region in which the network subnet will be created. - Ex.: "GRA1". Changing this value recreates the resource. - service_name: |- - - (Required) The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - importStatements: [] - cloud_project_network_private_subnets.html.markdown: - subCategory: "" - description: 'cloud_project_network_private_subnets.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_network_private_subnets.html.markdown - title: cloud_project_network_private_subnets.html.markdown - argumentDocs: - cidr: '- CIDR of the subnet' - dhcp: '- Whether or not if DHCP is enabled' - dhcp_enabled: '- Whether or not if DHCP is enabled for the subnet' - end: '- Last IP for this region (eg: 192.168.1.24)' - gateway_ip: '- Gateway IP of the subnet' - id: '- ID of the subnet' - ip_pools: '- List of ip pools allocated in the subnet' - network: '- Global network with cidr (eg: 192.168.1.0/24)' - network_id: ': (Required) ID of the network' - region: '- Region associated to the subnet' - service_name: '- (Required) The ID of the public cloud project.' - start: '- First IP for this region (eg: 192.168.1.12)' - subnets: '- List of subnets' - importStatements: [] - cloud_project_network_privates.html.markdown: - subCategory: "" - description: 'cloud_project_network_privates.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_network_privates.html.markdown - title: cloud_project_network_privates.html.markdown + name: cloud_project_network_privates + title: "" argumentDocs: id: '- ID of the network' name: '- Name of the network' @@ -1348,11 +1021,10 @@ resources: type: '- Type of the network' vlan_id: '- VLAN ID of the network' importStatements: [] - cloud_project_region.html.markdown: + cloud_project_region: subCategory: "" - description: 'cloud_project_region.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_region.html.markdown - title: cloud_project_region.html.markdown + name: cloud_project_region + title: "" argumentDocs: continent_code: |- - the code of the geographic continent the region is running. @@ -1369,30 +1041,28 @@ resources: services: '- The list of public cloud services running within the region' status: '- the status of the service' importStatements: [] - cloud_project_region_loadbalancer_log_subscription.markdown: + cloud_project_region_loadbalancer_log_subscription: subCategory: "" - description: 'cloud_project_region_loadbalancer_log_subscription.markdownsubcategory : "Log Subscriptions"' - name: cloud_project_region_loadbalancer_log_subscription.markdown - title: cloud_project_region_loadbalancer_log_subscription.markdown + name: cloud_project_region_loadbalancer_log_subscription + title: "" argumentDocs: created_at: '- The date of the subscription creation' - kind: '- haproxy Changing this value recreates the resource.' + kind: '- Router used for forwarding log' ldp_service_name: '- LDP service name' - loadbalancer_id: '- Loadbalancer id to get the logs Changing this value recreates the resource.' + loadbalancer_id: '- Loadbalancer id to get the logs' operation_id: '- The operation ID' - region_name: '- A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: "GRA11". Changing this value recreates the resource.' + region_name: '- A valid OVHcloud public cloud region name in which the loadbalancer is available. Ex.: "GRA11".' resource_name: '- The resource name' resource_type: '- The resource type' - service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' - stream_id: '- Data stream id to use for the subscription Changing this value recreates the resource.' - subscription_id: '- The subscription id' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + stream_id: '- Data stream id to use for the subscription' + subscription_id: '- Subscription id' updated_at: '- The last update of the subscription' importStatements: [] - cloud_project_region_loadbalancer_log_subscriptions.markdown: + cloud_project_region_loadbalancer_log_subscriptions: subCategory: "" - description: 'cloud_project_region_loadbalancer_log_subscriptions.markdownsubcategory : "Log Subscriptions"' - name: cloud_project_region_loadbalancer_log_subscriptions.markdown - title: cloud_project_region_loadbalancer_log_subscriptions.markdown + name: cloud_project_region_loadbalancer_log_subscriptions + title: "" argumentDocs: kind: '- (Optional) currently only "haproxy" is available' loadbalancer_id: '- Loadbalancer id to get the logs' @@ -1400,33 +1070,10 @@ resources: service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' subscription_ids: '- The list of the subscription id' importStatements: [] - cloud_project_region_storage_presign.html.markdown: - subCategory: "" - description: 'cloud_project_region_storage_presign.html.markdownsubcategory : "Object Storage"' - name: cloud_project_region_storage_presign.html.markdown - title: cloud_project_region_storage_presign.html.markdown - argumentDocs: - expire: |- - - (Required) Define, in seconds, for how long your URL will be - valid. - method: |- - - (Required) The method you want to use to interact with your - object. Can be either 'GET' or 'PUT'. - name: '- (Required) The name of your S3 storage container/bucket.' - object: '- (Required) The name of the object in your S3 bucket.' - region_name: |- - - (Required) The region in which your storage is located. Must - be in uppercase. Ex.: "GRA". - service_name: |- - - (Required) The id of the public cloud project. If omitted, - the OVH_CLOUD_PROJECT_SERVICE environment variable is used. - url: '- Computed URL result.' - importStatements: [] - cloud_project_regions.html.markdown: + cloud_project_regions: subCategory: "" - description: 'cloud_project_regions.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_regions.html.markdown - title: cloud_project_regions.html.markdown + name: cloud_project_regions + title: "" argumentDocs: has_services_up: |- - (Optional) List of services which has to be UP in regions. @@ -1437,40 +1084,30 @@ resources: - (Required) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_user.html.markdown: + cloud_project_user: subCategory: "" - description: 'cloud_project_user.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_user.html.markdown - title: cloud_project_user.html.markdown + name: cloud_project_user + title: "" argumentDocs: creation_date: '- the date the user was created.' - description: '- A description associated with the user.' + description: '- See Argument Reference above.' id: '- id of the role' name: '- name of the role' - openstack_rc: |- - - a convenient map representing an openstack_rc file. - Note: no password nor sensitive token is set in this map. - password: |- - - (Sensitive) the password generated for the user. The password can - be used with the Openstack API. This attribute is sensitive and will only be - retrieve once during creation. permissions: '- list of permissions associated with the role' - role_name: '- The name of a role. See role_names.' - role_names: '- A list of role names. Values can be:' roles: '- A list of roles associated with the user.' service_name: |- - - (Required) The id of the public cloud project. If omitted, + - (Required) The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. status: '- the status of the user. should be normally set to ''ok''.' + user_id: '- (Required) The ID of a public cloud project''s user.' username: |- - the username generated for the user. This username can be used with the Openstack API. importStatements: [] - cloud_project_user_s3_credential.html.markdown: + cloud_project_user_s3_credential: subCategory: "" - description: 'cloud_project_user_s3_credential.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_user_s3_credential.html.markdown - title: cloud_project_user_s3_credential.html.markdown + name: cloud_project_user_s3_credential + title: "" argumentDocs: access_key_id: '- the Access Key ID' secret_access_key: '- (Sensitive) the Secret Access Key' @@ -1479,11 +1116,10 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user_id: '- (Required) The ID of a public cloud project''s user.' importStatements: [] - cloud_project_user_s3_credentials.html.markdown: + cloud_project_user_s3_credentials: subCategory: "" - description: 'cloud_project_user_s3_credentials.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_user_s3_credentials.html.markdown - title: cloud_project_user_s3_credentials.html.markdown + name: cloud_project_user_s3_credentials + title: "" argumentDocs: access_key_ids: '- The list of the Access Key ID associated with this user.' service_name: |- @@ -1491,23 +1127,21 @@ resources: the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user_id: '- (Required) The ID of a public cloud project''s user.' importStatements: [] - cloud_project_user_s3_policy.html.markdown: + cloud_project_user_s3_policy: subCategory: "" - description: 'cloud_project_user_s3_policy.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_user_s3_policy.html.markdown - title: cloud_project_user_s3_policy.html.markdown + name: cloud_project_user_s3_policy + title: "" argumentDocs: - policy: '- (Required) The policy document. This is a JSON formatted string. See examples of policies on public documentation.' + policy: '- (Required) The policy document. This is a JSON formatted string.' service_name: |- - (Required) The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. user_id: '- (Required) The ID of a public cloud project''s user.' importStatements: [] - cloud_project_users.html.markdown: + cloud_project_users: subCategory: "" - description: 'cloud_project_users.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_users.html.markdown - title: cloud_project_users.html.markdown + name: cloud_project_users + title: "" argumentDocs: creation_date: '- the date the user was created.' description: '- See Argument Reference above.' @@ -1525,11 +1159,10 @@ resources: the Openstack API. users: '- The list of users of a public cloud project.' importStatements: [] - cloud_project_volume.html.markdown: + cloud_project_volume: subCategory: "" - description: 'cloud_project_volume.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_volume.html.markdown - title: cloud_project_volume.html.markdown + name: cloud_project_volume + title: "" argumentDocs: name: '- The name of the volume (E.g.: "GRA", meaning Gravelines, for region "GRA1")' region_name: '- (Required) A valid OVHcloud public cloud region name in which the volume is available. Ex.: "GRA11".' @@ -1537,11 +1170,10 @@ resources: size: '- The size of the volume' volume_id: '- (Required) Volume id to get the informations' importStatements: [] - cloud_project_volumes.html.markdown: + cloud_project_volumes: subCategory: "" - description: 'cloud_project_volumes.html.markdownsubcategory : "Cloud Project"' - name: cloud_project_volumes.html.markdown - title: cloud_project_volumes.html.markdown + name: cloud_project_volumes + title: "" argumentDocs: id: '- The id of the volume' name: '- The name of the volume' @@ -1550,11 +1182,10 @@ resources: size: '- The size of the volume' volumes: '-' importStatements: [] - cloud_project_vrack.html.markdown: + cloud_project_vrack: subCategory: "" - description: 'cloud_project_vrack.html.markdownsubcategory : "Public Cloud Network"' - name: cloud_project_vrack.html.markdown - title: cloud_project_vrack.html.markdown + name: cloud_project_vrack + title: "" argumentDocs: decription: '- The description of the vrack' id: '- The id of the vrack' @@ -1563,26 +1194,10 @@ resources: - The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - cloud_project_workflow_backup.html.markdown: - subCategory: "" - description: 'cloud_project_workflow_backup.html.markdownsubcategory : "VM Instances"' - name: cloud_project_workflow_backup.html.markdown - title: cloud_project_workflow_backup.html.markdown - argumentDocs: - backup_name: '- (Optional) The name of the backup files that are created. If empty, the name attribute is used.' - cron: '- (Mandatory) The cron periodicity at which the backup workflow is scheduled' - instanceId: the id of the instance to back up - max_execution_count: '- (Optional) The number of times the worflow is run. Default value is 0 which means that the workflow will be scheduled continously until its deletion' - name: '- (Mandatory) The worflow name that is used in the UI' - region_name: '- (Mandatory) The name of the openstack region.' - rotation: '- (Mandatory) The number of backup that are retained.' - service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' - importStatements: [] - cloud_projects.html.markdown: + cloud_projects: subCategory: "" - description: 'cloud_projects.html.markdownsubcategory : "Cloud Project"' - name: cloud_projects.html.markdown - title: cloud_projects.html.markdown + name: cloud_projects + title: "" argumentDocs: access: '- Project access' creation_date: '- Project creation date' @@ -1602,31 +1217,30 @@ resources: unleash: '- Project unleashed' urn: '- URN of the private database, used when writing IAM policies' importStatements: [] - dbaas_logs_cluster.html.markdown: - subCategory: "" - description: 'dbaas_logs_cluster.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_cluster.html.markdown - title: dbaas_logs_cluster.html.markdown - argumentDocs: - archive_allowed_networks: '- List of IP blocks' - cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' - cluster_type: '- type of cluster (DEDICATED, PRO or TRIAL)' - dedicated_input_pem: '- PEM for dedicated inputs' - direct_input_allowed_networks: '- List of IP blocks' - direct_input_pem: '- PEM for direct inputs' - hostname: '- cluster hostname hosting tenant' - is_default: '- true if all content generated by given service will be placed on this cluster' - is_unlocked: '- true if given service can perform advanced operations on cluster' - query_allowed_networks: '- List of IP blocks' - region: '- datacenter localization' - service_name: '- (Required) The service name' - urn: '- URN of the DBaaS' + dbaas_logs_cluster: + subCategory: "" + name: dbaas_logs_cluster + title: "" + argumentDocs: + archive_allowed_networks: is allowed networks for ARCHIVE flow type + cluster_id: '- Cluster ID. If not provided, the default cluster_id is returned' + cluster_type: is type of cluster (DEDICATED, PRO or TRIAL) + dedicated_input_pem: is PEM for dedicated inputs + direct_input_allowed_networks: is allowed networks for DIRECT_INPUT flow type + direct_input_pem: is PEM for direct inputs + hostname: is cluster hostname hosting the tenant + id: is the cluster id + is_default: is true if all content generated by given service will be placed on this cluster + is_unlocked: is true if given service can perform advanced operations on cluster + query_allowed_networks: is allowed networks for QUERY flow type + region: is datacenter localization + service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' + urn: is the URN of the DBaas logs instance importStatements: [] - dbaas_logs_cluster_retention.html.markdown: + dbaas_logs_cluster_retention: subCategory: "" - description: 'dbaas_logs_cluster_retention.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_cluster_retention.html.markdown - title: dbaas_logs_cluster_retention.html.markdown + name: dbaas_logs_cluster_retention + title: "" argumentDocs: cluster_id: '- (Required) Cluster ID' duration: '- Indexed duration expressed in ISO-8601 format' @@ -1634,151 +1248,75 @@ resources: retention_id: '- ID of the retention object' service_name: '- (Required) The service name. It''s the ID of your Logs Data Platform instance.' importStatements: [] - dbaas_logs_clusters.html.markdown: + dbaas_logs_clusters: subCategory: "" - description: 'dbaas_logs_clusters.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_clusters.html.markdown - title: dbaas_logs_clusters.html.markdown + name: dbaas_logs_clusters + title: "" argumentDocs: service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' uuids: is the cluster id importStatements: [] - dbaas_logs_input.html.markdown: - subCategory: "" - description: 'dbaas_logs_input.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_input.html.markdown - title: dbaas_logs_input.html.markdown - argumentDocs: - allowed_networks: '- List of IP blocks' - autoscale: '- Whether the workload is auto-scaled (mutually exclusive with parameter nb_instance)' - configuration: '- (Required) Input configuration' - created_at: '- Input creation' - current_nb_instance: '- Number of instance running (returned by the API)' - description: '- (Required) Input description' - engine_id: '- (Required) Input engine ID' - exposed_port: '- Port' - filter_section: '- (Optional) The filter section of logstash.conf' - flowgger: '- (Optional) Flowgger configuration' - hostname: '- Hostname' - input_id: '- Input ID' - input_section: '- (Required) The filter section of logstash.conf' - is_restart_required: '- Indicate if input need to be restarted' - log_format: '- Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"' - log_framing: '- Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"' - logstash: '- (Optional) Logstash configuration' - max_scale_instance: '- Maximum number of instances in auto-scaled mode' - min_scale_instance: '- Minimum number of instances in auto-scaled mode' - nb_instance: '- Number of instance running (input, mutually exclusive with parameter autoscale)' - pattern_section: '- (Optional) The list of customs Grok patterns' - public_address: '- Input IP address' - service_name: '- (Required) service name' - ssl_certificate: '- Input SSL certificate' - status: '- init: configuration required, pending: ready to start, running: available' - stream_id: '- (Required) Associated Graylog stream' - title: '- (Required) Input title' - updated_at: '- Input last update' - importStatements: [] - dbaas_logs_input_engine.html.markdown: + dbaas_logs_input_engine: subCategory: "" - description: 'dbaas_logs_input_engine.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_input_engine.html.markdown - title: dbaas_logs_input_engine.html.markdown + name: dbaas_logs_input_engine + title: "" argumentDocs: is_deprecated: '- Indicates if engine will soon not be supported.' name: '- The name of the logs input engine.' service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' version: '- Software version' importStatements: [] - dbaas_logs_output_graylog_stream.html.markdown: + dbaas_logs_output_graylog_stream: subCategory: "" - description: 'dbaas_logs_output_graylog_stream.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_output_graylog_stream.html.markdown - title: dbaas_logs_output_graylog_stream.html.markdown + name: dbaas_logs_output_graylog_stream + title: "" argumentDocs: - can_alert: '- Indicates if the current user can create alert on the stream' - cold_storage_compression: '- Cold storage compression method. One of "LZMA", "GZIP", "DEFLATED", "ZSTD"' - cold_storage_content: '- ColdStorage content. One of "ALL", "GLEF", "PLAIN"' + cold_storage_compression: '- Cold storage compression method' + cold_storage_content: '- ColdStorage content' cold_storage_enabled: '- Is Cold storage enabled?' cold_storage_notify_enabled: '- Notify on new Cold storage archive' cold_storage_retention: '- Cold storage retention in year' - cold_storage_target: '- ColdStorage destination. One of "PCA", "PCS"' + cold_storage_target: '- ColdStorage destination' created_at: '- Stream creation' - description: '- (Required) Stream description' + description: '- Stream description' indexing_enabled: '- Enable ES indexing' indexing_max_size: '- Maximum indexing size (in GB)' indexing_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of the maximum configured setting' is_editable: '- Indicates if you are allowed to edit entry' is_shareable: '- Indicates if you are allowed to share entry' nb_alert_condition: '- Number of alert condition' - nb_archive: '- Number of coldstored archivesr' + nb_archive: '- Number of coldstored archives' parent_stream_id: '- Parent stream ID' pause_indexing_on_max_size: '- If set, pause indexing when maximum size is reach' retention_id: '- Retention ID' - service_name: '- (Required) The service name' + service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' stream_id: '- Stream ID' - title: '- (Required) Stream description' - updated_at: '- Stream last updater' + title: '- Stream description' + updated_at: '- Stream last update' web_socket_enabled: '- Enable Websocket' write_token: '- Write token of the stream (empty if the caller is not the owner of the stream)' importStatements: [] - dbaas_logs_output_opensearch_alias.html.markdown: - subCategory: "" - description: 'dbaas_logs_output_opensearch_alias.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_output_opensearch_alias.html.markdown - title: dbaas_logs_output_opensearch_alias.html.markdown - argumentDocs: - alias_id: '- Alias Id' - created_at: '- Alias creation' - description: '- (Required) Index description' - indexes: '- (Optional) List of attached indexes id' - is_editable: '- Indicates if you are allowed to edit entry' - max_size: '- Maximum index size (in bytes)' - name: '- Alias name' - nb_index: '- Number of indices linked' - nb_stream: '- Number of streams linked' - service_name: '- (Required) The service name' - streams: '- (Optional) List of attached streams id' - suffix: '- (Required) Index suffix' - updated_at: '- Input last update' - importStatements: [] - dbaas_logs_output_opensearch_index.html.markdown: + dbaas_logs_output_opensearch_index: subCategory: "" - description: 'dbaas_logs_output_opensearch_index.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_output_opensearch_index.html.markdown - title: dbaas_logs_output_opensearch_index.html.markdown + name: dbaas_logs_output_opensearch_index + title: "" argumentDocs: alert_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of its maximum capacity' created_at: '- Index creation' current_size: '- Current index size (in bytes)' - description: '- (Required) Index description' + description: '- Index description' index_id: '- Index ID' is_editable: '- Indicates if you are allowed to edit entry' max_size: '- Maximum index size (in bytes)' name: '- Index name' - nb_shard: '- (Required) Number of shards' - service_name: '- (Required) The service name' - suffix: '- (Required) Index suffix' + nb_shard: '- Number of shard' + service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' updated_at: '- Index last update' importStatements: [] - dbaas_logs_token.html.markdown: + dedicated_ceph: subCategory: "" - description: 'dbaas_logs_token.html.markdownsubcategory : "Logs Data Platform"' - name: dbaas_logs_token.html.markdown - title: dbaas_logs_token.html.markdown - argumentDocs: - cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' - created_at: '- Token creation date' - name: '- Name of the token' - service_name: '- (Required) The LDP service name' - token_id: '- ID of the token' - updated_at: '- Token last update date' - value: '- Token value' - importStatements: [] - dedicated_ceph.html.markdown: - subCategory: "" - description: 'dedicated_ceph.html.markdownsubcategory : "Cloud Disk Array"' - name: dedicated_ceph.html.markdown - title: dedicated_ceph.html.markdown + name: dedicated_ceph + title: "" argumentDocs: ceph_mons: '- list of CEPH monitors IPs' ceph_version: '- CEPH cluster version' @@ -1791,22 +1329,10 @@ resources: status: '- the status of the service' urn: '- URN of the CEPH instance' importStatements: [] - dedicated_ceph_acl.markdown: - subCategory: "" - description: 'dedicated_ceph_acl.markdownsubcategory : "Cloud Disk Array"' - name: dedicated_ceph_acl.markdown - title: dedicated_ceph_acl.markdown - argumentDocs: - family: '- IP family. IPv4 or IPv6' - netmask: '- (Required) The network mask to apply' - network: '- (Required) The network IP to authorize' - service_name: '- (Required) The internal name of your dedicated CEPH' - importStatements: [] - dedicated_installation_template.html.markdown: + dedicated_installation_template: subCategory: "" - description: 'dedicated_installation_template.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_installation_template.html.markdown - title: dedicated_installation_template.html.markdown + name: dedicated_installation_template + title: "" argumentDocs: bit_format: ': Template bit format (32 or 64).' category: '- Category of this template (informative only).' @@ -1826,19 +1352,17 @@ resources: subfamily: '- Subfamily of the template.' template_name: '- (Required) The name of the template.' importStatements: [] - dedicated_installation_templates.html.markdown: + dedicated_installation_templates: subCategory: "" - description: 'dedicated_installation_templates.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_installation_templates.html.markdown - title: dedicated_installation_templates.html.markdown + name: dedicated_installation_templates + title: "" argumentDocs: result: '- The list of installation templates IDs available for dedicated servers.' importStatements: [] - dedicated_nasha.html.markdown: + dedicated_nasha: subCategory: "" - description: 'dedicated_nasha.html.markdownsubcategory : "NAS-HA"' - name: dedicated_nasha.html.markdown - title: dedicated_nasha.html.markdown + name: dedicated_nasha + title: "" argumentDocs: can_create_partition: '- True, if partition creation is allowed on this HA-NAS' custom_name: '- The name you give to the HA-NAS' @@ -1851,223 +1375,3709 @@ resources: zpool_capacity: '- percentage of HA-NAS space used in %' zpool_size: '- the size of the HA-NAS in GB' importStatements: [] - dedicated_nasha_partition.markdown: - subCategory: "" - description: 'dedicated_nasha_partition.markdownsubcategory : "NAS-HA"' - name: dedicated_nasha_partition.markdown - title: dedicated_nasha_partition.markdown - argumentDocs: - capacity: '- Percentage of partition space used in %' - description: '- A brief description of the partition' - name: '- (Required) name of the partition' - protocol: '- (Required) one of "NFS", "CIFS" or "NFS_CIFS"' - service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' - size: '- (Required) size of the partition in GB' - used_by_snapshots: '- Percentage of partition space used by snapshots in %' - importStatements: [] - dedicated_nasha_partition_access.markdown: - subCategory: "" - description: 'dedicated_nasha_partition_access.markdownsubcategory : "NAS-HA"' - name: dedicated_nasha_partition_access.markdown - title: dedicated_nasha_partition_access.markdown - argumentDocs: - acl_description: '- A brief description of the acl' - ip: '- (Required) IP block in x.x.x.x/x format' - partition_name: '- (Required) Name of the partition' - service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' - type: '- (Required) One of "readwrite", "readonly"' - importStatements: [] - dedicated_nasha_partition_snapshot.markdown: - subCategory: "" - description: 'dedicated_nasha_partition_snapshot.markdownsubcategory : "NAS-HA"' - name: dedicated_nasha_partition_snapshot.markdown - title: dedicated_nasha_partition_snapshot.markdown - argumentDocs: - partition_name: '- (Required) name of the partition' - service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' - type: '- (Required) Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6' - importStatements: [] - dedicated_server.html.markdown: + dedicated_server: subCategory: "" - description: 'dedicated_server.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server.html.markdown - title: dedicated_server.html.markdown + name: dedicated_server + title: "" argumentDocs: availability_zone: '- Dedicated AZ localisation' boot_id: '- Boot id of the server' boot_script: '- Boot script of the server' - catalog_name: '- Catalog name' commercial_range: '- Dedicated server commercial range' - configuration: '- Representation of a configuration item to personalize product' - custom_hostname: '- Personnal hostname to use in server reinstallation' datacenter: '- Dedicated datacenter localisation (bhs1,bhs2,...)' - details: '- Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start)' - disk_group_id: '- Disk group id to process install on (only available for some templates)' - display_name: '- Display name of your dedicated server' - duration: '- (Required) Duration' - iam: '- IAM resource information' - id: '- Unique identifier of the resource in the IAM' + display_name: '- Dedicated server display name' + enabled: '- VirtualNetworkInterface activation state' + enabled_public_vnis: '- List of enabled public VNI uuids' + enabled_vrack_aggregation_vnis: '- List of enabled vrack_aggregation VNI uuids' + enabled_vrack_vnis: '- List of enabled vrack VNI uuids' ip: '- Dedicated server ip (IPv4)' - label: '- (Required) Identifier of the resource' + ips: '- Dedicated server ip blocks' link_speed: '- Link speed of the server' + mode: '- VirtualNetworkInterface mode (public,vrack,vrack_aggregation)' monitoring: '- Icmp monitoring state' name: '- Dedicated server name' - new_upgrade_system: '-' + nics: '- NetworkInterfaceControllers bound to this VirtualNetworkInterface' no_intervention: '- Prevent datacenter intervention' - no_raid: '- Whether you want to install only on the first disk' os: '- Operating system' - ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' - partition_scheme_name: '- Partition scheme name' - plan: '- (Required) Product Plan to order' - plan_code: '- (Required) Plan code' - plan_option: '- Product Plan to order' - power_state: '- Power state of the server (poweron, poweroff)' - pricing_mode: '- (Required) Pricing mode identifier' + power_state: '- Power state of the server (poweroff, poweron)' professional_use: '- Does this server have professional use option' rack: '- Rack id of the server' region: '- Dedicated region localisation' - rescue_mail: '- Custom email used to receive rescue credentials' + rescue_mail: '- Rescue mail of the server' rescue_ssh_key: '- Public SSH Key used in the rescue mode' reverse: '- Dedicated server reverse' root_device: '- Root device of the server' server_id: '- Server id' - service_name: '- The service_name of your dedicated server' - soft_raid_devices: '- Number of devices to use for system''s software RAID' - state: '- All states a Dedicated can in (error, hacked, hackedBlocked, ok)' + server_name: '- Server bound to this VirtualNetworkInterface' + service_name: '- (Required) The service_name of your dedicated server.' + state: '- Error, hacked, hackedBlocked, ok' support_level: '- Dedicated server support level (critical, fastpath, gs, pro)' - tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' - template_name: '- Template name. You can check the following API to list the available base templates' - urn: '- URN of the private database, used when writing IAM policies' - user_metadata: '- Metadata' - value: '- (Required) Path to the resource in API.OVH.COM' + urn: '- URN of the dedicated server instance' + uuid: '- VirtualNetworkInterface unique id' + vnis: '- The list of Virtualnetworkinterface associated with this server' + vrack: '- vRack name' importStatements: [] - dedicated_server_boots.html.markdown: + dedicated_server_boots: subCategory: "" - description: 'dedicated_server_boots.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_boots.html.markdown - title: dedicated_server_boots.html.markdown + name: dedicated_server_boots + title: "" argumentDocs: boot_type: '- (Optional) Filter the value of bootType property (harddisk, rescue, internal, network)' kernel: '- (Optional) Filter the value of kernel property (iPXE script name)' result: '- The list of dedicated server netboots.' service_name: '- (Required) The internal name of your dedicated server.' importStatements: [] - dedicated_server_install_task.html.markdown: - subCategory: "" - description: 'dedicated_server_install_task.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_install_task.html.markdown - title: dedicated_server_install_task.html.markdown - argumentDocs: - bootid_on_destroy: '- If set, reboot the server on the specified boot id during destroy phase.' - comment: '- Details of this task. (should be Install asked)' - details: '- see details block below.' - details.custom_hostname: '- Set up the server using the provided hostname instead of the default hostname.' - details.disk_group_id: '- Disk group id.' - details.language: '- Deprecated, will be removed in next release.' - details.no_raid: '- Set to true to disable RAID.' - details.soft_raid_devices: '- soft raid devices.' - details.use_spla: '- Deprecated, will be removed in next release.' - done_date: '- Completion date in RFC3339 format.' - function: '- Function name (should be hardInstall).' - id: '- The task id' - last_update: '- Last update in RFC3339 format.' - partition_scheme_name: '- Partition scheme name.' - service_name: '- (Required) The service_name of your dedicated server.' - start_date: '- Task creation date in RFC3339 format.' - status: '- Task status (should be done)' - template_name: '- (Required) Template name.' - user_metadata: '- see user_metadata block below.' - importStatements: [] - dedicated_server_reboot_task.html.markdown: + dedicated_server_specifications_hardware: subCategory: "" - description: 'dedicated_server_reboot_task.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_reboot_task.html.markdown - title: dedicated_server_reboot_task.html.markdown + name: dedicated_server_specifications_hardware + title: "" argumentDocs: - comment: '- Details of this task. (should be Reboot asked)' - done_date: '- Completion date in RFC3339 format.' - function: '- Function name (should be hardReboot).' - id: '- The task id' - keepers: '- List of values tracked to trigger reboot, used also to form implicit dependencies.' + boot_mode: '- Server boot mode' + cores_per_processor: '- Number of cores per processor' + default_hardware_raid_size: '- Default hardware raid size for this server' + default_hardware_raid_type: '- Default hardware raid type configured on this server' + description: '- Commercial name of this server' + disk_group_id: '- Identifier of this disk group' + disk_groups: '- Details about the groups of disks in the server' + disk_size: '- Disk capacity' + disk_type: '- Type of the disk (SSD, SATA, SAS, ...)' + expansion_cards: '- Details about the server''s expansion cards' + form_factor: '- Server form factor' + memory_size: '- RAM capacity' + motherboard: '- Server motherboard' + number_of_disks: '- Number of disks in this group' + number_of_processors: '- Number of processors in this dedicated server' + processor_architecture: '- Processor architecture bit' + processor_name: '- Processor name' + raid_controller: '- Raid controller, if any, managing this group of disks' + service_name: '- (Required) The internal name of your dedicated server.' + threads_per_processor: '- Number of threads per processor' + type: '- Expansion card type enum' + usb_keys: '- Capacity of the USB keys installed on your server, if any' + importStatements: [] + dedicated_server_specifications_network: + subCategory: "" + name: dedicated_server_specifications_network + title: "" + argumentDocs: + aggregation: '- Interface aggregation status' + available: '- Is the OLA feature available' + available_modes: '- Supported modes' + bandwidth: '- Bandwidth details' + connection_val: '- Network connection flow rate' + count: '- Interface count' + default: '- Whether it is the default configuration of the server' + gateway: '- Server gateway' + input_quota_size: '- Monthly input traffic quota allowed' + input_quota_used: '- Monthly input traffic consumed this month' + interfaces: '- Interface layout' + internet_to_ovh: '- Bandwidth limitation Internet to OVH' + ip: '- Server main IP' + ipv4: '- Ipv4 routing details' + ipv6: '- Ipv6 routing details' + is_throttled: '- Whether bandwidth is throttleted for being over quota' + name: '- Mode name' + network: '- Server network' + ola: '- OLA details' + output_quota_size: '- Monthly output traffic quota allowed' + output_quota_used: '- Monthly output traffic consumed this month' + ovh_to_internet: '- Bandwidth limitation OVH to Internet' + ovh_to_ovh: '- Bandwidth limitation OVH to OVH' + reset_quota_date: '- Next reset quota date for traffic counter' + routing: '- Routing details' + service_name: '- (Required) The internal name of your dedicated server.' + supported: '- Whether server is compatible vmac' + supported_modes: '- Supported modes (DEPRECATED)' + switching: '- Switching details' + traffic: '- Traffic details' + type: '- Bandwidth offer type' + vmac: '- VMAC information for this dedicated server' + vrack: '- vRack details' + importStatements: [] + dedicated_servers: + subCategory: "" + name: dedicated_servers + title: "" + argumentDocs: + result: '- The list of dedicated servers IDs associated with your OVHcloud Account.' + importStatements: [] + domain_zone: + subCategory: "" + name: domain_zone + title: "" + argumentDocs: + dnssec_supported: '- Is DNSSEC supported by this zone' + has_dns_anycast: '- hasDnsAnycast flag of the DNS zone' + last_update: '- Last update date of the DNS zone' + name: '- (Required) The name of the domain zone.' + name_servers: '- Name servers that host the DNS zone' + urn: '- URN of the DNS zone' + importStatements: [] + domain_zone_dnssec: + subCategory: "" + name: domain_zone_dnssec + title: "" + argumentDocs: + status: '- DNSSEC status (disableInProgress, disabled, enableInProgress or enabled)' + zone_name: '- (Required) The name of the domain zone' + importStatements: [] + hosting_privatedatabase: + subCategory: "" + name: hosting_privatedatabase + title: "" + argumentDocs: + cpu: '- Number of CPU on your private database' + datacenter: '- Datacenter where this private database is located' + display_name: '- Name displayed in customer panel for your private database' + hostname: '- Private database hostname' + hostname_ftp: '- Private database FTP hostname' + infrastructure: '- Infrastructure where service was stored' + offer: '- Type of the private database offer' + port: '- Private database service port' + port_ftp: '- Private database FTP port' + quota_size: '- Space allowed (in MB) on your private database' + quota_used: '- Sapce used (in MB) on your private database' + ram: '- Amount of ram (in MB) on your private database' + server: '- Private database server name' + service_name: '- The internal name of your private database' + state: '- Private database state' + urn: '- URN of the private database' + version: '- Private database available versions' + version_label: '- Private database version label' + version_number: '- Private database version number' + importStatements: [] + hosting_privatedatabase_database: + subCategory: "" + name: hosting_privatedatabase_database + title: "" + argumentDocs: + backup_time: '- Time of the next backup (every day)' + creation_date: '- Creation date of the database' + database_name: '- Database name' + grant_type: '- Grant of this user for this database' + quota_used: '- Space used by the database (in MB)' + service_name: '- The internal name of your private database' + user_name: '- User''s name granted on this database' + users: '- Users granted to this database' + importStatements: [] + hosting_privatedatabase_user: + subCategory: "" + name: hosting_privatedatabase_user + title: "" + argumentDocs: + creation_date: '- Creation date of the database' + database_name: '- Database''s name linked to this user' + databases: '- Users granted to this database' + grant_type: '- Grant of this user for this database' + service_name: '- The internal name of your private database' + user_name: '- User name' + importStatements: [] + hosting_privatedatabase_user_grant: + subCategory: "" + name: hosting_privatedatabase_user_grant + title: "" + argumentDocs: + creation_date: '- Creation date of the database' + database_name: '- The database name on which grant the user' + grant: '- Grant name' + service_name: '- The internal name of your private database' + user_name: '- The user name' + importStatements: [] + hosting_privatedatabase_whitelist: + subCategory: "" + name: hosting_privatedatabase_whitelist + title: "" + argumentDocs: + creation_date: '- Creation date of the database' + ip: '- The whitelisted IP in your instance' + last_update: '- The last update date of this whitelist' + name: '- Custom name for your Whitelisted IP' + service: '- Authorize this IP to access service port' + service_name: '- The internal name of your private database' + sftp: '- Authorize this IP to access SFTP port' + status: '- Whitelist status' + importStatements: [] + iam_permissions_groups: + subCategory: "" + name: iam_permissions_groups + title: "" + argumentDocs: + allow: '- Set of actions allowed by the permissions group.' + created_at: '- Creation date of this group.' + deny: '- Set of actions that will always be denied even if it is explicitly allowed by a policy.' + description: '- Group description.' + except: '- Set of actions that will be subtracted from the allow list.' + name: '- Name of the permissions group.' + owner: '- Owner of the permissions group.' + read_only: '- Indicates that this is a default permissions group, managed by OVHcloud.' + updated_at: '- Date of the last update of this group.' + urn: '- URN of the permissions group.' + importStatements: [] + iam_policies: + subCategory: "" + name: iam_policies + title: "" + argumentDocs: + id: '- Hash of the list of the policy IDs.' + policies: '- List of the policies IDs.' + importStatements: [] + iam_policy: + subCategory: "" + name: iam_policy + title: "" + argumentDocs: + allow: '- Set of actions allowed by the policy.' + created_at: '- Creation date of this group.' + deny: '- Set of actions that will be denied no matter what policy exists.' + description: '- Group description.' + except: '- Set of actions that will be subtracted from the allow list.' + id: '- UUID of the policy.' + identities: '- Set of identities affected by the policy.' + name: '- Name of the policy.' + owner: '- Owner of the policy.' + permissions_groups: '- Set of permissions groups that apply to the policy.' + read_only: '- Indicates that the policy is a default one.' + resources: '- Set of resources affected by the policy.' + updated_at: '- Date of the last update of this group.' + importStatements: [] + iam_reference_actions: + subCategory: "" + name: iam_reference_actions + title: "" + argumentDocs: + action: '- Name of the action' + actions: '- List of actions' + categories: '- List of the categories of the action' + description: '- Description of the action' + resource_type: '- Resource type the action is related to' + type: '- Kind of resource we want the actions for' + importStatements: [] + iam_reference_resource_type: + subCategory: "" + name: iam_reference_resource_type + title: "" + argumentDocs: + id: '- hash of the list of the resource types' + types: '- List of resource types' + importStatements: [] + iam_resource_group: + subCategory: "" + name: iam_resource_group + title: "" + argumentDocs: + created_at: '- Date of the creation of the resource group' + id: '- Id of the resource group' + name: '- Name of the resource group' + owner: '- Name of the account owning the resource group' + read_only: '- Marks that the resource group is not editable. Usually means that this is a default resource group created by OVHcloud' + resources: '- Set of the URNs of the resources contained in the resource group' + updated_at: '- Date of the last modification of the resource group' + urn: '- URN of the resource group, used when writing policies' + importStatements: [] + iam_resource_groups: + subCategory: "" + name: iam_resource_groups + title: "" + argumentDocs: + id: '- Hash of the list of the resource groups IDs.' + resource_groups: '- List of the resource groups IDs.' + importStatements: [] + ip_firewall: + subCategory: "" + name: ip_firewall + title: "" + argumentDocs: + 'enabled ': '- Whether firewall is enabled' + ip: '- (Required) The IP or the CIDR' + ip_on_firewall: '- (Required) IPv4 address' + state: '- Current state of your ip on firewall' + importStatements: [] + ip_firewall_rule: + subCategory: "" + name: ip_firewall_rule + title: "" + argumentDocs: + action: '- Possible values for action (deny|permit)' + creation_date: '- Creation date of the rule' + destination: '- Destination IP for your rule' + destination_port: '- Destination port for your rule. Only with TCP/UDP protocol' + fragments: '- Fragments option' + ip: '- (Required) The IP or the CIDR' + ip_on_firewall: '- (Required) IPv4 address' + protocol: '- Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)' + rule: '- Description of the rule' + sequence: '- (Required) Rule position in the rules array' + source: '- IPv4 CIDR notation (e.g., 192.0.2.0/24)' + source_port: '- Source port for your rule. Only with TCP/UDP protocol' + state: '- Current state of your rule' + tcp_option: '- TCP option on your rule (syn|established)' + importStatements: [] + ip_mitigation: + subCategory: "" + name: ip_mitigation + title: "" + argumentDocs: + auto: '- Set on true if the IP is on auto-mitigation' + ip: '- (Required) The IP or the CIDR' + ip_on_mitigation: '- (Required) IPv4 address' + 'permanent ': '- Set on true if the IP is on permanent mitigation' + state: '- Current state of the IP on mitigation' + importStatements: [] + ip_service: + subCategory: "" + name: ip_service + title: "" + argumentDocs: + id.can_be_terminated: '- can be terminated' + id.country: '- country' + id.description: '- Custom description on your ip' + id.ip: '- ip block' + id.organisation_id: '- IP block organisation Id' + id.routed_to: '- Routage information' + id.type: '- Possible values for ip type ( "cdn", "cloud", "dedicated", "failover", "hosted_ssl", "housing", "loadBalancing", "mail", "overthebox", "pcc", "pci", "private", "vpn", "vps", "vrack", "xdsl")' + service_name: '- The service name' + importStatements: [] + iploadbalancing: + subCategory: "" + name: iploadbalancing + title: "" + argumentDocs: + display_name: '- the name displayed in ManagerV6 for your iplb (max 50 chars)' + ip_loadbalancing: '- Your IP load balancing' + ipv4: '- The IPV4 associated to your IP load balancing' + ipv6: '- The IPV6 associated to your IP load balancing' + metrics_token: |- + - The metrics token associated with your IP load balancing + This attribute is sensitive. + name: '- The zone three letter code' + offer: '- The offer of your IP load balancing' + orderable_zone: '- Available additional zone for your Load Balancer' + plan_code: '- The billing planCode for this zone' + service_name: '- The internal name of your IP load balancing' + ssl_configuration: |- + - Modern oldest compatible clients : Firefox 27, Chrome 30, + IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. + Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, + Safari 1, Windows XP IE8, Android 2.3, Java 7. + Can take any of the following value: "intermediate", "modern" + state: |- + - Current state of your IP. Can take any of the following value: + "blacklisted", "deleted", "free", "ok", "quarantined", "suspended" + urn: '- The URN of the load balancer, to be used in IAM policies' + vrack_eligibility: '- Vrack eligibility. Takes a boolean value.' + vrack_name: |- + - Name of the vRack on which the current Load Balancer is + attached to, as it is named on vRack product + zone: '- Location where your service is. This takes an array of values.' + importStatements: [] + iploadbalancing_vrack_network: + subCategory: "" + name: iploadbalancing_vrack_network + title: "" + argumentDocs: + display_name: '- Human readable name for your vrack network' + nat_ip: '- An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer' + service_name: '- (Required) The internal name of your IP load balancing' + subnet: '- IP block of the private network in the vRack' + vlan: '- VLAN of the private network in the vRack. 0 if the private network is not in a VLAN' + vrack_network_id: '- (Required) Internal Load Balancer identifier of the vRack private network' + importStatements: [] + iploadbalancing_vrack_networks: + subCategory: "" + name: iploadbalancing_vrack_networks + title: "" + argumentDocs: + result: '- The list of vrack network ids.' + service_name: '- (Required) The internal name of your IP load balancing' + subnet: '- Filters networks on the subnet.' + vlan_id: '- Filters networks on the vlan id.' + importStatements: [] + me: + subCategory: "" + name: me + title: "" + argumentDocs: + address: ': Postal address of the account' + area: ': Area of the account' + birth_city: ': City of birth' + birth_day: ': Birth date' + city: ': City of the account' + code: ': Currency code used by this account (e.g EUR, USD, ...)' + company_national_identification_number: ': This is the national identification number of the company that possess this account' + corporation_type: ': Type of corporation' + country: ': Country of the account' + currency: ':' + customer_code: ': The customer code of this account (a numerical value used for identification when contacting support via phone call)' + email: ': Email address' + fax: ': Fax number' + firstname: ': First name' + italian_sdi: ': Italian SDI' + language: ': Preferred language for this account' + legalform: ': Legal form of the account' + name: ': Name of the account holder' + national_identification_number: ': National Identification Number of this account' + nichandle: ': Nic handle / customer identifier' + organisation: ': Name of the organisation for this account' + ovh_company: ': OVHcloud subsidiary' + ovh_subsidiary: ': OVHcloud subsidiary' + phone: ': Phone number' + phone_country: ': Country code of the phone number' + sex: ': Gender of the account holder' + spare_email: ': Backup email address' + state: ': State of the postal address' + symbol: ': Currency symbol used by this account (e.g €, $, ...)' + urn: ': The resource URN of the account, to be used when writing IAM policies' + vat: ': VAT number' + zip: ': Zipcode of the address' + importStatements: [] + me_api_oauth2_client: + subCategory: "" + name: me_api_oauth2_client + title: "" + argumentDocs: + callback_urls: '- List of callback urls when configuring the AUTHORIZATION_CODE flow.' + client_id: '- Client ID of an existing OAuth2 service account.' + description: '- OAuth2 client description.' + flow: '- The OAuth2 flow to use. AUTHORIZATION_CODE or CLIENT_CREDENTIALS are supported at the moment.' + name: '- OAuth2 client name.' + importStatements: [] + me_api_oauth2_clients: + subCategory: "" + name: me_api_oauth2_clients + title: "" + argumentDocs: + client_ids: '- The list of all the existing client IDs.' + importStatements: [] + me_identity_group: + subCategory: "" + name: me_identity_group + title: "" + argumentDocs: + creation: '- Creation date of this group.' + default_group: '- Is the group a default and immutable one.' + description: '- Group description.' + last_update: '- Date of the last update of this group.' + name: '- Group name.' + role: '- Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.' + urn: '- Identity URN of the group.' + importStatements: [] + me_identity_groups: + subCategory: "" + name: me_identity_groups + title: "" + argumentDocs: + groups: '- The list of the group names of all the identity groups.' + importStatements: [] + me_identity_user: + subCategory: "" + name: me_identity_user + title: "" + argumentDocs: + creation: '- Creation date of this user.' + description: '- User description.' + email: '- User''s email.' + group: '- User''s group.' + last_update: '- Last update of this user.' + login: '- User''s login suffix.' + password_last_update: '- When the user changed his password for the last time.' + status: '- Current user''s status.' + urn: '- User''s identity URN.' + user: '- (Required) User''s login.' + importStatements: [] + me_identity_users: + subCategory: "" + name: me_identity_users + title: "" + argumentDocs: + users: '- The list of the user''s logins of all the identity users.' + importStatements: [] + me_installation_template: + subCategory: "" + name: me_installation_template + title: "" + argumentDocs: + bit_format: ': Template bit format (32 or 64).' + category: ': Category of this template (informative only).' + custom_hostname: ': Set up the server using the provided hostname instead of the default hostname.' + customization: ':' + description: ': Information about this template.' + disks: ': Disk List. Syntax is cX:dY for disks and [cX:dY,cX:dY] for groups. With X and Y resp. the controller id and the disk id.' + distribution: ': Distribution this template is based on.' + end_of_install: '- End of install date of the template.' + family: ': Template family type (bsd,linux,solaris,windows).' + filesystem: ': Partition filesystem.' + filesystems: ': Filesystems available.' + hard_raid_configuration: ': Distribution supports hardware raid configuration through the OVHcloud API.' + hardware_raid: ':' + inputs: '- Represents the questions of the expected answers in the userMetadata field.' + lvm_ready: '- Whether this template supports LVM.' + mode: ': RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60).' + mountpoint: ': Partition mount point.' + name: ': Name of this partitioning scheme.' + no_partitioning: '- Partitioning customization is not available for this OS template.' + order: ': Step or order. Specifies the creation order of the partition on the disk.' + partition: ':' + partition_scheme: ':' + priority: ': On a reinstall, if a partitioning scheme is not specified, the one with the higher priority will be used by default, among all the compatible partitioning schemes (given the underlying hardware specifications).' + raid: ': Raid partition type.' + size: ': Size of partition in MB, 0 => rest of the space.' + soft_raid_only_mirroring: '- Template supports RAID0 and RAID1 on 2 disks.' + step: ': Specifies the creation order of the hardware RAID.' + subfamily: '- Subfamily of the template.' + template_name: ': Template name.' + type: ': Partition type.' + volume_name: ': Volume name needed for proxmox distribution.' + importStatements: [] + me_installation_templates: + subCategory: "" + name: me_installation_templates + title: "" + argumentDocs: + result: '- The list of custom installation templates IDs available for dedicated servers.' + importStatements: [] + me_paymentmean_bankaccount: + subCategory: "" + name: me_paymentmean_bankaccount + title: "" + argumentDocs: + default: |- + - a boolean which tells if the retrieved bank account + is marked as the default payment mean + description: '- the description attribute of the bank account' + description_regexp: |- + - (Optional) a regexp used to filter bank accounts + on their description attributes. + state: |- + - (Optional) Filter bank accounts on their state attribute. + Can be "blockedForIncidents", "valid", "pendingValidation" + use_default: '- (Optional) Retrieve bank account marked as default payment mean.' + use_oldest: |- + - (Optional) Retrieve oldest bank account. + project. + importStatements: [] + me_paymentmean_creditcard: + subCategory: "" + name: me_paymentmean_creditcard + title: "" + argumentDocs: + default: |- + - a boolean which tells if the retrieved credit card + is marked as the default payment mean + description: '- the description attribute of the credit card' + description_regexp: |- + - (Optional) a regexp used to filter credit cards + on their description attributes. + state: '- the state attribute of the credit card' + states: |- + - (Optional) Filter credit cards on their state attribute. + Can be "expired", "valid", "tooManyFailures" + use_default: '- (Optional) Retrieve credit card marked as default payment mean.' + use_last_to_expire: |- + - (Optional) Retrieve the credit card that will be the last + to expire according to its expiration date. + importStatements: [] + okms_credential: + subCategory: KMS + name: okms_credential + title: "" + argumentDocs: + certificate_pem: (String) PEM encoded certificate of the credential + created_at: (String) Creation time of the credential + description: (String) Description of the credential + expired_at: (String) Expiration time of the credential + from_csr: (Boolean) Is the credential generated from CSR + id: (String) ID of the credential + identity_urns: (List of String) List of identity URNs associated with the credential + name: (String) Name of the credential + okms_id: (String) ID of the KMS + status: (String) Status of the credential + importStatements: [] + okms_resource: + subCategory: KMS + name: okms_resource + title: "" + argumentDocs: + display_name: (String) Resource display name + iam: (Attributes) IAM resource metadata (see below for nested schema) + id: (String) Should be set to the ID of your KMS + kmip_endpoint: (String) KMS kmip API endpoint + public_ca: (String) KMS public CA (Certificate Authority) + region: (String) Region + rest_endpoint: (String) KMS rest API endpoint + swagger_endpoint: (String) KMS rest API swagger UI + tags: '(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:' + urn: (String) Unique resource name used in policies + importStatements: [] + okms_service_key: + subCategory: KMS + name: okms_service_key + title: "" + argumentDocs: + created_at: (String) Creation time of the key + curve: (String) Curve type for Elliptic Curve (EC) keys + id: (String) ID of the service key + name: (String) Key name + okms_id: (String) ID of the KMS + operations: (List of String) The operations for which the key is intended to be used + size: (Number) Size of the key + state: (String) State of the key + type: (String) Key type + importStatements: [] + okms_service_key_jwk: + subCategory: KMS + name: okms_service_key_jwk + title: "" + argumentDocs: + alg: (String) The algorithm intended to be used with the key + created_at: (String) Creation time of the key + crv: (String) The cryptographic curve used with the key + e: (String) The exponent value for the RSA public key + id: (String) ID of the service key + key_ops: (List of String) The operation for which the key is intended to be used + keys: (Attributes List) The key in JWK format (see below for nested schema) + kid: (String) key ID parameter used to match a specific key + kty: (String) Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC + "n": (String) The modulus value for the RSA public key + name: (String) Key name + okms_id: (String) ID of the KMS + size: (Number) Size of the key + state: (String) State of the key + type: (String) Key type + use: (String) The intended use of the public key + x: (String) The x coordinate for the Elliptic Curve point + "y": (String) The y coordinate for the Elliptic Curve point + importStatements: [] + order_cart: + subCategory: "" + name: order_cart + title: "" + argumentDocs: + assign: '- Assign a shopping cart to a logged in client. Values can be true or false.' + cart_id: '- Cart identifier' + description: '- Description of your cart' + expire: '- Expiration time (format: 2006-01-02T15:04:05+00:00)' + items: '- Items of your cart' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + read_only: '- Indicates if the cart has already been validated' + importStatements: [] + order_cart_product: + subCategory: "" + name: order_cart_product + title: "" + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + interval: '- Interval of renewal' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) product' + product_name: '- Name of the product' + product_type: '- Product type' + result: '- products results' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_options: + subCategory: "" + name: order_cart_product_options + title: "" + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + exclusive: '- Define if options of this family are exclusive with each other' + family: '- Option family' + interval: '- Interval of renewal' + mandatory: '- Define if an option of this family is mandatory' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + result: '- products results' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_options_plan: + subCategory: "" + name: order_cart_product_options_plan + title: "" + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + exclusive: '- Define if options of this family are exclusive with each other' + family: '- Option family' + interval: '- Interval of renewal' + mandatory: '- Define if an option of this family is mandatory' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + options_plan_code: '- (Required) options plan code.' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_capacity: '- (Required) Capacity of the pricing (type of pricing)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + selected_price: '- Selected Price according to capacity' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_plan: + subCategory: "" + name: order_cart_product_plan + title: "" + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + interval: '- Interval of renewal' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_capacity: '- (Required) Capacity of the pricing (type of pricing)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + selected_price: '- Selected Price according to capacity' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + ovh_cloud_project: + subCategory: Cloud Project + name: ovh_cloud_project + title: "" + examples: + - name: my_cloud_project + manifest: |- + { + "description": "my cloud project", + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "duration": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.cloud.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.cloud.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.cloud.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode + - name: my_cloud_project + manifest: |- + { + "description": "my cloud project", + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "duration": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.cloud.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode}" + } + ], + "plan_option": [ + { + "duration": "${data.ovh_order_cart_product_options_plan.hds.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_options_plan.hds.options_plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_options_plan.hds.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.cloud.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.cloud.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode + plan_option.duration: data.ovh_order_cart_product_options_plan.hds.selected_price.0.duration + plan_option.plan_code: data.ovh_order_cart_product_options_plan.hds.options_plan_code + plan_option.pricing_mode: data.ovh_order_cart_product_options_plan.hds.selected_price.0.pricing_mode + - name: my_cloud_project + manifest: |- + { + "description": "cloud project with pre-existing vrack", + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "configuration": [ + { + "label": "vrack", + "value": "pn-*******" + } + ], + "duration": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.cloud.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.cloud.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.cloud.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.cloud.selected_price.0.pricing_mode + argumentDocs: + access: '- project access right for the identity that trigger the terraform script.' + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + date: '- date' + description: '- A description associated with the user.' + details: '- Information about a Bill entry' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + label: '- (Required) Identifier of the resource' + order: '- Details about the order that was used to create the public cloud project' + order_detail_id: '- order detail id' + order_id: '- order id, the same as the id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code. This value must be adapted depending on your OVH_ENDPOINT value. It''s project.2018 for ovh-{eu,ca} and project when using ovh-us.' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + project_id: '- openstack project id' + project_name: '- openstack project name' + quantity: '- quantity' + status: '- project status' + urn: '- The URN of the cloud project' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + ovh_cloud_project_alerting: + subCategory: "" + name: ovh_cloud_project_alerting + title: "" + examples: + - name: my_alert + manifest: |- + { + "delay": 3600, + "email": "aaa.bbb@domain.com", + "monthly_threshold": 1000, + "service_name": "XXX" + } + argumentDocs: + creationDate: '- Alerting creation date' + currency_code: '- Currency of the monthly threshold' + delay: '- Delay between two alerts in seconds' + email: '- Email to contact' + formatted_monthly_threshold: '- Formatted monthly threshold for this alerting' + id: '- Alert ID' + monthly_threshold: '- Monthly threshold for this alerting in currency' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + text: ': Text representation of the monthly threshold' + value: ': Value of the monthly threshold' + importStatements: [] + ovh_cloud_project_containerregistry: + subCategory: "" + name: ovh_cloud_project_containerregistry + title: "" + examples: + - name: my_registry + manifest: |- + { + "name": "mydockerregistry", + "plan_id": "${data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.id}", + "region": "${data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.region}", + "service_name": "${data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.service_name}" + } + references: + plan_id: data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.id + region: data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.region + service_name: data.ovh_cloud_project_capabilities_containerregistry_filter.regcap.service_name + argumentDocs: + code: '- Plan code from the catalog' + created_at: '- Registry creation date' + features: '- Features of the plan' + id: '- Registry ID' + image_storage: '- Docker image storage limits in bytes' + name: '- Registry name' + parallel_request: '- Parallel requests on Docker image API (/v2 Docker registry API)' + plan: '- Plan of the registry' + plan_id: '- Plan ID of the registry' + project_id: '- Project ID of your registry' + region: '- Region of the registry' + registry_limits: '- Container registry limits' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + size: '- Current size of the registry (bytes)' + status: '- Registry status' + updated_at: '- Plan last update date' + url: '- Access url of the registry' + version: '- Version of your registry' + vulnerability: '- Vulnerability scanning' + importStatements: [] + ovh_cloud_project_containerregistry_ip_restrictions_management: + subCategory: "" + name: ovh_cloud_project_containerregistry_ip_restrictions_management + title: "" + examples: + - name: my_mgt_iprestrictions + manifest: |- + { + "ip_restrictions": [ + { + "description": "xxxxxxx", + "ip_block": "xxx.xxx.xxx.xxx/xx" + } + ], + "registry_id": "${ovh_cloud_project_containerregistry.registry.id}", + "service_name": "${ovh_cloud_project_containerregistry.registry.service_name}" + } + references: + registry_id: ovh_cloud_project_containerregistry.registry.id + service_name: ovh_cloud_project_containerregistry.registry.service_name + argumentDocs: + description: '- The Description of Whitelisted IpBlock.' + ip_block: '- Whitelisted IpBlock (CIDR format).' + ip_restrictions: '- IP restrictions applied on Harbor UI and API.' + registry_id: '- The id of the Managed Private Registry.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + importStatements: [] + ovh_cloud_project_containerregistry_ip_restrictions_registry: + subCategory: "" + name: ovh_cloud_project_containerregistry_ip_restrictions_registry + title: "" + examples: + - name: my_registry_iprestrictions + manifest: |- + { + "ip_restrictions": [ + { + "description": "xxxxxxx", + "ip_block": "xxx.xxx.xxx.xxx/xx" + } + ], + "registry_id": "${ovh_cloud_project_containerregistry.registry.id}", + "service_name": "${ovh_cloud_project_containerregistry.registry.service_name}" + } + references: + registry_id: ovh_cloud_project_containerregistry.registry.id + service_name: ovh_cloud_project_containerregistry.registry.service_name + argumentDocs: + description: '- The Description of Whitelisted IpBlock.' + ip_block: '- Whitelisted IpBlock (CIDR format).' + ip_restrictions: '- IP restrictions applied on artifact manager component.' + registry_id: '- The id of the Managed Private Registry.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + importStatements: [] + ovh_cloud_project_containerregistry_oidc: + subCategory: "" + name: ovh_cloud_project_containerregistry_oidc + title: "" + examples: + - name: my_oidc + manifest: |- + { + "delete_users": false, + "oidc_admin_group": "harbor-admin", + "oidc_auto_onboard": true, + "oidc_client_id": "xxx", + "oidc_client_secret": "xxx", + "oidc_endpoint": "https://xxxx.yyy.com", + "oidc_groups_claim": "groups", + "oidc_name": "my-oidc-provider", + "oidc_scope": "openid,profile,email,offline_access", + "oidc_user_claim": "preferred_username", + "oidc_verify_cert": true, + "registry_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + "service_name": "XXXXXX" + } + - name: my-oidc + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + create: '- (Default 10m)' + delete: '- (Default 10m)' + delete_users: '- Delete existing users from Harbor. OIDC can''t be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. Changing this value recreates the resource.' + oidc_admin_group: '- Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.' + oidc_auto_onboard: '- Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.' + oidc_client_id: '- The client ID with which Harbor is registered as client application with the OIDC provider.' + oidc_client_secret: '- The secret for the Harbor client application.' + oidc_endpoint: '- The URL of an OIDC-compliant server.' + oidc_groups_claim: '- The name of Claim in the ID token whose value is the list of group names.' + oidc_name: '- The name of the OIDC provider.' + oidc_scope: '- The scope sent to OIDC server during authentication. It''s a comma-separated string that must contain ''openid'' and usually also contains ''profile'' and ''email''. To obtain refresh tokens it should also contain ''offline_access''.' + oidc_user_claim: '- The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to ''name'' (only useful when automatic Onboarding is enabled).' + oidc_verify_cert: '- Set it to false if your OIDC server is hosted via self-signed certificate.' + registry_id: '- The ID of the Managed Private Registry. Changing this value recreates the resource.' + service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 10m)' + importStatements: [] + ovh_cloud_project_containerregistry_user: + subCategory: "" + name: ovh_cloud_project_containerregistry_user + title: "" + examples: + - name: user + manifest: |- + { + "email": "foo@bar.com", + "login": "foobar", + "registry_id": "${ovh_cloud_project_containerregistry.registry.id}", + "service_name": "${ovh_cloud_project_containerregistry.registry.service_name}" + } + references: + registry_id: ovh_cloud_project_containerregistry.registry.id + service_name: ovh_cloud_project_containerregistry.registry.service_name + argumentDocs: + email: '- User email' + id: '- User ID' + password: '- (Sensitive) User password' + registry_id: '- Registry ID' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user: '- User name' + importStatements: [] + ovh_cloud_project_database: + subCategory: "" + name: ovh_cloud_project_database + title: "" + examples: + - name: cassandradb + manifest: |- + { + "description": "my-first-cassandra", + "engine": "cassandra", + "flavor": "db1-4", + "nodes": [ + { + "region": "BHS" + }, + { + "region": "BHS" + }, + { + "region": "BHS" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "4.0" + } + - name: kafkadb + manifest: |- + { + "description": "my-first-kafka", + "engine": "kafka", + "flavor": "db1-4", + "kafka_rest_api": true, + "kafka_schema_registry": true, + "nodes": [ + { + "region": "DE" + }, + { + "region": "DE" + }, + { + "region": "DE" + } + ], + "plan": "business", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "3.8" + } + - name: m3db + manifest: |- + { + "description": "my-first-m3db", + "engine": "m3db", + "flavor": "db1-7", + "nodes": [ + { + "region": "BHS" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "1.2" + } + - name: mongodb + manifest: |- + { + "description": "my-first-mongodb", + "engine": "mongodb", + "flavor": "db1-2", + "nodes": [ + { + "region": "GRA" + } + ], + "plan": "discovery", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "5.0" + } + - name: mysqldb + manifest: |- + { + "advanced_configuration": { + "mysql.sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", + "mysql.sql_require_primary_key": "true" + }, + "description": "my-first-mysql", + "engine": "mysql", + "flavor": "db1-4", + "nodes": [ + { + "region": "SBG" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "8" + } + - name: opensearchdb + manifest: |- + { + "description": "my-first-opensearch", + "engine": "opensearch", + "flavor": "db1-4", + "nodes": [ + { + "region": "UK" + } + ], + "opensearch_acls_enabled": true, + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "1" + } + - name: pgsqldb + manifest: |- + { + "description": "my-first-postgresql", + "engine": "postgresql", + "flavor": "db1-4", + "ip_restrictions": [ + { + "description": "ip 1", + "ip": "178.97.6.0/24" + }, + { + "description": "ip 2", + "ip": "178.97.7.0/24" + } + ], + "nodes": [ + { + "region": "WAW" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "14" + } + - name: redisdb + manifest: |- + { + "description": "my-first-redis", + "engine": "redis", + "flavor": "db1-4", + "nodes": [ + { + "region": "BHS" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "6.2" + } + - name: grafana + manifest: |- + { + "description": "my-first-grafana", + "engine": "grafana", + "flavor": "db1-4", + "nodes": [ + { + "region": "GRA" + } + ], + "plan": "essential", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "9.1" + } + - name: postgresql + manifest: |- + { + "description": "my-first-postgresql", + "engine": "postgresql", + "flavor": "db1-15", + "nodes": [ + { + "region": "GRA" + }, + { + "region": "GRA" + } + ], + "plan": "business", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "14" + } + - name: mongodb + manifest: |- + { + "description": "my-first-mongodb", + "engine": "mongodb", + "flavor": "db1-30", + "nodes": [ + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" + } + ], + "plan": "production", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "version": "5.0" + } + - name: db + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + advanced_configuration: '- (Optional) Advanced configuration key / value.' + backup_regions: '- List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field' + backup_time: '- Time on which backups start every day (this parameter is not usable on the following engines: "m3db", "grafana", "kafka", "kafkaconnect", "kafkamirrormaker", "opensearch", "m3aggregator").' + component: '- Type of component the URI relates to.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the cluster.' + delete: '- (Default 20m)' + description: '- (Optional) Small description of the database service.' + disk_size: '- (Optional) The disk size (in GB) of the database service.' + disk_type: '- Defines the disk type of the database service.' + domain: '- Domain of the cluster.' + endpoints: '- List of all endpoints objects of the service.' + engine: |- + - (Required, Forces new resource) The database engine you want to deploy. To get a full list of available engine visit. + public documentation. + flavor: |- + - (Required) A valid OVHcloud public cloud database flavor name in which the nodes will be started. + Ex: "db1-7". Changing this value upgrade the nodes with the new flavor. + You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ + id: '- Public Cloud Database Service ID' + ip: '- (Optional) Authorized IP' + ip_restrictions: '- (Optional) IP Blocks authorized to access to the cluster.' + kafka_rest_api: '- (Optional) Defines whether the REST API is enabled on a kafka cluster' + kafka_schema_registry: '- (Optional) Defines whether the schema registry is enabled on a Kafka cluster' + maintenance_time: '- Time on which maintenances can start every day.' + network_id: '- (Optional, Forces new resource) Private network id in which the node should be deployed. It''s the regional openstackId of the private network' + network_type: '- Type of network of the cluster.' + nodes: |- + - (Required, Minimum Items: 1) List of nodes object. + Multi region cluster are not yet available, all node should be identical. + opensearch_acls_enabled: '- (Optional) Defines whether the ACLs are enabled on an OpenSearch cluster' + path: '- Path of the endpoint.' + plan: '- (Required) Plan of the cluster.' + port: '- Connection port for the endpoint.' + region: |- + - (Required, Forces new resource) Public cloud region in which the node should be deployed. + Ex: "GRA'. + scheme: '- Scheme used to generate the URI.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + ssl: '- Defines whether the endpoint uses SSL.' + ssl_mode: '- SSL mode used to connect to the service if the SSL is enabled.' + status: '- Current status of the IP restriction.' + subnet_id: '- (Optional, Forces new resource) Private subnet ID in which the node is.' + update: '- (Default 40m)' + uri: '- URI of the endpoint.' + version: '- (Required) The version of the engine in which the service should be deployed' + importStatements: [] + ovh_cloud_project_database_database: + subCategory: "" + name: ovh_cloud_project_database_database + title: "" + examples: + - name: database + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db.id}", + "engine": "${data.ovh_cloud_project_database.db.engine}", + "name": "mydatabase", + "service_name": "${data.ovh_cloud_project_database.db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.db.id + engine: data.ovh_cloud_project_database.db.engine + service_name: data.ovh_cloud_project_database.db.service_name + - name: database + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + default: '- Defines if the database has been created by default.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + Available engines: + id: '- ID of the database.' + name: '- (Required, Forces new resource) Name of the database.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + ovh_cloud_project_database_integration: + subCategory: "" + name: ovh_cloud_project_database_integration + title: "" + examples: + - name: integration + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db_postgresql.id}", + "destination_service_id": "${data.ovh_cloud_project_database.db_opensearch.id}", + "engine": "${data.ovh_cloud_project_database.db_postgresql.engine}", + "service_name": "${data.ovh_cloud_project_database.db_postgresql.service_name}", + "source_service_id": "${data.ovh_cloud_project_database.db_postgresql.id}", + "type": "opensearchLogs" + } + references: + cluster_id: data.ovh_cloud_project_database.db_postgresql.id + destination_service_id: data.ovh_cloud_project_database.db_opensearch.id + engine: data.ovh_cloud_project_database.db_postgresql.engine + service_name: data.ovh_cloud_project_database.db_postgresql.service_name + source_service_id: data.ovh_cloud_project_database.db_postgresql.id + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + destination_service_id: '- (Required, Forces new resource) ID of the destination service.' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + All engines available exept mongodb. + id: '- - ID of the integration.' + parameters: '- (Optional, Forces new resource) Parameters for the integration.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + source_service_id: '- (Required, Forces new resource) ID of the source service.' + status: '- Current status of the integration.' + type: |- + - (Optional, Forces new resource) Type of the integration. + Available types: + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_ip_restriction: + subCategory: "" + name: ovh_cloud_project_database_ip_restriction + title: "" + examples: + - name: ip_restriction + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db.id}", + "engine": "${data.ovh_cloud_project_database.db.engine}", + "ip": "178.97.6.0/24", + "service_name": "${data.ovh_cloud_project_database.db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.db.id + engine: data.ovh_cloud_project_database.db.engine + service_name: data.ovh_cloud_project_database.db.service_name + - name: ip_restriction + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + description: '- (Optional) Description of the IP restriction.' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. + public documentation. + ip: '- (Required, Forces new resource) Authorized IP.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the IP restriction.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_kafka_acl: + subCategory: "" + name: ovh_cloud_project_database_kafka_acl + title: "" + examples: + - name: acl + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.kafka.id}", + "permission": "read", + "service_name": "${data.ovh_cloud_project_database.kafka.service_name}", + "topic": "mytopic", + "username": "johndoe" + } + references: + cluster_id: data.ovh_cloud_project_database.kafka.id + service_name: data.ovh_cloud_project_database.kafka.service_name + - name: acl + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the ACL.' + permission: |- + - (Required, Forces new resource) Permission to give to this username on this topic. + Available permissions: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + topic: '- (Required, Forces new resource) Topic affected by this ACL.' + username: '- (Required, Forces new resource) Username affected by this ACL.' + importStatements: [] + ovh_cloud_project_database_kafka_schemaregistryacl: + subCategory: "" + name: ovh_cloud_project_database_kafka_schemaregistryacl + title: "" + examples: + - name: schema_registry_acl + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.kafka.id}", + "permission": "schema_registry_read", + "resource": "Subject:myResource", + "service_name": "${data.ovh_cloud_project_database.kafka.service_name}", + "username": "johndoe" + } + references: + cluster_id: data.ovh_cloud_project_database.kafka.id + service_name: data.ovh_cloud_project_database.kafka.service_name + - name: schema_registry_acl + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the ACL.' + permission: |- + - (Required, Forces new resource) Permission to give to this username on this resource. + Available permissions: + resource: '- (Required, Forces new resource) Resource affected by this schema registry ACL.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + username: '- (Required, Forces new resource) Username affected by this schema registry ACL.' + importStatements: [] + ovh_cloud_project_database_kafka_topic: + subCategory: "" + name: ovh_cloud_project_database_kafka_topic + title: "" + examples: + - name: topic + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.kafka.id}", + "min_insync_replicas": 1, + "name": "mytopic", + "partitions": 3, + "replication": 2, + "retention_bytes": 4, + "retention_hours": 5, + "service_name": "${data.ovh_cloud_project_database.kafka.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.kafka.id + service_name: data.ovh_cloud_project_database.kafka.service_name + - name: topic + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the topic.' + min_insync_replicas: '- (Optional, Forces new resource) Minimum insync replica accepted for this topic. Should be superior to 0' + name: '- (Required, Forces new resource) Name of the topic. No spaces allowed.' + partitions: '- (Optional, Forces new resource) Number of partitions for this topic. Should be superior to 0' + replication: '- (Optional, Forces new resource) Number of replication for this topic. Should be superior to 1' + retention_bytes: '- (Optional, Forces new resource) Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited' + retention_hours: '- (Optional, Forces new resource) Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + ovh_cloud_project_database_log_subscription: + subCategory: "" + name: ovh_cloud_project_database_log_subscription + title: "" + examples: + - name: subscription + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db.id}", + "engine": "${data.ovh_cloud_project_database.db.engine}", + "service_name": "${data.ovh_cloud_project_database.db.service_name}", + "stream_id": "${data.ovh_dbaas_logs_output_graylog_stream.stream.id}" + } + references: + cluster_id: data.ovh_cloud_project_database.db.id + engine: data.ovh_cloud_project_database.db.engine + service_name: data.ovh_cloud_project_database.db.service_name + stream_id: data.ovh_dbaas_logs_output_graylog_stream.stream.id + - name: sub + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Creation date of the subscription.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The database engine for which you want to manage a subscription. To get a full list of available engine visit. + public documentation. + id: '- ID of the log subscription.' + kind: '- Log kind name of this subscription.' + ldp_service_name: '- Name of the destination log service.' + operation_id: '- Identifier of the operation.' + resource_name: '- Name of subscribed resource, where the logs come from.' + resource_type: '- Type of subscribed resource, where the logs come from.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + stream_id: '- (Required, Forces new resource) Id of the target Log data platform stream.' + update: '- (Default 20m)' + updated_at: '- Last update date of the subscription.' + importStatements: [] + ovh_cloud_project_database_m3db_namespace: + subCategory: "" + name: ovh_cloud_project_database_m3db_namespace + title: "" + examples: + - name: namespace + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.m3db.id}", + "name": "mynamespace", + "resolution": "P2D", + "retention_period_duration": "PT48H", + "service_name": "${data.ovh_cloud_project_database.m3db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.m3db.id + service_name: data.ovh_cloud_project_database.m3db.service_name + - name: namespace + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the namespace.' + name: '- (Required, Forces new resource) Name of the namespace. A namespace named "default" is mapped with already created default namespace instead of creating a new namespace.' + resolution: '- (Optional) Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.' + retention_block_data_expiration_duration: '- (Optional) Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.' + retention_block_size_duration: '- (Optional, Forces new resource) Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.' + retention_buffer_future_duration: '- (Optional) Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' + retention_buffer_past_duration: '- (Optional) Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' + retention_period_duration: '- (Optional) Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + snapshot_enabled: '- (Optional) Defines whether M3DB will create snapshot files for this namespace.' + type: '- Type of namespace.' + update: '- (Default 20m)' + writes_to_commit_log_enabled: '- (Optional) Defines whether M3DB will include writes to this namespace in the commit log.' + importStatements: [] + ovh_cloud_project_database_m3db_user: + subCategory: "" + name: ovh_cloud_project_database_m3db_user + title: "" + examples: + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.m3db.id}", + "group": "mygroup", + "name": "johndoe", + "service_name": "${data.ovh_cloud_project_database.m3db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.m3db.id + service_name: data.ovh_cloud_project_database.m3db.service_name + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.m3db.id}", + "group": "mygroup", + "name": "johndoe", + "password_reset": "reset1", + "service_name": "${data.ovh_cloud_project_database.m3db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.m3db.id + service_name: data.ovh_cloud_project_database.m3db.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + group: '- (Optional) Group of the user:' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_mongodb_user: + subCategory: "" + name: ovh_cloud_project_database_mongodb_user + title: "" + examples: + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.mongodb.id}", + "name": "johndoe", + "roles": [ + "backup@admin", + "readAnyDatabase@admin" + ], + "service_name": "${data.ovh_cloud_project_database.mongodb.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.mongodb.id + service_name: data.ovh_cloud_project_database.mongodb.service_name + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.mongodb.id}", + "name": "johndoe", + "password_reset": "reset1", + "roles": [ + "backup@admin", + "readAnyDatabase@admin" + ], + "service_name": "${data.ovh_cloud_project_database.mongodb.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.mongodb.id + service_name: data.ovh_cloud_project_database.mongodb.service_name + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.mongodb.id}", + "name": "admin", + "roles": [ + "clusterMonitor@admin", + "readWriteAnyDatabase@admin", + "userAdminAnyDatabase@admin" + ], + "service_name": "${data.ovh_cloud_project_database.mongodb.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.mongodb.id + service_name: data.ovh_cloud_project_database.mongodb.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + roles: |- + - (Optional: if omit, default role) Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles + Available roles: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_opensearch_pattern: + subCategory: "" + name: ovh_cloud_project_database_opensearch_pattern + title: "" + examples: + - name: pattern + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.opensearch.id}", + "max_index_count": 2, + "pattern": "logs_*", + "service_name": "${data.ovh_cloud_project_database.opensearch.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.opensearch.id + service_name: data.ovh_cloud_project_database.opensearch.service_name + - name: pattern + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the pattern.' + max_index_count: '- (Optional, Forces new resource) Maximum number of index for this pattern.' + pattern: '- (Required, Forces new resource) Pattern format.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + ovh_cloud_project_database_opensearch_user: + subCategory: "" + name: ovh_cloud_project_database_opensearch_user + title: "" + examples: + - name: user + manifest: |- + { + "acls": [ + { + "pattern": "logs_*", + "permission": "read" + }, + { + "pattern": "data_*", + "permission": "deny" + } + ], + "cluster_id": "${data.ovh_cloud_project_database.opensearch.id}", + "name": "johndoe", + "service_name": "${data.ovh_cloud_project_database.opensearch.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.opensearch.id + service_name: data.ovh_cloud_project_database.opensearch.service_name + - name: user + manifest: |- + { + "acls": [ + { + "pattern": "logs_*", + "permission": "read" + }, + { + "pattern": "data_*", + "permission": "deny" + } + ], + "cluster_id": "${data.ovh_cloud_project_database.opensearch.id}", + "name": "johndoe", + "password_reset": "reset1", + "service_name": "${data.ovh_cloud_project_database.opensearch.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.opensearch.id + service_name: data.ovh_cloud_project_database.opensearch.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + acls: '- (Optional) Acls of the user.' + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + pattern: '- (Required) Pattern of the ACL.' + permission: |- + - (Required) Permission of the ACL + Available permission: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_postgresql_connection_pool: + subCategory: "" + name: ovh_cloud_project_database_postgresql_connection_pool + title: "" + examples: + - name: test_pool + manifest: |- + { + "cluster_id": "${ovh_cloud_project_database.db.id}", + "database_id": "${ovh_cloud_project_database_database.database.id}", + "mode": "session", + "name": "test_connection_pool", + "service_name": "${ovh_cloud_project_database.db.service_name}", + "size": 13, + "user_id": "${ovh_cloud_project_database_postgresql_user.user.id}" + } + references: + cluster_id: ovh_cloud_project_database.db.id + database_id: ovh_cloud_project_database_database.database.id + service_name: ovh_cloud_project_database.db.service_name + user_id: ovh_cloud_project_database_postgresql_user.user.id + dependencies: + ovh_cloud_project_database.db: |- + { + "description": "test-postgresql-cluster", + "engine": "postgresql", + "flavor": "db1-4", + "nodes": [ + { + "region": "GRA" + } + ], + "plan": "essential", + "service_name": "XXXX", + "version": "15" + } + ovh_cloud_project_database_database.database: |- + { + "cluster_id": "${ovh_cloud_project_database.db.id}", + "engine": "${ovh_cloud_project_database.db.engine}", + "name": "mydatabase", + "service_name": "${ovh_cloud_project_database.db.service_name}" + } + ovh_cloud_project_database_postgresql_user.user: |- + { + "cluster_id": "${ovh_cloud_project_database.db.id}", + "name": "johndoe", + "roles": [ + "replication" + ], + "service_name": "${ovh_cloud_project_database.db.service_name}" + } + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + database_id: '- (Required, Forces new resource) Database ID for a database that belongs to the Database cluster given above.' + delete: '- (Default 20m)' + mode: |- + - (Required) Connection mode to the connection pool + Available modes: + name: '- (Required, Forces new resource) Name of the connection pool.' + port: '- Port of the connection pool.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + size: '- (Required) Size of the connection pool.' + ssl_mode: '- Ssl connection mode for the pool.' + update: '- (Default 20m)' + uri: '- Connection URI to the pool.' + user_id: '- (Optional) Database user authorized to connect to the pool, if none all the users are allowed.' + importStatements: [] + ovh_cloud_project_database_postgresql_user: + subCategory: "" + name: ovh_cloud_project_database_postgresql_user + title: "" + examples: + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.postgresql.id}", + "name": "johndoe", + "roles": [ + "replication" + ], + "service_name": "${data.ovh_cloud_project_database.postgresql.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.postgresql.id + service_name: data.ovh_cloud_project_database.postgresql.service_name + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.postgresql.id}", + "name": "johndoe", + "password_reset": "reset1", + "roles": [ + "replication" + ], + "service_name": "${data.ovh_cloud_project_database.postgresql.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.postgresql.id + service_name: data.ovh_cloud_project_database.postgresql.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + roles: |- + - (Optional: if omit, default role) Roles the user belongs to. + Available roles: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_redis_user: + subCategory: "" + name: ovh_cloud_project_database_redis_user + title: "" + examples: + - name: user + manifest: |- + { + "categories": [ + "+@set", + "+@sortedset" + ], + "channels": [ + "*" + ], + "cluster_id": "${data.ovh_cloud_project_database.redis.id}", + "commands": [ + "+get", + "-set" + ], + "keys": [ + "data", + "properties" + ], + "name": "johndoe", + "service_name": "${data.ovh_cloud_project_database.redis.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.redis.id + service_name: data.ovh_cloud_project_database.redis.service_name + - name: user + manifest: |- + { + "categories": [ + "+@set", + "+@sortedset" + ], + "channels": [ + "*" + ], + "cluster_id": "${data.ovh_cloud_project_database.redis.id}", + "commands": [ + "+get", + "-set" + ], + "keys": [ + "data", + "properties" + ], + "name": "johndoe", + "password_reset": "reset1", + "service_name": "${data.ovh_cloud_project_database.redis.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.redis.id + service_name: data.ovh_cloud_project_database.redis.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + categories: '- (Optional) Categories of the user.' + channels: '- (Optional: if omit, all channels) Channels of the user.' + cluster_id: '- (Required, Forces new resource) Cluster ID.' + commands: '- (Optional) Commands of the user.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + keys: '- (Optional) Keys of the user.' + name: '- (Required, Forces new resource) Name of the user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_database_user: + subCategory: "" + name: ovh_cloud_project_database_user + title: "" + examples: + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db.id}", + "engine": "${data.ovh_cloud_project_database.db.engine}", + "name": "johndoe", + "service_name": "${data.ovh_cloud_project_database.db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.db.id + engine: data.ovh_cloud_project_database.db.engine + service_name: data.ovh_cloud_project_database.db.service_name + - name: user + manifest: |- + { + "cluster_id": "${data.ovh_cloud_project_database.db.id}", + "engine": "${data.ovh_cloud_project_database.db.engine}", + "name": "johndoe", + "password_reset": "reset1", + "service_name": "${data.ovh_cloud_project_database.db.service_name}" + } + references: + cluster_id: data.ovh_cloud_project_database.db.id + engine: data.ovh_cloud_project_database.db.engine + service_name: data.ovh_cloud_project_database.db.service_name + - name: user + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + Available engines: + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + ovh_cloud_project_failover_ip_attach: + subCategory: "" + name: ovh_cloud_project_failover_ip_attach + title: "" + examples: + - name: my_failover_ip + manifest: |- + { + "ip": "XXXXXX", + "routed_to": "XXXXXX", + "service_name": "XXXXXX" + } + argumentDocs: + block: '- The IP block' + continentCode: '- The Ip continent' + geoloc: '- The Ip location' + id: '- The Ip id' + ip: '- The failover ip address to attach' + progress: '- Current operation progress in percent' + routed_to: '- The GUID of an instance to which the failover IP address is be attached' + routedTo: '- Instance where ip is routed to' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Ip status, can be ok or operationPending' + subType: '- IP sub type, can be cloud or ovh' + importStatements: [] + ovh_cloud_project_gateway: + subCategory: Public Cloud Network + name: ovh_cloud_project_gateway + title: "" + examples: + - name: gateway + manifest: |- + { + "model": "s", + "name": "my-gateway", + "network_id": "${tolist(ovh_cloud_project_network_private.mypriv.regions_attributes[*].openstackid)[0]}", + "region": "${ovh_cloud_project_network_private_subnet.myprivsub.region}", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "subnet_id": "${ovh_cloud_project_network_private_subnet.myprivsub.id}" + } + references: + region: ovh_cloud_project_network_private_subnet.myprivsub.region + service_name: ovh_cloud_project_network_private.mypriv.service_name + subnet_id: ovh_cloud_project_network_private_subnet.myprivsub.id + dependencies: + ovh_cloud_project_network_private.mypriv: |- + { + "name": "mypriv", + "regions": [ + "GRA9" + ], + "service_name": "xxxxxxxxxx", + "vlan_id": "0" + } + ovh_cloud_project_network_private_subnet.myprivsub: |- + { + "dhcp": true, + "end": "10.0.255.254", + "network": "10.0.0.0/16", + "network_id": "${ovh_cloud_project_network_private.mypriv.id}", + "region": "GRA9", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "start": "10.0.0.2" + } + argumentDocs: + external_information: '- List of External Information of the gateway.' + id: '- Identifier of the gateway.' + interfaces: '- Interfaces list of the gateway.' + ip: '- External IP of the gateway.' + ips: '- List of external ips of the gateway.' + model: '- (Required) Model of the gateway.' + name: '- (Required) Name of the gateway.' + network_id: '- (Required) ID of the private network.' + region: '- (Required) Region of the gateway.' + service_name: '- (Required) ID of the private network.' + status: '- Status of the gateway.' + subnet_id: '- (Required) ID of the subnet.' + importStatements: [] + ovh_cloud_project_gateway_interface: + subCategory: Public Cloud Network + name: ovh_cloud_project_gateway_interface + title: "" + examples: + - name: interface + manifest: |- + { + "id": "${ovh_cloud_project_gateway.gateway.id}", + "region": "${ovh_cloud_project_network_private_subnet.my_other_privsub.region}", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "subnet_id": "${ovh_cloud_project_network_private_subnet.my_other_privsub.id}" + } + references: + id: ovh_cloud_project_gateway.gateway.id + region: ovh_cloud_project_network_private_subnet.my_other_privsub.region + service_name: ovh_cloud_project_network_private.mypriv.service_name + subnet_id: ovh_cloud_project_network_private_subnet.my_other_privsub.id + dependencies: + ovh_cloud_project_gateway.gateway: |- + { + "model": "s", + "name": "my-gateway", + "network_id": "${tolist(ovh_cloud_project_network_private.mypriv.regions_attributes[*].openstackid)[0]}", + "region": "${ovh_cloud_project_network_private_subnet.my_privsub.region}", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "subnet_id": "${ovh_cloud_project_network_private_subnet.my_privsub.id}" + } + ovh_cloud_project_network_private.mypriv: |- + { + "name": "mypriv", + "regions": [ + "GRA9" + ], + "service_name": "xxxxxxxxxx", + "vlan_id": "0" + } + ovh_cloud_project_network_private_subnet.my_other_privsub: |- + { + "dhcp": true, + "end": "10.0.1.254", + "network": "10.0.1.0/24", + "network_id": "${ovh_cloud_project_network_private.mypriv.id}", + "region": "GRA9", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "start": "10.0.1.10" + } + ovh_cloud_project_network_private_subnet.my_privsub: |- + { + "dhcp": true, + "end": "10.0.0.8", + "network": "10.0.0.0/24", + "network_id": "${ovh_cloud_project_network_private.mypriv.id}", + "region": "GRA9", + "service_name": "${ovh_cloud_project_network_private.mypriv.service_name}", + "start": "10.0.0.2" + } + argumentDocs: + id: '- (Required) ID of the gateway' + interface_id: '- ID of the interface' + ip: '- IP of the interface' + network_id: '- Network ID of the interface' + region: '- (Required) Region of the gateway' + service_name: '- (Required) ID of the cloud project' + subnet_id: '- (Required) ID of the subnet to add' + importStatements: [] + ovh_cloud_project_kube: + subCategory: "" + name: ovh_cloud_project_kube + title: "" + examples: + - name: my_cluster + manifest: |- + { + "name": "my_kube_cluster", + "region": "GRA7", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "name": "my_kube_cluster", + "region": "GRA7", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "name": "my_kube_cluster", + "region": "GRA7", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "name": "my_kube_cluster", + "region": "GRA7", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "customization_apiserver": [ + { + "admissionplugins": [ + { + "disabled": [ + "AlwaysPullImages" + ], + "enabled": [ + "NodeRestriction" + ] + } + ] + } + ], + "name": "my_kube_cluster", + "region": "GRA5", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "customization_kube_proxy": [ + { + "iptables": [ + { + "min_sync_period": "PT0S", + "sync_period": "PT0S" + } + ], + "ipvs": [ + { + "min_sync_period": "PT0S", + "scheduler": "rr", + "sync_period": "PT0S", + "tcp_fin_timeout": "PT0S", + "tcp_timeout": "PT0S", + "udp_timeout": "PT0S" + } + ] + } + ], + "kube_proxy_mode": "ipvs", + "name": "my_kube_cluster", + "region": "GRA5", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_cluster + manifest: |- + { + "depends_on": [ + "${ovh_cloud_project_network_private_subnet.networksubnet}" + ], + "name": "test-kube-attach", + "private_network_configuration": [ + { + "default_vrack_gateway": "", + "private_network_routing_as_default": false + } + ], + "private_network_id": "${tolist(ovh_cloud_project_network_private.network.regions_attributes[*].openstackid)[0]}", + "region": "GRA5", + "service_name": "${var.service_name}" + } + references: + service_name: var.service_name + dependencies: + ovh_cloud_project_network_private.network: |- + { + "depends_on": [ + "${ovh_vrack_cloudproject.attach}" + ], + "name": "terraform_testacc_private_net", + "regions": [ + "GRA5" + ], + "service_name": "${ovh_vrack_cloudproject.attach.project_id}", + "vlan_id": 0 + } + ovh_cloud_project_network_private_subnet.networksubnet: |- + { + "depends_on": [ + "${ovh_cloud_project_network_private.network}" + ], + "dhcp": true, + "end": "192.168.168.200", + "network": "192.168.168.0/24", + "network_id": "${ovh_cloud_project_network_private.network.id}", + "no_gateway": false, + "region": "GRA5", + "service_name": "${ovh_cloud_project_network_private.network.service_name}", + "start": "192.168.168.100" + } + ovh_vrack_cloudproject.attach: |- + { + "project_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: my_kube_cluster + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + admissionplugins: '- (Optional) Kubernetes API server admission plugins customization' + apiserver: '- Kubernetes API server customization' + client_certificate: '- The kubernetes API server client certificate.' + client_key: '- The kubernetes API server client key.' + cluster_ca_certificate: '- The kubernetes API server CA certificate.' + control_plane_is_up_to_date: '- True if control-plane is up-to-date.' + create: '- (Default 10m)' + customization: '- Deprecated (Optional) Use customization_apiserver and customization_kube_proxy instead. Kubernetes cluster customization' + customization_apiserver: '- Kubernetes API server customization' + customization_kube_proxy: '- Kubernetes kube-proxy customization' + default_vrack_gateway: '- If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.' + delete: '- (Default 10m)' + disabled: '- (Optional) Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.' + enabled: '- (Optional) Array of admission plugins enabled, default is ["NodeRestriction","AlwaysPulImages"] and only these admission plugins can be enabled at this time.' + host: '- The kubernetes API server URL.' + id: '- Managed Kubernetes Service ID' + iptables: '- (Optional) Kubernetes cluster kube-proxy customization of iptables specific config (durations format is RFC3339 duration, e.g. PT60S)' + ipvs: '- (Optional) Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is RFC3339 duration, e.g. PT60S)' + is_up_to_date: '- True if all nodes and control-plane are up-to-date.' + kube_proxy: '- Kubernetes kube-proxy customization' + kube_proxy_mode: '- (Optional) Selected mode for kube-proxy. Changing this value recreates the resource, including ETCD user data. Defaults to iptables.' + kubeconfig: '- The kubeconfig file. Use this file to connect to your kubernetes cluster.' + kubeconfig_attributes: '- The kubeconfig file attributes.' + load_balancers_subnet_id: '- (Optional) Subnet ID to use for Public Load Balancers, this subnet must belong to  private_network_id. Defaults to the same subnet as the nodes (see nodes_subnet_id). Requires private_network_id to be defined. See more network requirements in the documentation for more information.' + min_sync_period: '- (Optional) Period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S). Must be greater than 0.' + name: '- (Optional) The name of the kubernetes cluster.' + next_upgrade_versions: '- Kubernetes versions available for upgrade.' + nodes_subnet_id: '- (Optional) Subnet ID to use for nodes, this subnet must belong to private_network_id. Default uses the first subnet belonging to the private network with id private_network_id. This attribute requires private_network_id to be defined. Cannot be updated, it can only be used at cluster creation or reset.' + nodes_url: '- Cluster nodes URL.' + private_network_configuration: '- (Optional) The private network configuration. If this is set then the 2 parameters below shall be defined.' + private_network_id: '- (Optional) Private network ID to use. Changing this value recreates the resource, including ETCD user data. Defaults - not use private network.' + private_network_routing_as_default: '- Defines whether routing should default to using the nodes'' private interface, instead of their public interface. Default is false.' + region: '- a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: "GRA1". Defaults to all public cloud regions. Changing this value recreates the resource.' + scheduler: '- (Optional) IPVS scheduler.' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + status: '- Cluster status. Should be normally set to ''READY''.' + sync_period: '- (Optional) Minimum period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S).' + tcp_fin_timeout: '- (Optional) Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + tcp_timeout: '- (Optional) Timeout value used for idle IPVS TCP sessions in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + udp_timeout: '- (Optional) timeout value used for IPVS UDP packets in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + update: '- (Default 10m)' + update_policy: '- Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].' + url: '- Management URL of your cluster.' + version: '- (Optional) kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.' + importStatements: [] + ovh_cloud_project_kube_iprestrictions: + subCategory: "" + name: ovh_cloud_project_kube_iprestrictions + title: "" + examples: + - name: vrack_only + manifest: |- + { + "ips": [ + "10.42.0.0/16" + ], + "kube_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: vrack_only + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + create: '- (Default 10m)' + delete: '- (Default 5m)' + ips: '- List of CIDR authorized to interact with the managed Kubernetes cluster.' + kube_id: '- The id of the managed Kubernetes cluster. Changing this value recreates the resource.' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 5m)' + importStatements: [] + ovh_cloud_project_kube_nodepool: + subCategory: "" + name: ovh_cloud_project_kube_nodepool + title: "" + examples: + - name: node_pool + manifest: |- + { + "desired_nodes": 3, + "flavor_name": "b2-7", + "kube_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "max_nodes": 3, + "min_nodes": 3, + "name": "my-pool-1", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + - name: pool + manifest: |- + { + "desired_nodes": 3, + "flavor_name": "b2-7", + "kube_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "max_nodes": 3, + "min_nodes": 3, + "name": "my-pool", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "template": [ + { + "metadata": [ + { + "annotations": { + "k1": "v1", + "k2": "v2" + }, + "finalizers": [], + "labels": { + "k3": "v3", + "k4": "v4" + } + } + ], + "spec": [ + { + "taints": [ + { + "effect": "PreferNoSchedule", + "key": "k", + "value": "v" + } + ], + "unschedulable": false + } + ] + } + ] + } + - name: pool + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + annotations: '- Annotations to apply to each node' + anti_affinity: '- (Optional) should the pool use the anti-affinity feature. Default to false. Changing this value recreates the resource.' + autoscale: '- (Optional) Enable auto-scaling for the pool. Default to false.' + autoscaling_scale_down_unneeded_time_seconds: |- + - (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + autoscaling_scale_down_unready_time_seconds: |- + - (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + autoscaling_scale_down_utilization_threshold: |- + - (Optional) scaleDownUtilizationThreshold autoscaling parameter + Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down + available_nodes: '- Number of nodes which are actually ready in the pool' + create: '- (Default 20m)' + created_at: '- Creation date' + current_nodes: '- Number of nodes present in the pool' + delete: '- (Default 10m)' + desired_nodes: '- number of nodes to start.' + effect: '- mandatory possible values: NoExecute, NoSchedule, PreferNoSchedule' + finalizers: '- Finalizers to apply to each node. A finalizer name must be fully qualified, e.g. kubernetes.io/pv-protection , where you prefix it with hostname of your service which is related to the controller responsible for the finalizer.' + flavor: '- Flavor name' + flavor_name: |- + - a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: "b2-7". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. + Changing this value recreates the resource. + key: '- mandatory' + kube_id: '- The id of the managed kubernetes cluster. Changing this value recreates the resource.' + labels: '- Labels to apply to each node' + max_nodes: '- maximum number of nodes allowed in the pool. Setting desired_nodes over this value will raise an error.' + metadata: '- Metadata of each node in the pool' + min_nodes: '- minimum number of nodes allowed in the pool. Setting desired_nodes under this value will raise an error.' + monthly_billed: '- (Optional) should the nodes be billed on a monthly basis. Default to false. Changing this value recreates the resource.' + name: '- (Optional) The name of the nodepool. Warning: _ char is not allowed! Changing this value recreates the resource.' + project_id: '- Project id' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + size_status: '- Status describing the state between number of nodes wanted and available ones' + spec: '- Spec of each node in the pool' + status: '- Current status' + taints: '- Taints to apply to each node NodeSpec kubernetes documentation' + 'template ': '- (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:' + unschedulable: '- If true, set nodes as un-schedulable' + up_to_date_nodes: '- Number of nodes with the latest version installed in the pool' + update: '- (Default 10m)' + updated_at: '- Last update date' + value: '- (Optional)' + importStatements: [] + ovh_cloud_project_kube_oidc: + subCategory: "" + name: ovh_cloud_project_kube_oidc + title: "" + examples: + - name: my_oidc + manifest: |- + { + "client_id": "xxx", + "issuer_url": "https://ovh.com", + "kube_id": "${ovh_cloud_project_kube.mykube.id}", + "oidc_ca_content": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "oidc_groups_claim": [ + "groups" + ], + "oidc_groups_prefix": "ovh:", + "oidc_required_claim": [ + "claim1=val1" + ], + "oidc_signing_algs": [ + "RS512" + ], + "oidc_username_claim": "an-email", + "oidc_username_prefix": "ovh:", + "service_name": "${var.projectid}" + } + references: + kube_id: ovh_cloud_project_kube.mykube.id + service_name: var.projectid + - name: oidc + manifest: |- + { + "timeouts": [ + { + "create": "1h", + "delete": "50s", + "update": "45m" + } + ] + } + argumentDocs: + client_id: '- The OIDC client ID.' + create: '- (Default 10m)' + delete: '- (Default 10m)' + issuer_url: '- The OIDC issuer url.' + kube_id: '- The ID of the managed kubernetes cluster. Changing this value recreates the resource.' + oidc_ca_content: '- Content of the certificate for the CA, in Base64 format, that signed your identity provider''s web certificate. Defaults to the host''s root CAs.' + oidc_groups_claim: '- Array of JWT claim to use as the user''s group. If the claim is present it must be an array of strings.' + oidc_groups_prefix: '- Prefix prepended to group claims to prevent clashes with existing names (such as system:groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.' + oidc_required_claim: '- Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."' + oidc_signing_algs: '- Array of signing algorithms accepted. Default is RS256.' + oidc_username_claim: '- JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.' + oidc_username_prefix: '- Prefix prepended to username claims to prevent clashes with existing names (such as system:users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn''t set and oidc_username_claim is a value other than email the prefix defaults to issuer_url where issuer_url is the value of issuer_url. The value - can be used to disable all prefixing.' + service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 10m)' + importStatements: [] + ovh_cloud_project_network_private: + subCategory: "" + name: ovh_cloud_project_network_private + title: "" + examples: + - name: net + manifest: |- + { + "name": "admin_network", + "regions": [ + "GRA1", + "BHS1" + ], + "service_name": "XXXXXX" + } + argumentDocs: + id: '- The id of the network' + name: '- (Required) The name of the network.' + regions: |- + - an array of valid OVHcloud public cloud region ID in which the network + will be available. Ex.: "GRA1". Defaults to all public cloud regions. + regions_attributes: '- A map representing information about the region.' + regions_attributes/openstackid: '- The private network id in the region.' + regions_attributes/region: '- The id of the region.' + regions_attributes/status: '- The status of the network in the region.' + regions_status: '- (Deprecated) A map representing the status of the network per region.' + regions_status/region: '- (Deprecated) The id of the region.' + regions_status/status: '- (Deprecated) The status of the network in the region.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- the status of the network. should be normally set to ''ACTIVE''.' + type: '- the type of the network. Either ''private'' or ''public''.' + vlan_id: |- + - a vlan id to associate with the network. + Changing this value recreates the resource. Defaults to 0. + importStatements: [] + ovh_cloud_project_network_private_subnet: + subCategory: "" + name: ovh_cloud_project_network_private_subnet + title: "" + examples: + - name: subnet + manifest: |- + { + "dhcp": true, + "end": "192.168.168.200", + "network": "192.168.168.0/24", + "network_id": "0234543", + "no_gateway": false, + "region": "GRA1", + "service_name": "xxxxx", + "start": "192.168.168.100" + } + argumentDocs: + cidr: '- Ip Block representing the subnet cidr.' + dhcp: |- + - (Optional) Enable DHCP. + Changing this forces a new resource to be created. Defaults to false. + dhcp_id: '- See Argument Reference above.' + end: |- + - (Required) Last ip for this region. + Changing this value recreates the subnet. + gateway_ip: '- The IP of the gateway' + ip_pools: '- List of ip pools allocated in the subnet.' + ip_pools/dhcp: '- DHCP enabled.' + ip_pools/end: '- Last ip for this region.' + ip_pools/network: '- Global network with cidr.' + ip_pools/region: '- Region where this subnet is created.' + ip_pools/start: '- First ip for this region.' + network: |- + - (Required) Global network in CIDR format. + Changing this value recreates the subnet + network_id: |- + - (Required) The id of the network. + Changing this forces a new resource to be created. + no_gateway: |- + - Set to true if you don't want to set a default gateway IP. + Changing this value recreates the resource. Defaults to false. + region: |- + - The region in which the network subnet will be created. + Ex.: "GRA1". Changing this value recreates the resource. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + start: |- + - (Required) First ip for this region. + Changing this value recreates the subnet. + importStatements: [] + ovh_cloud_project_network_private_subnet_v2: + subCategory: "" + name: ovh_cloud_project_network_private_subnet_v2 + title: "" + examples: + - name: subnet + manifest: |- + { + "cidr": "192.168.168.0/24", + "dhcp": true, + "dns_nameservers": [ + "1.1.1.1" + ], + "enable_gateway_ip": true, + "name": "my_private_subnet", + "network_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "region": "XXX1", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + argumentDocs: + allocation_pools: |- + - List of IP allocation pools + Changing this value recreates the resource. + cidr: |- + - (Required) IP range of the subnet + Changing this value recreates the subnet. + dhcp: |- + - (Optional) Enable DHCP. + Changing this forces a new resource to be created. Defaults to true. + dns_nameservers: |- + - DNS nameservers used by DHCP + Changing this value recreates the resource. Defaults to OVH default DNS nameserver. + enable_gateway_ip: |- + - Set to true if you want to set a default gateway IP. + Changing this value recreates the resource. Defaults to true. + gateway_ip: '- See Argument Reference above.' + host_routes: |- + - List of custom host routes. + Changing this value recreates the resource. + name: |- + - (Required) Name of the subnet + Changing this value recreates the subnet. + network_id: |- + - (Required) The id of the network. + Changing this forces a new resource to be created. + region: |- + - (Required) The region in which the network subnet will be created. + Ex.: "GRA1". Changing this value recreates the resource. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + ovh_cloud_project_region_loadbalancer_log_subscription: + subCategory: "" + name: ovh_cloud_project_region_loadbalancer_log_subscription + title: "" + examples: + - name: subscription + manifest: |- + { + "kind": "haproxy", + "loadbalancer_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", + "region_name": "yyyy", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "stream_id": "ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj" + } + argumentDocs: + created_at: '- The date of the subscription creation' + kind: '- haproxy Changing this value recreates the resource.' + ldp_service_name: '- LDP service name' + loadbalancer_id: '- Loadbalancer id to get the logs Changing this value recreates the resource.' + operation_id: '- The operation ID' + region_name: '- A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: "GRA11". Changing this value recreates the resource.' + resource_name: '- The resource name' + resource_type: '- The resource type' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + stream_id: '- Data stream id to use for the subscription Changing this value recreates the resource.' + subscription_id: '- The subscription id' + updated_at: '- The last update of the subscription' + importStatements: [] + ovh_cloud_project_region_storage_presign: + subCategory: "" + name: ovh_cloud_project_region_storage_presign + title: "" + examples: + - name: presigned_url + manifest: |- + { + "expire": 3600, + "method": "GET", + "name": "s3-bucket-name", + "object": "an-object-in-the-bucket", + "region_name": "GRA", + "service_name": "xxxxxxxxxxxxxxxxx" + } + argumentDocs: + expire: |- + - (Required) Define, in seconds, for how long your URL will be + valid. + method: |- + - (Required) The method you want to use to interact with your + object. Can be either 'GET' or 'PUT'. + name: '- (Required) The name of your S3 storage container/bucket.' + object: '- (Required) The name of the object in your S3 bucket.' + region_name: |- + - (Required) The region in which your storage is located. Must + be in uppercase. Ex.: "GRA". + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + url: '- Computed URL result.' + importStatements: [] + ovh_cloud_project_user: + subCategory: "" + name: ovh_cloud_project_user + title: "" + examples: + - name: user1 + manifest: |- + { + "service_name": "XXX" + } + argumentDocs: + creation_date: '- the date the user was created.' + description: '- A description associated with the user.' + id: '- id of the role' + name: '- name of the role' + openstack_rc: |- + - a convenient map representing an openstack_rc file. + Note: no password nor sensitive token is set in this map. + password: |- + - (Sensitive) the password generated for the user. The password can + be used with the Openstack API. This attribute is sensitive and will only be + retrieve once during creation. + permissions: '- list of permissions associated with the role' + role_name: '- The name of a role. See role_names.' + role_names: '- A list of role names. Values can be:' + roles: '- A list of roles associated with the user.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- the status of the user. should be normally set to ''ok''.' + username: |- + - the username generated for the user. This username can be used with + the Openstack API. + importStatements: [] + ovh_cloud_project_user_s3_policy: + subCategory: "" + name: ovh_cloud_project_user_s3_policy + title: "" + examples: + - name: policy + manifest: |- + { + "policy": "${jsonencode({\n \"Statement\":[{\n \"Sid\": \"RWContainer\",\n \"Effect\": \"Allow\",\n \"Action\":[\"s3:GetObject\", \"s3:PutObject\", \"s3:DeleteObject\", \"s3:ListBucket\", \"s3:ListMultipartUploadParts\", \"s3:ListBucketMultipartUploads\", \"s3:AbortMultipartUpload\", \"s3:GetBucketLocation\"],\n \"Resource\":[\"arn:aws:s3:::hp-bucket\", \"arn:aws:s3:::hp-bucket/*\"]\n }]\n })}", + "service_name": "${ovh_cloud_project_user.user.service_name}", + "user_id": "${ovh_cloud_project_user.user.id}" + } + references: + service_name: ovh_cloud_project_user.user.service_name + user_id: ovh_cloud_project_user.user.id + dependencies: + ovh_cloud_project_user.user: |- + { + "description": "my user", + "role_names": [ + "objectstore_operator" + ], + "service_name": "XXX" + } + ovh_cloud_project_user_s3_credential.my_s3_credentials: |- + { + "service_name": "${ovh_cloud_project_user.user.service_name}", + "user_id": "${ovh_cloud_project_user.user.id}" + } + argumentDocs: + policy: '- (Required) The policy document. This is a JSON formatted string. See examples of policies on public documentation.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_id: '- (Required) The ID of a public cloud project''s user.' + importStatements: [] + ovh_cloud_project_workflow_backup: + subCategory: "" + name: ovh_cloud_project_workflow_backup + title: "" + examples: + - name: my_backup + manifest: |- + { + "cron": "50 4 * * *", + "instance_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx", + "max_execution_count": "0", + "name": "Backup workflow for instance", + "region_name": "GRA11", + "rotation": "7", + "service_name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + argumentDocs: + backup_name: '- (Optional) The name of the backup files that are created. If empty, the name attribute is used.' + cron: '- (Mandatory) The cron periodicity at which the backup workflow is scheduled' + instanceId: the id of the instance to back up + max_execution_count: '- (Optional) The number of times the worflow is run. Default value is 0 which means that the workflow will be scheduled continously until its deletion' + name: '- (Mandatory) The worflow name that is used in the UI' + region_name: '- (Mandatory) The name of the openstack region.' + rotation: '- (Mandatory) The number of backup that are retained.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + importStatements: [] + ovh_dbaas_logs_cluster: + subCategory: "" + name: ovh_dbaas_logs_cluster + title: "" + examples: + - name: ldp + manifest: |- + { + "archive_allowed_networks": [ + "10.0.0.0/16" + ], + "cluster_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "direct_input_allowed_networks": [ + "10.0.0.0/16" + ], + "query_allowed_networks": [ + "10.0.0.0/16" + ], + "service_name": "ldp-xx-xxxxx" + } + argumentDocs: + archive_allowed_networks: '- List of IP blocks' + cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' + cluster_type: '- type of cluster (DEDICATED, PRO or TRIAL)' + dedicated_input_pem: '- PEM for dedicated inputs' + direct_input_allowed_networks: '- List of IP blocks' + direct_input_pem: '- PEM for direct inputs' + hostname: '- cluster hostname hosting tenant' + is_default: '- true if all content generated by given service will be placed on this cluster' + is_unlocked: '- true if given service can perform advanced operations on cluster' + query_allowed_networks: '- List of IP blocks' + region: '- datacenter localization' + service_name: '- (Required) The service name' + urn: '- URN of the DBaaS' + importStatements: [] + ovh_dbaas_logs_input: + subCategory: "" + name: ovh_dbaas_logs_input + title: "" + examples: + - name: input + manifest: |- + { + "allowed_networks": [ + "10.0.0.0/16" + ], + "configuration": [ + { + "logstash": [ + { + "input_section": " beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n" + } + ] + } + ], + "description": "${ovh_dbaas_logs_output_graylog_stream.stream.description}", + "engine_id": "${data.ovh_dbaas_logs_input_engine.logstash.id}", + "exposed_port": "6154", + "nb_instance": 2, + "service_name": "${ovh_dbaas_logs_output_graylog_stream.stream.service_name}", + "stream_id": "${ovh_dbaas_logs_output_graylog_stream.stream.id}", + "title": "${ovh_dbaas_logs_output_graylog_stream.stream.title}" + } + references: + description: ovh_dbaas_logs_output_graylog_stream.stream.description + engine_id: data.ovh_dbaas_logs_input_engine.logstash.id + service_name: ovh_dbaas_logs_output_graylog_stream.stream.service_name + stream_id: ovh_dbaas_logs_output_graylog_stream.stream.id + title: ovh_dbaas_logs_output_graylog_stream.stream.title + dependencies: + ovh_dbaas_logs_output_graylog_stream.stream: |- + { + "description": "my graylog stream", + "service_name": "....", + "title": "my stream" + } + argumentDocs: + allowed_networks: '- List of IP blocks' + autoscale: '- Whether the workload is auto-scaled (mutually exclusive with parameter nb_instance)' + configuration: '- (Required) Input configuration' + created_at: '- Input creation' + current_nb_instance: '- Number of instance running (returned by the API)' + description: '- (Required) Input description' + engine_id: '- (Required) Input engine ID' + exposed_port: '- Port' + filter_section: '- (Optional) The filter section of logstash.conf' + flowgger: '- (Optional) Flowgger configuration' + hostname: '- Hostname' + input_id: '- Input ID' + input_section: '- (Required) The filter section of logstash.conf' + is_restart_required: '- Indicate if input need to be restarted' + log_format: '- Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"' + log_framing: '- Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"' + logstash: '- (Optional) Logstash configuration' + max_scale_instance: '- Maximum number of instances in auto-scaled mode' + min_scale_instance: '- Minimum number of instances in auto-scaled mode' + nb_instance: '- Number of instance running (input, mutually exclusive with parameter autoscale)' + pattern_section: '- (Optional) The list of customs Grok patterns' + public_address: '- Input IP address' + service_name: '- (Required) service name' + ssl_certificate: '- Input SSL certificate' + status: '- init: configuration required, pending: ready to start, running: available' + stream_id: '- (Required) Associated Graylog stream' + title: '- (Required) Input title' + updated_at: '- Input last update' + importStatements: [] + ovh_dbaas_logs_output_graylog_stream: + subCategory: "" + name: ovh_dbaas_logs_output_graylog_stream + title: "" + examples: + - name: stream + manifest: |- + { + "description": "my graylog stream", + "service_name": "....", + "title": "my stream" + } + - name: stream + manifest: |- + { + "description": "my graylog stream", + "retention_id": "${data.ovh_dbaas_logs_cluster_retention.retention.retention_id}", + "service_name": "....", + "title": "my stream" + } + references: + retention_id: data.ovh_dbaas_logs_cluster_retention.retention.retention_id + argumentDocs: + can_alert: '- Indicates if the current user can create alert on the stream' + cold_storage_compression: '- Cold storage compression method. One of "LZMA", "GZIP", "DEFLATED", "ZSTD"' + cold_storage_content: '- ColdStorage content. One of "ALL", "GLEF", "PLAIN"' + cold_storage_enabled: '- Is Cold storage enabled?' + cold_storage_notify_enabled: '- Notify on new Cold storage archive' + cold_storage_retention: '- Cold storage retention in year' + cold_storage_target: '- ColdStorage destination. One of "PCA", "PCS"' + created_at: '- Stream creation' + description: '- (Required) Stream description' + indexing_enabled: '- Enable ES indexing' + indexing_max_size: '- Maximum indexing size (in GB)' + indexing_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of the maximum configured setting' + is_editable: '- Indicates if you are allowed to edit entry' + is_shareable: '- Indicates if you are allowed to share entry' + nb_alert_condition: '- Number of alert condition' + nb_archive: '- Number of coldstored archivesr' + parent_stream_id: '- Parent stream ID' + pause_indexing_on_max_size: '- If set, pause indexing when maximum size is reach' + retention_id: '- Retention ID' + service_name: '- (Required) The service name' + stream_id: '- Stream ID' + title: '- (Required) Stream description' + updated_at: '- Stream last updater' + web_socket_enabled: '- Enable Websocket' + write_token: '- Write token of the stream (empty if the caller is not the owner of the stream)' + importStatements: [] + ovh_dbaas_logs_output_opensearch_alias: + subCategory: "" + name: ovh_dbaas_logs_output_opensearch_alias + title: "" + examples: + - name: alias + manifest: |- + { + "description": "my opensearch alias", + "service_name": "....", + "suffix": "alias" + } + argumentDocs: + alias_id: '- Alias Id' + created_at: '- Alias creation' + description: '- (Required) Index description' + indexes: '- (Optional) List of attached indexes id' + is_editable: '- Indicates if you are allowed to edit entry' + max_size: '- Maximum index size (in bytes)' + name: '- Alias name' + nb_index: '- Number of indices linked' + nb_stream: '- Number of streams linked' + service_name: '- (Required) The service name' + streams: '- (Optional) List of attached streams id' + suffix: '- (Required) Index suffix' + updated_at: '- Input last update' + importStatements: [] + ovh_dbaas_logs_output_opensearch_index: + subCategory: "" + name: ovh_dbaas_logs_output_opensearch_index + title: "" + examples: + - name: index + manifest: |- + { + "description": "my opensearch index", + "service_name": "....", + "suffix": "index" + } + argumentDocs: + alert_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of its maximum capacity' + created_at: '- Index creation' + current_size: '- Current index size (in bytes)' + description: '- (Required) Index description' + index_id: '- Index ID' + is_editable: '- Indicates if you are allowed to edit entry' + max_size: '- Maximum index size (in bytes)' + name: '- Index name' + nb_shard: '- (Required) Number of shards' + service_name: '- (Required) The service name' + suffix: '- (Required) Index suffix' + updated_at: '- Index last update' + importStatements: [] + ovh_dbaas_logs_token: + subCategory: "" + name: ovh_dbaas_logs_token + title: "" + examples: + - name: token + manifest: |- + { + "name": "ExampleToken", + "service_name": "ldp-xx-xxxxx" + } + argumentDocs: + cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' + created_at: '- Token creation date' + name: '- Name of the token' + service_name: '- (Required) The LDP service name' + token_id: '- ID of the token' + updated_at: '- Token last update date' + value: '- Token value' + importStatements: [] + ovh_dedicated_ceph_acl: + subCategory: "" + name: ovh_dedicated_ceph_acl + title: "" + examples: + - name: my-acl + manifest: |- + { + "netmask": "255.255.255.255", + "network": "1.2.3.4", + "service_name": "${data.ovh_dedicated_ceph.my_ceph.id}" + } + references: + service_name: data.ovh_dedicated_ceph.my_ceph.id + argumentDocs: + family: '- IP family. IPv4 or IPv6' + netmask: '- (Required) The network mask to apply' + network: '- (Required) The network IP to authorize' + service_name: '- (Required) The internal name of your dedicated CEPH' + importStatements: [] + ovh_dedicated_nasha_partition: + subCategory: "" + name: ovh_dedicated_nasha_partition + title: "" + examples: + - name: my_partition + manifest: |- + { + "name": "my-partition", + "protocol": "NFS", + "service_name": "zpool-12345", + "size": 20 + } + argumentDocs: + capacity: '- Percentage of partition space used in %' + description: '- A brief description of the partition' + name: '- (Required) name of the partition' + protocol: '- (Required) one of "NFS", "CIFS" or "NFS_CIFS"' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + size: '- (Required) size of the partition in GB' + used_by_snapshots: '- Percentage of partition space used by snapshots in %' + importStatements: [] + ovh_dedicated_nasha_partition_access: + subCategory: "" + name: ovh_dedicated_nasha_partition_access + title: "" + examples: + - name: my_partition + manifest: |- + { + "acl_description": "Description of the ACL", + "ip": "123.123.123.123/32", + "partition_name": "my-partition", + "service_name": "zpool-12345", + "type": "readwrite" + } + argumentDocs: + acl_description: '- A brief description of the acl' + ip: '- (Required) IP block in x.x.x.x/x format' + partition_name: '- (Required) Name of the partition' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + type: '- (Required) One of "readwrite", "readonly"' + importStatements: [] + ovh_dedicated_nasha_partition_snapshot: + subCategory: "" + name: ovh_dedicated_nasha_partition_snapshot + title: "" + examples: + - name: my_partition + manifest: |- + { + "partition_name": "my-partition", + "service_name": "zpool-12345", + "type": "day-3" + } + argumentDocs: + partition_name: '- (Required) name of the partition' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + type: '- (Required) Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6' + importStatements: [] + ovh_dedicated_server: + subCategory: "" + name: ovh_dedicated_server + title: "" + examples: + - name: server + manifest: |- + { + "display_name": "My server display name", + "ovh_subsidiary": "${data.ovh_me.account.ovh_subsidiary}", + "plan": [ + { + "configuration": [ + { + "label": "dedicated_datacenter", + "value": "bhs" + }, + { + "label": "dedicated_os", + "value": "none_64.en" + }, + { + "label": "region", + "value": "canada" + } + ], + "duration": "P1M", + "plan_code": "22rise01", + "pricing_mode": "default" + } + ], + "plan_option": [ + { + "duration": "P1M", + "plan_code": "ram-32g-rise13", + "pricing_mode": "default", + "quantity": 1 + }, + { + "duration": "P1M", + "plan_code": "bandwidth-500-included-rise", + "pricing_mode": "default", + "quantity": 1 + }, + { + "duration": "P1M", + "plan_code": "softraid-2x512nvme-rise", + "pricing_mode": "default", + "quantity": 1 + }, + { + "duration": "P1M", + "plan_code": "vrack-bandwidth-100-rise-included", + "pricing_mode": "default", + "quantity": 1 + } + ], + "template_name": "debian12_64" + } + references: + ovh_subsidiary: data.ovh_me.account.ovh_subsidiary + argumentDocs: + availability_zone: '- Dedicated AZ localisation' + boot_id: '- Boot id of the server' + boot_script: '- Boot script of the server' + catalog_name: '- Catalog name' + commercial_range: '- Dedicated server commercial range' + configuration: '- Representation of a configuration item to personalize product' + custom_hostname: '- Personnal hostname to use in server reinstallation' + datacenter: '- Dedicated datacenter localisation (bhs1,bhs2,...)' + details: '- Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start)' + disk_group_id: '- Disk group id to process install on (only available for some templates)' + display_name: '- Display name of your dedicated server' + duration: '- (Required) Duration' + iam: '- IAM resource information' + id: '- Unique identifier of the resource in the IAM' + ip: '- Dedicated server ip (IPv4)' + label: '- (Required) Identifier of the resource' + link_speed: '- Link speed of the server' + monitoring: '- Icmp monitoring state' + name: '- Dedicated server name' + new_upgrade_system: '-' + no_intervention: '- Prevent datacenter intervention' + no_raid: '- Whether you want to install only on the first disk' + os: '- Operating system' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + partition_scheme_name: '- Partition scheme name' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- Product Plan to order' + power_state: '- Power state of the server (poweron, poweroff)' + pricing_mode: '- (Required) Pricing mode identifier' + professional_use: '- Does this server have professional use option' + rack: '- Rack id of the server' + region: '- Dedicated region localisation' + rescue_mail: '- Custom email used to receive rescue credentials' + rescue_ssh_key: '- Public SSH Key used in the rescue mode' + reverse: '- Dedicated server reverse' + root_device: '- Root device of the server' + server_id: '- Server id' + service_name: '- The service_name of your dedicated server' + soft_raid_devices: '- Number of devices to use for system''s software RAID' + state: '- All states a Dedicated can in (error, hacked, hackedBlocked, ok)' + support_level: '- Dedicated server support level (critical, fastpath, gs, pro)' + tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' + template_name: '- Template name. You can check the following API to list the available base templates' + urn: '- URN of the private database, used when writing IAM policies' + user_metadata: '- Metadata' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + ovh_dedicated_server_install_task: + subCategory: "" + name: ovh_dedicated_server_install_task + title: "" + examples: + - name: server_install + manifest: |- + { + "bootid_on_destroy": "${data.ovh_dedicated_server_boots.rescue.result[0]}", + "details": [ + { + "custom_hostname": "mytest" + } + ], + "service_name": "nsxxxxxxx.ip-xx-xx-xx.eu", + "template_name": "${ovh_me_installation_template.debian.template_name}", + "user_metadata": [ + { + "key": "sshKey", + "value": "ssh-ed25519 AAAAC3..." + }, + { + "key": "postInstallationScript", + "value": "#!/bin/bash\n echo \"coucou postInstallationScript\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc \u003e\u003e /opt/coucou\n" + } + ] + } + references: + bootid_on_destroy: data.ovh_dedicated_server_boots.rescue.result[0] + template_name: ovh_me_installation_template.debian.template_name + dependencies: + ovh_me_installation_template.debian: |- + { + "base_template_name": "debian12_64", + "customization": [ + { + "custom_hostname": "mytest" + } + ], + "template_name": "mydebian12" + } + - name: server_install + manifest: |- + { + "bootid_on_destroy": "${data.ovh_dedicated_server_boots.rescue.result[0]}", + "details": [ + { + "custom_hostname": "mytest" + } + ], + "service_name": "${data.ovh_dedicated_server.server.service_name}", + "template_name": "byolinux_64", + "user_metadata": [ + { + "key": "imageURL", + "value": "https://myimage.qcow2" + }, + { + "key": "imageType", + "value": "qcow2" + }, + { + "key": "httpHeaders0Key", + "value": "Authorization" + }, + { + "key": "httpHeaders0Value", + "value": "Basic bG9naW46xxxxxxx=" + }, + { + "key": "imageChecksumType", + "value": "sha512" + }, + { + "key": "imageCheckSum", + "value": "047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225" + }, + { + "key": "configDriveUserData", + "value": "#cloud-config\nssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n" + } + ] + } + references: + bootid_on_destroy: data.ovh_dedicated_server_boots.rescue.result[0] + service_name: data.ovh_dedicated_server.server.service_name + - name: server_install + manifest: |- + { + "bootid_on_destroy": "${data.ovh_dedicated_server_boots.rescue.result[0]}", + "details": [ + { + "custom_hostname": "mytest" + } + ], + "service_name": "${data.ovh_dedicated_server.server.service_name}", + "template_name": "win2019-std_64", + "user_metadata": [ + { + "key": "language", + "value": "fr-fr" + }, + { + "key": "postInstallationScript", + "value": "coucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n" + } + ] + } + references: + bootid_on_destroy: data.ovh_dedicated_server_boots.rescue.result[0] + service_name: data.ovh_dedicated_server.server.service_name + argumentDocs: + bootid_on_destroy: '- If set, reboot the server on the specified boot id during destroy phase.' + comment: '- Details of this task. (should be Install asked)' + details: '- see details block below.' + details.custom_hostname: '- Set up the server using the provided hostname instead of the default hostname.' + details.disk_group_id: '- Disk group id.' + details.language: '- Deprecated, will be removed in next release.' + details.no_raid: '- Set to true to disable RAID.' + details.soft_raid_devices: '- soft raid devices.' + details.use_spla: '- Deprecated, will be removed in next release.' + done_date: '- Completion date in RFC3339 format.' + function: '- Function name (should be hardInstall).' + id: '- The task id' last_update: '- Last update in RFC3339 format.' + partition_scheme_name: '- Partition scheme name.' service_name: '- (Required) The service_name of your dedicated server.' start_date: '- Task creation date in RFC3339 format.' status: '- Task status (should be done)' + template_name: '- (Required) Template name.' + user_metadata: '- see user_metadata block below.' importStatements: [] - dedicated_server_specifications_hardware.html.markdown: - subCategory: "" - description: 'dedicated_server_specifications_hardware.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_specifications_hardware.html.markdown - title: dedicated_server_specifications_hardware.html.markdown - argumentDocs: - boot_mode: '- Server boot mode' - cores_per_processor: '- Number of cores per processor' - default_hardware_raid_size: '- Default hardware raid size for this server' - default_hardware_raid_type: '- Default hardware raid type configured on this server' - description: '- Commercial name of this server' - disk_group_id: '- Identifier of this disk group' - disk_groups: '- Details about the groups of disks in the server' - disk_size: '- Disk capacity' - disk_type: '- Type of the disk (SSD, SATA, SAS, ...)' - expansion_cards: '- Details about the server''s expansion cards' - form_factor: '- Server form factor' - memory_size: '- RAM capacity' - motherboard: '- Server motherboard' - number_of_disks: '- Number of disks in this group' - number_of_processors: '- Number of processors in this dedicated server' - processor_architecture: '- Processor architecture bit' - processor_name: '- Processor name' - raid_controller: '- Raid controller, if any, managing this group of disks' - service_name: '- (Required) The internal name of your dedicated server.' - threads_per_processor: '- Number of threads per processor' - type: '- Expansion card type enum' - usb_keys: '- Capacity of the USB keys installed on your server, if any' - importStatements: [] - dedicated_server_specifications_network.html.markdown: - subCategory: "" - description: 'dedicated_server_specifications_network.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_specifications_network.html.markdown - title: dedicated_server_specifications_network.html.markdown + ovh_dedicated_server_reboot_task: + subCategory: "" + name: ovh_dedicated_server_reboot_task + title: "" + examples: + - name: server_reboot + manifest: |- + { + "keepers": [ + "${ovh_dedicated_server_update.server_on_rescue.boot_id}" + ], + "service_name": "${data.ovh_dedicated_server_boots.rescue.service_name}" + } + references: + service_name: data.ovh_dedicated_server_boots.rescue.service_name + dependencies: + ovh_dedicated_server_update.server_on_rescue: |- + { + "boot_id": "${data.ovh_dedicated_server_boots.rescue.result[0]}", + "monitoring": true, + "service_name": "nsxxxxxxx.ip-xx-xx-xx.eu", + "state": "ok" + } argumentDocs: - aggregation: '- Interface aggregation status' - available: '- Is the OLA feature available' - available_modes: '- Supported modes' - bandwidth: '- Bandwidth details' - connection_val: '- Network connection flow rate' - count: '- Interface count' - default: '- Whether it is the default configuration of the server' - gateway: '- Server gateway' - input_quota_size: '- Monthly input traffic quota allowed' - input_quota_used: '- Monthly input traffic consumed this month' - interfaces: '- Interface layout' - internet_to_ovh: '- Bandwidth limitation Internet to OVH' - ip: '- Server main IP' - ipv4: '- Ipv4 routing details' - ipv6: '- Ipv6 routing details' - is_throttled: '- Whether bandwidth is throttleted for being over quota' - name: '- Mode name' - network: '- Server network' - ola: '- OLA details' - output_quota_size: '- Monthly output traffic quota allowed' - output_quota_used: '- Monthly output traffic consumed this month' - ovh_to_internet: '- Bandwidth limitation OVH to Internet' - ovh_to_ovh: '- Bandwidth limitation OVH to OVH' - reset_quota_date: '- Next reset quota date for traffic counter' - routing: '- Routing details' - service_name: '- (Required) The internal name of your dedicated server.' - supported: '- Whether server is compatible vmac' - supported_modes: '- Supported modes (DEPRECATED)' - switching: '- Switching details' - traffic: '- Traffic details' - type: '- Bandwidth offer type' - vmac: '- VMAC information for this dedicated server' - vrack: '- vRack details' + comment: '- Details of this task. (should be Reboot asked)' + done_date: '- Completion date in RFC3339 format.' + function: '- Function name (should be hardReboot).' + id: '- The task id' + keepers: '- List of values tracked to trigger reboot, used also to form implicit dependencies.' + last_update: '- Last update in RFC3339 format.' + service_name: '- (Required) The service_name of your dedicated server.' + start_date: '- Task creation date in RFC3339 format.' + status: '- Task status (should be done)' importStatements: [] - dedicated_server_update.html.markdown: - subCategory: "" - description: 'dedicated_server_update.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_server_update.html.markdown - title: dedicated_server_update.html.markdown + ovh_dedicated_server_update: + subCategory: "" + name: ovh_dedicated_server_update + title: "" + examples: + - name: server + manifest: |- + { + "boot_id": "${data.ovh_dedicated_server_boots.rescue.result[0]}", + "display_name": "Some human-readable name", + "monitoring": true, + "service_name": "nsxxxxxxx.ip-xx-xx-xx.eu", + "state": "ok" + } + references: + boot_id: data.ovh_dedicated_server_boots.rescue.result[0] argumentDocs: boot_id: '- boot id of the server' boot_script: '- boot script of the server' @@ -2076,19 +5086,38 @@ resources: service_name: '- (Required) The service_name of your dedicated server.' state: '- error, hacked, hackedBlocked, ok' importStatements: [] - dedicated_servers.html.markdown: - subCategory: "" - description: 'dedicated_servers.html.markdownsubcategory : "Dedicated Server"' - name: dedicated_servers.html.markdown - title: dedicated_servers.html.markdown - argumentDocs: - result: '- The list of dedicated servers IDs associated with your OVHcloud Account.' - importStatements: [] - domain_zone.html.markdown: - subCategory: "" - description: 'domain_zone.html.markdownsubcategory : "Domain names"' - name: domain_zone.html.markdown - title: domain_zone.html.markdown + ovh_domain_zone: + subCategory: "" + name: ovh_domain_zone + title: "" + examples: + - name: zone + manifest: |- + { + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "configuration": [ + { + "label": "zone", + "value": "myzone.mydomain.com" + }, + { + "label": "template", + "value": "minimized" + } + ], + "duration": "${data.ovh_order_cart_product_plan.zone.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.zone.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.zone.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.zone.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.zone.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.zone.selected_price.0.pricing_mode argumentDocs: catalog_name: '- Catalog name' configuration: '- (Required) Representation of a configuration item for personalizing product. 2 configurations are required : one for zone and one for template' @@ -2115,30 +5144,50 @@ resources: quantity: '- quantity' value: '- (Required) For zone, the value is the zone name myzone.example.com. For template, the value can be basic, minimized or redirect which is the same as minimized with additional entries for a redirect configuration.' importStatements: [] - domain_zone_dnssec.html.markdown: + ovh_domain_zone_dnssec: subCategory: "" - description: 'domain_zone_dnssec.html.markdownsubcategory : "Domain names"' - name: domain_zone_dnssec.html.markdown - title: domain_zone_dnssec.html.markdown + name: ovh_domain_zone_dnssec + title: "" + examples: + - name: dnssec + manifest: |- + { + "zone_name": "mysite.ovh" + } argumentDocs: status: '- DNSSEC status (disableInProgress, disabled, enableInProgress or enabled)' zone_name: '- (Required) The name of the domain zone' importStatements: [] - domain_zone_import.html.markdown: + ovh_domain_zone_import: subCategory: "" - description: 'domain_zone_import.html.markdownsubcategory : "Domain names"' - name: domain_zone_import.html.markdown - title: domain_zone_import.html.markdown + name: ovh_domain_zone_import + title: "" + examples: + - name: import + manifest: |- + { + "zone_file": "${file(\"./example.zone\")}", + "zone_name": "mysite.ovh" + } argumentDocs: exported_content: '- Zone file exported from the API' zone_file: '- (Required) Content of the zone file to import' zone_name: '- (Required) The name of the domain zone' importStatements: [] - domain_zone_record.html.markdown: - subCategory: "" - description: 'domain_zone_record.html.markdownsubcategory : "Domain names"' - name: domain_zone_record.html.markdown - title: domain_zone_record.html.markdown + ovh_domain_zone_record: + subCategory: "" + name: ovh_domain_zone_record + title: "" + examples: + - name: test + manifest: |- + { + "fieldtype": "A", + "subdomain": "test", + "target": "0.0.0.0", + "ttl": 3600, + "zone": "testdemo.ovh" + } argumentDocs: fieldType: '- The type of the record' fieldtype: '- (Required) The type of the record' @@ -2149,11 +5198,19 @@ resources: ttl: '- (Optional) The TTL of the record, it shall be >= to 60.' zone: '- (Required) The domain to add the record to' importStatements: [] - domain_zone_redirection.html.markdown: + ovh_domain_zone_redirection: subCategory: "" - description: 'domain_zone_redirection.html.markdownsubcategory : "Domain names"' - name: domain_zone_redirection.html.markdown - title: domain_zone_redirection.html.markdown + name: ovh_domain_zone_redirection + title: "" + examples: + - name: test + manifest: |- + { + "subdomain": "test", + "target": "http://www.ovh", + "type": "visiblePermanent", + "zone": "testdemo.ovh" + } argumentDocs: description: '- (Optional) A description of this redirection' id: '- The redirection ID' @@ -2168,11 +5225,39 @@ resources: visiblePermanent: -> Redirection by http code 301 zone: '- (Required) The domain to add the redirection to' importStatements: [] - hosting_privatedatabase.html.markdown: - subCategory: "" - description: 'hosting_privatedatabase.html.markdownsubcategory : "Web Cloud Private SQL"' - name: hosting_privatedatabase.html.markdown - title: hosting_privatedatabase.html.markdown + ovh_hosting_privatedatabase: + subCategory: "" + name: ovh_hosting_privatedatabase + title: "" + examples: + - name: database + manifest: |- + { + "display_name": "Postgresql-12", + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "configuration": [ + { + "label": "dc", + "value": "gra3" + }, + { + "label": "engine", + "value": "postgresql_12" + } + ], + "duration": "${data.ovh_order_cart_product_plan.database.prices[3].duration}", + "plan_code": "${data.ovh_order_cart_product_plan.database.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.database.selected_price[0].pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.database.prices[3].duration + plan.plan_code: data.ovh_order_cart_product_plan.database.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.database.selected_price[0].pricing_mode argumentDocs: catalog_name: '- Catalog name' configuration: '- (Optional) Representation of a configuration item for personalizing product' @@ -2215,41 +5300,71 @@ resources: version_label: ': Private database version label' version_number: ': Private database version number' importStatements: [] - hosting_privatedatabase_database.html.markdown: + ovh_hosting_privatedatabase_database: subCategory: "" - description: 'hosting_privatedatabase_database.html.markdownsubcategory : "Web Cloud Private SQL"' - name: hosting_privatedatabase_database.html.markdown - title: hosting_privatedatabase_database.html.markdown + name: ovh_hosting_privatedatabase_database + title: "" + examples: + - name: database + manifest: |- + { + "database_name": "XXXXXX", + "service_name": "XXXXXX" + } argumentDocs: database_name: '- (Required) Name of your new database' service_name: '- The internal name of your private database.' importStatements: [] - hosting_privatedatabase_user.html.markdown: + ovh_hosting_privatedatabase_user: subCategory: "" - description: 'hosting_privatedatabase_user.html.markdownsubcategory : "Web Cloud Private SQL"' - name: hosting_privatedatabase_user.html.markdown - title: hosting_privatedatabase_user.html.markdown + name: ovh_hosting_privatedatabase_user + title: "" + examples: + - name: user + manifest: |- + { + "password": "XXXXXX", + "service_name": "XXXXXX", + "user_name": "XXXXXX" + } argumentDocs: password: '- (Required) Password for the new user (alphanumeric, minimum one number and 8 characters minimum)' service_name: '- The internal name of your private database.' user_name: '- (Required) User name used to connect on your databases' importStatements: [] - hosting_privatedatabase_user_grant.html.markdown: + ovh_hosting_privatedatabase_user_grant: subCategory: "" - description: 'hosting_privatedatabase_user_grant.html.markdownsubcategory : "Web Cloud Private SQL"' - name: hosting_privatedatabase_user_grant.html.markdown - title: hosting_privatedatabase_user_grant.html.markdown + name: ovh_hosting_privatedatabase_user_grant + title: "" + examples: + - name: user_grant + manifest: |- + { + "database_name": "ovhcloud", + "grant": "admin", + "service_name": "XXXXXX", + "user_name": "terraform" + } argumentDocs: database_name: '- (Required) Database name where add grant.' grant: '- (Required) Database name where add grant. Values can be:' service_name: '- The internal name of your private database.' user_name: '- (Required) User name used to connect on your databases.' importStatements: [] - hosting_privatedatabase_whitelist.html.markdown: - subCategory: "" - description: 'hosting_privatedatabase_whitelist.html.markdownsubcategory : "Web Cloud Private SQL"' - name: hosting_privatedatabase_whitelist.html.markdown - title: hosting_privatedatabase_whitelist.html.markdown + ovh_hosting_privatedatabase_whitelist: + subCategory: "" + name: ovh_hosting_privatedatabase_whitelist + title: "" + examples: + - name: ip + manifest: |- + { + "ip": "1.2.3.4", + "name": "A name for your IP address", + "service": true, + "service_name": "XXXXXX", + "sftp": true + } argumentDocs: ip: '- (Required) The whitelisted IP in your instance.' name: '- (Required) Custom name for your Whitelisted IP.' @@ -2257,11 +5372,18 @@ resources: service_name: '- The internal name of your private database.' sftp: '- (Required) Authorize this IP to access SFTP port. Values can be true or false' importStatements: [] - iam_permissions_group.html.markdown: + ovh_iam_permissions_group: subCategory: "" - description: 'iam_permissions_group.html.markdownsubcategory : "Account Management"' - name: iam_permissions_group.html.markdown - title: iam_permissions_group.html.markdown + name: ovh_iam_permissions_group + title: "" + examples: + - name: read_vps + manifest: |- + { + "allow": "${[\n for act in data.ovh_iam_reference_actions.vps.actions : act.action if(contains(act.categories, \"READ\"))\n ]}", + "description": "Read access to vps", + "name": "read_vps" + } argumentDocs: allow: '- Set of actions allowed by the permissions group.' created_at: '- Creation date of this group.' @@ -2274,37 +5396,37 @@ resources: updated_at: '- Date of the last update of this group.' urn: '- URN of the permissions group.' importStatements: [] - iam_permissions_groups.markdown: - subCategory: "" - description: 'iam_permissions_groups.markdownsubcategory : "Account Management"' - name: iam_permissions_groups.markdown - title: iam_permissions_groups.markdown - argumentDocs: - allow: '- Set of actions allowed by the permissions group.' - created_at: '- Creation date of this group.' - deny: '- Set of actions that will always be denied even if it is explicitly allowed by a policy.' - description: '- Group description.' - except: '- Set of actions that will be subtracted from the allow list.' - name: '- Name of the permissions group.' - owner: '- Owner of the permissions group.' - read_only: '- Indicates that this is a default permissions group, managed by OVHcloud.' - updated_at: '- Date of the last update of this group.' - urn: '- URN of the permissions group.' - importStatements: [] - iam_policies.html.markdown: - subCategory: "" - description: 'iam_policies.html.markdownsubcategory : "Account Management"' - name: iam_policies.html.markdown - title: iam_policies.html.markdown - argumentDocs: - id: '- Hash of the list of the policy IDs.' - policies: '- List of the policies IDs.' - importStatements: [] - iam_policy.html.markdown: - subCategory: "" - description: 'iam_policy.html.markdownsubcategory : "Account Management"' - name: iam_policy.html.markdown - title: iam_policy.html.markdown + ovh_iam_policy: + subCategory: "" + name: ovh_iam_policy + title: "" + examples: + - name: manager + manifest: |- + { + "allow": [ + "account:apiovh:me/get", + "account:apiovh:me/supportLevel/get", + "account:apiovh:me/certificates/get", + "account:apiovh:me/tag/get", + "account:apiovh:services/get", + "account:apiovh:*" + ], + "description": "Users are allowed to use the OVH manager", + "identities": [ + "${ovh_me_identity_group.my_group.urn}" + ], + "name": "allow_ovh_manager", + "resources": [ + "${data.ovh_me.account.urn}" + ] + } + dependencies: + ovh_me_identity_group.my_group: |- + { + "description": "my_group created in Terraform", + "name": "my_group" + } argumentDocs: allow: '- List of actions allowed on resources by identities' created_at: '- Creation date of this group.' @@ -2319,33 +5441,20 @@ resources: resources: '- List of resources affected by the policy' updated_at: '- Date of the last update of this group.' importStatements: [] - iam_reference_actions.html.markdown: - subCategory: "" - description: 'iam_reference_actions.html.markdownsubcategory : "Account Management"' - name: iam_reference_actions.html.markdown - title: iam_reference_actions.html.markdown - argumentDocs: - action: '- Name of the action' - actions: '- List of actions' - categories: '- List of the categories of the action' - description: '- Description of the action' - resource_type: '- Resource type the action is related to' - type: '- Kind of resource we want the actions for' - importStatements: [] - iam_reference_resource_type.markdown: - subCategory: "" - description: 'iam_reference_resource_type.markdownsubcategory : "Account Management"' - name: iam_reference_resource_type.markdown - title: iam_reference_resource_type.markdown - argumentDocs: - id: '- hash of the list of the resource types' - types: '- List of resource types' - importStatements: [] - iam_resource_group.html.markdown: - subCategory: "" - description: 'iam_resource_group.html.markdownsubcategory : "Account Management"' - name: iam_resource_group.html.markdown - title: iam_resource_group.html.markdown + ovh_iam_resource_group: + subCategory: "" + name: ovh_iam_resource_group + title: "" + examples: + - name: my_resource_group + manifest: |- + { + "name": "my_resource_group", + "resources": [ + "urn:v1:eu:resource:service1:service1-id", + "urn:v1:eu:resource:service2:service2-id" + ] + } argumentDocs: created_at: '- Date of the creation of the resource group' id: '- Id of the resource group' @@ -2356,31 +5465,37 @@ resources: updated_at: '- Date of the last modification of the resource group' urn: '- URN of the resource group, used when writing policies' importStatements: [] - iam_resource_groups.html.markdown: - subCategory: "" - description: 'iam_resource_groups.html.markdownsubcategory : "Account Management"' - name: iam_resource_groups.html.markdown - title: iam_resource_groups.html.markdown - argumentDocs: - id: '- Hash of the list of the resource groups IDs.' - resource_groups: '- List of the resource groups IDs.' - importStatements: [] - ip_firewall.html.markdown: + ovh_ip_firewall: subCategory: "" - description: 'ip_firewall.html.markdownsubcategory : "Additional IP"' - name: ip_firewall.html.markdown - title: ip_firewall.html.markdown + name: ovh_ip_firewall + title: "" + examples: + - name: my_firewall + manifest: |- + { + "ip": "XXXXXX", + "ip_on_firewall": "XXXXXX" + } argumentDocs: 'enabled ': '- Whether firewall should be enabled' ip: '- (Required) The IP or the CIDR' ip_on_firewall: '- (Required) IPv4 address' state: '- Current state of your ip on firewall' importStatements: [] - ip_firewall_rule.html.markdown: - subCategory: "" - description: 'ip_firewall_rule.html.markdownsubcategory : "Additional IP"' - name: ip_firewall_rule.html.markdown - title: ip_firewall_rule.html.markdown + ovh_ip_firewall_rule: + subCategory: "" + name: ovh_ip_firewall_rule + title: "" + examples: + - name: my_firewall_rule + manifest: |- + { + "action": "deny", + "ip": "XXXXXX", + "ip_on_firewall": "XXXXXX", + "protocol": "tcp", + "sequence": 0 + } argumentDocs: action: '- (Required) Possible values for action (deny|permit)' creation_date: '- Creation date of the rule' @@ -2399,11 +5514,17 @@ resources: state: '- Current state of your rule' tcp_option: '- TCP option on your rule (syn|established)' importStatements: [] - ip_mitigation.html.markdown: + ovh_ip_mitigation: subCategory: "" - description: 'ip_mitigation.html.markdownsubcategory : "Additional IP"' - name: ip_mitigation.html.markdown - title: ip_mitigation.html.markdown + name: ovh_ip_mitigation + title: "" + examples: + - name: mitigation + manifest: |- + { + "ip": "XXXXXX", + "ip_on_mitigation": "XXXXXX" + } argumentDocs: auto: '- Set on true if the IP is on auto-mitigation' ip: '- (Required) The IP or the CIDR' @@ -2411,11 +5532,31 @@ resources: 'permanent ': '- Set on true if the IP is on permanent mitigation' state: '- Current state of the IP on mitigation' importStatements: [] - ip_move.html.markdown: - subCategory: "" - description: 'ip_move.html.markdownsubcategory : "Additional IP"' - name: ip_move.html.markdown - title: ip_move.html.markdown + ovh_ip_move: + subCategory: "" + name: ovh_ip_move + title: "" + examples: + - name: move_ip_to_load_balancer_xxxxx + manifest: |- + { + "ip": "1.2.3.4", + "routed_to": [ + { + "service_name": "loadbalancer-XXXXX" + } + ] + } + - name: park_ip + manifest: |- + { + "ip": "1.2.3.4", + "routed_to": [ + { + "service_name": "" + } + ] + } argumentDocs: can_be_terminated: '- Whether IP service can be terminated' country: '- Country' @@ -2430,54 +5571,112 @@ resources: task_status: '- Status field of the current IP task that is in charge of changing the service the IP is attached to' type: '- Possible values for ip type' importStatements: [] - ip_reverse.html.markdown: + ovh_ip_reverse: subCategory: "" - description: 'ip_reverse.html.markdownsubcategory : "Additional IP"' - name: ip_reverse.html.markdown - title: ip_reverse.html.markdown + name: ovh_ip_reverse + title: "" + examples: + - name: test + manifest: |- + { + "ip": "192.0.2.0/24", + "ip_reverse": "192.0.2.1", + "reverse": "example.com" + } argumentDocs: ip: '- (Required) The IP block to which the IP belongs' ip_reverse: '- (Required) The IP to set the reverse of' reverse: '- (Required) The value of the reverse' importStatements: [] - ip_service.html.markdown: - subCategory: "" - description: 'ip_service.html.markdownsubcategory : "Additional IP"' - name: ip_service.html.markdown - title: ip_service.html.markdown + ovh_ip_service: + subCategory: "" + name: ovh_ip_service + title: "" + examples: + - name: ipblock + manifest: |- + { + "description": "${data.ovh_order_cart.my_cart.description}", + "ovh_subsidiary": "${data.ovh_order_cart.my_cart.ovh_subsidiary}", + "plan": [ + { + "configuration": [ + { + "label": "country", + "value": "FR" + } + ], + "duration": "${data.ovh_order_cart_product_plan.ipblock.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.ipblock.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.ipblock.selected_price.0.pricing_mode}" + } + ] + } + references: + description: data.ovh_order_cart.my_cart.description + ovh_subsidiary: data.ovh_order_cart.my_cart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.ipblock.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.ipblock.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.ipblock.selected_price.0.pricing_mode + dependencies: + ovh_vrack.vrack: |- + { + "description": "${data.ovh_order_cart.my_cart.description}", + "name": "${data.ovh_order_cart.my_cart.description}", + "ovh_subsidiary": "${data.ovh_order_cart.my_cart.ovh_subsidiary}", + "plan": [ + { + "duration": "${data.ovh_order_cart_product_plan.vrack.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.vrack.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.vrack.selected_price.0.pricing_mode}" + } + ] + } + ovh_vrack_ip.vrack_block: |- + { + "block": "${ovh_ip_service.ipblock.ip}", + "service_name": "${ovh_vrack.vrack.service_name}" + } argumentDocs: - can_be_terminated: '- can be terminated' - catalog_name: '- Catalog name' - configuration: '- (Optional) Representation of a configuration item for personalizing product' - country: '- country' - date: '- date' - description: '- Custom description on your ip.' - details: '- Information about a Bill entry' - domain: '- expiration date' - duration: '- (Required) duration' - expiration_date: '- expiration date' - ip: '- ip block' - label: '- (Required) Identifier of the resource' - order: '- Details about an Order' - order_detail_id: '- order detail id' - order_id: '- order id' - organisation_id: '- IP block organisation Id' - ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' - plan: '- (Required) Product Plan to order' - plan_code: '- (Required) Plan code' - plan_option: '- (Optional) Product Plan to order' - pricing_mode: '- (Required) Pricing model identifier' - quantity: '- quantity' - routed_to: '- Routage information' - service_name: '- Service where ip is routed to' - type: '- Possible values for ip type' - value: '- (Required) Path to the resource in API.OVH.COM' + block: '- (Required) Your IP block.' + gateway: '- Your gateway' + ip: '- Your IP block' + service_name: '- (Required) The internal name of your vrack' + zone: '- Where you want your block announced on the network' importStatements: [] - iploadbalancing.html.markdown: - subCategory: "" - description: 'iploadbalancing.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing.html.markdown - title: iploadbalancing.html.markdown + ovh_iploadbalancing: + subCategory: "" + name: ovh_iploadbalancing + title: "" + examples: + - name: iplb-lb1 + manifest: |- + { + "display_name": "my ip loadbalancing", + "ovh_subsidiary": "${data.ovh_order_cart.mycart.ovh_subsidiary}", + "plan": [ + { + "duration": "${data.ovh_order_cart_product_plan.iplb.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.iplb.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.iplb.selected_price.0.pricing_mode}" + } + ], + "plan_option": [ + { + "duration": "${data.ovh_order_cart_product_options_plan.bhs.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_options_plan.bhs.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_options_plan.bhs.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.mycart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.iplb.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.iplb.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.iplb.selected_price.0.pricing_mode + plan_option.duration: data.ovh_order_cart_product_options_plan.bhs.selected_price.0.duration + plan_option.plan_code: data.ovh_order_cart_product_options_plan.bhs.plan_code + plan_option.pricing_mode: data.ovh_order_cart_product_options_plan.bhs.selected_price.0.pricing_mode argumentDocs: catalog_name: '- Catalog name' configuration: '- (Optional) Representation of a configuration item for personalizing product' @@ -2514,11 +5713,18 @@ resources: vrack_name: '- Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product' zone: '- Location where your service is' importStatements: [] - iploadbalancing_http_farm.html.markdown: + ovh_iploadbalancing_http_farm: subCategory: "" - description: 'iploadbalancing_http_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_http_farm.html.markdown - title: iploadbalancing_http_farm.html.markdown + name: ovh_iploadbalancing_http_farm + title: "" + examples: + - name: farmname + manifest: |- + { + "display_name": "ingress-8080-gra", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "GRA" + } argumentDocs: balance: '- Load balancing algorithm. roundrobin if null (first, leastconn, roundrobin, source, uri)' display_name: '- Readable label for loadbalancer farm' @@ -2537,11 +5743,33 @@ resources: vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' zone: '- (Required) Zone where the farm will be defined (ie. GRA, BHS also supports ALL)' importStatements: [] - iploadbalancing_http_farm_server.html.markdown: - subCategory: "" - description: 'iploadbalancing_http_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_http_farm_server.html.markdown - title: iploadbalancing_http_farm_server.html.markdown + ovh_iploadbalancing_http_farm_server: + subCategory: "" + name: ovh_iploadbalancing_http_farm_server + title: "" + examples: + - name: backend + manifest: |- + { + "address": "4.5.6.7", + "backup": true, + "display_name": "mybackend", + "farm_id": "${ovh_iploadbalancing_http_farm.farmname.id}", + "port": 80, + "probe": true, + "proxy_protocol_version": "v2", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "ssl": false, + "status": "active", + "weight": 2 + } + dependencies: + ovh_iploadbalancing_http_farm.farmname: |- + { + "port": 8080, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } argumentDocs: address: '- Address of the backend server (IP from either internal or OVHcloud network)' backup: '- is it a backup server used in case of failure of all the non-backup backends' @@ -2557,11 +5785,28 @@ resources: status: '- backend status - active or inactive' weight: '- used in loadbalancing algorithm' importStatements: [] - iploadbalancing_http_frontend.html.markdown: - subCategory: "" - description: 'iploadbalancing_http_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_http_frontend.html.markdown - title: iploadbalancing_http_frontend.html.markdown + ovh_iploadbalancing_http_frontend: + subCategory: "" + name: ovh_iploadbalancing_http_frontend + title: "" + examples: + - name: test_frontend + manifest: |- + { + "default_farm_id": "${ovh_iploadbalancing_http_farm.farm80.id}", + "display_name": "ingress-8080-gra", + "port": "80,443", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } + dependencies: + ovh_iploadbalancing_http_farm.farm80: |- + { + "display_name": "ingress-8080-gra", + "port": 80, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } argumentDocs: allowed_source: '- Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.' dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' @@ -2581,11 +5826,25 @@ resources: ssl: '- SSL deciphering. Default: ''false''' zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' importStatements: [] - iploadbalancing_http_route.html.markdown: - subCategory: "" - description: 'iploadbalancing_http_route.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_http_route.html.markdown - title: iploadbalancing_http_route.html.markdown + ovh_iploadbalancing_http_route: + subCategory: "" + name: ovh_iploadbalancing_http_route + title: "" + examples: + - name: https_redirect + manifest: |- + { + "action": [ + { + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect" + } + ], + "display_name": "Redirect to HTTPS", + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx", + "weight": 1 + } argumentDocs: action: '- (Required) Action triggered when all rules match' display_name: '- Human readable name for your route, this field is for you' @@ -2603,11 +5862,49 @@ resources: type: '- (Required) Action to trigger if all the rules of this route matches' weight: '- Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action' importStatements: [] - iploadbalancing_http_route_rule.html.markdown: - subCategory: "" - description: 'iploadbalancing_http_route_rule.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_http_route_rule.html.markdown - title: iploadbalancing_http_route_rule.html.markdown + ovh_iploadbalancing_http_route_rule: + subCategory: "" + name: ovh_iploadbalancing_http_route_rule + title: "" + examples: + - name: example_rule + manifest: |- + { + "display_name": "Match example.com host", + "field": "host", + "match": "is", + "negate": false, + "pattern": "example.com", + "route_id": "${ovh_iploadbalancing_http_route.https_redirect.id}", + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx" + } + dependencies: + ovh_iploadbalancing_http_route.https_redirect: |- + { + "action": [ + { + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect" + } + ], + "display_name": "Redirect to HTTPS", + "frontend_id": 11111, + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx", + "weight": 1 + } + - name: example_rule + manifest: |- + { + "display_name": "Match example.com Host header", + "field": "headers", + "match": "is", + "negate": false, + "pattern": "example.com", + "route_id": "${ovh_iploadbalancing_http_route.https_redirect.id}", + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx", + "sub_field": "Host" + } argumentDocs: display_name: '- Human readable name for your rule, this field is for you' field: '- (Required) Name of the field to match like "protocol" or "host". See "/ipLoadbalancing/{serviceName}/availableRouteRules" for a list of available rules' @@ -2618,20 +5915,63 @@ resources: service_name: '- (Required) The internal name of your IP load balancing' sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' importStatements: [] - iploadbalancing_refresh.html.markdown: - subCategory: "" - description: 'iploadbalancing_refresh.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_refresh.html.markdown - title: iploadbalancing_refresh.html.markdown + ovh_iploadbalancing_refresh: + subCategory: "" + name: ovh_iploadbalancing_refresh + title: "" + examples: + - name: mylb + manifest: |- + { + "keepers": [ + "${ovh_iploadbalancing_tcp_farm_server.backend.*.address}" + ], + "service_name": "${data.ovh_iploadbalancing.lb.service_name}" + } + dependencies: + ovh_iploadbalancing_tcp_farm.farm_name: |- + { + "port": 8080, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } + ovh_iploadbalancing_tcp_farm_server.backend: |- + { + "address": "4.5.6.7", + "backup": true, + "display_name": "mybackend", + "farm_id": "${ovh_iploadbalancing_tcp_farm.farm_name.id}", + "port": 80, + "probe": true, + "proxy_protocol_version": "v2", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "ssl": false, + "status": "active", + "weight": 2 + } argumentDocs: keepers: '- List of values tracked to trigger refresh, used also to form implicit dependencies' service_name: '- (Required) The internal name of your IP load balancing' importStatements: [] - iploadbalancing_ssl.html.markdown: - subCategory: "" - description: 'iploadbalancing_ssl.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_ssl.html.markdown - title: iploadbalancing_ssl.html.markdown + ovh_iploadbalancing_ssl: + subCategory: "" + name: ovh_iploadbalancing_ssl + title: "" + examples: + - name: sslname + manifest: |- + { + "certificate": "...", + "chain": "...", + "display_name": "test", + "key": "...", + "lifecycle": [ + { + "create_before_destroy": true + } + ], + "service_name": "${data.ovh_iploadbalancing.lb.service_name}" + } argumentDocs: certificate: '- Certificate' chain: '- Certificate chain' @@ -2646,11 +5986,18 @@ resources: subject: '- Subject of your SSL certificate.' type: '- Type of your SSL certificate. ''built'' for SSL certificates managed by the IP Load Balancing. ''custom'' for user manager certificates.' importStatements: [] - iploadbalancing_tcp_farm.html.markdown: + ovh_iploadbalancing_tcp_farm: subCategory: "" - description: 'iploadbalancing_tcp_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_tcp_farm.html.markdown - title: iploadbalancing_tcp_farm.html.markdown + name: ovh_iploadbalancing_tcp_farm + title: "" + examples: + - name: farm_name + manifest: |- + { + "display_name": "ingress-8080-gra", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "GRA" + } argumentDocs: balance: '- Load balancing algorithm. roundrobin if null (first, leastconn, roundrobin, source)' display_name: '- Readable label for loadbalancer farm' @@ -2669,11 +6016,33 @@ resources: vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' zone: '- (Required) Zone where the farm will be defined (ie. GRA, BHS also supports ALL)' importStatements: [] - iploadbalancing_tcp_farm_server.html.markdown: - subCategory: "" - description: 'iploadbalancing_tcp_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_tcp_farm_server.html.markdown - title: iploadbalancing_tcp_farm_server.html.markdown + ovh_iploadbalancing_tcp_farm_server: + subCategory: "" + name: ovh_iploadbalancing_tcp_farm_server + title: "" + examples: + - name: backend + manifest: |- + { + "address": "4.5.6.7", + "backup": true, + "display_name": "mybackend", + "farm_id": "${ovh_iploadbalancing_tcp_farm.farm_name.id}", + "port": 80, + "probe": true, + "proxy_protocol_version": "v2", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "ssl": false, + "status": "active", + "weight": 2 + } + dependencies: + ovh_iploadbalancing_tcp_farm.farm_name: |- + { + "port": 8080, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } argumentDocs: address: '- Address of the backend server (IP from either internal or OVHcloud network)' backup: '- is it a backup server used in case of failure of all the non-backup backends' @@ -2689,11 +6058,28 @@ resources: status: '- backend status - active or inactive' weight: '- used in loadbalancing algorithm' importStatements: [] - iploadbalancing_tcp_frontend.html.markdown: - subCategory: "" - description: 'iploadbalancing_tcp_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_tcp_frontend.html.markdown - title: iploadbalancing_tcp_frontend.html.markdown + ovh_iploadbalancing_tcp_frontend: + subCategory: "" + name: ovh_iploadbalancing_tcp_frontend + title: "" + examples: + - name: test_frontend + manifest: |- + { + "default_farm_id": "${ovh_iploadbalancing_tcp_farm.farm80.id}", + "display_name": "ingress-8080-gra", + "port": "80,443", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } + dependencies: + ovh_iploadbalancing_tcp_farm.farm80: |- + { + "display_name": "ingress-8080-gra", + "port": 80, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } argumentDocs: allowed_source: '- Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.' dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' @@ -2711,11 +6097,22 @@ resources: ssl: '- SSL deciphering. Default: ''false''' zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' importStatements: [] - iploadbalancing_tcp_route.html.markdown: - subCategory: "" - description: 'iploadbalancing_tcp_route.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_tcp_route.html.markdown - title: iploadbalancing_tcp_route.html.markdown + ovh_iploadbalancing_tcp_route: + subCategory: "" + name: ovh_iploadbalancing_tcp_route + title: "" + examples: + - name: tcp_reject + manifest: |- + { + "action": [ + { + "type": "reject" + } + ], + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx", + "weight": 1 + } argumentDocs: action: '- (Required) Action triggered when all rules match' display_name: '- Human readable name for your route, this field is for you' @@ -2733,11 +6130,36 @@ resources: type: '- (Required) Action to trigger if all the rules of this route matches' weight: '- Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action' importStatements: [] - iploadbalancing_tcp_route_rule.html.markdown: - subCategory: "" - description: 'iploadbalancing_tcp_route_rule.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_tcp_route_rule.html.markdown - title: iploadbalancing_tcp_route_rule.html.markdown + ovh_iploadbalancing_tcp_route_rule: + subCategory: "" + name: ovh_iploadbalancing_tcp_route_rule + title: "" + examples: + - name: example_rule + manifest: |- + { + "display_name": "Match example.com host", + "field": "sni", + "match": "is", + "negate": false, + "pattern": "example.com", + "route_id": "${ovh_iploadbalancing_tcp_route.reject.id}", + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx" + } + references: + route_id: ovh_iploadbalancing_tcp_route.reject.id + dependencies: + ovh_iploadbalancing_tcp_route.reject: |- + { + "action": [ + { + "type": "reject" + } + ], + "frontend_id": 11111, + "service_name": "loadbalancer-xxxxxxxxxxxxxxxxxx", + "weight": 1 + } argumentDocs: display_name: '- Human readable name for your rule, this field is for you' field: '- (Required) Name of the field to match like "protocol" or "host". See "/ipLoadbalancing/{serviceName}/availableRouteRules" for a list of available rules' @@ -2748,11 +6170,19 @@ resources: service_name: '- (Required) The internal name of your IP load balancing' sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' importStatements: [] - iploadbalancing_udp_farm.html.markdown: + ovh_iploadbalancing_udp_farm: subCategory: "" - description: 'iploadbalancing_udp_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_udp_farm.html.markdown - title: iploadbalancing_udp_farm.html.markdown + name: ovh_iploadbalancing_udp_farm + title: "" + examples: + - name: farm_name + manifest: |- + { + "display_name": "ingress-8080-gra", + "port": 80, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "gra" + } argumentDocs: display_name: '- Readable label for loadbalancer farm' farm_id: '- Id of your farm.' @@ -2761,11 +6191,29 @@ resources: vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' zone: '- (Required) Zone where the farm will be defined (ie. gra, bhs also supports all)' importStatements: [] - iploadbalancing_udp_farm_server.html.markdown: - subCategory: "" - description: 'iploadbalancing_udp_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_udp_farm_server.html.markdown - title: iploadbalancing_udp_farm_server.html.markdown + ovh_iploadbalancing_udp_farm_server: + subCategory: "" + name: ovh_iploadbalancing_udp_farm_server + title: "" + examples: + - name: backend + manifest: |- + { + "address": "4.5.6.7", + "display_name": "mybackend", + "farm_id": "${ovh_iploadbalancing_udp_farm.farm_name.farm_id}", + "port": 80, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "status": "active" + } + dependencies: + ovh_iploadbalancing_udp_farm.farm_name: |- + { + "display_name": "ingress-8080-gra", + "port": 80, + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "gra" + } argumentDocs: address: '- Address of the backend server (IP from either internal or OVHcloud network)' backend_id: '- Synonym for farm_id.' @@ -2776,11 +6224,21 @@ resources: service_name: '- (Required) The internal name of your IP load balancing' status: '- backend status - active or inactive' importStatements: [] - iploadbalancing_udp_frontend.html.markdown: - subCategory: "" - description: 'iploadbalancing_udp_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_udp_frontend.html.markdown - title: iploadbalancing_udp_frontend.html.markdown + ovh_iploadbalancing_udp_frontend: + subCategory: "" + name: ovh_iploadbalancing_udp_frontend + title: "" + examples: + - name: test_frontend + manifest: |- + { + "display_name": "ingress-8080-gra", + "port": "10,11", + "service_name": "${data.ovh_iploadbalancing.lb.service_name}", + "zone": "all" + } + references: + service_name: data.ovh_iploadbalancing.lb.service_name argumentDocs: dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' default_farm_id: '- Default UDP Farm of your frontend' @@ -2794,11 +6252,36 @@ resources: service_name: '- (Required) The internal name of your IP load balancing' zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' importStatements: [] - iploadbalancing_vrack_network.html.markdown: - subCategory: "" - description: 'iploadbalancing_vrack_network.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_vrack_network.html.markdown - title: iploadbalancing_vrack_network.html.markdown + ovh_iploadbalancing_vrack_network: + subCategory: "" + name: ovh_iploadbalancing_vrack_network + title: "" + examples: + - name: network + manifest: |- + { + "display_name": "mynetwork", + "nat_ip": "10.0.0.0/27", + "service_name": "${ovh_vrack_iploadbalancing.vip_lb.ip_loadbalancing}", + "subnet": "10.0.0.0/16", + "vlan": 1 + } + references: + service_name: ovh_vrack_iploadbalancing.vip_lb.ip_loadbalancing + dependencies: + ovh_iploadbalancing_tcp_farm.test_farm: |- + { + "display_name": "mytcpbackends", + "port": 80, + "service_name": "${ovh_iploadbalancing_vrack_network.network.service_name}", + "vrack_network_id": "${ovh_iploadbalancing_vrack_network.network.vrack_network_id}", + "zone": "${tolist(data.ovh_iploadbalancing.iplb.zone)[0]}" + } + ovh_vrack_iploadbalancing.vip_lb: |- + { + "ip_loadbalancing": "${data.ovh_iploadbalancing.iplb.service_name}", + "service_name": "xxx" + } argumentDocs: display_name: '- Human readable name for your vrack network' farm_id: '- This attribute is there for documentation purpose only and isnt passed to the OVHcloud API as it may conflicts with http/tcp farms vrack_network_id attribute' @@ -2808,94 +6291,48 @@ resources: vlan: '- VLAN of the private network in the vRack. 0 if the private network is not in a VLAN' vrack_network_id: '- (Required) Internal Load Balancer identifier of the vRack private network' importStatements: [] - iploadbalancing_vrack_networks.html.markdown: - subCategory: "" - description: 'iploadbalancing_vrack_networks.html.markdownsubcategory : "Load Balancer (IPLB)"' - name: iploadbalancing_vrack_networks.html.markdown - title: iploadbalancing_vrack_networks.html.markdown - argumentDocs: - result: '- The list of vrack network ids.' - service_name: '- (Required) The internal name of your IP load balancing' - subnet: '- Filters networks on the subnet.' - vlan_id: '- Filters networks on the vlan id.' - importStatements: [] - me.html.markdown: - subCategory: "" - description: 'me.html.markdownsubcategory : "Account Management"' - name: me.html.markdown - title: me.html.markdown - argumentDocs: - address: ': Postal address of the account' - area: ': Area of the account' - birth_city: ': City of birth' - birth_day: ': Birth date' - city: ': City of the account' - code: ': Currency code used by this account (e.g EUR, USD, ...)' - company_national_identification_number: ': This is the national identification number of the company that possess this account' - corporation_type: ': Type of corporation' - country: ': Country of the account' - currency: ':' - customer_code: ': The customer code of this account (a numerical value used for identification when contacting support via phone call)' - email: ': Email address' - fax: ': Fax number' - firstname: ': First name' - italian_sdi: ': Italian SDI' - language: ': Preferred language for this account' - legalform: ': Legal form of the account' - name: ': Name of the account holder' - national_identification_number: ': National Identification Number of this account' - nichandle: ': Nic handle / customer identifier' - organisation: ': Name of the organisation for this account' - ovh_company: ': OVHcloud subsidiary' - ovh_subsidiary: ': OVHcloud subsidiary' - phone: ': Phone number' - phone_country: ': Country code of the phone number' - sex: ': Gender of the account holder' - spare_email: ': Backup email address' - state: ': State of the postal address' - symbol: ': Currency symbol used by this account (e.g €, $, ...)' - urn: ': The resource URN of the account, to be used when writing IAM policies' - vat: ': VAT number' - zip: ': Zipcode of the address' - importStatements: [] - me_api_oauth2_client.html.markdown: - subCategory: "" - description: 'me_api_oauth2_client.html.markdownsubcategory : "Account Management"' - name: me_api_oauth2_client.html.markdown - title: me_api_oauth2_client.html.markdown - argumentDocs: - callback_urls: '- List of callback urls when configuring the AUTHORIZATION_CODE flow.' - client_id: '- Client ID of the created service account.' - client_secret: '- Client secret of the created service account.' - description: '- OAuth2 client description.' - flow: '- The OAuth2 flow to use. AUTHORIZATION_CODE or CLIENT_CREDENTIALS are supported at the moment.' - name: '- OAuth2 client name.' - importStatements: [] - me_api_oauth2_client.markdown: - subCategory: "" - description: 'me_api_oauth2_client.markdownsubcategory : "Account Management"' - name: me_api_oauth2_client.markdown - title: me_api_oauth2_client.markdown + ovh_me_api_oauth2_client: + subCategory: "" + name: ovh_me_api_oauth2_client + title: "" + examples: + - name: my_oauth2_client_auth_code + manifest: |- + { + "callback_urls": [ + "https://my-app.com/callback" + ], + "description": "An OAuth2 client using the authorization code flow for my-app.com", + "flow": "AUTHORIZATION_CODE", + "name": "OAuth2 authorization code service account" + } + - name: my_oauth2_client_client_creds + manifest: |- + { + "description": "An OAuth2 client using the client credentials flow for my app", + "flow": "CLIENT_CREDENTIALS", + "name": "client credentials service account" + } argumentDocs: callback_urls: '- List of callback urls when configuring the AUTHORIZATION_CODE flow.' - client_id: '- Client ID of an existing OAuth2 service account.' + client_id: '- Client ID of the created service account.' + client_secret: '- Client secret of the created service account.' description: '- OAuth2 client description.' flow: '- The OAuth2 flow to use. AUTHORIZATION_CODE or CLIENT_CREDENTIALS are supported at the moment.' name: '- OAuth2 client name.' importStatements: [] - me_api_oauth2_clients.markdown: - subCategory: "" - description: 'me_api_oauth2_clients.markdownsubcategory : "Account Management"' - name: me_api_oauth2_clients.markdown - title: me_api_oauth2_clients.markdown - argumentDocs: - client_ids: '- The list of all the existing client IDs.' - importStatements: [] - me_identity_group.html.markdown: + ovh_me_identity_group: subCategory: "" - description: 'me_identity_group.html.markdownsubcategory : "Account Management"' - name: me_identity_group.html.markdown - title: me_identity_group.html.markdown + name: ovh_me_identity_group + title: "" + examples: + - name: my_group + manifest: |- + { + "description": "Some custom description", + "name": "my_group_name", + "role": "NONE" + } argumentDocs: creation: '- Creation date of this group.' default_group: '- Is the group a default and immutable one.' @@ -2905,33 +6342,20 @@ resources: role: '- Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.' urn: '- URN of the user group, used when writing IAM policies' importStatements: [] - me_identity_group.markdown: - subCategory: "" - description: 'me_identity_group.markdownsubcategory : "Account Management"' - name: me_identity_group.markdown - title: me_identity_group.markdown - argumentDocs: - creation: '- Creation date of this group.' - default_group: '- Is the group a default and immutable one.' - description: '- Group description.' - last_update: '- Date of the last update of this group.' - name: '- Group name.' - role: '- Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.' - urn: '- Identity URN of the group.' - importStatements: [] - me_identity_groups.markdown: - subCategory: "" - description: 'me_identity_groups.markdownsubcategory : "Account Management"' - name: me_identity_groups.markdown - title: me_identity_groups.markdown - argumentDocs: - groups: '- The list of the group names of all the identity groups.' - importStatements: [] - me_identity_user.html.markdown: - subCategory: "" - description: 'me_identity_user.html.markdownsubcategory : "Account Management"' - name: me_identity_user.html.markdown - title: me_identity_user.html.markdown + ovh_me_identity_user: + subCategory: "" + name: ovh_me_identity_user + title: "" + examples: + - name: my_user + manifest: |- + { + "description": "Some custom description", + "email": "my_login@example.com", + "group": "DEFAULT", + "login": "my_login", + "password": "super-s3cr3t!password" + } argumentDocs: creation: '- Creation date of this user.' description: '- User description.' @@ -2944,36 +6368,18 @@ resources: status: '- Current user''s status.' urn: '- URN of the user, used when writing IAM policies' importStatements: [] - me_identity_user.markdown: - subCategory: "" - description: 'me_identity_user.markdownsubcategory : "Account Management"' - name: me_identity_user.markdown - title: me_identity_user.markdown - argumentDocs: - creation: '- Creation date of this user.' - description: '- User description.' - email: '- User''s email.' - group: '- User''s group.' - last_update: '- Last update of this user.' - login: '- User''s login suffix.' - password_last_update: '- When the user changed his password for the last time.' - status: '- Current user''s status.' - urn: '- User''s identity URN.' - user: '- (Required) User''s login.' - importStatements: [] - me_identity_users.markdown: - subCategory: "" - description: 'me_identity_users.markdownsubcategory : "Account Management"' - name: me_identity_users.markdown - title: me_identity_users.markdown - argumentDocs: - users: '- The list of the user''s logins of all the identity users.' - importStatements: [] - me_installation_template.html.markdown: + ovh_me_installation_template: subCategory: "" - description: 'me_installation_template.html.markdownsubcategory : "Dedicated Server"' - name: me_installation_template.html.markdown - title: me_installation_template.html.markdown + name: ovh_me_installation_template + title: "" + examples: + - name: my_template + manifest: |- + { + "base_template_name": "debian12_64", + "custom_hostname": "mytest", + "template_name": "mytemplate" + } argumentDocs: base_template_name: ': (Required) The name of an existing installation template, choose one among the list given by ovh_dedicated_installation_templates datasource.' bit_format: ': This template bit format (32 or 64).' @@ -2989,22 +6395,65 @@ resources: remove_default_partition_schemes: ': (Required) Remove default partition schemes at creation.' template_name: ': (Required) This template name.' importStatements: [] - me_installation_template_partition_scheme.html.markdown: - subCategory: "" - description: 'me_installation_template_partition_scheme.html.markdownsubcategory : "Dedicated Server"' - name: me_installation_template_partition_scheme.html.markdown - title: me_installation_template_partition_scheme.html.markdown + ovh_me_installation_template_partition_scheme: + subCategory: "" + name: ovh_me_installation_template_partition_scheme + title: "" + examples: + - name: scheme + manifest: |- + { + "name": "myscheme", + "priority": 1, + "template_name": "${ovh_me_installation_template.my_template.template_name}" + } + references: + template_name: ovh_me_installation_template.my_template.template_name + dependencies: + ovh_me_installation_template.my_template: |- + { + "base_template_name": "debian12_64", + "template_name": "mytemplate" + } argumentDocs: id: ': a fake id associated with this partition scheme formatted as follow: template_name/name' name: ': (Required) (Required) This partition scheme name.' priority: ': on a reinstall, if a partitioning scheme is not specified, the one with the higher priority will be used by default, among all the compatible partitioning schemes (given the underlying hardware specifications).' template_name: ': (Required) The template name of the partition scheme.' importStatements: [] - me_installation_template_partition_scheme_hardware_raid.html.markdown: - subCategory: "" - description: 'me_installation_template_partition_scheme_hardware_raid.html.markdownsubcategory : "Dedicated Server"' - name: me_installation_template_partition_scheme_hardware_raid.html.markdown - title: me_installation_template_partition_scheme_hardware_raid.html.markdown + ovh_me_installation_template_partition_scheme_hardware_raid: + subCategory: "" + name: ovh_me_installation_template_partition_scheme_hardware_raid + title: "" + examples: + - name: group1 + manifest: |- + { + "disks": [ + "[c1:d1,c1:d2,c1:d3]", + "[c1:d10,c1:d20,c1:d30]" + ], + "mode": "raid50", + "name": "group1", + "scheme_name": "${ovh_me_installation_template_partition_scheme.scheme.name}", + "step": 1, + "template_name": "${ovh_me_installation_template_partition_scheme.scheme.template_name}" + } + references: + scheme_name: ovh_me_installation_template_partition_scheme.scheme.name + template_name: ovh_me_installation_template_partition_scheme.scheme.template_name + dependencies: + ovh_me_installation_template.mytemplate: |- + { + "base_template_name": "debian12_64", + "template_name": "mytemplate" + } + ovh_me_installation_template_partition_scheme.scheme: |- + { + "name": "myscheme", + "priority": 1, + "template_name": "${ovh_me_installation_template.mytemplate.template_name}" + } argumentDocs: disks: ': Disk List. Syntax is cX:dY for disks and [cX:dY,cX:dY] for groups. With X and Y resp. the controller id and the disk id.' id: ': a fake id associated with this partition scheme hardware raid group formatted as follow: template_name/scheme_name/name' @@ -3014,11 +6463,37 @@ resources: step: ': Specifies the creation order of the hardware RAID.' template_name: ': (Required) The template name of the partition scheme.' importStatements: [] - me_installation_template_partition_scheme_partition.html.markdown: - subCategory: "" - description: 'me_installation_template_partition_scheme_partition.html.markdownsubcategory : "Dedicated Server"' - name: me_installation_template_partition_scheme_partition.html.markdown - title: me_installation_template_partition_scheme_partition.html.markdown + ovh_me_installation_template_partition_scheme_partition: + subCategory: "" + name: ovh_me_installation_template_partition_scheme_partition + title: "" + examples: + - name: root + manifest: |- + { + "filesystem": "ext4", + "mountpoint": "/", + "order": 1, + "scheme_name": "${ovh_me_installation_template_partition_scheme.scheme.name}", + "size": "400", + "template_name": "${ovh_me_installation_template_partition_scheme.scheme.template_name}", + "type": "primary" + } + references: + scheme_name: ovh_me_installation_template_partition_scheme.scheme.name + template_name: ovh_me_installation_template_partition_scheme.scheme.template_name + dependencies: + ovh_me_installation_template.mytemplate: |- + { + "base_template_name": "debian12_64", + "template_name": "mytemplate" + } + ovh_me_installation_template_partition_scheme.scheme: |- + { + "name": "myscheme", + "priority": 1, + "template_name": "${ovh_me_installation_template.mytemplate.template_name}" + } argumentDocs: filesystem: ': Partition filesystem. Enum with possibles values:' id: ': a fake id associated with this partition scheme partition formatted as follow: template_name/scheme_name/mountpoint' @@ -3031,62 +6506,18 @@ resources: type: ': partition type. Enum with possible values:' volume_name: ': The volume name needed for proxmox distribution' importStatements: [] - me_installation_templates.html.markdown: - subCategory: "" - description: 'me_installation_templates.html.markdownsubcategory : "Dedicated Server"' - name: me_installation_templates.html.markdown - title: me_installation_templates.html.markdown - argumentDocs: - result: '- The list of custom installation templates IDs available for dedicated servers.' - importStatements: [] - me_paymentmean_bankaccount.markdown: - subCategory: "" - description: 'me_paymentmean_bankaccount.markdownsubcategory : "Account Management"' - name: me_paymentmean_bankaccount.markdown - title: me_paymentmean_bankaccount.markdown - argumentDocs: - default: |- - - a boolean which tells if the retrieved bank account - is marked as the default payment mean - description: '- the description attribute of the bank account' - description_regexp: |- - - (Optional) a regexp used to filter bank accounts - on their description attributes. - state: |- - - (Optional) Filter bank accounts on their state attribute. - Can be "blockedForIncidents", "valid", "pendingValidation" - use_default: '- (Optional) Retrieve bank account marked as default payment mean.' - use_oldest: |- - - (Optional) Retrieve oldest bank account. - project. - importStatements: [] - me_paymentmean_creditcard.markdown: - subCategory: "" - description: 'me_paymentmean_creditcard.markdownsubcategory : "Account Management"' - name: me_paymentmean_creditcard.markdown - title: me_paymentmean_creditcard.markdown - argumentDocs: - default: |- - - a boolean which tells if the retrieved credit card - is marked as the default payment mean - description: '- the description attribute of the credit card' - description_regexp: |- - - (Optional) a regexp used to filter credit cards - on their description attributes. - state: '- the state attribute of the credit card' - states: |- - - (Optional) Filter credit cards on their state attribute. - Can be "expired", "valid", "tooManyFailures" - use_default: '- (Optional) Retrieve credit card marked as default payment mean.' - use_last_to_expire: |- - - (Optional) Retrieve the credit card that will be the last - to expire according to its expiration date. - importStatements: [] - okms.html.markdown: + ovh_okms: subCategory: "" - description: 'okms.html.markdownsubcategory : "KMS"' - name: okms.html.markdown - title: okms.html.markdown + name: ovh_okms + title: "" + examples: + - name: new_kms + manifest: |- + { + "display_name": "terraformed KMS", + "ovh_subsidiary": "FR", + "region": "eu-west-rbx" + } argumentDocs: display_name: (String) Set the name displayed in Manager for this KMS iam: (Attributes) IAM resource metadata (see below for nested schema) @@ -3100,11 +6531,32 @@ resources: tags: '(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:' urn: (String) Unique resource name used in policies importStatements: [] - okms_credential.html.markdown: - subCategory: "" - description: 'okms_credential.html.markdownsubcategory : "KMS"' - name: okms_credential.html.markdown - title: okms_credential.html.markdown + ovh_okms_credential: + subCategory: "" + name: ovh_okms_credential + title: "" + examples: + - name: cred_no_csr + manifest: |- + { + "description": "Credential without CSR", + "identity_urns": [ + "urn:v1:eu:identity:account:${data.ovh_me.current_account.nichandle}" + ], + "name": "cred", + "okms_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + } + - name: cred_from_csr + manifest: |- + { + "csr": "${file(\"cred.csr\")}", + "description": "Credential from CSR", + "identity_urns": [ + "urn:v1:eu:identity:account:${data.ovh_me.current_account.nichandle}" + ], + "name": "cred_csr", + "okms_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + } argumentDocs: certificate_pem: (String) Certificate PEM of the credential. created_at: (String) Creation time of the credential @@ -3120,28 +6572,47 @@ resources: status: (String) Status of the credential validity: '(Number) Validity in days (default: 365 days, max: 365 days)' importStatements: [] - okms_resource.html.markdown: - subCategory: KMS - description: 'okms_resource.html.markdownsubcategory: "KMS"' - name: okms_resource.html.markdown - title: okms_resource.html.markdown - argumentDocs: - display_name: (String) Resource display name - iam: (Attributes) IAM resource metadata (see below for nested schema) - id: (String) Should be set to the ID of your KMS - kmip_endpoint: (String) KMS kmip API endpoint - public_ca: (String) KMS public CA (Certificate Authority) - region: (String) Region - rest_endpoint: (String) KMS rest API endpoint - swagger_endpoint: (String) KMS rest API swagger UI - tags: '(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:' - urn: (String) Unique resource name used in policies - importStatements: [] - okms_service_key.html.markdown: - subCategory: "" - description: 'okms_service_key.html.markdownsubcategory : "KMS"' - name: okms_service_key.html.markdown - title: okms_service_key.html.markdown + ovh_okms_service_key: + subCategory: "" + name: ovh_okms_service_key + title: "" + examples: + - name: key_symetric + manifest: |- + { + "name": "key_oct", + "okms_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "operations": [ + "encrypt", + "decrypt" + ], + "size": 256, + "type": "oct" + } + - name: key_rsa + manifest: |- + { + "name": "key_rsa", + "okms_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "operations": [ + "sign", + "verify" + ], + "size": 2048, + "type": "RSA" + } + - name: key_ecdsa + manifest: |- + { + "curve": "P-256", + "name": "key_ecdsa", + "okms_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "operations": [ + "sign", + "verify" + ], + "type": "EC" + } argumentDocs: context: (String) Context of the key created_at: (String) Creation time of the key @@ -3155,178 +6626,18 @@ resources: state: (String) State of the key type: (String) Type of key to create importStatements: [] - okms_service_key_jwk.html.markdown: - subCategory: KMS - description: 'okms_service_key_jwk.html.markdownsubcategory: "KMS"' - name: okms_service_key_jwk.html.markdown - title: okms_service_key_jwk.html.markdown - argumentDocs: - alg: (String) The algorithm intended to be used with the key - created_at: (String) Creation time of the key - crv: (String) The cryptographic curve used with the key - e: (String) The exponent value for the RSA public key - id: (String) ID of the service key - key_ops: (List of String) The operation for which the key is intended to be used - keys: (Attributes List) The key in JWK format (see below for nested schema) - kid: (String) key ID parameter used to match a specific key - kty: (String) Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC - "n": (String) The modulus value for the RSA public key - name: (String) Key name - okms_id: (String) ID of the KMS - size: (Number) Size of the key - state: (String) State of the key - type: (String) Key type - use: (String) The intended use of the public key - x: (String) The x coordinate for the Elliptic Curve point - "y": (String) The y coordinate for the Elliptic Curve point - importStatements: [] - order_cart.html.markdown: - subCategory: "" - description: 'order_cart.html.markdownsubcategory : "Order"' - name: order_cart.html.markdown - title: order_cart.html.markdown - argumentDocs: - assign: '- Assign a shopping cart to a logged in client. Values can be true or false.' - cart_id: '- Cart identifier' - description: '- Description of your cart' - expire: '- Expiration time (format: 2006-01-02T15:04:05+00:00)' - items: '- Items of your cart' - ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' - read_only: '- Indicates if the cart has already been validated' - importStatements: [] - order_cart_product.html.markdown: - subCategory: "" - description: 'order_cart_product.html.markdownsubcategory : "Order"' - name: order_cart_product.html.markdown - title: order_cart_product.html.markdown - argumentDocs: - capacities: '- Capacities of the pricing (type of pricing)' - cart_id: '- (Required) Cart identifier' - currency_code: '- Currency code' - description: '- Description of the pricing' - duration: '- Duration for ordering the product' - interval: '- Interval of renewal' - maximum_quantity: '- Maximum quantity that can be ordered' - maximum_repeat: '- Maximum repeat for renewal' - minimum_quantity: '- Minimum quantity that can be ordered' - minimum_repeat: '- Minimum repeat for renewal' - plan_code: '- Product offer identifier' - price: '- Price of the product (Price with its currency and textual representation)' - price_in_ucents: '- Price of the product in micro-centims' - prices: '- Prices of the product offer' - pricing_mode: '- Pricing model identifier' - pricing_type: '- Pricing type' - product: '- (Required) product' - product_name: '- Name of the product' - product_type: '- Product type' - result: '- products results' - text: '- Textual representation' - value: '- The effective price' - importStatements: [] - order_cart_product_options.html.markdown: - subCategory: "" - description: 'order_cart_product_options.html.markdownsubcategory : "Order"' - name: order_cart_product_options.html.markdown - title: order_cart_product_options.html.markdown - argumentDocs: - capacities: '- Capacities of the pricing (type of pricing)' - cart_id: '- (Required) Cart identifier' - catalog_name: '- Catalog name' - currency_code: '- Currency code' - description: '- Description of the pricing' - duration: '- Duration for ordering the product' - exclusive: '- Define if options of this family are exclusive with each other' - family: '- Option family' - interval: '- Interval of renewal' - mandatory: '- Define if an option of this family is mandatory' - maximum_quantity: '- Maximum quantity that can be ordered' - maximum_repeat: '- Maximum repeat for renewal' - minimum_quantity: '- Minimum quantity that can be ordered' - minimum_repeat: '- Minimum repeat for renewal' - plan_code: '- (Required) Product offer identifier' - price: '- Price of the product (Price with its currency and textual representation)' - price_in_ucents: '- Price of the product in micro-centims' - prices: '- Prices of the product offer' - pricing_mode: '- Pricing model identifier' - pricing_type: '- Pricing type' - product: '- (Required) Product' - product_name: '- Name of the product' - product_type: '- Product type' - result: '- products results' - text: '- Textual representation' - value: '- The effective price' - importStatements: [] - order_cart_product_options_plan.html.markdown: - subCategory: "" - description: 'order_cart_product_options_plan.html.markdownsubcategory : "Order"' - name: order_cart_product_options_plan.html.markdown - title: order_cart_product_options_plan.html.markdown - argumentDocs: - capacities: '- Capacities of the pricing (type of pricing)' - cart_id: '- (Required) Cart identifier' - catalog_name: '- Catalog name' - currency_code: '- Currency code' - description: '- Description of the pricing' - duration: '- Duration for ordering the product' - exclusive: '- Define if options of this family are exclusive with each other' - family: '- Option family' - interval: '- Interval of renewal' - mandatory: '- Define if an option of this family is mandatory' - maximum_quantity: '- Maximum quantity that can be ordered' - maximum_repeat: '- Maximum repeat for renewal' - minimum_quantity: '- Minimum quantity that can be ordered' - minimum_repeat: '- Minimum repeat for renewal' - options_plan_code: '- (Required) options plan code.' - plan_code: '- (Required) Product offer identifier' - price: '- Price of the product (Price with its currency and textual representation)' - price_capacity: '- (Required) Capacity of the pricing (type of pricing)' - price_in_ucents: '- Price of the product in micro-centims' - prices: '- Prices of the product offer' - pricing_mode: '- Pricing model identifier' - pricing_type: '- Pricing type' - product: '- (Required) Product' - product_name: '- Name of the product' - product_type: '- Product type' - selected_price: '- Selected Price according to capacity' - text: '- Textual representation' - value: '- The effective price' - importStatements: [] - order_cart_product_plan.html.markdown: - subCategory: "" - description: 'order_cart_product_plan.html.markdownsubcategory : "Order"' - name: order_cart_product_plan.html.markdown - title: order_cart_product_plan.html.markdown - argumentDocs: - capacities: '- Capacities of the pricing (type of pricing)' - cart_id: '- (Required) Cart identifier' - catalog_name: '- Catalog name' - currency_code: '- Currency code' - description: '- Description of the pricing' - duration: '- Duration for ordering the product' - interval: '- Interval of renewal' - maximum_quantity: '- Maximum quantity that can be ordered' - maximum_repeat: '- Maximum repeat for renewal' - minimum_quantity: '- Minimum quantity that can be ordered' - minimum_repeat: '- Minimum repeat for renewal' - plan_code: '- (Required) Product offer identifier' - price: '- Price of the product (Price with its currency and textual representation)' - price_capacity: '- (Required) Capacity of the pricing (type of pricing)' - price_in_ucents: '- Price of the product in micro-centims' - prices: '- Prices of the product offer' - pricing_mode: '- Pricing model identifier' - pricing_type: '- Pricing type' - product: '- (Required) Product' - product_name: '- Name of the product' - product_type: '- Product type' - selected_price: '- Selected Price according to capacity' - text: '- Textual representation' - value: '- The effective price' - importStatements: [] - vps.html.markdown: + ovh_vps: subCategory: "" - description: 'vps.html.markdownsubcategory : "VPS"' - name: vps.html.markdown - title: vps.html.markdown + name: ovh_vps + title: "" + examples: + - name: my_vps + manifest: |- + { + "display_name": "${dev_vps}" + } + references: + display_name: dev_vps argumentDocs: available_options: '- All options the VPS can have (additionalDisk┃automatedBackup┃cpanel┃ftpbackup┃plesk┃snapshot┃veeam┃windows)' cluster: '- VPS cluster' @@ -3361,19 +6672,30 @@ resources: version: '- All versions that VPS can have (2013v1┃2014v1┃2015v1┃2017v1┃2017v2┃2017v3┃2018v1┃2018v2┃2019v1)' zone: '- OpenStask region where the VPS is located' importStatements: [] - vpss.html.markdown: - subCategory: "" - description: 'vpss.html.markdownsubcategory : "VPS"' - name: vpss.html.markdown - title: vpss.html.markdown - argumentDocs: - result: '- The list of VPS IDs associated with your OVH Account.' - importStatements: [] - vrack.html.markdown: - subCategory: "" - description: 'vrack.html.markdownsubcategory : "vRack"' - name: vrack.html.markdown - title: vrack.html.markdown + ovh_vrack: + subCategory: "" + name: ovh_vrack + title: "" + examples: + - name: vrack + manifest: |- + { + "description": "my vrack", + "name": "my-vrack", + "ovh_subsidiary": "${data.ovh_order_cart.my_cart.ovh_subsidiary}", + "plan": [ + { + "duration": "${data.ovh_order_cart_product_plan.vrack.selected_price.0.duration}", + "plan_code": "${data.ovh_order_cart_product_plan.vrack.plan_code}", + "pricing_mode": "${data.ovh_order_cart_product_plan.vrack.selected_price.0.pricing_mode}" + } + ] + } + references: + ovh_subsidiary: data.ovh_order_cart.my_cart.ovh_subsidiary + plan.duration: data.ovh_order_cart_product_plan.vrack.selected_price.0.duration + plan.plan_code: data.ovh_order_cart_product_plan.vrack.plan_code + plan.pricing_mode: data.ovh_order_cart_product_plan.vrack.selected_price.0.pricing_mode argumentDocs: catalog_name: '- Catalog name' configuration: '- (Optional) Representation of a configuration item for personalizing product' @@ -3398,11 +6720,17 @@ resources: urn: '- The URN of the vrack, used with IAM permissions' value: '- (Required) Path to the resource in API.OVH.COM' importStatements: [] - vrack_cloudproject.markdown: + ovh_vrack_cloudproject: subCategory: "" - description: 'vrack_cloudproject.markdownsubcategory : "vRack"' - name: vrack_cloudproject.markdown - title: vrack_cloudproject.markdown + name: ovh_vrack_cloudproject + title: "" + examples: + - name: vcp + manifest: |- + { + "project_id": "67890", + "service_name": "12345" + } argumentDocs: project_id: |- - (Required) The id of the public cloud project. If omitted, @@ -3411,54 +6739,95 @@ resources: - (Required) The service name of the vrack. If omitted, the OVH_VRACK_SERVICE environment variable is used. importStatements: [] - vrack_dedicated_server.html.markdown: + ovh_vrack_dedicated_server: subCategory: "" - description: 'vrack_dedicated_server.html.markdownsubcategory : "vRack"' - name: vrack_dedicated_server.html.markdown - title: vrack_dedicated_server.html.markdown + name: ovh_vrack_dedicated_server + title: "" + examples: + - name: vds + manifest: |- + { + "server_id": "67890", + "service_name": "XXXX" + } argumentDocs: server_id: '- (Required) The id of the dedicated server.' service_name: |- - (Required) The service name of the vrack. If omitted, the OVH_VRACK_SERVICE environment variable is used. importStatements: [] - vrack_dedicated_server_interface.html.markdown: + ovh_vrack_dedicated_server_interface: subCategory: "" - description: 'vrack_dedicated_server_interface.html.markdownsubcategory : "vRack"' - name: vrack_dedicated_server_interface.html.markdown - title: vrack_dedicated_server_interface.html.markdown + name: ovh_vrack_dedicated_server_interface + title: "" + examples: + - name: vdsi + manifest: |- + { + "interface_id": "${data.ovh_dedicated_server.server.enabled_vrack_vnis[0]}", + "service_name": "pn-xxxxxxx" + } + references: + interface_id: data.ovh_dedicated_server.server.enabled_vrack_vnis[0] argumentDocs: interface_id: '- (Required) The id of dedicated server network interface.' service_name: |- - (Required) The id of the vrack. If omitted, the OVH_VRACK_SERVICE environment variable is used. importStatements: [] - vrack_ip.html.markdown: + ovh_vrack_iploadbalancing: subCategory: "" - description: 'vrack_ip.html.markdownsubcategory : "vRack"' - name: vrack_ip.html.markdown - title: vrack_ip.html.markdown + name: ovh_vrack_iploadbalancing + title: "" + examples: + - name: viplb + manifest: |- + { + "ip_loadbalancing": "yyy", + "service_name": "xxx" + } argumentDocs: - block: '- (Required) Your IP block.' - gateway: '- Your gateway' - ip: '- Your IP block' - service_name: '- (Required) The internal name of your vrack' - zone: '- Where you want your block announced on the network' + ip_loadbalancing: '- (Required) The id of the IP Load Balancing.' + service_name: '- (Required) The id of the vrack.' + importStatements: [] + vps: + subCategory: "" + name: vps + title: "" + argumentDocs: + cluster: '- The OVHcloud cluster the vps is in' + datacenter: '- The datacenter in which the vps is located' + datacenter.longname: '- The fullname of the datacenter (ex: "Strasbourg SBG1")' + datacenter.name: '- The short name of the datacenter (ex: "sbg1)' + displayname: '- The displayed name in the OVHcloud web admin' + ips: '- The list of IPs addresses attached to the vps' + keymap: '- The keymap for the ip kvm, valid values "", "fr", "us"' + memory: '- The amount of memory in MB of the vps.' + model: '- A dict describing the type of vps.' + model.name: '- The model name (ex: model1)' + model.offer: '- The model human description (ex: "VPS 2016 SSD 1")' + model.version: '- The model version (ex: "2017v2")' + netbootmode: '- The source of the boot kernel' + offertype: '- The type of offer (ssd, cloud, classic)' + service_name: '- (Required) The service_name of your dedicated server.' + slamonitoring: '- A boolean to indicate if OVHcloud SLA monitoring is active.' + state: '- The state of the vps' + type: '- The type of server' + urn: '- The URN of the vps' + vcore: '- The number of vcore of the vps' + zone: '- The OVHcloud zone where the vps is' importStatements: [] - vrack_iploadbalancing.html.markdown: + vpss: subCategory: "" - description: 'vrack_iploadbalancing.html.markdownsubcategory : "vRack"' - name: vrack_iploadbalancing.html.markdown - title: vrack_iploadbalancing.html.markdown + name: vpss + title: "" argumentDocs: - ip_loadbalancing: '- (Required) The id of the IP Load Balancing.' - service_name: '- (Required) The id of the vrack.' + result: '- The list of VPS IDs associated with your OVH Account.' importStatements: [] - vracks.html.markdown: + vracks: subCategory: "" - description: 'vracks.html.markdownsubcategory : "vRack"' - name: vracks.html.markdown - title: vracks.html.markdown + name: vracks + title: "" argumentDocs: result: '- The list of vrack service name available for your OVHcloud account.' urn: '- The URN of the vps' diff --git a/config/public_cloud_network/config.go b/config/public_cloud_network/config.go index e8e308bf..ed8e7708 100644 --- a/config/public_cloud_network/config.go +++ b/config/public_cloud_network/config.go @@ -16,14 +16,16 @@ func Configure(p *config.Provider) { r.ShortGroup = shortGroup r.Kind = "Subnet" r.References["network_id"] = config.Reference{ - Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Extractor: "github.com/edixos/provider-ovh/config/common.PrivateNetworkOpenStackIdExtractor()", } }) p.AddResourceConfigurator("ovh_cloud_project_network_private_subnet_v2", func(r *config.Resource) { r.ShortGroup = shortGroup r.Kind = "SubnetV2" r.References["network_id"] = config.Reference{ - Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + Extractor: "github.com/edixos/provider-ovh/config/common.PrivateNetworkOpenStackIdExtractor()", } }) }