### Example Terraform Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/TF-RESOURCE.md Example of how to configure the 'example_settings' resource in a Terraform configuration file. ```Terraform resource "example_settings" "some_example" { #define properties here name = "nameMe!" } ``` -------------------------------- ### Example Network Configuration Import Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Example of importing a network configuration resource with specific interface and network IDs. ```bash $ terraform import qumulo_network_configuration.network_config 1:4 ``` -------------------------------- ### qumulo_syslog Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/syslog.md Example of how to configure the qumulo_syslog resource in Terraform. ```APIDOC ## qumulo_syslog Resource ### Description Manages Syslog configuration on Qumulo. ### Schema #### Required - **enabled** (Boolean) - Indicates whether Syslog is enabled. #### Optional - **server_address** (String) - The address of the Syslog server. - **server_port** (Number) - The port of the Syslog server. - **timeouts** (Block, Optional) - Configuration for operation timeouts. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### Validate Terraform Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Use 'terraform plan' to identify read-only fields that need manual removal from your configuration. This command will highlight all fields that require modification for a valid setup. ```bash $ terraform plan ``` -------------------------------- ### Manage Qumulo Cluster Name Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Define and manage the display name of the Qumulo cluster using the `qumulo_cluster_name` resource. Includes an example for importing an existing cluster name. ```hcl variable "cluster_name" { type = string default = "ProductionCluster" } resource "qumulo_cluster_name" "main" { cluster_name = var.cluster_name } # Import existing cluster name # terraform import qumulo_cluster_name.main 1 ``` -------------------------------- ### Import Network Configuration Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Import network configuration resources using a specific ID format: INTERFACE_ID:NETWORK_ID. ```bash $ terraform import qumulo_network_configuration.RESOURCE_NAME INTERFACE_ID:NETWORK_ID ``` -------------------------------- ### Import SMB Share Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Use the terraform import command to add the SMB share resource to your state. ```bash $ terraform import qumulo_smb_share.share2 2 ``` -------------------------------- ### Configure Global Qumulo SMB Server Settings Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Sets global SMB server configurations, including session encryption, supported dialects, and share visibility. ```hcl resource "qumulo_smb_server" "settings" { session_encryption = "NONE" # Options: NONE, PREFER, REQUIRE supported_dialects = ["SMB2_DIALECT_2_002", "SMB2_DIALECT_2_1", "SMB2_DIALECT_3_0"] hide_shares_from_unauthorized_users = true hide_shares_from_unauthorized_hosts = true snapshot_directory_mode = "HIDDEN" # Options: VISIBLE, HIDDEN, DISABLED bypass_traverse_checking = false signing_required = true } ``` -------------------------------- ### Configure Qumulo File System Settings Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt This resource configures file system behavior, including permissions mode and access time tracking. Choose `permissions_mode` between `NATIVE` and `CROSS_PROTOCOL`, and set `atime_granularity` as needed. ```hcl resource "qumulo_file_system_settings" "fs" { permissions_mode = "CROSS_PROTOCOL" # Options: NATIVE, CROSS_PROTOCOL atime_enabled = true atime_granularity = "DAY" # Options: SECOND, MINUTE, HOUR, DAY } ``` -------------------------------- ### Declare Resources for Import Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Add empty resource blocks to your .tf file for each resource you intend to import. ```hcl resource "qumulo_cluster_name" "name" {} resource "qumulo_smb_share" "share2" {} ``` -------------------------------- ### Show Terraform State Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Run 'terraform show' to inspect the current state of imported resources. ```bash $ terraform show ``` -------------------------------- ### qumulo_smb_server Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/smb_server.md Configuration options for the qumulo_smb_server resource. ```APIDOC ## qumulo_smb_server Resource ### Description Manages the SMB server configuration on a Qumulo cluster. ### Schema #### Required - `bypass_traverse_checking` (Boolean) - Enables or disables bypass traverse checking. - `hide_shares_from_unauthorized_hosts` (Boolean) - Hides shares from unauthorized hosts. - `hide_shares_from_unauthorized_users` (Boolean) - Hides shares from unauthorized users. - `session_encryption` (String) - Specifies the session encryption level (e.g., 'disabled', 'enabled', 'required'). - `signing_required` (Boolean) - Requires SMB signing. - `snapshot_directory_mode` (String) - Sets the snapshot directory mode (e.g., 'disabled', 'enabled'). - `supported_dialects` (List of String) - A list of supported SMB dialects (e.g., ['3.0', '3.1.1']). #### Optional - `timeouts` (Block) - Configuration for timeouts. - `create` (String) - Timeout for create operations. - `delete` (String) - Timeout for delete operations. - `update` (String) - Timeout for update operations. #### Read-Only - `id` (String) - The ID of this resource. ``` -------------------------------- ### Terraform Configuration Header Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/README.md Include this header in your main.tf file to configure the Qumulo provider and specify its source and version. Run 'terraform init' after creating this file. ```hcl terraform { required_providers { qumulo = { source = "Qumulo/qumulo" version = "0.1.1" } } } ``` -------------------------------- ### Enable Acceptance Testing Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/README.md Set the TF_ACC environment variable to 1 to enable acceptance testing for the Qumulo provider. Then run 'make test' to execute all tests. ```bash export TF_ACC=1 ``` -------------------------------- ### Create Qumulo SMB Share with Permissions Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Defines an SMB share with granular user, group, and network access controls. Ensure correct trustee domains and names are used for permissions. ```hcl resource "qumulo_smb_share" "department_share" { share_name = "Engineering" fs_path = "/departments/engineering" description = "Engineering team shared files" access_based_enumeration_enabled = true require_encryption = false allow_fs_path_create = true # User/group permissions permissions { type = "ALLOWED" trustee { domain = "LOCAL" name = "admin" } rights = ["READ", "WRITE", "CHANGE_PERMISSIONS"] } permissions { type = "ALLOWED" trustee { domain = "CORP" name = "Engineering" } rights = ["READ", "WRITE"] } permissions { type = "DENIED" trustee { domain = "LOCAL" uid = 65534 # Guest user } rights = ["READ", "WRITE", "CHANGE_PERMISSIONS"] } # Network-based permissions network_permissions { type = "ALLOWED" address_ranges = ["10.0.0.0/8", "192.168.1.0/24"] rights = ["READ", "WRITE", "CHANGE_PERMISSIONS"] } } ``` -------------------------------- ### qumulo_web_ui Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/web_ui.md Configuration options for the qumulo_web_ui resource. ```APIDOC ## qumulo_web_ui Resource ### Description Manages the Web UI settings for a Qumulo cluster. ### Schema #### Required - `inactivity_timeout` (Block List, Min: 1, Max: 1) - Configuration for the inactivity timeout. - `nanoseconds` (String) - The timeout duration in nanoseconds. #### Optional - `login_banner` (String) - The text to display as a login banner. - `timeouts` (Block, Optional) - Configuration for timeouts. - `create` (String) - Timeout for resource creation. - `delete` (String) - Timeout for resource deletion. - `update` (String) - Timeout for resource update. #### Read-Only - `id` (String) - The ID of this resource. ``` -------------------------------- ### qumulo_file_system_settings Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/file_system_settings.md Configuration options for the qumulo_file_system_settings resource. ```APIDOC ## qumulo_file_system_settings (Resource) ### Description Manages file system settings for Qumulo. ### Schema #### Optional - **atime_enabled** (Boolean) - Enables or disables ATIME updates. - **atime_granularity** (String) - Specifies the granularity of ATIME updates. - **permissions_mode** (String) - Sets the permissions mode for the file system. - **timeouts** (Block, Optional) - Configuration for operation timeouts. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### Configure Qumulo Time Synchronization Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Sets up time synchronization using NTP servers. Set 'use_ad_for_primary' to true if using Active Directory for primary time. ```hcl resource "qumulo_time_configuration" "ntp" { use_ad_for_primary = false ntp_servers = [ "0.pool.ntp.org", "1.pool.ntp.org", "time.google.com" ] } ``` -------------------------------- ### Enable Qumulo FTP Server Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configures the FTP server with various security and operational settings. 'allow_unencrypted_connections' should be false for secure environments. ```hcl resource "qumulo_ftp_server" "ftp" { enabled = true check_remote_host = true log_operations = true chroot_users = true allow_unencrypted_connections = false expand_wildcards = false greeting = "Welcome to the Qumulo FTP Server" # Optional anonymous user configuration # anonymous_user = { # id_type = "LOCAL_USER" # id_value = "anonymous" # } } ``` -------------------------------- ### Import Existing Qumulo Resources with Terraform Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt These commands demonstrate how to import existing Qumulo cluster configurations into Terraform state for management. Ensure Terraform is initialized before importing. ```bash # Initialize the workspace terraform init # Import cluster name terraform import qumulo_cluster_name.name 1 # Import SMB share by ID terraform import qumulo_smb_share.share2 2 # Import network configuration (format: INTERFACE_ID:NETWORK_ID) terraform import qumulo_network_configuration.primary 1:4 # View imported state terraform show # Plan to see any drift terraform plan # Apply to sync configuration terraform apply ``` -------------------------------- ### Run Specific Acceptance Test Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/README.md To run a specific acceptance test, set the TESTNAME environment variable to the desired test name and then execute 'make runtest'. ```bash export TESTNAME={testname} ``` -------------------------------- ### Configure Qumulo Web UI Settings Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Use this resource to configure web UI settings, such as session timeout and login banner. The `inactivity_timeout` is specified in nanoseconds. ```hcl resource "qumulo_web_ui" "settings" { inactivity_timeout { nanoseconds = "1800000000000" # 30 minutes in nanoseconds } login_banner = "Authorized users only. All activity is monitored." } ``` -------------------------------- ### Apply Terraform Configuration Changes Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Execute 'terraform apply' to implement the validated configuration changes and synchronize them with your cluster settings. ```bash $ terraform apply ``` -------------------------------- ### Register New Terraform Resource with Provider Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/TF-RESOURCE.md Registers a new Terraform resource by adding it to the provider's ResourcesMap. Ensure the resource name matches the one used in Terraform configurations. ```Go func Provider() *schema.Provider { return &schema.Provider{ ResourcesMap: map[string]*schema.Resource{ "example_settings": resourceExampleSettings(), }, } } ``` -------------------------------- ### Configure Active Directory Integration Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configure Active Directory integration settings for the Qumulo cluster, including domain, credentials, and security options like signing, sealing, and encryption. Supports optional AD configuration parameters. ```hcl resource "qumulo_ad_settings" "domain_join" { # Required settings domain = "ad.corp.example.com" ad_username = "Administrator" ad_password = "SecurePassword123" # Security settings signing = "WANT_SIGNING" # Options: WANT_SIGNING, REQUIRE_SIGNING sealing = "WANT_SEALING" # Options: WANT_SEALING, REQUIRE_SEALING crypto = "WANT_AES" # Options: WANT_AES, REQUIRE_AES # Optional AD configuration domain_netbios = "CORP" base_dn = "CN=Users,DC=ad,DC=corp,DC=example,DC=com" ou = "OU=Servers,DC=ad,DC=corp,DC=example,DC=com" use_ad_posix_attributes = false timeouts { create = "10m" update = "10m" delete = "5m" } } ``` -------------------------------- ### Configure qumulo_smb_share Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Defines an SMB share with specific access controls and network permissions. Ensure read-only fields like 'id' are removed before applying. ```terraform resource "qumulo_smb_share" "share2" { access_based_enumeration_enabled = false bytes_per_sector = "512" default_directory_create_mode = "0755" default_file_create_mode = "0644" description = "Description" fs_path = "/" require_encryption = false share_name = "Files" network_permissions { address_ranges = [] rights = [ "READ", "WRITE", "CHANGE_PERMISSIONS", ] type = "ALLOWED" } permissions { rights = [ "READ", "WRITE", "CHANGE_PERMISSIONS", ] type = "DENIED" trustee { auth_id = "501" domain = "LOCAL" gid = 0 name = "guest" sid = "S-1-5-21-1393870369-3041675342-41057371-501" uid = 0 } } permissions { rights = [ "READ", "WRITE", "CHANGE_PERMISSIONS", ] type = "ALLOWED" trustee { auth_id = "500" domain = "LOCAL" gid = 0 name = "admin" sid = "S-1-5-21-1393870369-3041675342-41057371-500" uid = 0 } } permissions { rights = [ "READ", "WRITE", "CHANGE_PERMISSIONS", ] type = "ALLOWED" trustee { auth_id = "8589934592" domain = "WORLD" gid = 0 name = "Everyone" sid = "S-1-1-0" uid = 0 } } } ``` -------------------------------- ### qumulo_ftp_server Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/ftp_server.md Configuration options for the qumulo_ftp_server resource. ```APIDOC ## qumulo_ftp_server Resource ### Description Manages the FTP server configuration on a Qumulo cluster. ### Schema #### Required - **allow_unencrypted_connections** (Boolean) - Whether to allow unencrypted FTP connections. - **check_remote_host** (Boolean) - Whether to check the remote host during FTP connections. - **chroot_users** (Boolean) - Whether to chroot users to their home directories. - **enabled** (Boolean) - Whether the FTP server is enabled. - **expand_wildcards** (Boolean) - Whether to expand wildcards in FTP commands. - **greeting** (String) - The greeting message displayed to FTP clients. - **log_operations** (Boolean) - Whether to log FTP operations. #### Optional - **anonymous_user** (Map of String) - Configuration for the anonymous FTP user. - **timeouts** (Block) - Configuration for timeouts. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### Configure Qumulo Monitoring Service (MQ) Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Use this resource to configure Qumulo monitoring service (MQ) settings for cluster health reporting. Ensure `mq_host` and `mq_port` are correctly set for external reporting. ```hcl resource "qumulo_monitoring" "mq_config" { enabled = true mq_host = "missionq.qumulo.com" mq_port = 443 mq_proxy_host = "" mq_proxy_port = 0 s3_proxy_host = "monitor.qumulo.com" s3_proxy_port = 443 vpn_host = "ep1.qumulo.com" vpn_enabled = true period = 60 s3_proxy_disable_https = false } ``` -------------------------------- ### Configure Qumulo Network Interface Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Sets up network interface settings, including bonding mode and MTU. Ensure the interface_id is correct for your system. ```hcl resource "qumulo_interface_configuration" "bond0" { interface_id = "1" name = "bond0" default_gateway = "10.220.0.1" default_gateway_ipv6 = "2001:db8::1" bonding_mode = "IEEE_8023AD" # Options: IEEE_8023AD, ACTIVE_BACKUP mtu = 9000 } ``` -------------------------------- ### Configure Global Qumulo NFS Settings Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Sets global NFS server configurations, including enabling specific protocol versions and authentication methods. ```hcl resource "qumulo_nfs_settings" "global" { v4_enabled = true krb5_enabled = true auth_sys_enabled = true } ``` -------------------------------- ### qumulo_monitoring Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/monitoring.md This snippet details the schema for the qumulo_monitoring resource, including required and optional arguments, as well as nested schema for timeouts. ```APIDOC ## qumulo_monitoring Resource ### Description Manages monitoring settings for a Qumulo environment. ### Schema #### Required - **mq_host** (String) - The host for the message queue. - **mq_port** (Number) - The port for the message queue. - **mq_proxy_host** (String) - The host for the message queue proxy. - **mq_proxy_port** (Number) - The port for the message queue proxy. - **period** (Number) - The monitoring data collection period in seconds. - **s3_proxy_host** (String) - The host for the S3 proxy. - **s3_proxy_port** (Number) - The port for the S3 proxy. - **vpn_host** (String) - The host for the VPN connection. #### Optional - **enabled** (Boolean) - Whether monitoring is enabled. Defaults to `true`. - **s3_proxy_disable_https** (Boolean) - Whether to disable HTTPS for the S3 proxy. Defaults to `false`. - **timeouts** (Block, Optional) - Configuration block for timeouts. See [below for nested schema](#nestedblock--timeouts). - **vpn_enabled** (Boolean) - Whether the VPN connection is enabled. Defaults to `false`. #### Read-Only - **id** (String) - The ID of this resource. ### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. ``` -------------------------------- ### Set Qumulo Directory Quotas Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configures storage quotas for specific directories using their IDs. Limits are specified in bytes. ```hcl resource "qumulo_directory_quota" "user_home" { directory_id = "2" limit = "107374182400" # 100 GB in bytes } resource "qumulo_directory_quota" "project_quota" { directory_id = "1000" limit = "1099511627776" # 1 TB in bytes } ``` -------------------------------- ### Set Qumulo Connection Environment Variables Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/README.md Set these environment variables to specify the host, port, username, and password for connecting to your Qumulo cluster. ```bash export QUMULO_HOST={host} export QUMULO_PORT={port} export QUMULO_USERNAME={username} export QUMULO_PASSWORD={password} ``` -------------------------------- ### qumulo_cloudwatch Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/cloudwatch.md Configuration options for the qumulo_cloudwatch resource. ```APIDOC ## qumulo_cloudwatch Resource ### Description Manages CloudWatch logging configuration for Qumulo. ### Schema #### Required - **enabled** (Boolean) - Enables or disables CloudWatch logging. #### Optional - **log_group_name** (String) - The name of the CloudWatch log group to send logs to. - **region** (String) - The AWS region for the CloudWatch log group. - **timeouts** (Block, Optional) - Configure timeouts for resource operations. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### Import Cluster Name Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Use the terraform import command to add the cluster name resource to your state. ```bash $ terraform import qumulo_cluster_name.name 1 ``` -------------------------------- ### Manage Qumulo Network Configuration Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configures IP addressing, DNS settings, and VLAN for a network interface. Use 'STATIC' or 'DHCP' for 'assigned_by'. ```hcl resource "qumulo_network_configuration" "primary" { interface_id = "1" network_id = "1" name = "Production" assigned_by = "STATIC" # Options: STATIC, DHCP ip_ranges = ["10.220.0.10-10.220.0.20"] floating_ip_ranges = ["10.220.0.100-10.220.0.110"] netmask = "255.255.255.0" dns_servers = ["10.220.0.2", "10.220.0.3"] dns_search_domains = ["corp.example.com", "example.com"] mtu = 9000 vlan_id = 100 } # Import network configuration # terraform import qumulo_network_configuration.primary 1:1 ``` -------------------------------- ### Configure Qumulo Provider Authentication Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Set environment variables for authentication or override them with explicit credentials in the provider block. Ensure correct host, port, username, and password are provided. ```hcl # Set environment variables for authentication # export QUMULO_HOST={host} # export QUMULO_PORT={port} # export QUMULO_USERNAME={username} # export QUMULO_PASSWORD={password} terraform { required_providers { qumulo = { source = "Qumulo/qumulo" version = "0.1.1" } } } # Optional: Override environment variables with explicit credentials provider "qumulo" { username = "admin" password = "secretpassword" host = "cluster.example.com" port = "8000" } ``` -------------------------------- ### Define Terraform Resource Schema and CRUD Operations Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/TF-RESOURCE.md Defines a Terraform resource with its schema and CRUD operation contexts. Use this as a template for new resources. ```Go package qumulo func resourceExampleSettings() *schema.Resource { return &schema.Resource{ CreateContext: resourceExampleSettingsCreate, ReadContext: resourceExampleSettingsRead, UpdateContext: resourceExampleSettingsUpdate, DeleteContext: resourceExampleSettingsDelete, Schema: map[string]*schema.Schema { "name": &schema.Schema{ Type: schema.TypeString, Required: true, }, }, } } ``` -------------------------------- ### qumulo_ldap_server Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/ldap_server.md Configuration for the qumulo_ldap_server resource. ```APIDOC ## qumulo_ldap_server (Resource) ### Description Manages an LDAP server configuration on Qumulo. ### Schema #### Required - **base_distinguished_names** (String) - The base distinguished names for LDAP searches. - **bind_uri** (String) - The URI for the LDAP bind connection. #### Optional - **encrypt_connection** (Boolean) - Whether to encrypt the LDAP connection. - **ldap_schema** (String) - Specifies the LDAP schema to use. - **ldap_schema_description** (Block List, Max: 1) - Configuration for the LDAP schema description. - **gid_number_attribute** (String) - The attribute for the group ID number. - **group_member_attribute** (String) - The attribute for group members. - **group_name_attribute** (String) - The attribute for the group name. - **group_object_class** (String) - The object class for groups. - **login_name_attribute** (String) - The attribute for the login name. - **uid_number_attribute** (String) - The attribute for the user ID number. - **user_group_identifier_attribute** (String) - The attribute used to identify users within groups. - **user_object_class** (String) - The object class for users. - **password** (String, Sensitive) - The password for binding to the LDAP server. - **timeouts** (Block, Optional) - Configuration for timeouts. - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. - **use_ldap** (Boolean) - Whether to use LDAP for authentication. - **user** (String) - The user for binding to the LDAP server. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_time_configuration Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/time_configuration.md Configuration for the qumulo_time_configuration resource. ```APIDOC ## qumulo_time_configuration (Resource) ### Description Manages time configuration settings for a Qumulo cluster. ### Schema #### Required - `ntp_servers` (List of String) - A list of NTP server hostnames or IP addresses. - `use_ad_for_primary` (Boolean) - Whether to use Active Directory for primary time synchronization. #### Optional - `timeouts` (Block, Optional) - Configure timeouts for resource operations. Nested Schema for `timeouts`: Optional: - `create` (String) - Timeout for create operations. - `delete` (String) - Timeout for delete operations. - `update` (String) - Timeout for update operations. #### Read-Only - `id` (String) - The ID of this resource. ``` -------------------------------- ### Configure LDAP Server Integration Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configure LDAP server integration for user authentication. Supports standard and custom schemas with configurable attribute mappings. Ensure `use_ldap` is set to `true` for integration. ```hcl resource "qumulo_ldap_server" "corporate_ldap" { use_ldap = true bind_uri = "ldap://ldap.example.com" base_distinguished_names = "dc=example,dc=com" user = "cn=admin,dc=example,dc=com" password = "ldap_password" encrypt_connection = true # Use custom schema for non-standard LDAP configurations ldap_schema = "CUSTOM" ldap_schema_description { group_member_attribute = "memberUid" user_group_identifier_attribute = "uid" login_name_attribute = "uid" group_name_attribute = "cn" user_object_class = "posixAccount" group_object_class = "posixGroup" uid_number_attribute = "uidNumber" gid_number_attribute = "gidNumber" } } ``` -------------------------------- ### qumulo_interface_configuration Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/interface_configuration.md Manages a network interface configuration on a Qumulo cluster. ```APIDOC ## qumulo_interface_configuration Resource ### Description Manages a network interface configuration on a Qumulo cluster. ### Method Resource (Terraform) ### Endpoint N/A (Terraform Resource) ### Parameters #### Required - **default_gateway** (String) - The default gateway for the interface. - **interface_id** (String) - The ID of the network interface to configure. - **mtu** (Number) - The Maximum Transmission Unit (MTU) for the interface. #### Optional - **bonding_mode** (String) - The bonding mode for the interface (e.g., "active-backup", "balance-rr"). - **default_gateway_ipv6** (String) - The default IPv6 gateway for the interface. - **name** (String) - A descriptive name for the interface configuration. - **timeouts** (Block) - Configuration for create, update, and delete timeouts. ### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. ### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_ad_settings Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/ad_settings.md Manages Active Directory settings for Qumulo. This resource allows configuration of AD integration, including credentials, domain, and security options. ```APIDOC ## qumulo_ad_settings Resource ### Description Manages Active Directory settings for Qumulo. This resource allows configuration of AD integration, including credentials, domain, and security options. ### Method Resource (Terraform) ### Endpoint N/A (Terraform Resource) ### Parameters #### Required - **ad_password** (String, Sensitive) - The password for Active Directory authentication. - **ad_username** (String) - The username for Active Directory authentication. - **domain** (String) - The Active Directory domain name. #### Optional - **base_dn** (String) - The base distinguished name for searching Active Directory. - **crypto** (String) - Specifies the crypto mechanism for AD communication (e.g., 'crc32', 'crc32c'). - **domain_netbios** (String) - The NetBIOS name of the Active Directory domain. - **ou** (String) - The organizational unit (OU) to use within Active Directory. - **sealing** (String) - Specifies the sealing mechanism for AD communication. - **signing** (String) - Specifies the signing mechanism for AD communication. - **timeouts** (Block, Optional) - Configuration block for timeouts. See below for nested schema. - **use_ad_posix_attributes** (Boolean) - Whether to use AD POSIX attributes for user and group information. ### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. ### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_nfs_settings Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/nfs_settings.md Manages NFS settings for a Qumulo cluster. ```APIDOC ## qumulo_nfs_settings Resource ### Description Manages NFS settings for a Qumulo cluster. ### Schema #### Optional - **auth_sys_enabled** (Boolean) - Enables or disables AUTH_SYS for NFS. - **krb5_enabled** (Boolean) - Enables or disables Kerberos v5 authentication for NFS. - **timeouts** (Block, Optional) - Configuration block for timeouts. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. - **v4_enabled** (Boolean) - Enables or disables NFSv4. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### Create Qumulo NFS Export with Restrictions Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Configures an NFS export path with specific host restrictions, read-only settings, and user mapping options. ```hcl resource "qumulo_nfs_export" "data_export" { export_path = "/data" fs_path = "/shared/data" description = "Data share for analytics cluster" allow_fs_path_create = true restrictions { host_restrictions = ["10.100.0.0/24", "10.200.0.0/24"] read_only = false require_privileged_port = true user_mapping = "NFS_MAP_NONE" } fields_to_present_as_32_bit = [] } resource "qumulo_nfs_export" "readonly_export" { export_path = "/archive" fs_path = "/shared/archive" description = "Read-only archive export" allow_fs_path_create = false restrictions { host_restrictions = ["10.100.38.0/24"] read_only = true require_privileged_port = false user_mapping = "NFS_MAP_ALL" map_to_user = { id_type = "LOCAL_USER" id_value = "guest" } map_to_group = { id_type = "NFS_GID" id_value = "65534" } } fields_to_present_as_32_bit = ["FILE_IDS"] } ``` -------------------------------- ### Manage Local Qumulo User Accounts Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Create and manage local user accounts on the Qumulo cluster. Supports creating single users or multiple users using `for_each`. Outputs the created user IDs. ```hcl # Create a single local user resource "qumulo_local_user" "admin_user" { name = "serviceadmin" primary_group = 514 password = "SecurePassword123!" home_directory = "/home/serviceadmin" uid = "1001" } # Create multiple users using for_each resource "qumulo_local_user" "app_users" { for_each = toset(["appuser1", "appuser2", "appuser3"]) name = each.key primary_group = 514 password = "DefaultPass123!" home_directory = "/" } # Output the user IDs output "app_user_ids" { value = { for k, v in qumulo_local_user.app_users : k => v.id } } ``` -------------------------------- ### qumulo_directory_quota Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/directory_quota.md Configuration for the qumulo_directory_quota resource. ```APIDOC ## qumulo_directory_quota (Resource) ### Description Manages directory quotas in Qumulo. ### Schema #### Required - **directory_id** (String) - The ID of the directory to set the quota for. - **limit** (String) - The quota limit for the directory. #### Optional - **timeouts** (Block, Optional) - Configuration for timeouts. ### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_local_group Resource Configuration Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/local_group.md This snippet shows the schema for the qumulo_local_group resource, outlining its required, optional, and read-only attributes. ```APIDOC ## qumulo_local_group Resource ### Description Manages a local group on the Qumulo cluster. ### Schema #### Required - **name** (String) - The name of the local group. #### Optional - **gid** (String) - The GID of the local group. - **timeouts** (Block, Optional) - Configuration for timeouts. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. - **sid** (String) - The SID of the local group. ``` -------------------------------- ### qumulo_local_user Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/local_user.md Manages a local user on a Qumulo cluster. ```APIDOC ## qumulo_local_user (Resource) ### Description Manages a local user on a Qumulo cluster. ### Schema #### Required - **name** (String) - The username for the local user. - **primary_group** (String) - The primary group the user belongs to. #### Optional - **home_directory** (String) - The user's home directory path. - **password** (String, Sensitive) - The user's password. This field is sensitive and will be hidden in logs and output. - **uid** (String) - The user ID (UID) for the local user. #### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **can_change_password** (Boolean) - Indicates if the user can change their own password. - **id** (String) - The ID of this resource. - **sid** (String) - The security identifier (SID) of the user. ``` -------------------------------- ### Configure Qumulo Syslog Audit Logging Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt This resource configures syslog audit logging for security and compliance. Ensure the `server_address` and `server_port` are accessible from the Qumulo cluster. ```hcl resource "qumulo_syslog" "audit_log" { enabled = true server_address = "syslog.example.com" server_port = 514 } ``` -------------------------------- ### qumulo_network_configuration Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/network_configuration.md The `qumulo_network_configuration` resource is used to define and manage network configurations on a Qumulo cluster. ```APIDOC ## qumulo_network_configuration Resource ### Description Manages network configuration for Qumulo. ### Schema #### Required - `assigned_by` (String) - Specifies how the network configuration is assigned. - `interface_id` (String) - The ID of the network interface to which this configuration applies. - `name` (String) - The name of the network configuration. - `network_id` (String) - The ID of the network. - `vlan_id` (Number) - The VLAN ID associated with this network configuration. #### Optional - `dns_search_domains` (List of String) - A list of DNS search domains. - `dns_servers` (List of String) - A list of DNS server IP addresses. - `floating_ip_ranges` (List of String) - A list of IP address ranges for floating IPs. - `ip_ranges` (List of String) - A list of IP address ranges for the network configuration. - `mtu` (Number) - The Maximum Transmission Unit (MTU) for the network interface. - `netmask` (String) - The netmask for the network configuration. - `timeouts` (Block, Optional) - Configuration for timeouts for create, update, and delete operations. - `create` (String) - Timeout for create operations. - `delete` (String) - Timeout for delete operations. - `update` (String) - Timeout for update operations. #### Read-Only - `id` (String) - The ID of this resource. ``` -------------------------------- ### Update Configuration with Imported State Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/IMPORT.md Copy the output from 'terraform show' into your .tf file to update the configuration with imported resource details. ```hcl terraform { required_providers { qumulo = { source = "Qumulo/qumulo" version = "0.1.1" } } } # qumulo_cluster_name.name: resource "qumulo_cluster_name" "name" { cluster_name = "Buttercup" } ``` -------------------------------- ### qumulo_local_group_member Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/local_group_member.md Configuration for the qumulo_local_group_member resource. ```APIDOC ## qumulo_local_group_member Resource ### Description Manages local group members in Qumulo. ### Schema #### Required - **group_id** (String) - The ID of the group. - **member_id** (String) - The ID of the member to add to the group. #### Optional - **timeouts** (Block, Optional) - Configuration for timeouts. - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_ssl_cert Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/ssl_cert.md The `qumulo_ssl_cert` resource is used to manage SSL certificates on a Qumulo cluster. It requires the certificate and private key to be provided. ```APIDOC ## qumulo_ssl_cert (Resource) ### Description Manages SSL certificates for Qumulo. ### Schema #### Required - **certificate** (String) - The SSL certificate content. - **private_key** (String) - The private key for the SSL certificate. #### Optional - **timeouts** (Block, Optional) - Configuration for timeouts. - **create** (String) - Timeout for creation operations. - **delete** (String) - Timeout for deletion operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ``` -------------------------------- ### qumulo_nfs_export Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/nfs_export.md Manages NFS exports on a Qumulo cluster. ```APIDOC ## qumulo_nfs_export (Resource) ### Description Manages NFS exports on a Qumulo cluster. ### Schema #### Required - **description** (String) - A description for the NFS export. - **export_path** (String) - The path to be exported via NFS. - **fs_path** (String) - The filesystem path corresponding to the export path. - **restrictions** (Block List, Min: 1) - A list of restrictions for the NFS export. ##### Nested Schema for `restrictions` Required: - **host_restrictions** (List of String) - A list of hosts or networks allowed to access the export. - **read_only** (Boolean) - Whether the export is read-only. - **require_privileged_port** (Boolean) - Whether a privileged port is required for access. - **user_mapping** (String) - The user mapping strategy for the export (e.g., `none`, `root_user_only`, `anonymous`). Optional: - **map_to_group** (Map of String) - A map of user/group mappings. - **map_to_user** (Map of String) - A map of user/group mappings. #### Optional - **allow_fs_path_create** (Boolean) - Whether to allow the creation of the filesystem path if it does not exist. - **fields_to_present_as_32_bit** (List of String) - A list of fields to present as 32-bit. - **timeouts** (Block, Optional) - Configuration for timeouts. ##### Nested Schema for `timeouts` Optional: - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of the resource. ``` -------------------------------- ### Configure AWS CloudWatch Integration for Audit Logs Source: https://context7.com/qumulo/terraform-provider-qumulo/llms.txt Use this resource to configure AWS CloudWatch integration for shipping audit logs. Specify the `log_group_name` and `region` where logs will be sent. ```hcl resource "qumulo_cloudwatch" "audit_log" { enabled = true log_group_name = "/qumulo/cluster/audit" region = "us-west-2" } ``` -------------------------------- ### qumulo_role Resource Source: https://github.com/qumulo/terraform-provider-qumulo/blob/main/docs/resources/role.md Manages a role in Qumulo. ```APIDOC ## qumulo_role (Resource) ### Description Manages a role in Qumulo. ### Schema #### Required - **description** (String) - A description for the role. - **name** (String) - The name of the role. - **privileges** (List of String) - A list of privileges associated with the role. #### Optional - **timeouts** (Block, Optional) - Configuration for timeouts. - **create** (String) - Timeout for create operations. - **delete** (String) - Timeout for delete operations. - **update** (String) - Timeout for update operations. #### Read-Only - **id** (String) - The ID of this resource. ```