A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.hashicorp.com/terraform/plugin/framework/handling-data/attributes/float64 below:

Float64 attributes | Terraform | HashiCorp Developer

Float64 attributes store a 64-bit floating point number. Values are represented by a float64 type in the framework.

In this Terraform configuration example, a float64 attribute named example_attribute is set to the value 1.23:

resource "examplecloud_thing" "example" {
  example_attribute = 1.23
}

Use one of the following attribute types to directly add a float64 value to a schema or nested attribute type:

In this example, a resource schema defines a top level required float64 attribute named example_attribute:

func (r ThingResource) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) {
    resp.Schema = schema.Schema{
        Attributes: map[string]schema.Attribute{
            "example_attribute": schema.Float64Attribute{
                Required: true,
                // ... potentially other fields ...
            },
            // ... potentially other attributes ...
        },
    }
}

If the float64 value should be the element type of a collection attribute type, set the ElementType field according to the float64 type. Refer to the collection attribute type documentation for additional details.

If the float64 value should be a value type of an object attribute type, set the AttributeTypes map value according to the float64 type. Refer to the object attribute type documentation for additional details.

Configurability

At least one of the Computed, Optional, or Required fields must be set to true. This defines how Terraform and the framework should expect data to set, whether the value is from the practitioner configuration or from the provider logic, such as API response value.

The acceptable behaviors of these configurability options are:

Resource Identity

If creating a resource identity schema, set either OptionalForImport or RequiredForImport to true to inform Terraform if practitioners must set the attribute when importing with that resource's identity.

The acceptable behaviors of these configurability options are:

Custom Types

You may want to build your own attribute value and type implementations to allow your provider to combine validation, description, and plan customization behaviors into a reusable bundle. This helps avoid duplication or reimplementation and ensures consistency. These implementations use the CustomType field in the attribute type.

Refer to Custom Types for further details on creating provider-defined types and values.

Deprecation

Set the DeprecationMessage field to a practitioner-focused message for how to handle the deprecation. The framework will automatically raise a warning diagnostic with this message if the practitioner configuration contains a known value for the attribute. Terraform version 1.2.7 and later will raise a warning diagnostic in certain scenarios if the deprecated attribute value is referenced elsewhere in a practitioner configuration. The framework deprecations documentation fully describes the recommended practices for deprecating an attribute or resource.

Some practitioner-focused examples of a deprecation message include:

Description

The framework provides two description fields, Description and MarkdownDescription, which various tools use to show additional information about an attribute and its intended purpose. This includes, but is not limited to, terraform-plugin-docs for automated provider documentation generation and terraform-ls for Terraform configuration editor integrations.

Plan Modification

Tip

Only managed resources implement this concept.

The framework provides two plan modification fields for managed resource attributes, Default and PlanModifiers, which define resource and attribute value planning behaviors. The resource default and plan modification documentation covers these features more in-depth.

Common Use Case Plan Modification

The float64default package defines common use case Default implementations:

The float64planmodifier package defines common use case PlanModifiers implementations:

Sensitive

Set the Sensitive field if the attribute value should always be considered sensitive data. In Terraform, this will generally mask the value in practitioner output. This setting cannot be conditionally set and does not impact how data is stored in the state.

WriteOnly

Tip

Only managed resources implement this concept.

Set the WriteOnly field to define a write-only argument. Write-only arguments can accept ephemeral values and are not persisted in the Terraform plan or state artifacts. Write-only arguments are supported in Terraform 1.11 and later.

Validation

Set the Validators field to define validation. This validation logic is ran in addition to any validation contained within a custom type.

Common Use Case Validators

HashiCorp provides the additional terraform-plugin-framework-validators Go module which contains validation logic for common use cases. The float64validator package within that module has float64 attribute validators such as minimum, maximum, and defining conflicting attributes.

The accessing values documentation covers general methods for reading schema (configuration, plan, and state) data, which is necessary before accessing an attribute value directly. The float64 type documentation covers methods for interacting with the attribute value itself.

The float64 type documentation covers methods for creating or setting the appropriate value. The writing data documentation covers general methods for writing schema (plan and state) data, which is necessary afterwards.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4