Terraform Cisco IOS-XE Provider

Tests

Terraform Provider IOS-XE

Requirements

Building The Provider

  1. Clone the repository
  2. Enter the repository directory
  3. Build the provider using the Go install command:
go install

Adding Dependencies

This provider uses Go modules. Please see the Go documentation for the most up to date information about using Go modules.

To add a new dependency github.com/author/dependency to your Terraform provider:

go get github.com/author/dependency
go mod tidy

Then commit the changes to go.mod and go.sum.

Using the provider

This Terraform Provider is available to install automatically via terraform init. If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init to initialize it.

Additional documentation, including available resources and their arguments/attributes can be found on the Terraform documentation website.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).

To compile the provider, run go install. This will build the provider and put the provider binary in the $GOPATH/bin directory.

To generate or update documentation, run go generate.

In order to run the full suite of Acceptance tests, run make testacc. Make sure the respective environment variables are set (e.g., IOSXE_USERNAME, IOSXE_PASSWORD, IOSXE_URL).

Note: Acceptance tests create real resources.

make testacc
Comments
  • IOSXE-ALC

    IOSXE-ALC

    Hi, I'm appreciate your work! I'm going to use the terraform for my infrastructure where I have to support more 500 switches which will operate as fabric. I'd like ask you add several resources. The first resources is a ACL (We need use a lot of ACL for restrict access between vlan) and the second resources is base configuration (domain name, ssh configuration, enable/disable service,configuration logging) The most important resources is ACL.

  • Bug: Ethernet interfaces with / in name

    Bug: Ethernet interfaces with / in name

    Terraform Version

    Terraform v1.1.7

    Affected Resource(s)

    • iosxe_interface_ethernet

    Terraform Configuration Files

    resource "iosxe_interface_ethernet" "example" {
      name = "1/0/21"
      type = "TwentyFiveGigE"
      description = "foobar"
    }
    

    Debug Output

    2022-05-11T13:38:26.249Z [DEBUG] provider.terraform-provider-iosxe: 2022/05/11 13:38:26 [DEBUG] HTTP Request: PATCH, https://172.21.142.23/restconf/data/Cisco-IOS-XE-native:native/interface/TwentyFiveGigE=1/0/21, {{"Cisco-IOS-XE-native:21":{"name":"1/0/21","description":"foobar"}}}
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe: 2022/05/11 13:38:26 [DEBUG] HTTP Response: {
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:   "ietf-restconf:errors": {
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:     "error": [
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:       {
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:         "error-type": "application",
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:         "error-tag": "invalid-value",
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:         "error-message": "uri keypath not found"
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:       }
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:     ]
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe:   }
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe: }
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe: 2022/05/11 13:38:26 [ERROR] HTTP Request failed: StatusCode 404, RESTCONF errors {Error:[]} {PatchId: GlobalStatus:{Ok:false Errors:{Error:[]}} EditStatus:{Edit:[]}}
    2022-05-11T13:38:26.256Z [DEBUG] provider.terraform-provider-iosxe: 2022/05/11 13:38:26 [DEBUG] Exit from Do method
    

    Expected Behavior

    Configure TwentyFiveGigE=1/0/21 interface

    Actual Behavior

    iosxe_interface_ethernet.example: Creating...
    ╷
    │ Error: Client Error
    │ 
    │   with iosxe_interface_ethernet.example,
    │   on main.tf line 24, in resource "iosxe_interface_ethernet" "example":
    │   24: resource "iosxe_interface_ethernet" "example" {
    │ 
    │ Failed to configure object (PATCH), got error: HTTP Request failed: StatusCode 404, RESTCONF errors {Error:[]} {PatchId: GlobalStatus:{Ok:false Errors:{Error:[]}} EditStatus:{Edit:[]}}
    

    So there are 2 separate issues that having / in the name causes.

    Path escaping is required in the URL:

    https://172.21.142.23/restconf/data/Cisco-IOS-XE-native:native/interface/TwentyFiveGigE=1/0/21 needs to be https://172.21.142.23/restconf/data/Cisco-IOS-XE-native:native/interface/TwentyFiveGigE=1%2F0%2F21

    I attempted to resolve the path escaping by escaping the value going into the getPath function however this caused issues downstream as this function is used heavily through the resources.

    Incorrect payload:

    {"Cisco-IOS-XE-native:21":{"name":"1/0/21","description":"foobar"}}
    

    should be

    {"Cisco-IOS-XE-native:TwentyFiveGigE":{"name":"1/0/21","description":"foobar"}}
    

    This is an issue with the helpers.LastElement function splitting on the "/".

  • Error: The terraform-provider-iosxe_v0.1.4 plugin crashed!

    Error: The terraform-provider-iosxe_v0.1.4 plugin crashed!

    Terraform Version

    $ terraform -v
    Terraform v1.1.8
    on darwin_amd64
    + provider registry.terraform.io/netascode/iosxe v0.1.4
    
    Your version of Terraform is out of date! The latest version
    is 1.1.9. You can update by downloading from https://www.terraform.io/downloads.html
    

    Go Version

    $ go version
    go version go1.18.2 darwin/amd64
    

    Affected Resource(s)

    Please list the resources as a list, for example:

    • iosxe_static_route

    If this issue appears to affect multiple resources, it may be an issue with Terraform's core, so please mention this.

    Terraform Configuration Files

    https://github.com/muhammad-rafi/terraform-iosxe/blob/main/ntc_iosxe/static_routing.tf

    terraform {
      required_providers {
        iosxe = {
          source  = "netascode/iosxe"
          version = "0.1.4"
        }
      }
    }
    
    # Network To Code iosxe Provider Configuration
    provider "iosxe" {
      alias    = "cisco_sandbox"
      username = "developer"
      password = "C1sco12345"
      url      = "https://sandbox-iosxe-recomm-1.cisco.com"
    }
    
    resource "iosxe_static_route" "static_route" {
      provider   = iosxe.cisco_sandbox
      device = "sandbox-iosxe-recomm-1.cisco.com"
      prefix = "10.0.0.10"
      mask   = "255.255.255.0"
      next_hops = [
        {
          next_hop  = "10.0.0.1"
          metric    = 10
          global    = false
          name      = "terraform_route"
          permanent = true
          tag       = 100
        }
      ]
    }
    

    Debug Output

    https://gist.github.com/muhammad-rafi/8c2b8e6ef2fd74d596ed54694fc3991b

    Expected Behavior

    It should configure the static route on the iosxe device

    Actual Behavior

    Error: The terraform-provider-iosxe_v0.1.4 plugin crashed!

    Steps to Reproduce

    Please list the steps required to reproduce the issue, for example:

    1. terraform plan
    2. terraform apply -auto-approve
  • bugfix: add missing Cisco-IOS-XE-ospf model

    bugfix: add missing Cisco-IOS-XE-ospf model

    Running generator on freshly pulled repo was getting panic. Traced to missing model in load models.

    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x98 pc=0x5cd507]
    
    goroutine 1 [running]:
    main.resolvePath(0xc018965080, {0xc000094854?, 0xc0000b0600?})
            /home/justinr/netascode/terraform-provider-iosxe/gen/generator.go:258 +0x1a7
    main.augmentConfig(0xc0001566e8, {0xc0000b0600, 0x1f, 0x20})
            /home/justinr/netascode/terraform-provider-iosxe/gen/generator.go:366 +0xeb
    main.main()
            /home/justinr/netascode/terraform-provider-iosxe/gen/generator.go:471 +0x333
    exit status 2
    
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.1

    Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.1

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.1.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v1.0.1

    BUG FIXES:

    • resource/schema/planmodifier: Prevented assignment to entry in nil map panic for Object type plan modifiers (#591)
    • types/basetypes: Prevented type mutation via the ObjectType type AttributeTypes() method return (#591)
    • types/basetypes: Prevented value mutation via the ListValue, MapValue, and SetValue type Elements() method return (#591)
    • types/basetypes: Prevented value mutation via the ObjectValue type AttributeTypes() and Attributes() method returns (#591)

    v1.0.0

    NOTES:

    • The Terraform Plugin Framework is now generally available with semantic versioning compatibility promises. (#578)
    • types: Framework type implementations have been moved into the underlying basetypes package. Value creation functions and type aliases have been created in the types package that should prevent any breaking changes. (#567)

    BREAKING CHANGES:

    • provider: The Provider interface now requires the Metadata method. It can be left empty or set the MetadataResponse type TypeName field to populate datasource.MetadataRequest and resource.MetadataRequest type ProviderTypeName fields. (#580)
    • resource: The RequiresReplace() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#576)
    • resource: The RequiresReplaceIf() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#576)
    • resource: The Resource type GetSchema method has been removed. Use the Schema method instead. (#576)
    • resource: The StateUpgrader type PriorSchema field type has been migrated from tfsdk.Schema to resource/schema.Schema, similar to other resource schema handling (#573)
    • resource: The UseStateForUnknown() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#576)
    • tfsdk: The AttributePlanModifier interface has been removed. Use the type-specific plan modifier interfaces in the resource/schema/planmodifier package instead. (#576)
    • tfsdk: The AttributeValidator interface has been removed. Use the type-specific validator interfaces in the schema/validator package instead. (#576)
    • tfsdk: The Attribute, Block, and Schema types have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • types: The type-specific Typable and Valuable interfaces have been moved into the underlying basetypes package. (#567)

    FEATURES:

    • types/basetypes: New package which contains embeddable types for custom types (#567)

    BUG FIXES:

    • datasource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to MetaSchema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • resource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)

    v0.17.0

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)
    • resource: The UseStateForUnknown() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#565)
    • tfsdk: The Attribute, Block, and Schema types have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)

    ... (truncated)

    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    1.0.1 (December 19, 2022)

    BUG FIXES:

    • resource/schema/planmodifier: Prevented assignment to entry in nil map panic for Object type plan modifiers (#591)
    • types/basetypes: Prevented type mutation via the ObjectType type AttributeTypes() method return (#591)
    • types/basetypes: Prevented value mutation via the ListValue, MapValue, and SetValue type Elements() method return (#591)
    • types/basetypes: Prevented value mutation via the ObjectValue type AttributeTypes() and Attributes() method returns (#591)

    1.0.0 (December 13, 2022)

    NOTES:

    • The Terraform Plugin Framework is now generally available with semantic versioning compatibility promises. (#578)
    • types: Framework type implementations have been moved into the underlying basetypes package. Value creation functions and type aliases have been created in the types package that should prevent any breaking changes. (#567)

    BREAKING CHANGES:

    • provider: The Provider interface now requires the Metadata method. It can be left empty or set the MetadataResponse type TypeName field to populate datasource.MetadataRequest and resource.MetadataRequest type ProviderTypeName fields. (#580)
    • resource: The RequiresReplace() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#576)
    • resource: The RequiresReplaceIf() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#576)
    • resource: The Resource type GetSchema method has been removed. Use the Schema method instead. (#576)
    • resource: The StateUpgrader type PriorSchema field type has been migrated from tfsdk.Schema to resource/schema.Schema, similar to other resource schema handling (#573)
    • resource: The UseStateForUnknown() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#576)
    • tfsdk: The AttributePlanModifier interface has been removed. Use the type-specific plan modifier interfaces in the resource/schema/planmodifier package instead. (#576)
    • tfsdk: The AttributeValidator interface has been removed. Use the type-specific validator interfaces in the schema/validator package instead. (#576)
    • tfsdk: The Attribute, Block, and Schema types have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • types: The type-specific Typable and Valuable interfaces have been moved into the underlying basetypes package. (#567)

    FEATURES:

    • types/basetypes: New package which contains embeddable types for custom types (#567)

    BUG FIXES:

    • datasource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to MetaSchema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • resource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)

    0.17.0 (November 30, 2022)

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)

    ... (truncated)

    Commits
    • c28e463 Update CHANGELOG for 1.0.1
    • 5a6c8f4 website: fix incorrect field reference (#595)
    • 85f4a77 types: Ensure List/Map/Object/Set Attributes/AttributeTypes/Elements returns ...
    • 88e1c5b Fix incorrect type used for Validators field (#593)
    • 92fcdb0 fix typo (#592)
    • 4250f76 website: Further clarify configuration validation and when API access is avai...
    • 221ae8f Improvements to Documentation (#584)
    • 26244b8 website: Align Attributes page with schema attribute types (#585)
    • 26743e9 chore: Update Digital Team Files (#569)
    • 530c74b build(deps): Bump goreleaser/goreleaser-action from 3 to 4 (#579)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.16.0

    Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.16.0

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.16.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v0.16.0

    BREAKING CHANGES:

    • types: The Bool type Null, Unknown, and Value fields have been removed. Use the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods instead. (#523)
    • types: The Float64 type Null, Unknown, and Value fields have been removed. Use the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods instead. (#523)
    • types: The Int64 type Null, Unknown, and Value fields have been removed. Use the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods instead. (#523)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been removed. Use the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been removed. Use the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Number type Null, Unknown, and Value fields have been removed. Use the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods instead. (#523)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been removed. Use the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been removed. Use the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The String type Null, Unknown, and Value fields have been removed. Use the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods instead. (#523)

    ENHANCEMENTS:

    • attr: Added ValueState type, which custom types can use to consistently represent the three possible value states (known, null, and unknown) (#523)
    • types: Added BoolTypable and BoolValuable interface types, which enable embedding existing boolean types for custom types (#536)
    • types: Added Float64Typable and Float64Valuable interface types, which enable embedding existing float64 types for custom types (#536)
    • types: Added Int64Typable and Int64Valuable interface types, which enable embedding existing int64 types for custom types (#536)
    • types: Added ListTypable and ListValuable interface types, which enable embedding existing list types for custom types (#536)
    • types: Added MapTypable and MapValuable interface types, which enable embedding existing map types for custom types (#536)
    • types: Added NumberTypable and NumberValuable interface types, which enable embedding existing number types for custom types (#536)
    • types: Added ObjectTypable and ObjectValuable interface types, which enable embedding existing object types for custom types (#536)
    • types: Added SetTypable and SetValuable interface types, which enable embedding existing set types for custom types (#536)
    • types: Added StringTypable and StringValuable interface types, which enable embedding existing string types for custom types (#536)

    BUG FIXES:

    • types: Prevented Terraform errors where the zero-value for any attr.Value types such as String would be a known value instead of null (#523)
    • types: Prevented indeterminate behavior for any attr.Value types where they could be any combination of null, unknown, and/or known (#523)

    v0.15.0

    NOTES:

    • types: The Bool type Null, Unknown, and Value fields have been deprecated in preference of the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods. The fields will be removed in a future release. (#502)
    • types: The Float64 type Null, Unknown, and Value fields have been deprecated in preference of the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods. The fields will be removed in a future release. (#502)
    • types: The Int64 type Null, Unknown, and Value fields have been deprecated in preference of the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods. The fields will be removed in a future release. (#502)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Number type Null, Unknown, and Value fields have been deprecated in preference of the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods. The fields will be removed in a future release. (#502)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been deprecated in preference of the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The String type Null, Unknown, and Value fields have been deprecated in preference of the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods. The fields will be removed in a future release. (#502)

    ENHANCEMENTS:

    • types: Added BoolNull(), BoolUnknown(), and BoolValue() functions, which create immutable Bool values (#502)
    • types: Added Bool type ValueBool() method, which returns the bool of the known value or false if null or unknown (#502)
    • types: Added Float64Null(), Float64Unknown(), and Float64Value() functions, which create immutable Float64 values (#502)
    • types: Added Float64 type ValueFloat64() method, which returns the float64 of the known value or 0.0 if null or unknown (#502)

    ... (truncated)

    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    0.16.0 (November 15, 2022)

    BREAKING CHANGES:

    • types: The Bool type Null, Unknown, and Value fields have been removed. Use the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods instead. (#523)
    • types: The Float64 type Null, Unknown, and Value fields have been removed. Use the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods instead. (#523)
    • types: The Int64 type Null, Unknown, and Value fields have been removed. Use the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods instead. (#523)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been removed. Use the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been removed. Use the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Number type Null, Unknown, and Value fields have been removed. Use the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods instead. (#523)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been removed. Use the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been removed. Use the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods instead. (#523)
    • types: The String type Null, Unknown, and Value fields have been removed. Use the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods instead. (#523)

    ENHANCEMENTS:

    • attr: Added ValueState type, which custom types can use to consistently represent the three possible value states (known, null, and unknown) (#523)
    • types: Added BoolTypable and BoolValuable interface types, which enable embedding existing boolean types for custom types (#536)
    • types: Added Float64Typable and Float64Valuable interface types, which enable embedding existing float64 types for custom types (#536)
    • types: Added Int64Typable and Int64Valuable interface types, which enable embedding existing int64 types for custom types (#536)
    • types: Added ListTypable and ListValuable interface types, which enable embedding existing list types for custom types (#536)
    • types: Added MapTypable and MapValuable interface types, which enable embedding existing map types for custom types (#536)
    • types: Added NumberTypable and NumberValuable interface types, which enable embedding existing number types for custom types (#536)
    • types: Added ObjectTypable and ObjectValuable interface types, which enable embedding existing object types for custom types (#536)
    • types: Added SetTypable and SetValuable interface types, which enable embedding existing set types for custom types (#536)
    • types: Added StringTypable and StringValuable interface types, which enable embedding existing string types for custom types (#536)

    BUG FIXES:

    • types: Prevented Terraform errors where the zero-value for any attr.Value types such as String would be a known value instead of null (#523)
    • types: Prevented indeterminate behavior for any attr.Value types where they could be any combination of null, unknown, and/or known (#523)

    0.15.0 (October 26, 2022)

    NOTES:

    • types: The Bool type Null, Unknown, and Value fields have been deprecated in preference of the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods. The fields will be removed in a future release. (#502)
    • types: The Float64 type Null, Unknown, and Value fields have been deprecated in preference of the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods. The fields will be removed in a future release. (#502)
    • types: The Int64 type Null, Unknown, and Value fields have been deprecated in preference of the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods. The fields will be removed in a future release. (#502)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Number type Null, Unknown, and Value fields have been deprecated in preference of the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods. The fields will be removed in a future release. (#502)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been deprecated in preference of the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The String type Null, Unknown, and Value fields have been deprecated in preference of the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods. The fields will be removed in a future release. (#502)

    ENHANCEMENTS:

    • types: Added BoolNull(), BoolUnknown(), and BoolValue() functions, which create immutable Bool values (#502)
    • types: Added Bool type ValueBool() method, which returns the bool of the known value or false if null or unknown (#502)

    ... (truncated)

    Commits
    • 85c0b3f Update CHANGELOG for 0.16.0
    • 00e6cb1 Update migration guide to indicate Set field and SchemaSetFunc equivalents ar...
    • bf1ce9b types: Add Typable and Valuable Interfaces (#536)
    • 6fea713 website: Split resource lifecycle management into separate pages (#537)
    • 8a46db4 build(deps): Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 (#538)
    • 0eb939e tfsdk: Document and clarify GetAttribute and SetAttribute further (#534)
    • f427696 build(deps): Bump github.com/hashicorp/terraform-plugin-go (#531)
    • a3872da website: Fix overview page typo (#530)
    • 667c126 website: Fix broken links (#525)
    • 66a4d2c types: Remove Attrs, AttrTypes, Elems, ElemTypes, Null, Unknown, and Value fi...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.0

    Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.0

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 1.0.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v1.0.0

    NOTES:

    • The Terraform Plugin Framework is now generally available with semantic versioning compatibility promises. (#578)
    • types: Framework type implementations have been moved into the underlying basetypes package. Value creation functions and type aliases have been created in the types package that should prevent any breaking changes. (#567)

    BREAKING CHANGES:

    • provider: The Provider interface now requires the Metadata method. It can be left empty or set the MetadataResponse type TypeName field to populate datasource.MetadataRequest and resource.MetadataRequest type ProviderTypeName fields. (#580)
    • resource: The RequiresReplace() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#576)
    • resource: The RequiresReplaceIf() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#576)
    • resource: The Resource type GetSchema method has been removed. Use the Schema method instead. (#576)
    • resource: The StateUpgrader type PriorSchema field type has been migrated from tfsdk.Schema to resource/schema.Schema, similar to other resource schema handling (#573)
    • resource: The UseStateForUnknown() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#576)
    • tfsdk: The AttributePlanModifier interface has been removed. Use the type-specific plan modifier interfaces in the resource/schema/planmodifier package instead. (#576)
    • tfsdk: The AttributeValidator interface has been removed. Use the type-specific validator interfaces in the schema/validator package instead. (#576)
    • tfsdk: The Attribute, Block, and Schema types have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • types: The type-specific Typable and Valuable interfaces have been moved into the underlying basetypes package. (#567)

    FEATURES:

    • types/basetypes: New package which contains embeddable types for custom types (#567)

    BUG FIXES:

    • datasource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to MetaSchema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • resource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)

    v0.17.0

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)
    • resource: The UseStateForUnknown() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#565)
    • tfsdk: The Attribute, Block, and Schema types have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)

    BREAKING CHANGES:

    • provider: The ProviderWithMetaSchema type GetMetaSchema method has been replaced with the MetaSchema method (#562)
    • tfsdk: The Attribute type FrameworkType() method has been removed. Use the GetType() method instead which returns the same information. (#543)
    • tfsdk: The Attribute type GetType() method now returns type information whether the attribute implements the Type field or Attributes field. (#543)
    • tfsdk: The Config, Plan, and State type Schema field type has been updated from tfsdk.Schema to the generic fwschema.Schema interface to enable additional schema implementations (#544)

    ... (truncated)

    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    1.0.0 (December 13, 2022)

    NOTES:

    • The Terraform Plugin Framework is now generally available with semantic versioning compatibility promises. (#578)
    • types: Framework type implementations have been moved into the underlying basetypes package. Value creation functions and type aliases have been created in the types package that should prevent any breaking changes. (#567)

    BREAKING CHANGES:

    • provider: The Provider interface now requires the Metadata method. It can be left empty or set the MetadataResponse type TypeName field to populate datasource.MetadataRequest and resource.MetadataRequest type ProviderTypeName fields. (#580)
    • resource: The RequiresReplace() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#576)
    • resource: The RequiresReplaceIf() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#576)
    • resource: The Resource type GetSchema method has been removed. Use the Schema method instead. (#576)
    • resource: The StateUpgrader type PriorSchema field type has been migrated from tfsdk.Schema to resource/schema.Schema, similar to other resource schema handling (#573)
    • resource: The UseStateForUnknown() plan modifier has been removed. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#576)
    • tfsdk: The AttributePlanModifier interface has been removed. Use the type-specific plan modifier interfaces in the resource/schema/planmodifier package instead. (#576)
    • tfsdk: The AttributeValidator interface has been removed. Use the type-specific validator interfaces in the schema/validator package instead. (#576)
    • tfsdk: The Attribute, Block, and Schema types have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been removed. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#576)
    • types: The type-specific Typable and Valuable interfaces have been moved into the underlying basetypes package. (#567)

    FEATURES:

    • types/basetypes: New package which contains embeddable types for custom types (#567)

    BUG FIXES:

    • datasource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to MetaSchema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • provider: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)
    • resource: Add Validate function to Schema to prevent usage of reserved and invalid names for attributes and blocks (#548)

    0.17.0 (November 30, 2022)

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)
    • resource: The UseStateForUnknown() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#565)
    • tfsdk: The Attribute, Block, and Schema types have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)

    BREAKING CHANGES:

    • provider: The ProviderWithMetaSchema type GetMetaSchema method has been replaced with the MetaSchema method (#562)
    • tfsdk: The Attribute type FrameworkType() method has been removed. Use the GetType() method instead which returns the same information. (#543)
    • tfsdk: The Attribute type GetType() method now returns type information whether the attribute implements the Type field or Attributes field. (#543)

    ... (truncated)

    Commits
    • d540a40 Update CHANGELOG for 1.0.0
    • eebf3a5 Remove beta verbiage and state compatibility promises (#578)
    • 13ceef9 provider: Require Metadata method for Provider interface (#580)
    • 38a3421 Refactor Schema and Schema Data Related Documentation (#554)
    • ea5dd66 all: Remove remaining Block-based MaxItems and MinItems functionality (#577)
    • 707c9ca resource+tfsdk: Remove tfsdk package schema types and functions (#576)
    • 085f2f9 internal: Replace tfsdk.Schema, tfsdk.Attribute, and tfsdk.Block usage in uni...
    • 7afa862 types: Migrate type implementations into basetypes subpackage (#567)
    • 23973ba Fix Framework allows top-level schema attributes that conflict with Terraform...
    • 3413b8f resource: Use schema.Schema for StateUpgrader.PriorSchema (#573)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 0.17.0

    Bump github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 0.17.0

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.16.0 to 0.17.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v0.17.0

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)
    • resource: The UseStateForUnknown() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#565)
    • tfsdk: The Attribute, Block, and Schema types have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)

    BREAKING CHANGES:

    • provider: The ProviderWithMetaSchema type GetMetaSchema method has been replaced with the MetaSchema method (#562)
    • tfsdk: The Attribute type FrameworkType() method has been removed. Use the GetType() method instead which returns the same information. (#543)
    • tfsdk: The Attribute type GetType() method now returns type information whether the attribute implements the Type field or Attributes field. (#543)
    • tfsdk: The Config, Plan, and State type Schema field type has been updated from tfsdk.Schema to the generic fwschema.Schema interface to enable additional schema implementations (#544)

    FEATURES:

    • datasource/schema: New package which contains schema interfaces and types relevant to data sources (#546)
    • provider/schema: New package which contains schema interfaces and types relevant to providers (#553)
    • resource/schema/planmodifier: New package which contains type-specific schema plan modifier interfaces (#557)
    • resource/schema: New package which contains schema interfaces and types relevant to resources (#558)
    • resource/schema: New packages, such as stringplanmodifier which contain type-specific schema plan modifier implementations (#565)
    • schema/validator: New package which contains type-specific schema validator interfaces (#542)

    BUG FIXES:

    • diag: Allow diagnostic messages with incorrect UTF-8 encoding to pass through with the invalid sequences replaced with the Unicode Replacement Character. This avoids returning the unhelpful message "string field contains invalid UTF-8" in that case. (#549)
    • internal/fwserver: Ensured blocks are ignored when marking computed nils as unknown during resource change planning (#552)
    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    0.17.0 (November 30, 2022)

    NOTES:

    • datasource: The DataSource type GetSchema method has been deprecated. Use the Schema method instead. (#546)
    • provider: The Provider type GetSchema method has been deprecated. Use the Schema method instead. (#553)
    • resource: The RequiresReplace() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplace() or resource/schema/stringplanmodifier.RequiresReplaceIfConfigured() (#565)
    • resource: The RequiresReplaceIf() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.RequiresReplaceIf() (#565)
    • resource: The Resource type GetSchema method has been deprecated. Use the Schema method instead. (#558)
    • resource: The UseStateForUnknown() plan modifier has been deprecated. Use a type-specific plan modifier instead, such as resource/schema/stringplanmodifier.UseStateForUnknown() (#565)
    • tfsdk: The Attribute, Block, and Schema types have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)
    • tfsdk: The ListNestedAttributes, MapNestedAttributes, SetNestedAttributes, and SingleNestedAttributes functions have been deprecated. Use the similarly named types in the datasource/schema, provider/schema, and resource/schema packages instead. (#563)

    BREAKING CHANGES:

    • provider: The ProviderWithMetaSchema type GetMetaSchema method has been replaced with the MetaSchema method (#562)
    • tfsdk: The Attribute type FrameworkType() method has been removed. Use the GetType() method instead which returns the same information. (#543)
    • tfsdk: The Attribute type GetType() method now returns type information whether the attribute implements the Type field or Attributes field. (#543)
    • tfsdk: The Config, Plan, and State type Schema field type has been updated from tfsdk.Schema to the generic fwschema.Schema interface to enable additional schema implementations (#544)

    FEATURES:

    • datasource/schema: New package which contains schema interfaces and types relevant to data sources (#546)
    • provider/schema: New package which contains schema interfaces and types relevant to providers (#553)
    • resource/schema/planmodifier: New package which contains type-specific schema plan modifier interfaces (#557)
    • resource/schema: New package which contains schema interfaces and types relevant to resources (#558)
    • resource/schema: New packages, such as stringplanmodifier which contain type-specific schema plan modifier implementations (#565)
    • schema/validator: New package which contains type-specific schema validator interfaces (#542)

    BUG FIXES:

    • diag: Allow diagnostic messages with incorrect UTF-8 encoding to pass through with the invalid sequences replaced with the Unicode Replacement Character. This avoids returning the unhelpful message "string field contains invalid UTF-8" in that case. (#549)
    • internal/fwserver: Ensured blocks are ignored when marking computed nils as unknown during resource change planning (#552)
    Commits
    • 54ed5dc Update CHANGELOG for 0.17.0
    • d51781c website: Updates for tfsdk Attribute, Block, and Schema deprecations (#564)
    • 4db7ec6 resource/schema: New packages which contain type-specific schema plan modifie...
    • 8cde922 tfsdk: Deprecate Attribute, Block, and Schema types (#563)
    • 9353b7c provider/metaschema: Initial package (#562)
    • abe43b2 Fix nesting mode for map, set and single nested attribute within data source,...
    • 55244fe provider/schema: Fix Go documentation for Schema type (#559)
    • 30b78ab resource/schema: Initial package (#558)
    • 28f4804 resource/schema/planmodifier: New type-specific plan modifiers package (#557)
    • 1dfcd30 test: block attributes with MarkComputedNilsAsUnknown (#555)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-go from 0.14.0 to 0.14.1

    Bump github.com/hashicorp/terraform-plugin-go from 0.14.0 to 0.14.1

    Bumps github.com/hashicorp/terraform-plugin-go from 0.14.0 to 0.14.1.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-go's releases.

    v0.14.1

    NOTES:

    • No expected changes with this Go module's functionality. Contains updates to dependencies such as google.golang.org/grpc and github.com/hashicorp/go-plugin, which may be beneficial for consumers.
    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-go's changelog.

    0.14.1 (November 8, 2022)

    NOTES:

    • No expected changes with this Go module's functionality. Contains updates to dependencies such as google.golang.org/grpc and github.com/hashicorp/go-plugin, which may be beneficial for consumers.
    Commits
    • f3636ee Update CHANGELOG for 0.14.1
    • 33a20bc Bump github.com/hashicorp/go-plugin from 1.4.5 to 1.4.6 (#234)
    • d2a0c01 Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 (#233)
    • aae27cd Bump google.golang.org/grpc from 1.50.0 to 1.50.1 (#232)
    • c199d46 tfprotov5+tfprotov6: Synchronize Protocol Buffers comments for ReadResource a...
    • 368e57a [COMPLIANCE] Update MPL 2.0 LICENSE (#230)
    • 31394ab Bump google.golang.org/grpc from 1.49.0 to 1.50.0 (#229)
    • edd142d Fix Go documentation typo (#228)
    • 30bbb35 Bump leonsteinhaeuser/project-beta-automations from 2.0.0 to 2.0.1 (#227)
    • 8b53d1b .github/workflows: Add Terraform 1.3.x to testing matrix (#226)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.15.0

    Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.15.0

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.15.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v0.15.0

    NOTES:

    • types: The Bool type Null, Unknown, and Value fields have been deprecated in preference of the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods. The fields will be removed in a future release. (#502)
    • types: The Float64 type Null, Unknown, and Value fields have been deprecated in preference of the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods. The fields will be removed in a future release. (#502)
    • types: The Int64 type Null, Unknown, and Value fields have been deprecated in preference of the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods. The fields will be removed in a future release. (#502)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Number type Null, Unknown, and Value fields have been deprecated in preference of the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods. The fields will be removed in a future release. (#502)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been deprecated in preference of the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The String type Null, Unknown, and Value fields have been deprecated in preference of the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods. The fields will be removed in a future release. (#502)

    ENHANCEMENTS:

    • types: Added BoolNull(), BoolUnknown(), and BoolValue() functions, which create immutable Bool values (#502)
    • types: Added Bool type ValueBool() method, which returns the bool of the known value or false if null or unknown (#502)
    • types: Added Float64Null(), Float64Unknown(), and Float64Value() functions, which create immutable Float64 values (#502)
    • types: Added Float64 type ValueFloat64() method, which returns the float64 of the known value or 0.0 if null or unknown (#502)
    • types: Added Int64Null(), Int64Unknown(), and Int64Value() functions, which create immutable Int64 values (#502)
    • types: Added Int64 type ValueInt64() method, which returns the int64 of the known value or 0 if null or unknown (#502)
    • types: Added ListNull(), ListUnknown(), ListValue(), and ListValueMust() functions, which create immutable List values (#502)
    • types: Added ListValueFrom(), MapValueFrom(), ObjectValueFrom(), and SetValueFrom() functions, which can create value types from standard Go types using reflection similar to tfsdk.ValueFrom() (#522)
    • types: Added List type Elements() method, which returns the []attr.Value of the known values or nil if null or unknown (#502)
    • types: Added MapNull(), MapUnknown(), MapValue(), and MapValueMust() functions, which create immutable Map values (#502)
    • types: Added Map type Elements() method, which returns the map[string]attr.Value of the known values or nil if null or unknown (#502)
    • types: Added NumberNull(), NumberUnknown(), and NumberValue() functions, which create immutable Number values (#502)
    • types: Added Number type ValueBigFloat() method, which returns the *big.Float of the known value or nil if null or unknown (#502)
    • types: Added SetNull(), SetUnknown(), SetValue(), and SetValueMust() functions, which create immutable Set values (#502)
    • types: Added Set type Elements() method, which returns the []attr.Value of the known values or nil if null or unknown (#502)
    • types: Added StringNull(), StringUnknown(), and StringValue() functions, which create immutable String values (#502)
    • types: Added String type ValueString() method, which returns the string of the known value or "" if null or unknown (#502)

    v0.14.0

    NOTES:

    • The Terraform Plugin Framework is now in beta. Feedback towards a general availability release in the future with compatibility promises is appreciated. (#500)

    BREAKING CHANGES:

    • attr: The Type interface now requires the ValueType method, which is used for enhancing error diagnostics from the framework (#497)

    ENHANCEMENTS:

    • internal/reflect: Added attr.Value type suggestions to error diagnostics (#497)

    v0.13.0

    NOTES:

    • tfsdk: Schema definitions may now introduce single nested mode blocks, however this support is only intended for migrating terraform-plugin-sdk timeouts blocks. New implementations should prefer single nested attributes instead. (#477)

    ... (truncated)

    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    0.15.0 (October 26, 2022)

    NOTES:

    • types: The Bool type Null, Unknown, and Value fields have been deprecated in preference of the BoolNull(), BoolUnknown(), and BoolValue() creation functions and IsNull(), IsUnknown(), and ValueBool() methods. The fields will be removed in a future release. (#502)
    • types: The Float64 type Null, Unknown, and Value fields have been deprecated in preference of the Float64Null(), Float64Unknown(), and Float64Value() creation functions and IsNull(), IsUnknown(), and ValueFloat64() methods. The fields will be removed in a future release. (#502)
    • types: The Int64 type Null, Unknown, and Value fields have been deprecated in preference of the Int64Null(), Int64Unknown(), and Int64Value() creation functions and IsNull(), IsUnknown(), and ValueInt64() methods. The fields will be removed in a future release. (#502)
    • types: The List type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the ListNull(), ListUnknown(), ListValue(), and ListValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Map type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the MapNull(), MapUnknown(), MapValue(), and MapValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Number type Null, Unknown, and Value fields have been deprecated in preference of the NumberNull(), NumberUnknown(), and NumberValue() creation functions and IsNull(), IsUnknown(), and ValueBigFloat() methods. The fields will be removed in a future release. (#502)
    • types: The Object type Attrs, AttrTypes, Null, and Unknown fields have been deprecated in preference of the ObjectNull(), ObjectUnknown(), ObjectValue(), and ObjectValueMust() creation functions and As(), Attributes(), AttributeTypes(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The Set type Elems, ElemType, Null, and Unknown fields have been deprecated in preference of the SetNull(), SetUnknown(), SetValue(), and SetValueMust() creation functions and Elements(), ElementsAs(), ElementType(), IsNull(), and IsUnknown() methods. The fields will be removed in a future release. (#502)
    • types: The String type Null, Unknown, and Value fields have been deprecated in preference of the StringNull(), StringUnknown(), and StringValue() creation functions and IsNull(), IsUnknown(), and ValueString() methods. The fields will be removed in a future release. (#502)

    ENHANCEMENTS:

    • types: Added BoolNull(), BoolUnknown(), and BoolValue() functions, which create immutable Bool values (#502)
    • types: Added Bool type ValueBool() method, which returns the bool of the known value or false if null or unknown (#502)
    • types: Added Float64Null(), Float64Unknown(), and Float64Value() functions, which create immutable Float64 values (#502)
    • types: Added Float64 type ValueFloat64() method, which returns the float64 of the known value or 0.0 if null or unknown (#502)
    • types: Added Int64Null(), Int64Unknown(), and Int64Value() functions, which create immutable Int64 values (#502)
    • types: Added Int64 type ValueInt64() method, which returns the int64 of the known value or 0 if null or unknown (#502)
    • types: Added ListNull(), ListUnknown(), ListValue(), and ListValueMust() functions, which create immutable List values (#502)
    • types: Added ListValueFrom(), MapValueFrom(), ObjectValueFrom(), and SetValueFrom() functions, which can create value types from standard Go types using reflection similar to tfsdk.ValueFrom() (#522)
    • types: Added List type Elements() method, which returns the []attr.Value of the known values or nil if null or unknown (#502)
    • types: Added MapNull(), MapUnknown(), MapValue(), and MapValueMust() functions, which create immutable Map values (#502)
    • types: Added Map type Elements() method, which returns the map[string]attr.Value of the known values or nil if null or unknown (#502)
    • types: Added NumberNull(), NumberUnknown(), and NumberValue() functions, which create immutable Number values (#502)
    • types: Added Number type ValueBigFloat() method, which returns the *big.Float of the known value or nil if null or unknown (#502)
    • types: Added SetNull(), SetUnknown(), SetValue(), and SetValueMust() functions, which create immutable Set values (#502)
    • types: Added Set type Elements() method, which returns the []attr.Value of the known values or nil if null or unknown (#502)
    • types: Added StringNull(), StringUnknown(), and StringValue() functions, which create immutable String values (#502)
    • types: Added String type ValueString() method, which returns the string of the known value or "" if null or unknown (#502)

    0.14.0 (October 4, 2022)

    NOTES:

    • The Terraform Plugin Framework is now in beta. Feedback towards a general availability release in the future with compatibility promises is appreciated. (#500)

    BREAKING CHANGES:

    • attr: The Type interface now requires the ValueType method, which is used for enhancing error diagnostics from the framework (#497)

    ENHANCEMENTS:

    • internal/reflect: Added attr.Value type suggestions to error diagnostics (#497)

    0.13.0 (September 15, 2022)

    ... (truncated)

    Commits
    • 1ee1a4f Update CHANGELOG for 0.15.0
    • de565fa types: Introduce ListValueFrom, MapValueFrom, ObjectValueFrom, and SetValueFr...
    • 4b21cf8 types: Deprecate Attrs, AttrTypes, Elems, ElemTypes, Null, Unknown, and Value...
    • ce2519c build(deps): Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 (#519)
    • e1bf73e chore: Update Digital Team Files (#517)
    • 734074c chore(docs): rewrite internal redirects (#518)
    • 2be6665 [COMPLIANCE] Update MPL 2.0 LICENSE (#514)
    • 79303b8 website: Bold Note: in beta callouts (#507)
    • 56ca8c9 Update CHANGELOG for 0.14.0
    • 6f59b6f README updates (#503)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.14.0

    Bump github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.14.0

    Bumps github.com/hashicorp/terraform-plugin-framework from 0.11.1 to 0.14.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-framework's releases.

    v0.14.0

    NOTES:

    • The Terraform Plugin Framework is now in beta. Feedback towards a general availability release in the future with compatibility promises is appreciated. (#500)

    BREAKING CHANGES:

    • attr: The Type interface now requires the ValueType method, which is used for enhancing error diagnostics from the framework (#497)

    ENHANCEMENTS:

    • internal/reflect: Added attr.Value type suggestions to error diagnostics (#497)

    v0.13.0

    NOTES:

    • tfsdk: Schema definitions may now introduce single nested mode blocks, however this support is only intended for migrating terraform-plugin-sdk timeouts blocks. New implementations should prefer single nested attributes instead. (#477)

    BREAKING CHANGES:

    • datasource: The DataSource interface now requires the GetSchema and Metadata methods. (#478)
    • provider: The DataSourceType and ResourceType types have been removed. Use the GetSchema, Metadata, and optionally the Configure methods on datasource.DataSource and resource.Resource implementations instead. (#478)
    • provider: The Provider interface GetDataSources and GetResources methods have been removed. Use the DataSources and Resources methods instead. (#478)
    • resource: The Resource interface now requires the GetSchema and Metadata methods. (#478)

    ENHANCEMENTS:

    • tfsdk: Added single nested mode block support (#477)

    BUG FIXES:

    • internal/fwserver: Ensured nested block plan modifiers correctly set their request AttributeConfig, AttributePlan, and AttributeState values (#479)
    • types: Ensured List, Map, and Set types with xattr.TypeWithValidate elements run validation on those elements (#481)

    v0.12.0

    NOTES:

    • datasource: The DataSource type GetSchema and Metadata methods will be required in the next version. (#472)
    • provider: The DataSourceType type has been deprecated in preference of moving the GetSchema method to the datasource.DataSource type and optionally implementing the NewResource method logic to a new Configure method. The DataSourceType type will be removed in the next version. (#472)
    • provider: The Provider type GetDataSources method has been deprecated in preference of the DataSources method. All datasource.DataSource types must implement the Metadata method after migrating. Support for the GetDataSources method will be removed in the next version. (#472)
    • provider: The Provider type GetResources method has been deprecated in preference of the Resources method. All resource.Resource types must implement the Metadata method after migrating. Support for the GetResources method will be removed in the next version. (#472)
    • provider: The ResourceType type has been deprecated in preference of moving the GetSchema method to the resource.Resource type and optionally implementing the NewResource method logic to a new Configure method. The ResourceType type will be removed in the next version. (#472)
    • resource: The Resource type GetSchema and Metadata methods will be required in the next version. (#472)

    BREAKING CHANGES:

    • tfsdk: The Schema type AttributeAtPath() method signature has be updated with a path.Path parameter and diag.Diagnostics return. Use the AttributeAtTerraformPath() method instead if *tftypes.AttributePath or specific error handling is still necessary. (#450)
    • tfsdk: The previously deprecated Schema type AttributeType() method has been removed. Use the Type() method instead. (#450)
    • tfsdk: The previously deprecated Schema type AttributeTypeAtPath() method has been removed. Use the TypeAtPath() or TypeAtTerraformPath() method instead. (#450)
    • tfsdk: The previously deprecated Schema type TerraformType() method has been removed. Use Type().TerraformType() instead. (#450)

    ... (truncated)

    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.

    0.14.0 (October 4, 2022)

    NOTES:

    • The Terraform Plugin Framework is now in beta. Feedback towards a general availability release in the future with compatibility promises is appreciated. (#500)

    BREAKING CHANGES:

    • attr: The Type interface now requires the ValueType method, which is used for enhancing error diagnostics from the framework (#497)

    ENHANCEMENTS:

    • internal/reflect: Added attr.Value type suggestions to error diagnostics (#497)

    0.13.0 (September 15, 2022)

    NOTES:

    • tfsdk: Schema definitions may now introduce single nested mode blocks, however this support is only intended for migrating terraform-plugin-sdk timeouts blocks. New implementations should prefer single nested attributes instead. (#477)

    BREAKING CHANGES:

    • datasource: The DataSource interface now requires the GetSchema and Metadata methods. (#478)
    • provider: The DataSourceType and ResourceType types have been removed. Use the GetSchema, Metadata, and optionally the Configure methods on datasource.DataSource and resource.Resource implementations instead. (#478)
    • provider: The Provider interface GetDataSources and GetResources methods have been removed. Use the DataSources and Resources methods instead. (#478)
    • resource: The Resource interface now requires the GetSchema and Metadata methods. (#478)

    ENHANCEMENTS:

    • tfsdk: Added single nested mode block support (#477)

    BUG FIXES:

    • internal/fwserver: Ensured nested block plan modifiers correctly set their request AttributeConfig, AttributePlan, and AttributeState values (#479)
    • types: Ensured List, Map, and Set types with xattr.TypeWithValidate elements run validation on those elements (#481)

    0.12.0 (September 12, 2022)

    NOTES:

    • datasource: The DataSource type GetSchema and Metadata methods will be required in the next version. (#472)
    • provider: The DataSourceType type has been deprecated in preference of moving the GetSchema method to the datasource.DataSource type and optionally implementing the NewResource method logic to a new Configure method. The DataSourceType type will be removed in the next version. (#472)
    • provider: The Provider type GetDataSources method has been deprecated in preference of the DataSources method. All datasource.DataSource types must implement the Metadata method after migrating. Support for the GetDataSources method will be removed in the next version. (#472)
    • provider: The Provider type GetResources method has been deprecated in preference of the Resources method. All resource.Resource types must implement the Metadata method after migrating. Support for the GetResources method will be removed in the next version. (#472)
    • provider: The ResourceType type has been deprecated in preference of moving the GetSchema method to the resource.Resource type and optionally implementing the NewResource method logic to a new Configure method. The ResourceType type will be removed in the next version. (#472)
    • resource: The Resource type GetSchema and Metadata methods will be required in the next version. (#472)

    BREAKING CHANGES:

    • tfsdk: The Schema type AttributeAtPath() method signature has be updated with a path.Path parameter and diag.Diagnostics return. Use the AttributeAtTerraformPath() method instead if *tftypes.AttributePath or specific error handling is still necessary. (#450)

    ... (truncated)

    Commits
    • 56ca8c9 Update CHANGELOG for 0.14.0
    • 6f59b6f README updates (#503)
    • f5b7613 Update CHANGELOG for #500
    • afd88cb website: Update HashiCorp learn links for new collection (#506)
    • ef5183a website: Fix old code examples to tfsdk.ModifyResourcePlanRe(quest|sponse) (#...
    • 66e1a42 website: Further discourage usage of non-types package types with accessing s...
    • 5e9e49f website: Create concept-specific configuration validation pages (#501)
    • 254863a website: Add beta callout on all pages (#500)
    • be8ba7c build(deps): Bump leonsteinhaeuser/project-beta-automations (#499)
    • f24aeb9 attr: Add ValueType method to Type interface (#497)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump golang.org/x/tools from 0.1.12 to 0.4.0

    Bump golang.org/x/tools from 0.1.12 to 0.4.0

    Bumps golang.org/x/tools from 0.1.12 to 0.4.0.

    Release notes

    Sourced from golang.org/x/tools's releases.

    gopls/v0.4.0

    • Improved support for working with modules (@​ridersofrohan). A detailed walk-through of the new features can be found here. A quick summary:
      • Use the -modfile flag to suggest which modules should be added/removed from the go.mod file, rather than editing it automatically.
      • Suggest dependency upgrades in-editor and provide additional language features, such as formatting, for the go.mod file.
    • Inverse implementations (@​muirdm). "Go to implementations" on a concrete type will show the interfaces it implements.
    • Completion improvements (@​muirdm). Specifically, improved completion for keywords. Also, offer if err != nil { return err } as a completion item.
    • Jumping to definition on an import statement returns all files as definition locations (@​danishprakash).
    • Support for running go generate through the editor, via a code lens (@​marwan-at-work).
    • Command-line support for workspace symbols (@​daisuzu).

    Opt-in:

    • Code actions suggesting gofmt -s-style simplifications (@​ridersofrohan). To get these on-save, add the following setting:
    "[go]": {
    	"editor.codeActionsOnSave": {
    		"source.fixAll": true,
    	}
    }
    
    • Code actions suggesting fixes for type errors, such as missing return values (goreturns-style), undeclared names, unused parameters, and assignment statements that should be converted from := to = (@​ridersofrohan). Add the following to your gopls settings to opt-in to these analyzers. In the future, they will be on by default and high-confidence suggested fixes may be applied on save. See additional documentation on analyzers here.
    "gopls": {
    	"analyses": {
    		"fillreturns": true,
                    "undeclaredname": true,
                    "unusedparams": true,
                    "nonewvars": true,
    	}
    }
    
    • Further improvements in the support for multiple concurrent clients (@​findleyr). See #34111 for all details.

    For a complete list of the issues resolved, see the gopls/v0.4.0 milestone.

    gopls/v0.3.4

    gopls/v0.3.3

    • Support for workspace symbols. (@​daisuzu)
    • Various completion improvements, including fixes for completion in code that doesn't parse. (@​muirdm)
    • Limit diagnostic concurrency, preventing huge spikes in memory usage that some users encountered. (@​heschik)
    • Improved handling for URIs containing escaped characters. (@​heschik)
    • Module versions from "go list" in pkg.go.dev links. (@​ridersofrohan)

    ... (truncated)

    Commits
    • aee3994 gopls/internal/lsp/fake: in (*Workdir).RenameFile, fall back to read + write
    • fe60148 go.mod: update golang.org/x dependencies
    • c9ea9a7 gopls/internal/regtest: add a test for the case when the renaming package's p...
    • bf5db81 gopls/internal/lsp/cache: improve ad-hoc warning for nested modules
    • aa9f4b2 go/analysis: document that facts are gob encoded in one gulp
    • bdcd082 internal/gcimporter: skip tests earlier when 'go build' is not available
    • 2ad6325 gopls/internal/lsp/cache: expand ImportPath!=PackagePath comment
    • 52c7b88 gopls/internal/robustio: only define ERROR_SHARING_VIOLATION on Windows
    • 4f69bf3 gopls/internal/lsp/cache: narrow reloadOrphanedFiles to open files
    • 6002d6e gopls/internal/regtest/misc: test Implementations + vendor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Feature request: Tunnel configuration

    Feature request: Tunnel configuration

    thank you so much for maintaining this useful provider! Would it be possible to consider adding support for the configuration of tunnels?

    thank you

    crypto ipsec profile vpn200
     set transform-set ESP-AES-256-MODE-TRANSPORT 
     set ikev2-profile vpn300
    
    crypto ikev2 keyring vpn300
     peer vpn200
      address 1.2.3.4
      identity key-id vpn200
      pre-shared-key local 6 <redacted>
      pre-shared-key remote 6 <redacted>
    
    interface Tunnel3
     description tunnel3
     ip unnumbered Loopback0
     ip mtu 1380
     ip ospf network point-to-point
     ip ospf mtu-ignore
     ip ospf ttl-security hops 2
     ip ospf 10 area 0
     ip ospf cost 10000
     ipv6 enable
     ipv6 mtu 1300
     ipv6 nd ra suppress all
     mpls ip
     mpls mtu max
     ospfv3 network point-to-point
     ospfv3 cost 1000
     ospfv3 10 ipv6 area 0
     tunnel source GigabitEthernet0/2/0
     tunnel destination 1.2.3.4
     tunnel vrf V1
     tunnel protection ipsec profile vpn200
     crypto ipsec df-bit clear
    !
    
    interface Virtual-Template123 type tunnel
     description label
     ip unnumbered Loopback0
     no ip redirects
     no ip proxy-arp
     ip mtu 1380
     ip ospf network point-to-point
     ip ospf mtu-ignore
     ip ospf ttl-security hops 2
     ip ospf 10 area 0
     ipv6 unnumbered Loopback0
     ipv6 mtu 1300
     ipv6 nd ra suppress all
     no ipv6 redirects
     mpls ip
     mpls mtu max
     ospfv3 network point-to-point
     ospfv3 10 ipv6 area 0
     tunnel source GigabitEthernet0/2/0
     tunnel vrf V1
     tunnel protection ipsec profile test123
     crypto ipsec df-bit clear
    !
    
  • Iosxe faille to configure object ethernet

    Iosxe faille to configure object ethernet

    Hi i m very interested in your iosxe provider I use terraform v 0.1.12 with c9500-48y4c v 17.8.1

    some functions are well working. Ethernet config, port Channel don’t work at all Acl are created with misconfig

    how can i help you Regards 7810E565-FCF2-4FDC-9AD8-12DBCDC63BF9

  • AAA

    AAA

    Hello, I need your help again. Could you add resources for aaa?

    ! aaa new-model ! aaa authentication login default local aaa authentication login Tacacs-GROUP group Radius-GROUP local aaa authentication login VTY_authen group Tacacs-GROUP local aaa authentication dot1x default group Radius-GROUP aaa authorization exec default local aaa authorization exec VTY_author group Tacacs-GROUP local if-authenticated aaa authorization network default group Radius-GROUP aaa authorization network Tacacs-GROUP group Radius-GROUP aaa accounting update newinfo periodic 2880 aaa accounting identity default start-stop group Radius-GROUP aaa accounting exec default start-stop group Tacacs-GROUP !
    !
    aaa server radius dynamic-author client 10.10.15.12 server-key 123 client 10.10.15.13 server-key 123 !
    aaa session-id common

    ! radius-server attribute 6 on-for-login-auth radius-server attribute 6 support-multiple radius-server attribute 8 include-in-access-req radius-server attribute 25 access-request include radius-server attribute 31 mac format ietf upper-case radius-server attribute 31 send nas-port-detail mac-only radius-server dead-criteria time 5 tries 3 radius-server deadtime 3 ! radius server radius_10.10.15.12 address ipv4 10.10.15.12 auth-port 1812 acct-port 1813 timeout 4 retransmit 3 pac key 123 ! radius server radius_10.10.15.13 address ipv4 10.10.15.13 auth-port 1812 acct-port 1813 timeout 4 retransmit 3 pac key 123 ! tacacs server tacacs_10.10.15.12 address ipv4 10.10.15.12 key 123 timeout 4 tacacs server tacacs_10.10.15.13 address ipv4 10.10.15.13 key 123 timeout 4 ! ! aaa group server radius Radius-GROUP server name radius_10.10.15.12 server name radius_10.10.15.13 ip radius source-interface Loopback0 ! aaa group server tacacs+ Tacacs-GROUP server name tacacs_10.10.15.12 server name tacacs_10.10.15.13 ! ! cts authorization list dnac-Tacacs-GROUP

Terraform provider to help with various AWS automation tasks (mostly all that stuff we cannot accomplish with the official AWS terraform provider)
Terraform provider to help with various AWS automation tasks (mostly all that stuff we cannot accomplish with the official AWS terraform provider)

terraform-provider-awsutils Terraform provider for performing various tasks that cannot be performed with the official AWS Terraform Provider from Has

Dec 8, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

Oct 16, 2021
Terraform-provider-mailcow - Terraform provider for Mailcow

Terraform Provider Scaffolding (Terraform Plugin SDK) This template repository i

Dec 31, 2021
Terraform-provider-buddy - Terraform Buddy provider For golang

Terraform Provider for Buddy Documentation Requirements Terraform >= 1.0.11 Go >

Jan 5, 2022
Terraform-provider-vercel - Terraform Vercel Provider With Golang

Vercel Terraform Provider Website: https://www.terraform.io Documentation: https

Dec 14, 2022
Terraform-provider-age - Age Terraform Provider with golang

Age Terraform Provider This provider lets you generate an Age key pair. Using th

Feb 15, 2022
Terraform-in-Terraform: Execute Modules directly from the Terraform Registry

Terraform-In-Terraform Provider This provider allows running Terraform in Terraform. This might seem insane but there are some edge cases where it com

Dec 25, 2022
Terraform utility provider for constructing bash scripts that use data from a Terraform module

Terraform Bash Provider This is a Terraform utility provider which aims to robustly generate Bash scripts which refer to data that originated in Terra

Sep 6, 2022
Quick start repository for creating a Terraform provider using terraform-plugin-framework

Terraform Provider Scaffolding (Terraform Plugin Framework) This template repository is built on the Terraform Plugin Framework. The template reposito

Dec 15, 2022
Terraform Provider Scaffolding (Terraform Plugin SDK)

Terraform Provider Scaffolding (Terraform Plugin SDK) This template repository is built on the Terraform Plugin SDK. The template repository built on

Feb 8, 2022
OpenAPI Terraform Provider that configures itself at runtime with the resources exposed by the service provider (defined in a swagger file)
OpenAPI Terraform Provider that configures itself at runtime with the resources exposed by the service provider (defined in a swagger file)

Terraform Provider OpenAPI This terraform provider aims to minimise as much as possible the efforts needed from service providers to create and mainta

Dec 26, 2022
Hashicups-tf-provider - HashiCups Terraform Provider Tutorial

Terraform Provider HashiCups Run the following command to build the provider go

Jan 10, 2022
Terraform-grafana-dashboard - Grafana dashboard Terraform module

terraform-grafana-dashboard terraform-grafana-dashboard for project Requirements

May 2, 2022
Puccini-terraform - Enable TOSCA for Terraform using Puccini

(work in progress) TOSCA for Terraform Enable TOSCA for Terraform using Puccini.

Jun 27, 2022
Terraform-ncloud-docs - Terraform-ncloud-docs

terraform-ncloud-docs Overview This docs help to use terraform creation server C

Oct 2, 2022
Terraform-house - Golang Based terraform automation example using tf.json

Terraform House Manage your own terraform workflow using go language, with the b

Feb 17, 2022
LTF is a minimal, transparent Terraform wrapper. It makes Terraform projects easier to work with.

LTF Status: alpha LTF is a minimal, transparent Terraform wrapper. It makes Terraform projects easier to work with. In standard Terraform projects, th

Nov 19, 2022
Terraform Controller manages the life cycles of a terraform resource, allowing developers to self-serve dependencies in a controlled manner.
Terraform Controller manages the life cycles of a terraform resource, allowing developers to self-serve dependencies in a controlled manner.

TERRAFORM CONTROLLER Terraform Controller manages the life cycles of a terraform resource, allowing developers to self-serve dependencies in a control

Dec 15, 2022