[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-hashicorp-provider-resources":3,"mdc-q2w6f1-key":34,"related-repo-hashicorp-provider-resources":4446,"related-org-hashicorp-provider-resources":4534},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":29,"sourceUrl":32,"mdContent":33},"provider-resources","implement Terraform Provider resources and data sources","Implement Terraform Provider resources and data sources using the Plugin Framework. Use when developing CRUD operations, schema design, state management, and acceptance testing for provider resources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"hashicorp","HashiCorp","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fhashicorp.png",[12,16,19],{"name":13,"slug":14,"type":15},"Plugin Development","plugin-development","tag",{"name":17,"slug":18,"type":15},"Terraform","terraform",{"name":20,"slug":21,"type":15},"API Development","api-development",728,"https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fagent-skills","2026-04-06T18:25:10.56237",null,104,[28],"doormat-managed",{"repoUrl":23,"stars":22,"forks":26,"topics":30,"description":31},[28],"A collection of Agent skills and Claude Code plugins for HashiCorp products.","https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fterraform\u002Fprovider-development\u002Fskills\u002Fprovider-resources","---\nname: provider-resources\ndescription: Implement Terraform Provider resources and data sources using the Plugin Framework. Use when developing CRUD operations, schema design, state management, and acceptance testing for provider resources.\nmetadata:\n  copyright: Copyright IBM Corp. 2026\n  version: \"0.0.1\"\n---\n\n# Terraform Provider Resources Implementation Guide\n\n## Overview\n\nThis guide covers developing Terraform Provider resources and data sources using the Terraform Plugin Framework. Resources represent infrastructure objects that Terraform manages through Create, Read, Update, and Delete (CRUD) operations.\n\n**References:**\n- [Terraform Plugin Framework](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework)\n- [Resource Development](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework\u002Fresources)\n- [Data Source Development](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework\u002Fdata-sources)\n\n## File Structure\n\nResources follow the standard service package structure:\n\n```\ninternal\u002Fservice\u002F\u003Cservice>\u002F\n├── \u003Cresource_name>.go           # Resource implementation\n├── \u003Cresource_name>_test.go      # Acceptance tests\n├── \u003Cresource_name>_data_source.go    # Data source (if applicable)\n├── find.go                      # Finder functions\n├── exports_test.go              # Test exports\n└── service_package_gen.go       # Auto-generated registration\n```\n\nDocumentation structure:\n```\nwebsite\u002Fdocs\u002Fr\u002F\n└── \u003Cservice>_\u003Cresource_name>.html.markdown  # Resource documentation\n\nwebsite\u002Fdocs\u002Fd\u002F\n└── \u003Cservice>_\u003Cresource_name>.html.markdown  # Data source documentation\n```\n\n## Resource Structure\n\n### SDKv2 Resource Pattern\n\n```go\nfunc ResourceExample() *schema.Resource {\n    return &schema.Resource{\n        CreateWithoutTimeout: resourceExampleCreate,\n        ReadWithoutTimeout:   resourceExampleRead,\n        UpdateWithoutTimeout: resourceExampleUpdate,\n        DeleteWithoutTimeout: resourceExampleDelete,\n\n        Importer: &schema.ResourceImporter{\n            StateContext: schema.ImportStatePassthroughContext,\n        },\n\n        Schema: map[string]*schema.Schema{\n            \"name\": {\n                Type:         schema.TypeString,\n                Required:     true,\n                ForceNew:     true,\n                ValidateFunc: validation.StringLenBetween(1, 255),\n            },\n            \"arn\": {\n                Type:     schema.TypeString,\n                Computed: true,\n            },\n            \"tags\":     tftags.TagsSchema(),\n            \"tags_all\": tftags.TagsSchemaComputed(),\n        },\n\n        CustomizeDiff: verify.SetTagsDiff,\n    }\n}\n```\n\n### Plugin Framework Resource Pattern\n\n```go\ntype resourceExample struct {\n    framework.ResourceWithConfigure\n}\n\nfunc (r *resourceExample) Metadata(_ context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {\n    resp.TypeName = req.ProviderTypeName + \"_example\"\n}\n\nfunc (r *resourceExample) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) {\n    resp.Schema = schema.Schema{\n        Attributes: map[string]schema.Attribute{\n            \"id\": framework.IDAttribute(),\n            \"name\": schema.StringAttribute{\n                Required: true,\n                PlanModifiers: []planmodifier.String{\n                    stringplanmodifier.RequiresReplace(),\n                },\n                Validators: []validator.String{\n                    stringvalidator.LengthBetween(1, 255),\n                },\n            },\n            \"arn\": schema.StringAttribute{\n                Computed: true,\n                PlanModifiers: []planmodifier.String{\n                    stringplanmodifier.UseStateForUnknown(),\n                },\n            },\n        },\n    }\n}\n```\n\n## CRUD Operations\n\n### Create Operation\n\n```go\nfunc (r *resourceExample) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    input := &example.CreateExampleInput{\n        Name: data.Name.ValueStringPointer(),\n    }\n\n    output, err := conn.CreateExample(ctx, input)\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error creating Example\",\n            fmt.Sprintf(\"Could not create example %s: %s\", data.Name.ValueString(), err),\n        )\n        return\n    }\n\n    data.ID = types.StringPointerValue(output.Id)\n    data.ARN = types.StringPointerValue(output.Arn)\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)\n}\n```\n\n### Read Operation\n\n```go\nfunc (r *resourceExample) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.State.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    output, err := findExampleByID(ctx, conn, data.ID.ValueString())\n    if tfresource.NotFound(err) {\n        resp.Diagnostics.AddWarning(\n            \"Resource not found\",\n            fmt.Sprintf(\"Example %s not found, removing from state\", data.ID.ValueString()),\n        )\n        resp.State.RemoveResource(ctx)\n        return\n    }\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error reading Example\",\n            fmt.Sprintf(\"Could not read example %s: %s\", data.ID.ValueString(), err),\n        )\n        return\n    }\n\n    data.Name = types.StringPointerValue(output.Name)\n    data.ARN = types.StringPointerValue(output.Arn)\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)\n}\n```\n\n### Update Operation\n\n```go\nfunc (r *resourceExample) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {\n    var plan, state resourceExampleModel\n    resp.Diagnostics.Append(req.Plan.Get(ctx, &plan)...)\n    resp.Diagnostics.Append(req.State.Get(ctx, &state)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    if !plan.Description.Equal(state.Description) {\n        input := &example.UpdateExampleInput{\n            Id:          plan.ID.ValueStringPointer(),\n            Description: plan.Description.ValueStringPointer(),\n        }\n\n        _, err := conn.UpdateExample(ctx, input)\n        if err != nil {\n            resp.Diagnostics.AddError(\n                \"Error updating Example\",\n                fmt.Sprintf(\"Could not update example %s: %s\", plan.ID.ValueString(), err),\n            )\n            return\n        }\n    }\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &plan)...)\n}\n```\n\n### Delete Operation\n\n```go\nfunc (r *resourceExample) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.State.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    _, err := conn.DeleteExample(ctx, &example.DeleteExampleInput{\n        Id: data.ID.ValueStringPointer(),\n    })\n\n    if tfresource.NotFound(err) {\n        return\n    }\n\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error deleting Example\",\n            fmt.Sprintf(\"Could not delete example %s: %s\", data.ID.ValueString(), err),\n        )\n        return\n    }\n}\n```\n\n## Schema Design\n\n### Attribute Types\n\n| Terraform Type | Framework Type | Use Case |\n|----------------|----------------|----------|\n| `string` | `schema.StringAttribute` | Names, ARNs, IDs |\n| `number` | `schema.Int64Attribute`, `schema.Float64Attribute` | Counts, sizes |\n| `bool` | `schema.BoolAttribute` | Feature flags |\n| `list` | `schema.ListAttribute` | Ordered collections |\n| `set` | `schema.SetAttribute` | Unordered unique items |\n| `map` | `schema.MapAttribute` | Key-value pairs |\n| `object` | `schema.SingleNestedAttribute` | Complex nested config |\n\n### Plan Modifiers\n\n```go\n\u002F\u002F Force replacement when value changes\nstringplanmodifier.RequiresReplace()\n\n\u002F\u002F Preserve unknown value during plan\nstringplanmodifier.UseStateForUnknown()\n\n\u002F\u002F Custom plan modifier\nstringplanmodifier.RequiresReplaceIf(\n    func(ctx context.Context, req planmodifier.StringRequest, resp *stringplanmodifier.RequiresReplaceIfFuncResponse) {\n        \u002F\u002F Custom logic\n    },\n    \"description\",\n    \"markdown description\",\n)\n```\n\n### Validators\n\n```go\n\u002F\u002F String validators\nstringvalidator.LengthBetween(1, 255)\nstringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9-]+$`), \"must be lowercase alphanumeric with hyphens\")\nstringvalidator.OneOf(\"option1\", \"option2\", \"option3\")\n\n\u002F\u002F Int64 validators\nint64validator.Between(1, 100)\nint64validator.AtLeast(1)\nint64validator.AtMost(1000)\n\n\u002F\u002F List validators\nlistvalidator.SizeAtLeast(1)\nlistvalidator.SizeAtMost(10)\n```\n\n### Sensitive Attributes\n\n```go\n\"password\": schema.StringAttribute{\n    Required:  true,\n    Sensitive: true,\n    Validators: []validator.String{\n        stringvalidator.LengthAtLeast(8),\n    },\n}\n```\n\n## State Management\n\n### Handling Resource Not Found\n\n```go\nfunc findExampleByID(ctx context.Context, conn *example.Client, id string) (*example.Example, error) {\n    input := &example.GetExampleInput{\n        Id: &id,\n    }\n\n    output, err := conn.GetExample(ctx, input)\n    if err != nil {\n        var notFound *types.ResourceNotFoundException\n        if errors.As(err, &notFound) {\n            return nil, &retry.NotFoundError{\n                LastError:   err,\n                LastRequest: input,\n            }\n        }\n        return nil, err\n    }\n\n    if output == nil || output.Example == nil {\n        return nil, tfresource.NewEmptyResultError(input)\n    }\n\n    return output.Example, nil\n}\n```\n\n### Waiting for Resource States\n\n```go\nfunc waitExampleCreated(ctx context.Context, conn *example.Client, id string, timeout time.Duration) (*example.Example, error) {\n    stateConf := &retry.StateChangeConf{\n        Pending: []string{\"CREATING\", \"PENDING\"},\n        Target:  []string{\"ACTIVE\", \"AVAILABLE\"},\n        Refresh: statusExample(ctx, conn, id),\n        Timeout: timeout,\n    }\n\n    outputRaw, err := stateConf.WaitForStateContext(ctx)\n    if output, ok := outputRaw.(*example.Example); ok {\n        return output, err\n    }\n\n    return nil, err\n}\n\nfunc statusExample(ctx context.Context, conn *example.Client, id string) retry.StateRefreshFunc {\n    return func() (interface{}, string, error) {\n        output, err := findExampleByID(ctx, conn, id)\n        if tfresource.NotFound(err) {\n            return nil, \"\", nil\n        }\n        if err != nil {\n            return nil, \"\", err\n        }\n        return output, string(output.Status), nil\n    }\n}\n```\n\n## Testing\n\n### Basic Acceptance Test\n\n```go\nfunc TestAccExampleResource_basic(t *testing.T) {\n    ctx := acctest.Context(t)\n    rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)\n    resourceName := \"provider_example.test\"\n\n    resource.ParallelTest(t, resource.TestCase{\n        PreCheck:                 func() { acctest.PreCheck(ctx, t) },\n        ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,\n        CheckDestroy:             testAccCheckExampleDestroy(ctx),\n        Steps: []resource.TestStep{\n            {\n                Config: testAccExampleConfig_basic(rName),\n                Check: resource.ComposeTestCheckFunc(\n                    testAccCheckExampleExists(ctx, resourceName),\n                    resource.TestCheckResourceAttr(resourceName, \"name\", rName),\n                    resource.TestCheckResourceAttrSet(resourceName, \"arn\"),\n                ),\n            },\n            {\n                ResourceName:      resourceName,\n                ImportState:       true,\n                ImportStateVerify: true,\n            },\n        },\n    })\n}\n```\n\n### Disappears Test\n\n```go\nfunc TestAccExampleResource_disappears(t *testing.T) {\n    ctx := acctest.Context(t)\n    rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)\n    resourceName := \"provider_example.test\"\n\n    resource.ParallelTest(t, resource.TestCase{\n        PreCheck:                 func() { acctest.PreCheck(ctx, t) },\n        ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,\n        CheckDestroy:             testAccCheckExampleDestroy(ctx),\n        Steps: []resource.TestStep{\n            {\n                Config: testAccExampleConfig_basic(rName),\n                Check: resource.ComposeTestCheckFunc(\n                    testAccCheckExampleExists(ctx, resourceName),\n                    acctest.CheckResourceDisappears(ctx, acctest.Provider, ResourceExample(), resourceName),\n                ),\n                ExpectNonEmptyPlan: true,\n            },\n        },\n    })\n}\n```\n\n### Test Helper Functions\n\n```go\nfunc testAccCheckExampleExists(ctx context.Context, name string) resource.TestCheckFunc {\n    return func(s *terraform.State) error {\n        rs, ok := s.RootModule().Resources[name]\n        if !ok {\n            return fmt.Errorf(\"Not found: %s\", name)\n        }\n\n        conn := acctest.Provider.Meta().(*conns.Client).ExampleClient(ctx)\n        _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n\n        return err\n    }\n}\n\nfunc testAccCheckExampleDestroy(ctx context.Context) resource.TestCheckFunc {\n    return func(s *terraform.State) error {\n        conn := acctest.Provider.Meta().(*conns.Client).ExampleClient(ctx)\n\n        for _, rs := range s.RootModule().Resources {\n            if rs.Type != \"provider_example\" {\n                continue\n            }\n\n            _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n            if tfresource.NotFound(err) {\n                continue\n            }\n            if err != nil {\n                return err\n            }\n\n            return fmt.Errorf(\"Example %s still exists\", rs.Primary.ID)\n        }\n\n        return nil\n    }\n}\n```\n\n### Running Tests\n\n```bash\n# Compile tests\ngo test -c -o \u002Fdev\u002Fnull .\u002Finternal\u002Fservice\u002F\u003Cservice>\n\n# Run acceptance tests\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -run TestAccExample -v -timeout 60m\n\n# Run with specific provider version\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -run TestAccExample -v\n\n# Run sweeper to clean up\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -sweep=\u003Cregion> -v\n```\n\n## Error Handling\n\n### Common Error Patterns\n\n```go\n\u002F\u002F Handle specific API errors\nvar notFound *types.ResourceNotFoundException\nif errors.As(err, &notFound) {\n    \u002F\u002F Resource doesn't exist\n}\n\nvar conflict *types.ConflictException\nif errors.As(err, &conflict) {\n    \u002F\u002F Resource state conflict\n}\n\nvar throttle *types.ThrottlingException\nif errors.As(err, &throttle) {\n    \u002F\u002F Rate limited - SDK handles retry\n}\n```\n\n### Diagnostics\n\n```go\n\u002F\u002F Add error\nresp.Diagnostics.AddError(\n    \"Error creating resource\",\n    fmt.Sprintf(\"Could not create resource: %s\", err),\n)\n\n\u002F\u002F Add warning\nresp.Diagnostics.AddWarning(\n    \"Resource modified outside Terraform\",\n    \"Resource was modified outside of Terraform, state may be inconsistent\",\n)\n\n\u002F\u002F Add attribute error\nresp.Diagnostics.AddAttributeError(\n    path.Root(\"name\"),\n    \"Invalid name\",\n    \"Name must be lowercase alphanumeric\",\n)\n```\n\n## Documentation Standards\n\n### Resource Documentation\n\n```markdown\n---\nsubcategory: \"Service Name\"\nlayout: \"provider\"\npage_title: \"Provider: provider_example\"\ndescription: |-\n  Manages an Example resource.\n---\n\n# Resource: provider_example\n\nManages an Example resource.\n\n## Example Usage\n\n### Basic Usage\n\n\\```hcl\nresource \"provider_example\" \"example\" {\n  name = \"my-example\"\n}\n\\```\n\n## Argument Reference\n\n* `name` - (Required) Name of the example.\n* `description` - (Optional) Description of the example.\n\n## Attribute Reference\n\n* `id` - ID of the example.\n* `arn` - ARN of the example.\n\n## Import\n\nExample can be imported using the ID:\n\n\\```\n$ terraform import provider_example.example example-id-12345\n\\```\n```\n\n## Pre-Submission Checklist\n\n- [ ] Code compiles without errors\n- [ ] All tests pass locally\n- [ ] Resource has all CRUD operations implemented\n- [ ] Import is implemented and tested\n- [ ] Disappears test is included\n- [ ] Documentation is complete with examples\n- [ ] Error messages are clear and actionable\n- [ ] Sensitive attributes are marked\n- [ ] Plan modifiers are appropriate\n- [ ] Validators cover edge cases\n\n## References\n\n- [Terraform Plugin Framework](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework)\n- [Terraform Plugin SDKv2](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fsdkv2)\n- [Acceptance Testing](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Ftesting\u002Facceptance-tests)\n- [terraform-plugin-framework GitHub](https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fterraform-plugin-framework)\n",{"data":35,"body":39},{"name":4,"description":6,"metadata":36},{"copyright":37,"version":38},"Copyright IBM Corp. 2026","0.0.1",{"type":40,"children":41},"root",[42,51,58,64,73,110,116,121,134,139,148,154,161,430,436,671,677,683,896,902,1138,1144,1364,1370,1558,1564,1570,1793,1799,1916,1922,2031,2037,2098,2104,2110,2292,2298,2518,2524,2530,2738,2744,2901,2907,3197,3203,3516,3522,3528,3650,3656,3802,3808,3814,4289,4295,4393,4399,4440],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"terraform-provider-resources-implementation-guide",[48],{"type":49,"value":50},"text","Terraform Provider Resources Implementation Guide",{"type":43,"tag":52,"props":53,"children":55},"h2",{"id":54},"overview",[56],{"type":49,"value":57},"Overview",{"type":43,"tag":59,"props":60,"children":61},"p",{},[62],{"type":49,"value":63},"This guide covers developing Terraform Provider resources and data sources using the Terraform Plugin Framework. Resources represent infrastructure objects that Terraform manages through Create, Read, Update, and Delete (CRUD) operations.",{"type":43,"tag":59,"props":65,"children":66},{},[67],{"type":43,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":49,"value":72},"References:",{"type":43,"tag":74,"props":75,"children":76},"ul",{},[77,90,100],{"type":43,"tag":78,"props":79,"children":80},"li",{},[81],{"type":43,"tag":82,"props":83,"children":87},"a",{"href":84,"rel":85},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework",[86],"nofollow",[88],{"type":49,"value":89},"Terraform Plugin Framework",{"type":43,"tag":78,"props":91,"children":92},{},[93],{"type":43,"tag":82,"props":94,"children":97},{"href":95,"rel":96},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework\u002Fresources",[86],[98],{"type":49,"value":99},"Resource Development",{"type":43,"tag":78,"props":101,"children":102},{},[103],{"type":43,"tag":82,"props":104,"children":107},{"href":105,"rel":106},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fframework\u002Fdata-sources",[86],[108],{"type":49,"value":109},"Data Source Development",{"type":43,"tag":52,"props":111,"children":113},{"id":112},"file-structure",[114],{"type":49,"value":115},"File Structure",{"type":43,"tag":59,"props":117,"children":118},{},[119],{"type":49,"value":120},"Resources follow the standard service package structure:",{"type":43,"tag":122,"props":123,"children":127},"pre",{"className":124,"code":126,"language":49},[125],"language-text","internal\u002Fservice\u002F\u003Cservice>\u002F\n├── \u003Cresource_name>.go           # Resource implementation\n├── \u003Cresource_name>_test.go      # Acceptance tests\n├── \u003Cresource_name>_data_source.go    # Data source (if applicable)\n├── find.go                      # Finder functions\n├── exports_test.go              # Test exports\n└── service_package_gen.go       # Auto-generated registration\n",[128],{"type":43,"tag":129,"props":130,"children":132},"code",{"__ignoreMap":131},"",[133],{"type":49,"value":126},{"type":43,"tag":59,"props":135,"children":136},{},[137],{"type":49,"value":138},"Documentation structure:",{"type":43,"tag":122,"props":140,"children":143},{"className":141,"code":142,"language":49},[125],"website\u002Fdocs\u002Fr\u002F\n└── \u003Cservice>_\u003Cresource_name>.html.markdown  # Resource documentation\n\nwebsite\u002Fdocs\u002Fd\u002F\n└── \u003Cservice>_\u003Cresource_name>.html.markdown  # Data source documentation\n",[144],{"type":43,"tag":129,"props":145,"children":146},{"__ignoreMap":131},[147],{"type":49,"value":142},{"type":43,"tag":52,"props":149,"children":151},{"id":150},"resource-structure",[152],{"type":49,"value":153},"Resource Structure",{"type":43,"tag":155,"props":156,"children":158},"h3",{"id":157},"sdkv2-resource-pattern",[159],{"type":49,"value":160},"SDKv2 Resource Pattern",{"type":43,"tag":122,"props":162,"children":166},{"className":163,"code":164,"language":165,"meta":131,"style":131},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","func ResourceExample() *schema.Resource {\n    return &schema.Resource{\n        CreateWithoutTimeout: resourceExampleCreate,\n        ReadWithoutTimeout:   resourceExampleRead,\n        UpdateWithoutTimeout: resourceExampleUpdate,\n        DeleteWithoutTimeout: resourceExampleDelete,\n\n        Importer: &schema.ResourceImporter{\n            StateContext: schema.ImportStatePassthroughContext,\n        },\n\n        Schema: map[string]*schema.Schema{\n            \"name\": {\n                Type:         schema.TypeString,\n                Required:     true,\n                ForceNew:     true,\n                ValidateFunc: validation.StringLenBetween(1, 255),\n            },\n            \"arn\": {\n                Type:     schema.TypeString,\n                Computed: true,\n            },\n            \"tags\":     tftags.TagsSchema(),\n            \"tags_all\": tftags.TagsSchemaComputed(),\n        },\n\n        CustomizeDiff: verify.SetTagsDiff,\n    }\n}\n","go",[167],{"type":43,"tag":129,"props":168,"children":169},{"__ignoreMap":131},[170,181,190,199,208,217,226,236,245,254,263,271,280,289,298,307,316,325,334,343,352,361,369,378,387,395,403,412,421],{"type":43,"tag":171,"props":172,"children":175},"span",{"class":173,"line":174},"line",1,[176],{"type":43,"tag":171,"props":177,"children":178},{},[179],{"type":49,"value":180},"func ResourceExample() *schema.Resource {\n",{"type":43,"tag":171,"props":182,"children":184},{"class":173,"line":183},2,[185],{"type":43,"tag":171,"props":186,"children":187},{},[188],{"type":49,"value":189},"    return &schema.Resource{\n",{"type":43,"tag":171,"props":191,"children":193},{"class":173,"line":192},3,[194],{"type":43,"tag":171,"props":195,"children":196},{},[197],{"type":49,"value":198},"        CreateWithoutTimeout: resourceExampleCreate,\n",{"type":43,"tag":171,"props":200,"children":202},{"class":173,"line":201},4,[203],{"type":43,"tag":171,"props":204,"children":205},{},[206],{"type":49,"value":207},"        ReadWithoutTimeout:   resourceExampleRead,\n",{"type":43,"tag":171,"props":209,"children":211},{"class":173,"line":210},5,[212],{"type":43,"tag":171,"props":213,"children":214},{},[215],{"type":49,"value":216},"        UpdateWithoutTimeout: resourceExampleUpdate,\n",{"type":43,"tag":171,"props":218,"children":220},{"class":173,"line":219},6,[221],{"type":43,"tag":171,"props":222,"children":223},{},[224],{"type":49,"value":225},"        DeleteWithoutTimeout: resourceExampleDelete,\n",{"type":43,"tag":171,"props":227,"children":229},{"class":173,"line":228},7,[230],{"type":43,"tag":171,"props":231,"children":233},{"emptyLinePlaceholder":232},true,[234],{"type":49,"value":235},"\n",{"type":43,"tag":171,"props":237,"children":239},{"class":173,"line":238},8,[240],{"type":43,"tag":171,"props":241,"children":242},{},[243],{"type":49,"value":244},"        Importer: &schema.ResourceImporter{\n",{"type":43,"tag":171,"props":246,"children":248},{"class":173,"line":247},9,[249],{"type":43,"tag":171,"props":250,"children":251},{},[252],{"type":49,"value":253},"            StateContext: schema.ImportStatePassthroughContext,\n",{"type":43,"tag":171,"props":255,"children":257},{"class":173,"line":256},10,[258],{"type":43,"tag":171,"props":259,"children":260},{},[261],{"type":49,"value":262},"        },\n",{"type":43,"tag":171,"props":264,"children":266},{"class":173,"line":265},11,[267],{"type":43,"tag":171,"props":268,"children":269},{"emptyLinePlaceholder":232},[270],{"type":49,"value":235},{"type":43,"tag":171,"props":272,"children":274},{"class":173,"line":273},12,[275],{"type":43,"tag":171,"props":276,"children":277},{},[278],{"type":49,"value":279},"        Schema: map[string]*schema.Schema{\n",{"type":43,"tag":171,"props":281,"children":283},{"class":173,"line":282},13,[284],{"type":43,"tag":171,"props":285,"children":286},{},[287],{"type":49,"value":288},"            \"name\": {\n",{"type":43,"tag":171,"props":290,"children":292},{"class":173,"line":291},14,[293],{"type":43,"tag":171,"props":294,"children":295},{},[296],{"type":49,"value":297},"                Type:         schema.TypeString,\n",{"type":43,"tag":171,"props":299,"children":301},{"class":173,"line":300},15,[302],{"type":43,"tag":171,"props":303,"children":304},{},[305],{"type":49,"value":306},"                Required:     true,\n",{"type":43,"tag":171,"props":308,"children":310},{"class":173,"line":309},16,[311],{"type":43,"tag":171,"props":312,"children":313},{},[314],{"type":49,"value":315},"                ForceNew:     true,\n",{"type":43,"tag":171,"props":317,"children":319},{"class":173,"line":318},17,[320],{"type":43,"tag":171,"props":321,"children":322},{},[323],{"type":49,"value":324},"                ValidateFunc: validation.StringLenBetween(1, 255),\n",{"type":43,"tag":171,"props":326,"children":328},{"class":173,"line":327},18,[329],{"type":43,"tag":171,"props":330,"children":331},{},[332],{"type":49,"value":333},"            },\n",{"type":43,"tag":171,"props":335,"children":337},{"class":173,"line":336},19,[338],{"type":43,"tag":171,"props":339,"children":340},{},[341],{"type":49,"value":342},"            \"arn\": {\n",{"type":43,"tag":171,"props":344,"children":346},{"class":173,"line":345},20,[347],{"type":43,"tag":171,"props":348,"children":349},{},[350],{"type":49,"value":351},"                Type:     schema.TypeString,\n",{"type":43,"tag":171,"props":353,"children":355},{"class":173,"line":354},21,[356],{"type":43,"tag":171,"props":357,"children":358},{},[359],{"type":49,"value":360},"                Computed: true,\n",{"type":43,"tag":171,"props":362,"children":364},{"class":173,"line":363},22,[365],{"type":43,"tag":171,"props":366,"children":367},{},[368],{"type":49,"value":333},{"type":43,"tag":171,"props":370,"children":372},{"class":173,"line":371},23,[373],{"type":43,"tag":171,"props":374,"children":375},{},[376],{"type":49,"value":377},"            \"tags\":     tftags.TagsSchema(),\n",{"type":43,"tag":171,"props":379,"children":381},{"class":173,"line":380},24,[382],{"type":43,"tag":171,"props":383,"children":384},{},[385],{"type":49,"value":386},"            \"tags_all\": tftags.TagsSchemaComputed(),\n",{"type":43,"tag":171,"props":388,"children":390},{"class":173,"line":389},25,[391],{"type":43,"tag":171,"props":392,"children":393},{},[394],{"type":49,"value":262},{"type":43,"tag":171,"props":396,"children":398},{"class":173,"line":397},26,[399],{"type":43,"tag":171,"props":400,"children":401},{"emptyLinePlaceholder":232},[402],{"type":49,"value":235},{"type":43,"tag":171,"props":404,"children":406},{"class":173,"line":405},27,[407],{"type":43,"tag":171,"props":408,"children":409},{},[410],{"type":49,"value":411},"        CustomizeDiff: verify.SetTagsDiff,\n",{"type":43,"tag":171,"props":413,"children":415},{"class":173,"line":414},28,[416],{"type":43,"tag":171,"props":417,"children":418},{},[419],{"type":49,"value":420},"    }\n",{"type":43,"tag":171,"props":422,"children":424},{"class":173,"line":423},29,[425],{"type":43,"tag":171,"props":426,"children":427},{},[428],{"type":49,"value":429},"}\n",{"type":43,"tag":155,"props":431,"children":433},{"id":432},"plugin-framework-resource-pattern",[434],{"type":49,"value":435},"Plugin Framework Resource Pattern",{"type":43,"tag":122,"props":437,"children":439},{"className":163,"code":438,"language":165,"meta":131,"style":131},"type resourceExample struct {\n    framework.ResourceWithConfigure\n}\n\nfunc (r *resourceExample) Metadata(_ context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {\n    resp.TypeName = req.ProviderTypeName + \"_example\"\n}\n\nfunc (r *resourceExample) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) {\n    resp.Schema = schema.Schema{\n        Attributes: map[string]schema.Attribute{\n            \"id\": framework.IDAttribute(),\n            \"name\": schema.StringAttribute{\n                Required: true,\n                PlanModifiers: []planmodifier.String{\n                    stringplanmodifier.RequiresReplace(),\n                },\n                Validators: []validator.String{\n                    stringvalidator.LengthBetween(1, 255),\n                },\n            },\n            \"arn\": schema.StringAttribute{\n                Computed: true,\n                PlanModifiers: []planmodifier.String{\n                    stringplanmodifier.UseStateForUnknown(),\n                },\n            },\n        },\n    }\n}\n",[440],{"type":43,"tag":129,"props":441,"children":442},{"__ignoreMap":131},[443,451,459,466,473,481,489,496,503,511,519,527,535,543,551,559,567,575,583,591,598,605,613,620,627,635,642,649,656,663],{"type":43,"tag":171,"props":444,"children":445},{"class":173,"line":174},[446],{"type":43,"tag":171,"props":447,"children":448},{},[449],{"type":49,"value":450},"type resourceExample struct {\n",{"type":43,"tag":171,"props":452,"children":453},{"class":173,"line":183},[454],{"type":43,"tag":171,"props":455,"children":456},{},[457],{"type":49,"value":458},"    framework.ResourceWithConfigure\n",{"type":43,"tag":171,"props":460,"children":461},{"class":173,"line":192},[462],{"type":43,"tag":171,"props":463,"children":464},{},[465],{"type":49,"value":429},{"type":43,"tag":171,"props":467,"children":468},{"class":173,"line":201},[469],{"type":43,"tag":171,"props":470,"children":471},{"emptyLinePlaceholder":232},[472],{"type":49,"value":235},{"type":43,"tag":171,"props":474,"children":475},{"class":173,"line":210},[476],{"type":43,"tag":171,"props":477,"children":478},{},[479],{"type":49,"value":480},"func (r *resourceExample) Metadata(_ context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {\n",{"type":43,"tag":171,"props":482,"children":483},{"class":173,"line":219},[484],{"type":43,"tag":171,"props":485,"children":486},{},[487],{"type":49,"value":488},"    resp.TypeName = req.ProviderTypeName + \"_example\"\n",{"type":43,"tag":171,"props":490,"children":491},{"class":173,"line":228},[492],{"type":43,"tag":171,"props":493,"children":494},{},[495],{"type":49,"value":429},{"type":43,"tag":171,"props":497,"children":498},{"class":173,"line":238},[499],{"type":43,"tag":171,"props":500,"children":501},{"emptyLinePlaceholder":232},[502],{"type":49,"value":235},{"type":43,"tag":171,"props":504,"children":505},{"class":173,"line":247},[506],{"type":43,"tag":171,"props":507,"children":508},{},[509],{"type":49,"value":510},"func (r *resourceExample) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) {\n",{"type":43,"tag":171,"props":512,"children":513},{"class":173,"line":256},[514],{"type":43,"tag":171,"props":515,"children":516},{},[517],{"type":49,"value":518},"    resp.Schema = schema.Schema{\n",{"type":43,"tag":171,"props":520,"children":521},{"class":173,"line":265},[522],{"type":43,"tag":171,"props":523,"children":524},{},[525],{"type":49,"value":526},"        Attributes: map[string]schema.Attribute{\n",{"type":43,"tag":171,"props":528,"children":529},{"class":173,"line":273},[530],{"type":43,"tag":171,"props":531,"children":532},{},[533],{"type":49,"value":534},"            \"id\": framework.IDAttribute(),\n",{"type":43,"tag":171,"props":536,"children":537},{"class":173,"line":282},[538],{"type":43,"tag":171,"props":539,"children":540},{},[541],{"type":49,"value":542},"            \"name\": schema.StringAttribute{\n",{"type":43,"tag":171,"props":544,"children":545},{"class":173,"line":291},[546],{"type":43,"tag":171,"props":547,"children":548},{},[549],{"type":49,"value":550},"                Required: true,\n",{"type":43,"tag":171,"props":552,"children":553},{"class":173,"line":300},[554],{"type":43,"tag":171,"props":555,"children":556},{},[557],{"type":49,"value":558},"                PlanModifiers: []planmodifier.String{\n",{"type":43,"tag":171,"props":560,"children":561},{"class":173,"line":309},[562],{"type":43,"tag":171,"props":563,"children":564},{},[565],{"type":49,"value":566},"                    stringplanmodifier.RequiresReplace(),\n",{"type":43,"tag":171,"props":568,"children":569},{"class":173,"line":318},[570],{"type":43,"tag":171,"props":571,"children":572},{},[573],{"type":49,"value":574},"                },\n",{"type":43,"tag":171,"props":576,"children":577},{"class":173,"line":327},[578],{"type":43,"tag":171,"props":579,"children":580},{},[581],{"type":49,"value":582},"                Validators: []validator.String{\n",{"type":43,"tag":171,"props":584,"children":585},{"class":173,"line":336},[586],{"type":43,"tag":171,"props":587,"children":588},{},[589],{"type":49,"value":590},"                    stringvalidator.LengthBetween(1, 255),\n",{"type":43,"tag":171,"props":592,"children":593},{"class":173,"line":345},[594],{"type":43,"tag":171,"props":595,"children":596},{},[597],{"type":49,"value":574},{"type":43,"tag":171,"props":599,"children":600},{"class":173,"line":354},[601],{"type":43,"tag":171,"props":602,"children":603},{},[604],{"type":49,"value":333},{"type":43,"tag":171,"props":606,"children":607},{"class":173,"line":363},[608],{"type":43,"tag":171,"props":609,"children":610},{},[611],{"type":49,"value":612},"            \"arn\": schema.StringAttribute{\n",{"type":43,"tag":171,"props":614,"children":615},{"class":173,"line":371},[616],{"type":43,"tag":171,"props":617,"children":618},{},[619],{"type":49,"value":360},{"type":43,"tag":171,"props":621,"children":622},{"class":173,"line":380},[623],{"type":43,"tag":171,"props":624,"children":625},{},[626],{"type":49,"value":558},{"type":43,"tag":171,"props":628,"children":629},{"class":173,"line":389},[630],{"type":43,"tag":171,"props":631,"children":632},{},[633],{"type":49,"value":634},"                    stringplanmodifier.UseStateForUnknown(),\n",{"type":43,"tag":171,"props":636,"children":637},{"class":173,"line":397},[638],{"type":43,"tag":171,"props":639,"children":640},{},[641],{"type":49,"value":574},{"type":43,"tag":171,"props":643,"children":644},{"class":173,"line":405},[645],{"type":43,"tag":171,"props":646,"children":647},{},[648],{"type":49,"value":333},{"type":43,"tag":171,"props":650,"children":651},{"class":173,"line":414},[652],{"type":43,"tag":171,"props":653,"children":654},{},[655],{"type":49,"value":262},{"type":43,"tag":171,"props":657,"children":658},{"class":173,"line":423},[659],{"type":43,"tag":171,"props":660,"children":661},{},[662],{"type":49,"value":420},{"type":43,"tag":171,"props":664,"children":666},{"class":173,"line":665},30,[667],{"type":43,"tag":171,"props":668,"children":669},{},[670],{"type":49,"value":429},{"type":43,"tag":52,"props":672,"children":674},{"id":673},"crud-operations",[675],{"type":49,"value":676},"CRUD Operations",{"type":43,"tag":155,"props":678,"children":680},{"id":679},"create-operation",[681],{"type":49,"value":682},"Create Operation",{"type":43,"tag":122,"props":684,"children":686},{"className":163,"code":685,"language":165,"meta":131,"style":131},"func (r *resourceExample) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    input := &example.CreateExampleInput{\n        Name: data.Name.ValueStringPointer(),\n    }\n\n    output, err := conn.CreateExample(ctx, input)\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error creating Example\",\n            fmt.Sprintf(\"Could not create example %s: %s\", data.Name.ValueString(), err),\n        )\n        return\n    }\n\n    data.ID = types.StringPointerValue(output.Id)\n    data.ARN = types.StringPointerValue(output.Arn)\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)\n}\n",[687],{"type":43,"tag":129,"props":688,"children":689},{"__ignoreMap":131},[690,698,706,714,722,730,737,744,752,759,767,775,782,789,797,805,813,821,829,837,844,851,858,866,874,881,889],{"type":43,"tag":171,"props":691,"children":692},{"class":173,"line":174},[693],{"type":43,"tag":171,"props":694,"children":695},{},[696],{"type":49,"value":697},"func (r *resourceExample) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {\n",{"type":43,"tag":171,"props":699,"children":700},{"class":173,"line":183},[701],{"type":43,"tag":171,"props":702,"children":703},{},[704],{"type":49,"value":705},"    var data resourceExampleModel\n",{"type":43,"tag":171,"props":707,"children":708},{"class":173,"line":192},[709],{"type":43,"tag":171,"props":710,"children":711},{},[712],{"type":49,"value":713},"    resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...)\n",{"type":43,"tag":171,"props":715,"children":716},{"class":173,"line":201},[717],{"type":43,"tag":171,"props":718,"children":719},{},[720],{"type":49,"value":721},"    if resp.Diagnostics.HasError() {\n",{"type":43,"tag":171,"props":723,"children":724},{"class":173,"line":210},[725],{"type":43,"tag":171,"props":726,"children":727},{},[728],{"type":49,"value":729},"        return\n",{"type":43,"tag":171,"props":731,"children":732},{"class":173,"line":219},[733],{"type":43,"tag":171,"props":734,"children":735},{},[736],{"type":49,"value":420},{"type":43,"tag":171,"props":738,"children":739},{"class":173,"line":228},[740],{"type":43,"tag":171,"props":741,"children":742},{"emptyLinePlaceholder":232},[743],{"type":49,"value":235},{"type":43,"tag":171,"props":745,"children":746},{"class":173,"line":238},[747],{"type":43,"tag":171,"props":748,"children":749},{},[750],{"type":49,"value":751},"    conn := r.Meta().ExampleClient(ctx)\n",{"type":43,"tag":171,"props":753,"children":754},{"class":173,"line":247},[755],{"type":43,"tag":171,"props":756,"children":757},{"emptyLinePlaceholder":232},[758],{"type":49,"value":235},{"type":43,"tag":171,"props":760,"children":761},{"class":173,"line":256},[762],{"type":43,"tag":171,"props":763,"children":764},{},[765],{"type":49,"value":766},"    input := &example.CreateExampleInput{\n",{"type":43,"tag":171,"props":768,"children":769},{"class":173,"line":265},[770],{"type":43,"tag":171,"props":771,"children":772},{},[773],{"type":49,"value":774},"        Name: data.Name.ValueStringPointer(),\n",{"type":43,"tag":171,"props":776,"children":777},{"class":173,"line":273},[778],{"type":43,"tag":171,"props":779,"children":780},{},[781],{"type":49,"value":420},{"type":43,"tag":171,"props":783,"children":784},{"class":173,"line":282},[785],{"type":43,"tag":171,"props":786,"children":787},{"emptyLinePlaceholder":232},[788],{"type":49,"value":235},{"type":43,"tag":171,"props":790,"children":791},{"class":173,"line":291},[792],{"type":43,"tag":171,"props":793,"children":794},{},[795],{"type":49,"value":796},"    output, err := conn.CreateExample(ctx, input)\n",{"type":43,"tag":171,"props":798,"children":799},{"class":173,"line":300},[800],{"type":43,"tag":171,"props":801,"children":802},{},[803],{"type":49,"value":804},"    if err != nil {\n",{"type":43,"tag":171,"props":806,"children":807},{"class":173,"line":309},[808],{"type":43,"tag":171,"props":809,"children":810},{},[811],{"type":49,"value":812},"        resp.Diagnostics.AddError(\n",{"type":43,"tag":171,"props":814,"children":815},{"class":173,"line":318},[816],{"type":43,"tag":171,"props":817,"children":818},{},[819],{"type":49,"value":820},"            \"Error creating Example\",\n",{"type":43,"tag":171,"props":822,"children":823},{"class":173,"line":327},[824],{"type":43,"tag":171,"props":825,"children":826},{},[827],{"type":49,"value":828},"            fmt.Sprintf(\"Could not create example %s: %s\", data.Name.ValueString(), err),\n",{"type":43,"tag":171,"props":830,"children":831},{"class":173,"line":336},[832],{"type":43,"tag":171,"props":833,"children":834},{},[835],{"type":49,"value":836},"        )\n",{"type":43,"tag":171,"props":838,"children":839},{"class":173,"line":345},[840],{"type":43,"tag":171,"props":841,"children":842},{},[843],{"type":49,"value":729},{"type":43,"tag":171,"props":845,"children":846},{"class":173,"line":354},[847],{"type":43,"tag":171,"props":848,"children":849},{},[850],{"type":49,"value":420},{"type":43,"tag":171,"props":852,"children":853},{"class":173,"line":363},[854],{"type":43,"tag":171,"props":855,"children":856},{"emptyLinePlaceholder":232},[857],{"type":49,"value":235},{"type":43,"tag":171,"props":859,"children":860},{"class":173,"line":371},[861],{"type":43,"tag":171,"props":862,"children":863},{},[864],{"type":49,"value":865},"    data.ID = types.StringPointerValue(output.Id)\n",{"type":43,"tag":171,"props":867,"children":868},{"class":173,"line":380},[869],{"type":43,"tag":171,"props":870,"children":871},{},[872],{"type":49,"value":873},"    data.ARN = types.StringPointerValue(output.Arn)\n",{"type":43,"tag":171,"props":875,"children":876},{"class":173,"line":389},[877],{"type":43,"tag":171,"props":878,"children":879},{"emptyLinePlaceholder":232},[880],{"type":49,"value":235},{"type":43,"tag":171,"props":882,"children":883},{"class":173,"line":397},[884],{"type":43,"tag":171,"props":885,"children":886},{},[887],{"type":49,"value":888},"    resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)\n",{"type":43,"tag":171,"props":890,"children":891},{"class":173,"line":405},[892],{"type":43,"tag":171,"props":893,"children":894},{},[895],{"type":49,"value":429},{"type":43,"tag":155,"props":897,"children":899},{"id":898},"read-operation",[900],{"type":49,"value":901},"Read Operation",{"type":43,"tag":122,"props":903,"children":905},{"className":163,"code":904,"language":165,"meta":131,"style":131},"func (r *resourceExample) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.State.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    output, err := findExampleByID(ctx, conn, data.ID.ValueString())\n    if tfresource.NotFound(err) {\n        resp.Diagnostics.AddWarning(\n            \"Resource not found\",\n            fmt.Sprintf(\"Example %s not found, removing from state\", data.ID.ValueString()),\n        )\n        resp.State.RemoveResource(ctx)\n        return\n    }\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error reading Example\",\n            fmt.Sprintf(\"Could not read example %s: %s\", data.ID.ValueString(), err),\n        )\n        return\n    }\n\n    data.Name = types.StringPointerValue(output.Name)\n    data.ARN = types.StringPointerValue(output.Arn)\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)\n}\n",[906],{"type":43,"tag":129,"props":907,"children":908},{"__ignoreMap":131},[909,917,924,932,939,946,953,960,967,974,982,990,998,1006,1014,1021,1029,1036,1043,1050,1057,1065,1073,1080,1087,1094,1101,1109,1116,1123,1130],{"type":43,"tag":171,"props":910,"children":911},{"class":173,"line":174},[912],{"type":43,"tag":171,"props":913,"children":914},{},[915],{"type":49,"value":916},"func (r *resourceExample) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {\n",{"type":43,"tag":171,"props":918,"children":919},{"class":173,"line":183},[920],{"type":43,"tag":171,"props":921,"children":922},{},[923],{"type":49,"value":705},{"type":43,"tag":171,"props":925,"children":926},{"class":173,"line":192},[927],{"type":43,"tag":171,"props":928,"children":929},{},[930],{"type":49,"value":931},"    resp.Diagnostics.Append(req.State.Get(ctx, &data)...)\n",{"type":43,"tag":171,"props":933,"children":934},{"class":173,"line":201},[935],{"type":43,"tag":171,"props":936,"children":937},{},[938],{"type":49,"value":721},{"type":43,"tag":171,"props":940,"children":941},{"class":173,"line":210},[942],{"type":43,"tag":171,"props":943,"children":944},{},[945],{"type":49,"value":729},{"type":43,"tag":171,"props":947,"children":948},{"class":173,"line":219},[949],{"type":43,"tag":171,"props":950,"children":951},{},[952],{"type":49,"value":420},{"type":43,"tag":171,"props":954,"children":955},{"class":173,"line":228},[956],{"type":43,"tag":171,"props":957,"children":958},{"emptyLinePlaceholder":232},[959],{"type":49,"value":235},{"type":43,"tag":171,"props":961,"children":962},{"class":173,"line":238},[963],{"type":43,"tag":171,"props":964,"children":965},{},[966],{"type":49,"value":751},{"type":43,"tag":171,"props":968,"children":969},{"class":173,"line":247},[970],{"type":43,"tag":171,"props":971,"children":972},{"emptyLinePlaceholder":232},[973],{"type":49,"value":235},{"type":43,"tag":171,"props":975,"children":976},{"class":173,"line":256},[977],{"type":43,"tag":171,"props":978,"children":979},{},[980],{"type":49,"value":981},"    output, err := findExampleByID(ctx, conn, data.ID.ValueString())\n",{"type":43,"tag":171,"props":983,"children":984},{"class":173,"line":265},[985],{"type":43,"tag":171,"props":986,"children":987},{},[988],{"type":49,"value":989},"    if tfresource.NotFound(err) {\n",{"type":43,"tag":171,"props":991,"children":992},{"class":173,"line":273},[993],{"type":43,"tag":171,"props":994,"children":995},{},[996],{"type":49,"value":997},"        resp.Diagnostics.AddWarning(\n",{"type":43,"tag":171,"props":999,"children":1000},{"class":173,"line":282},[1001],{"type":43,"tag":171,"props":1002,"children":1003},{},[1004],{"type":49,"value":1005},"            \"Resource not found\",\n",{"type":43,"tag":171,"props":1007,"children":1008},{"class":173,"line":291},[1009],{"type":43,"tag":171,"props":1010,"children":1011},{},[1012],{"type":49,"value":1013},"            fmt.Sprintf(\"Example %s not found, removing from state\", data.ID.ValueString()),\n",{"type":43,"tag":171,"props":1015,"children":1016},{"class":173,"line":300},[1017],{"type":43,"tag":171,"props":1018,"children":1019},{},[1020],{"type":49,"value":836},{"type":43,"tag":171,"props":1022,"children":1023},{"class":173,"line":309},[1024],{"type":43,"tag":171,"props":1025,"children":1026},{},[1027],{"type":49,"value":1028},"        resp.State.RemoveResource(ctx)\n",{"type":43,"tag":171,"props":1030,"children":1031},{"class":173,"line":318},[1032],{"type":43,"tag":171,"props":1033,"children":1034},{},[1035],{"type":49,"value":729},{"type":43,"tag":171,"props":1037,"children":1038},{"class":173,"line":327},[1039],{"type":43,"tag":171,"props":1040,"children":1041},{},[1042],{"type":49,"value":420},{"type":43,"tag":171,"props":1044,"children":1045},{"class":173,"line":336},[1046],{"type":43,"tag":171,"props":1047,"children":1048},{},[1049],{"type":49,"value":804},{"type":43,"tag":171,"props":1051,"children":1052},{"class":173,"line":345},[1053],{"type":43,"tag":171,"props":1054,"children":1055},{},[1056],{"type":49,"value":812},{"type":43,"tag":171,"props":1058,"children":1059},{"class":173,"line":354},[1060],{"type":43,"tag":171,"props":1061,"children":1062},{},[1063],{"type":49,"value":1064},"            \"Error reading Example\",\n",{"type":43,"tag":171,"props":1066,"children":1067},{"class":173,"line":363},[1068],{"type":43,"tag":171,"props":1069,"children":1070},{},[1071],{"type":49,"value":1072},"            fmt.Sprintf(\"Could not read example %s: %s\", data.ID.ValueString(), err),\n",{"type":43,"tag":171,"props":1074,"children":1075},{"class":173,"line":371},[1076],{"type":43,"tag":171,"props":1077,"children":1078},{},[1079],{"type":49,"value":836},{"type":43,"tag":171,"props":1081,"children":1082},{"class":173,"line":380},[1083],{"type":43,"tag":171,"props":1084,"children":1085},{},[1086],{"type":49,"value":729},{"type":43,"tag":171,"props":1088,"children":1089},{"class":173,"line":389},[1090],{"type":43,"tag":171,"props":1091,"children":1092},{},[1093],{"type":49,"value":420},{"type":43,"tag":171,"props":1095,"children":1096},{"class":173,"line":397},[1097],{"type":43,"tag":171,"props":1098,"children":1099},{"emptyLinePlaceholder":232},[1100],{"type":49,"value":235},{"type":43,"tag":171,"props":1102,"children":1103},{"class":173,"line":405},[1104],{"type":43,"tag":171,"props":1105,"children":1106},{},[1107],{"type":49,"value":1108},"    data.Name = types.StringPointerValue(output.Name)\n",{"type":43,"tag":171,"props":1110,"children":1111},{"class":173,"line":414},[1112],{"type":43,"tag":171,"props":1113,"children":1114},{},[1115],{"type":49,"value":873},{"type":43,"tag":171,"props":1117,"children":1118},{"class":173,"line":423},[1119],{"type":43,"tag":171,"props":1120,"children":1121},{"emptyLinePlaceholder":232},[1122],{"type":49,"value":235},{"type":43,"tag":171,"props":1124,"children":1125},{"class":173,"line":665},[1126],{"type":43,"tag":171,"props":1127,"children":1128},{},[1129],{"type":49,"value":888},{"type":43,"tag":171,"props":1131,"children":1133},{"class":173,"line":1132},31,[1134],{"type":43,"tag":171,"props":1135,"children":1136},{},[1137],{"type":49,"value":429},{"type":43,"tag":155,"props":1139,"children":1141},{"id":1140},"update-operation",[1142],{"type":49,"value":1143},"Update Operation",{"type":43,"tag":122,"props":1145,"children":1147},{"className":163,"code":1146,"language":165,"meta":131,"style":131},"func (r *resourceExample) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {\n    var plan, state resourceExampleModel\n    resp.Diagnostics.Append(req.Plan.Get(ctx, &plan)...)\n    resp.Diagnostics.Append(req.State.Get(ctx, &state)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    if !plan.Description.Equal(state.Description) {\n        input := &example.UpdateExampleInput{\n            Id:          plan.ID.ValueStringPointer(),\n            Description: plan.Description.ValueStringPointer(),\n        }\n\n        _, err := conn.UpdateExample(ctx, input)\n        if err != nil {\n            resp.Diagnostics.AddError(\n                \"Error updating Example\",\n                fmt.Sprintf(\"Could not update example %s: %s\", plan.ID.ValueString(), err),\n            )\n            return\n        }\n    }\n\n    resp.Diagnostics.Append(resp.State.Set(ctx, &plan)...)\n}\n",[1148],{"type":43,"tag":129,"props":1149,"children":1150},{"__ignoreMap":131},[1151,1159,1167,1175,1183,1190,1197,1204,1211,1218,1225,1233,1241,1249,1257,1265,1272,1280,1288,1296,1304,1312,1320,1328,1335,1342,1349,1357],{"type":43,"tag":171,"props":1152,"children":1153},{"class":173,"line":174},[1154],{"type":43,"tag":171,"props":1155,"children":1156},{},[1157],{"type":49,"value":1158},"func (r *resourceExample) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {\n",{"type":43,"tag":171,"props":1160,"children":1161},{"class":173,"line":183},[1162],{"type":43,"tag":171,"props":1163,"children":1164},{},[1165],{"type":49,"value":1166},"    var plan, state resourceExampleModel\n",{"type":43,"tag":171,"props":1168,"children":1169},{"class":173,"line":192},[1170],{"type":43,"tag":171,"props":1171,"children":1172},{},[1173],{"type":49,"value":1174},"    resp.Diagnostics.Append(req.Plan.Get(ctx, &plan)...)\n",{"type":43,"tag":171,"props":1176,"children":1177},{"class":173,"line":201},[1178],{"type":43,"tag":171,"props":1179,"children":1180},{},[1181],{"type":49,"value":1182},"    resp.Diagnostics.Append(req.State.Get(ctx, &state)...)\n",{"type":43,"tag":171,"props":1184,"children":1185},{"class":173,"line":210},[1186],{"type":43,"tag":171,"props":1187,"children":1188},{},[1189],{"type":49,"value":721},{"type":43,"tag":171,"props":1191,"children":1192},{"class":173,"line":219},[1193],{"type":43,"tag":171,"props":1194,"children":1195},{},[1196],{"type":49,"value":729},{"type":43,"tag":171,"props":1198,"children":1199},{"class":173,"line":228},[1200],{"type":43,"tag":171,"props":1201,"children":1202},{},[1203],{"type":49,"value":420},{"type":43,"tag":171,"props":1205,"children":1206},{"class":173,"line":238},[1207],{"type":43,"tag":171,"props":1208,"children":1209},{"emptyLinePlaceholder":232},[1210],{"type":49,"value":235},{"type":43,"tag":171,"props":1212,"children":1213},{"class":173,"line":247},[1214],{"type":43,"tag":171,"props":1215,"children":1216},{},[1217],{"type":49,"value":751},{"type":43,"tag":171,"props":1219,"children":1220},{"class":173,"line":256},[1221],{"type":43,"tag":171,"props":1222,"children":1223},{"emptyLinePlaceholder":232},[1224],{"type":49,"value":235},{"type":43,"tag":171,"props":1226,"children":1227},{"class":173,"line":265},[1228],{"type":43,"tag":171,"props":1229,"children":1230},{},[1231],{"type":49,"value":1232},"    if !plan.Description.Equal(state.Description) {\n",{"type":43,"tag":171,"props":1234,"children":1235},{"class":173,"line":273},[1236],{"type":43,"tag":171,"props":1237,"children":1238},{},[1239],{"type":49,"value":1240},"        input := &example.UpdateExampleInput{\n",{"type":43,"tag":171,"props":1242,"children":1243},{"class":173,"line":282},[1244],{"type":43,"tag":171,"props":1245,"children":1246},{},[1247],{"type":49,"value":1248},"            Id:          plan.ID.ValueStringPointer(),\n",{"type":43,"tag":171,"props":1250,"children":1251},{"class":173,"line":291},[1252],{"type":43,"tag":171,"props":1253,"children":1254},{},[1255],{"type":49,"value":1256},"            Description: plan.Description.ValueStringPointer(),\n",{"type":43,"tag":171,"props":1258,"children":1259},{"class":173,"line":300},[1260],{"type":43,"tag":171,"props":1261,"children":1262},{},[1263],{"type":49,"value":1264},"        }\n",{"type":43,"tag":171,"props":1266,"children":1267},{"class":173,"line":309},[1268],{"type":43,"tag":171,"props":1269,"children":1270},{"emptyLinePlaceholder":232},[1271],{"type":49,"value":235},{"type":43,"tag":171,"props":1273,"children":1274},{"class":173,"line":318},[1275],{"type":43,"tag":171,"props":1276,"children":1277},{},[1278],{"type":49,"value":1279},"        _, err := conn.UpdateExample(ctx, input)\n",{"type":43,"tag":171,"props":1281,"children":1282},{"class":173,"line":327},[1283],{"type":43,"tag":171,"props":1284,"children":1285},{},[1286],{"type":49,"value":1287},"        if err != nil {\n",{"type":43,"tag":171,"props":1289,"children":1290},{"class":173,"line":336},[1291],{"type":43,"tag":171,"props":1292,"children":1293},{},[1294],{"type":49,"value":1295},"            resp.Diagnostics.AddError(\n",{"type":43,"tag":171,"props":1297,"children":1298},{"class":173,"line":345},[1299],{"type":43,"tag":171,"props":1300,"children":1301},{},[1302],{"type":49,"value":1303},"                \"Error updating Example\",\n",{"type":43,"tag":171,"props":1305,"children":1306},{"class":173,"line":354},[1307],{"type":43,"tag":171,"props":1308,"children":1309},{},[1310],{"type":49,"value":1311},"                fmt.Sprintf(\"Could not update example %s: %s\", plan.ID.ValueString(), err),\n",{"type":43,"tag":171,"props":1313,"children":1314},{"class":173,"line":363},[1315],{"type":43,"tag":171,"props":1316,"children":1317},{},[1318],{"type":49,"value":1319},"            )\n",{"type":43,"tag":171,"props":1321,"children":1322},{"class":173,"line":371},[1323],{"type":43,"tag":171,"props":1324,"children":1325},{},[1326],{"type":49,"value":1327},"            return\n",{"type":43,"tag":171,"props":1329,"children":1330},{"class":173,"line":380},[1331],{"type":43,"tag":171,"props":1332,"children":1333},{},[1334],{"type":49,"value":1264},{"type":43,"tag":171,"props":1336,"children":1337},{"class":173,"line":389},[1338],{"type":43,"tag":171,"props":1339,"children":1340},{},[1341],{"type":49,"value":420},{"type":43,"tag":171,"props":1343,"children":1344},{"class":173,"line":397},[1345],{"type":43,"tag":171,"props":1346,"children":1347},{"emptyLinePlaceholder":232},[1348],{"type":49,"value":235},{"type":43,"tag":171,"props":1350,"children":1351},{"class":173,"line":405},[1352],{"type":43,"tag":171,"props":1353,"children":1354},{},[1355],{"type":49,"value":1356},"    resp.Diagnostics.Append(resp.State.Set(ctx, &plan)...)\n",{"type":43,"tag":171,"props":1358,"children":1359},{"class":173,"line":414},[1360],{"type":43,"tag":171,"props":1361,"children":1362},{},[1363],{"type":49,"value":429},{"type":43,"tag":155,"props":1365,"children":1367},{"id":1366},"delete-operation",[1368],{"type":49,"value":1369},"Delete Operation",{"type":43,"tag":122,"props":1371,"children":1373},{"className":163,"code":1372,"language":165,"meta":131,"style":131},"func (r *resourceExample) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {\n    var data resourceExampleModel\n    resp.Diagnostics.Append(req.State.Get(ctx, &data)...)\n    if resp.Diagnostics.HasError() {\n        return\n    }\n\n    conn := r.Meta().ExampleClient(ctx)\n\n    _, err := conn.DeleteExample(ctx, &example.DeleteExampleInput{\n        Id: data.ID.ValueStringPointer(),\n    })\n\n    if tfresource.NotFound(err) {\n        return\n    }\n\n    if err != nil {\n        resp.Diagnostics.AddError(\n            \"Error deleting Example\",\n            fmt.Sprintf(\"Could not delete example %s: %s\", data.ID.ValueString(), err),\n        )\n        return\n    }\n}\n",[1374],{"type":43,"tag":129,"props":1375,"children":1376},{"__ignoreMap":131},[1377,1385,1392,1399,1406,1413,1420,1427,1434,1441,1449,1457,1465,1472,1479,1486,1493,1500,1507,1514,1522,1530,1537,1544,1551],{"type":43,"tag":171,"props":1378,"children":1379},{"class":173,"line":174},[1380],{"type":43,"tag":171,"props":1381,"children":1382},{},[1383],{"type":49,"value":1384},"func (r *resourceExample) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {\n",{"type":43,"tag":171,"props":1386,"children":1387},{"class":173,"line":183},[1388],{"type":43,"tag":171,"props":1389,"children":1390},{},[1391],{"type":49,"value":705},{"type":43,"tag":171,"props":1393,"children":1394},{"class":173,"line":192},[1395],{"type":43,"tag":171,"props":1396,"children":1397},{},[1398],{"type":49,"value":931},{"type":43,"tag":171,"props":1400,"children":1401},{"class":173,"line":201},[1402],{"type":43,"tag":171,"props":1403,"children":1404},{},[1405],{"type":49,"value":721},{"type":43,"tag":171,"props":1407,"children":1408},{"class":173,"line":210},[1409],{"type":43,"tag":171,"props":1410,"children":1411},{},[1412],{"type":49,"value":729},{"type":43,"tag":171,"props":1414,"children":1415},{"class":173,"line":219},[1416],{"type":43,"tag":171,"props":1417,"children":1418},{},[1419],{"type":49,"value":420},{"type":43,"tag":171,"props":1421,"children":1422},{"class":173,"line":228},[1423],{"type":43,"tag":171,"props":1424,"children":1425},{"emptyLinePlaceholder":232},[1426],{"type":49,"value":235},{"type":43,"tag":171,"props":1428,"children":1429},{"class":173,"line":238},[1430],{"type":43,"tag":171,"props":1431,"children":1432},{},[1433],{"type":49,"value":751},{"type":43,"tag":171,"props":1435,"children":1436},{"class":173,"line":247},[1437],{"type":43,"tag":171,"props":1438,"children":1439},{"emptyLinePlaceholder":232},[1440],{"type":49,"value":235},{"type":43,"tag":171,"props":1442,"children":1443},{"class":173,"line":256},[1444],{"type":43,"tag":171,"props":1445,"children":1446},{},[1447],{"type":49,"value":1448},"    _, err := conn.DeleteExample(ctx, &example.DeleteExampleInput{\n",{"type":43,"tag":171,"props":1450,"children":1451},{"class":173,"line":265},[1452],{"type":43,"tag":171,"props":1453,"children":1454},{},[1455],{"type":49,"value":1456},"        Id: data.ID.ValueStringPointer(),\n",{"type":43,"tag":171,"props":1458,"children":1459},{"class":173,"line":273},[1460],{"type":43,"tag":171,"props":1461,"children":1462},{},[1463],{"type":49,"value":1464},"    })\n",{"type":43,"tag":171,"props":1466,"children":1467},{"class":173,"line":282},[1468],{"type":43,"tag":171,"props":1469,"children":1470},{"emptyLinePlaceholder":232},[1471],{"type":49,"value":235},{"type":43,"tag":171,"props":1473,"children":1474},{"class":173,"line":291},[1475],{"type":43,"tag":171,"props":1476,"children":1477},{},[1478],{"type":49,"value":989},{"type":43,"tag":171,"props":1480,"children":1481},{"class":173,"line":300},[1482],{"type":43,"tag":171,"props":1483,"children":1484},{},[1485],{"type":49,"value":729},{"type":43,"tag":171,"props":1487,"children":1488},{"class":173,"line":309},[1489],{"type":43,"tag":171,"props":1490,"children":1491},{},[1492],{"type":49,"value":420},{"type":43,"tag":171,"props":1494,"children":1495},{"class":173,"line":318},[1496],{"type":43,"tag":171,"props":1497,"children":1498},{"emptyLinePlaceholder":232},[1499],{"type":49,"value":235},{"type":43,"tag":171,"props":1501,"children":1502},{"class":173,"line":327},[1503],{"type":43,"tag":171,"props":1504,"children":1505},{},[1506],{"type":49,"value":804},{"type":43,"tag":171,"props":1508,"children":1509},{"class":173,"line":336},[1510],{"type":43,"tag":171,"props":1511,"children":1512},{},[1513],{"type":49,"value":812},{"type":43,"tag":171,"props":1515,"children":1516},{"class":173,"line":345},[1517],{"type":43,"tag":171,"props":1518,"children":1519},{},[1520],{"type":49,"value":1521},"            \"Error deleting Example\",\n",{"type":43,"tag":171,"props":1523,"children":1524},{"class":173,"line":354},[1525],{"type":43,"tag":171,"props":1526,"children":1527},{},[1528],{"type":49,"value":1529},"            fmt.Sprintf(\"Could not delete example %s: %s\", data.ID.ValueString(), err),\n",{"type":43,"tag":171,"props":1531,"children":1532},{"class":173,"line":363},[1533],{"type":43,"tag":171,"props":1534,"children":1535},{},[1536],{"type":49,"value":836},{"type":43,"tag":171,"props":1538,"children":1539},{"class":173,"line":371},[1540],{"type":43,"tag":171,"props":1541,"children":1542},{},[1543],{"type":49,"value":729},{"type":43,"tag":171,"props":1545,"children":1546},{"class":173,"line":380},[1547],{"type":43,"tag":171,"props":1548,"children":1549},{},[1550],{"type":49,"value":420},{"type":43,"tag":171,"props":1552,"children":1553},{"class":173,"line":389},[1554],{"type":43,"tag":171,"props":1555,"children":1556},{},[1557],{"type":49,"value":429},{"type":43,"tag":52,"props":1559,"children":1561},{"id":1560},"schema-design",[1562],{"type":49,"value":1563},"Schema Design",{"type":43,"tag":155,"props":1565,"children":1567},{"id":1566},"attribute-types",[1568],{"type":49,"value":1569},"Attribute Types",{"type":43,"tag":1571,"props":1572,"children":1573},"table",{},[1574,1598],{"type":43,"tag":1575,"props":1576,"children":1577},"thead",{},[1578],{"type":43,"tag":1579,"props":1580,"children":1581},"tr",{},[1582,1588,1593],{"type":43,"tag":1583,"props":1584,"children":1585},"th",{},[1586],{"type":49,"value":1587},"Terraform Type",{"type":43,"tag":1583,"props":1589,"children":1590},{},[1591],{"type":49,"value":1592},"Framework Type",{"type":43,"tag":1583,"props":1594,"children":1595},{},[1596],{"type":49,"value":1597},"Use Case",{"type":43,"tag":1599,"props":1600,"children":1601},"tbody",{},[1602,1629,1663,1689,1715,1741,1767],{"type":43,"tag":1579,"props":1603,"children":1604},{},[1605,1615,1624],{"type":43,"tag":1606,"props":1607,"children":1608},"td",{},[1609],{"type":43,"tag":129,"props":1610,"children":1612},{"className":1611},[],[1613],{"type":49,"value":1614},"string",{"type":43,"tag":1606,"props":1616,"children":1617},{},[1618],{"type":43,"tag":129,"props":1619,"children":1621},{"className":1620},[],[1622],{"type":49,"value":1623},"schema.StringAttribute",{"type":43,"tag":1606,"props":1625,"children":1626},{},[1627],{"type":49,"value":1628},"Names, ARNs, IDs",{"type":43,"tag":1579,"props":1630,"children":1631},{},[1632,1641,1658],{"type":43,"tag":1606,"props":1633,"children":1634},{},[1635],{"type":43,"tag":129,"props":1636,"children":1638},{"className":1637},[],[1639],{"type":49,"value":1640},"number",{"type":43,"tag":1606,"props":1642,"children":1643},{},[1644,1650,1652],{"type":43,"tag":129,"props":1645,"children":1647},{"className":1646},[],[1648],{"type":49,"value":1649},"schema.Int64Attribute",{"type":49,"value":1651},", ",{"type":43,"tag":129,"props":1653,"children":1655},{"className":1654},[],[1656],{"type":49,"value":1657},"schema.Float64Attribute",{"type":43,"tag":1606,"props":1659,"children":1660},{},[1661],{"type":49,"value":1662},"Counts, sizes",{"type":43,"tag":1579,"props":1664,"children":1665},{},[1666,1675,1684],{"type":43,"tag":1606,"props":1667,"children":1668},{},[1669],{"type":43,"tag":129,"props":1670,"children":1672},{"className":1671},[],[1673],{"type":49,"value":1674},"bool",{"type":43,"tag":1606,"props":1676,"children":1677},{},[1678],{"type":43,"tag":129,"props":1679,"children":1681},{"className":1680},[],[1682],{"type":49,"value":1683},"schema.BoolAttribute",{"type":43,"tag":1606,"props":1685,"children":1686},{},[1687],{"type":49,"value":1688},"Feature flags",{"type":43,"tag":1579,"props":1690,"children":1691},{},[1692,1701,1710],{"type":43,"tag":1606,"props":1693,"children":1694},{},[1695],{"type":43,"tag":129,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":49,"value":1700},"list",{"type":43,"tag":1606,"props":1702,"children":1703},{},[1704],{"type":43,"tag":129,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":49,"value":1709},"schema.ListAttribute",{"type":43,"tag":1606,"props":1711,"children":1712},{},[1713],{"type":49,"value":1714},"Ordered collections",{"type":43,"tag":1579,"props":1716,"children":1717},{},[1718,1727,1736],{"type":43,"tag":1606,"props":1719,"children":1720},{},[1721],{"type":43,"tag":129,"props":1722,"children":1724},{"className":1723},[],[1725],{"type":49,"value":1726},"set",{"type":43,"tag":1606,"props":1728,"children":1729},{},[1730],{"type":43,"tag":129,"props":1731,"children":1733},{"className":1732},[],[1734],{"type":49,"value":1735},"schema.SetAttribute",{"type":43,"tag":1606,"props":1737,"children":1738},{},[1739],{"type":49,"value":1740},"Unordered unique items",{"type":43,"tag":1579,"props":1742,"children":1743},{},[1744,1753,1762],{"type":43,"tag":1606,"props":1745,"children":1746},{},[1747],{"type":43,"tag":129,"props":1748,"children":1750},{"className":1749},[],[1751],{"type":49,"value":1752},"map",{"type":43,"tag":1606,"props":1754,"children":1755},{},[1756],{"type":43,"tag":129,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":49,"value":1761},"schema.MapAttribute",{"type":43,"tag":1606,"props":1763,"children":1764},{},[1765],{"type":49,"value":1766},"Key-value pairs",{"type":43,"tag":1579,"props":1768,"children":1769},{},[1770,1779,1788],{"type":43,"tag":1606,"props":1771,"children":1772},{},[1773],{"type":43,"tag":129,"props":1774,"children":1776},{"className":1775},[],[1777],{"type":49,"value":1778},"object",{"type":43,"tag":1606,"props":1780,"children":1781},{},[1782],{"type":43,"tag":129,"props":1783,"children":1785},{"className":1784},[],[1786],{"type":49,"value":1787},"schema.SingleNestedAttribute",{"type":43,"tag":1606,"props":1789,"children":1790},{},[1791],{"type":49,"value":1792},"Complex nested config",{"type":43,"tag":155,"props":1794,"children":1796},{"id":1795},"plan-modifiers",[1797],{"type":49,"value":1798},"Plan Modifiers",{"type":43,"tag":122,"props":1800,"children":1802},{"className":163,"code":1801,"language":165,"meta":131,"style":131},"\u002F\u002F Force replacement when value changes\nstringplanmodifier.RequiresReplace()\n\n\u002F\u002F Preserve unknown value during plan\nstringplanmodifier.UseStateForUnknown()\n\n\u002F\u002F Custom plan modifier\nstringplanmodifier.RequiresReplaceIf(\n    func(ctx context.Context, req planmodifier.StringRequest, resp *stringplanmodifier.RequiresReplaceIfFuncResponse) {\n        \u002F\u002F Custom logic\n    },\n    \"description\",\n    \"markdown description\",\n)\n",[1803],{"type":43,"tag":129,"props":1804,"children":1805},{"__ignoreMap":131},[1806,1814,1822,1829,1837,1845,1852,1860,1868,1876,1884,1892,1900,1908],{"type":43,"tag":171,"props":1807,"children":1808},{"class":173,"line":174},[1809],{"type":43,"tag":171,"props":1810,"children":1811},{},[1812],{"type":49,"value":1813},"\u002F\u002F Force replacement when value changes\n",{"type":43,"tag":171,"props":1815,"children":1816},{"class":173,"line":183},[1817],{"type":43,"tag":171,"props":1818,"children":1819},{},[1820],{"type":49,"value":1821},"stringplanmodifier.RequiresReplace()\n",{"type":43,"tag":171,"props":1823,"children":1824},{"class":173,"line":192},[1825],{"type":43,"tag":171,"props":1826,"children":1827},{"emptyLinePlaceholder":232},[1828],{"type":49,"value":235},{"type":43,"tag":171,"props":1830,"children":1831},{"class":173,"line":201},[1832],{"type":43,"tag":171,"props":1833,"children":1834},{},[1835],{"type":49,"value":1836},"\u002F\u002F Preserve unknown value during plan\n",{"type":43,"tag":171,"props":1838,"children":1839},{"class":173,"line":210},[1840],{"type":43,"tag":171,"props":1841,"children":1842},{},[1843],{"type":49,"value":1844},"stringplanmodifier.UseStateForUnknown()\n",{"type":43,"tag":171,"props":1846,"children":1847},{"class":173,"line":219},[1848],{"type":43,"tag":171,"props":1849,"children":1850},{"emptyLinePlaceholder":232},[1851],{"type":49,"value":235},{"type":43,"tag":171,"props":1853,"children":1854},{"class":173,"line":228},[1855],{"type":43,"tag":171,"props":1856,"children":1857},{},[1858],{"type":49,"value":1859},"\u002F\u002F Custom plan modifier\n",{"type":43,"tag":171,"props":1861,"children":1862},{"class":173,"line":238},[1863],{"type":43,"tag":171,"props":1864,"children":1865},{},[1866],{"type":49,"value":1867},"stringplanmodifier.RequiresReplaceIf(\n",{"type":43,"tag":171,"props":1869,"children":1870},{"class":173,"line":247},[1871],{"type":43,"tag":171,"props":1872,"children":1873},{},[1874],{"type":49,"value":1875},"    func(ctx context.Context, req planmodifier.StringRequest, resp *stringplanmodifier.RequiresReplaceIfFuncResponse) {\n",{"type":43,"tag":171,"props":1877,"children":1878},{"class":173,"line":256},[1879],{"type":43,"tag":171,"props":1880,"children":1881},{},[1882],{"type":49,"value":1883},"        \u002F\u002F Custom logic\n",{"type":43,"tag":171,"props":1885,"children":1886},{"class":173,"line":265},[1887],{"type":43,"tag":171,"props":1888,"children":1889},{},[1890],{"type":49,"value":1891},"    },\n",{"type":43,"tag":171,"props":1893,"children":1894},{"class":173,"line":273},[1895],{"type":43,"tag":171,"props":1896,"children":1897},{},[1898],{"type":49,"value":1899},"    \"description\",\n",{"type":43,"tag":171,"props":1901,"children":1902},{"class":173,"line":282},[1903],{"type":43,"tag":171,"props":1904,"children":1905},{},[1906],{"type":49,"value":1907},"    \"markdown description\",\n",{"type":43,"tag":171,"props":1909,"children":1910},{"class":173,"line":291},[1911],{"type":43,"tag":171,"props":1912,"children":1913},{},[1914],{"type":49,"value":1915},")\n",{"type":43,"tag":155,"props":1917,"children":1919},{"id":1918},"validators",[1920],{"type":49,"value":1921},"Validators",{"type":43,"tag":122,"props":1923,"children":1925},{"className":163,"code":1924,"language":165,"meta":131,"style":131},"\u002F\u002F String validators\nstringvalidator.LengthBetween(1, 255)\nstringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9-]+$`), \"must be lowercase alphanumeric with hyphens\")\nstringvalidator.OneOf(\"option1\", \"option2\", \"option3\")\n\n\u002F\u002F Int64 validators\nint64validator.Between(1, 100)\nint64validator.AtLeast(1)\nint64validator.AtMost(1000)\n\n\u002F\u002F List validators\nlistvalidator.SizeAtLeast(1)\nlistvalidator.SizeAtMost(10)\n",[1926],{"type":43,"tag":129,"props":1927,"children":1928},{"__ignoreMap":131},[1929,1937,1945,1953,1961,1968,1976,1984,1992,2000,2007,2015,2023],{"type":43,"tag":171,"props":1930,"children":1931},{"class":173,"line":174},[1932],{"type":43,"tag":171,"props":1933,"children":1934},{},[1935],{"type":49,"value":1936},"\u002F\u002F String validators\n",{"type":43,"tag":171,"props":1938,"children":1939},{"class":173,"line":183},[1940],{"type":43,"tag":171,"props":1941,"children":1942},{},[1943],{"type":49,"value":1944},"stringvalidator.LengthBetween(1, 255)\n",{"type":43,"tag":171,"props":1946,"children":1947},{"class":173,"line":192},[1948],{"type":43,"tag":171,"props":1949,"children":1950},{},[1951],{"type":49,"value":1952},"stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9-]+$`), \"must be lowercase alphanumeric with hyphens\")\n",{"type":43,"tag":171,"props":1954,"children":1955},{"class":173,"line":201},[1956],{"type":43,"tag":171,"props":1957,"children":1958},{},[1959],{"type":49,"value":1960},"stringvalidator.OneOf(\"option1\", \"option2\", \"option3\")\n",{"type":43,"tag":171,"props":1962,"children":1963},{"class":173,"line":210},[1964],{"type":43,"tag":171,"props":1965,"children":1966},{"emptyLinePlaceholder":232},[1967],{"type":49,"value":235},{"type":43,"tag":171,"props":1969,"children":1970},{"class":173,"line":219},[1971],{"type":43,"tag":171,"props":1972,"children":1973},{},[1974],{"type":49,"value":1975},"\u002F\u002F Int64 validators\n",{"type":43,"tag":171,"props":1977,"children":1978},{"class":173,"line":228},[1979],{"type":43,"tag":171,"props":1980,"children":1981},{},[1982],{"type":49,"value":1983},"int64validator.Between(1, 100)\n",{"type":43,"tag":171,"props":1985,"children":1986},{"class":173,"line":238},[1987],{"type":43,"tag":171,"props":1988,"children":1989},{},[1990],{"type":49,"value":1991},"int64validator.AtLeast(1)\n",{"type":43,"tag":171,"props":1993,"children":1994},{"class":173,"line":247},[1995],{"type":43,"tag":171,"props":1996,"children":1997},{},[1998],{"type":49,"value":1999},"int64validator.AtMost(1000)\n",{"type":43,"tag":171,"props":2001,"children":2002},{"class":173,"line":256},[2003],{"type":43,"tag":171,"props":2004,"children":2005},{"emptyLinePlaceholder":232},[2006],{"type":49,"value":235},{"type":43,"tag":171,"props":2008,"children":2009},{"class":173,"line":265},[2010],{"type":43,"tag":171,"props":2011,"children":2012},{},[2013],{"type":49,"value":2014},"\u002F\u002F List validators\n",{"type":43,"tag":171,"props":2016,"children":2017},{"class":173,"line":273},[2018],{"type":43,"tag":171,"props":2019,"children":2020},{},[2021],{"type":49,"value":2022},"listvalidator.SizeAtLeast(1)\n",{"type":43,"tag":171,"props":2024,"children":2025},{"class":173,"line":282},[2026],{"type":43,"tag":171,"props":2027,"children":2028},{},[2029],{"type":49,"value":2030},"listvalidator.SizeAtMost(10)\n",{"type":43,"tag":155,"props":2032,"children":2034},{"id":2033},"sensitive-attributes",[2035],{"type":49,"value":2036},"Sensitive Attributes",{"type":43,"tag":122,"props":2038,"children":2040},{"className":163,"code":2039,"language":165,"meta":131,"style":131},"\"password\": schema.StringAttribute{\n    Required:  true,\n    Sensitive: true,\n    Validators: []validator.String{\n        stringvalidator.LengthAtLeast(8),\n    },\n}\n",[2041],{"type":43,"tag":129,"props":2042,"children":2043},{"__ignoreMap":131},[2044,2052,2060,2068,2076,2084,2091],{"type":43,"tag":171,"props":2045,"children":2046},{"class":173,"line":174},[2047],{"type":43,"tag":171,"props":2048,"children":2049},{},[2050],{"type":49,"value":2051},"\"password\": schema.StringAttribute{\n",{"type":43,"tag":171,"props":2053,"children":2054},{"class":173,"line":183},[2055],{"type":43,"tag":171,"props":2056,"children":2057},{},[2058],{"type":49,"value":2059},"    Required:  true,\n",{"type":43,"tag":171,"props":2061,"children":2062},{"class":173,"line":192},[2063],{"type":43,"tag":171,"props":2064,"children":2065},{},[2066],{"type":49,"value":2067},"    Sensitive: true,\n",{"type":43,"tag":171,"props":2069,"children":2070},{"class":173,"line":201},[2071],{"type":43,"tag":171,"props":2072,"children":2073},{},[2074],{"type":49,"value":2075},"    Validators: []validator.String{\n",{"type":43,"tag":171,"props":2077,"children":2078},{"class":173,"line":210},[2079],{"type":43,"tag":171,"props":2080,"children":2081},{},[2082],{"type":49,"value":2083},"        stringvalidator.LengthAtLeast(8),\n",{"type":43,"tag":171,"props":2085,"children":2086},{"class":173,"line":219},[2087],{"type":43,"tag":171,"props":2088,"children":2089},{},[2090],{"type":49,"value":1891},{"type":43,"tag":171,"props":2092,"children":2093},{"class":173,"line":228},[2094],{"type":43,"tag":171,"props":2095,"children":2096},{},[2097],{"type":49,"value":429},{"type":43,"tag":52,"props":2099,"children":2101},{"id":2100},"state-management",[2102],{"type":49,"value":2103},"State Management",{"type":43,"tag":155,"props":2105,"children":2107},{"id":2106},"handling-resource-not-found",[2108],{"type":49,"value":2109},"Handling Resource Not Found",{"type":43,"tag":122,"props":2111,"children":2113},{"className":163,"code":2112,"language":165,"meta":131,"style":131},"func findExampleByID(ctx context.Context, conn *example.Client, id string) (*example.Example, error) {\n    input := &example.GetExampleInput{\n        Id: &id,\n    }\n\n    output, err := conn.GetExample(ctx, input)\n    if err != nil {\n        var notFound *types.ResourceNotFoundException\n        if errors.As(err, &notFound) {\n            return nil, &retry.NotFoundError{\n                LastError:   err,\n                LastRequest: input,\n            }\n        }\n        return nil, err\n    }\n\n    if output == nil || output.Example == nil {\n        return nil, tfresource.NewEmptyResultError(input)\n    }\n\n    return output.Example, nil\n}\n",[2114],{"type":43,"tag":129,"props":2115,"children":2116},{"__ignoreMap":131},[2117,2125,2133,2141,2148,2155,2163,2170,2178,2186,2194,2202,2210,2218,2225,2233,2240,2247,2255,2263,2270,2277,2285],{"type":43,"tag":171,"props":2118,"children":2119},{"class":173,"line":174},[2120],{"type":43,"tag":171,"props":2121,"children":2122},{},[2123],{"type":49,"value":2124},"func findExampleByID(ctx context.Context, conn *example.Client, id string) (*example.Example, error) {\n",{"type":43,"tag":171,"props":2126,"children":2127},{"class":173,"line":183},[2128],{"type":43,"tag":171,"props":2129,"children":2130},{},[2131],{"type":49,"value":2132},"    input := &example.GetExampleInput{\n",{"type":43,"tag":171,"props":2134,"children":2135},{"class":173,"line":192},[2136],{"type":43,"tag":171,"props":2137,"children":2138},{},[2139],{"type":49,"value":2140},"        Id: &id,\n",{"type":43,"tag":171,"props":2142,"children":2143},{"class":173,"line":201},[2144],{"type":43,"tag":171,"props":2145,"children":2146},{},[2147],{"type":49,"value":420},{"type":43,"tag":171,"props":2149,"children":2150},{"class":173,"line":210},[2151],{"type":43,"tag":171,"props":2152,"children":2153},{"emptyLinePlaceholder":232},[2154],{"type":49,"value":235},{"type":43,"tag":171,"props":2156,"children":2157},{"class":173,"line":219},[2158],{"type":43,"tag":171,"props":2159,"children":2160},{},[2161],{"type":49,"value":2162},"    output, err := conn.GetExample(ctx, input)\n",{"type":43,"tag":171,"props":2164,"children":2165},{"class":173,"line":228},[2166],{"type":43,"tag":171,"props":2167,"children":2168},{},[2169],{"type":49,"value":804},{"type":43,"tag":171,"props":2171,"children":2172},{"class":173,"line":238},[2173],{"type":43,"tag":171,"props":2174,"children":2175},{},[2176],{"type":49,"value":2177},"        var notFound *types.ResourceNotFoundException\n",{"type":43,"tag":171,"props":2179,"children":2180},{"class":173,"line":247},[2181],{"type":43,"tag":171,"props":2182,"children":2183},{},[2184],{"type":49,"value":2185},"        if errors.As(err, &notFound) {\n",{"type":43,"tag":171,"props":2187,"children":2188},{"class":173,"line":256},[2189],{"type":43,"tag":171,"props":2190,"children":2191},{},[2192],{"type":49,"value":2193},"            return nil, &retry.NotFoundError{\n",{"type":43,"tag":171,"props":2195,"children":2196},{"class":173,"line":265},[2197],{"type":43,"tag":171,"props":2198,"children":2199},{},[2200],{"type":49,"value":2201},"                LastError:   err,\n",{"type":43,"tag":171,"props":2203,"children":2204},{"class":173,"line":273},[2205],{"type":43,"tag":171,"props":2206,"children":2207},{},[2208],{"type":49,"value":2209},"                LastRequest: input,\n",{"type":43,"tag":171,"props":2211,"children":2212},{"class":173,"line":282},[2213],{"type":43,"tag":171,"props":2214,"children":2215},{},[2216],{"type":49,"value":2217},"            }\n",{"type":43,"tag":171,"props":2219,"children":2220},{"class":173,"line":291},[2221],{"type":43,"tag":171,"props":2222,"children":2223},{},[2224],{"type":49,"value":1264},{"type":43,"tag":171,"props":2226,"children":2227},{"class":173,"line":300},[2228],{"type":43,"tag":171,"props":2229,"children":2230},{},[2231],{"type":49,"value":2232},"        return nil, err\n",{"type":43,"tag":171,"props":2234,"children":2235},{"class":173,"line":309},[2236],{"type":43,"tag":171,"props":2237,"children":2238},{},[2239],{"type":49,"value":420},{"type":43,"tag":171,"props":2241,"children":2242},{"class":173,"line":318},[2243],{"type":43,"tag":171,"props":2244,"children":2245},{"emptyLinePlaceholder":232},[2246],{"type":49,"value":235},{"type":43,"tag":171,"props":2248,"children":2249},{"class":173,"line":327},[2250],{"type":43,"tag":171,"props":2251,"children":2252},{},[2253],{"type":49,"value":2254},"    if output == nil || output.Example == nil {\n",{"type":43,"tag":171,"props":2256,"children":2257},{"class":173,"line":336},[2258],{"type":43,"tag":171,"props":2259,"children":2260},{},[2261],{"type":49,"value":2262},"        return nil, tfresource.NewEmptyResultError(input)\n",{"type":43,"tag":171,"props":2264,"children":2265},{"class":173,"line":345},[2266],{"type":43,"tag":171,"props":2267,"children":2268},{},[2269],{"type":49,"value":420},{"type":43,"tag":171,"props":2271,"children":2272},{"class":173,"line":354},[2273],{"type":43,"tag":171,"props":2274,"children":2275},{"emptyLinePlaceholder":232},[2276],{"type":49,"value":235},{"type":43,"tag":171,"props":2278,"children":2279},{"class":173,"line":363},[2280],{"type":43,"tag":171,"props":2281,"children":2282},{},[2283],{"type":49,"value":2284},"    return output.Example, nil\n",{"type":43,"tag":171,"props":2286,"children":2287},{"class":173,"line":371},[2288],{"type":43,"tag":171,"props":2289,"children":2290},{},[2291],{"type":49,"value":429},{"type":43,"tag":155,"props":2293,"children":2295},{"id":2294},"waiting-for-resource-states",[2296],{"type":49,"value":2297},"Waiting for Resource States",{"type":43,"tag":122,"props":2299,"children":2301},{"className":163,"code":2300,"language":165,"meta":131,"style":131},"func waitExampleCreated(ctx context.Context, conn *example.Client, id string, timeout time.Duration) (*example.Example, error) {\n    stateConf := &retry.StateChangeConf{\n        Pending: []string{\"CREATING\", \"PENDING\"},\n        Target:  []string{\"ACTIVE\", \"AVAILABLE\"},\n        Refresh: statusExample(ctx, conn, id),\n        Timeout: timeout,\n    }\n\n    outputRaw, err := stateConf.WaitForStateContext(ctx)\n    if output, ok := outputRaw.(*example.Example); ok {\n        return output, err\n    }\n\n    return nil, err\n}\n\nfunc statusExample(ctx context.Context, conn *example.Client, id string) retry.StateRefreshFunc {\n    return func() (interface{}, string, error) {\n        output, err := findExampleByID(ctx, conn, id)\n        if tfresource.NotFound(err) {\n            return nil, \"\", nil\n        }\n        if err != nil {\n            return nil, \"\", err\n        }\n        return output, string(output.Status), nil\n    }\n}\n",[2302],{"type":43,"tag":129,"props":2303,"children":2304},{"__ignoreMap":131},[2305,2313,2321,2329,2337,2345,2353,2360,2367,2375,2383,2391,2398,2405,2413,2420,2427,2435,2443,2451,2459,2467,2474,2481,2489,2496,2504,2511],{"type":43,"tag":171,"props":2306,"children":2307},{"class":173,"line":174},[2308],{"type":43,"tag":171,"props":2309,"children":2310},{},[2311],{"type":49,"value":2312},"func waitExampleCreated(ctx context.Context, conn *example.Client, id string, timeout time.Duration) (*example.Example, error) {\n",{"type":43,"tag":171,"props":2314,"children":2315},{"class":173,"line":183},[2316],{"type":43,"tag":171,"props":2317,"children":2318},{},[2319],{"type":49,"value":2320},"    stateConf := &retry.StateChangeConf{\n",{"type":43,"tag":171,"props":2322,"children":2323},{"class":173,"line":192},[2324],{"type":43,"tag":171,"props":2325,"children":2326},{},[2327],{"type":49,"value":2328},"        Pending: []string{\"CREATING\", \"PENDING\"},\n",{"type":43,"tag":171,"props":2330,"children":2331},{"class":173,"line":201},[2332],{"type":43,"tag":171,"props":2333,"children":2334},{},[2335],{"type":49,"value":2336},"        Target:  []string{\"ACTIVE\", \"AVAILABLE\"},\n",{"type":43,"tag":171,"props":2338,"children":2339},{"class":173,"line":210},[2340],{"type":43,"tag":171,"props":2341,"children":2342},{},[2343],{"type":49,"value":2344},"        Refresh: statusExample(ctx, conn, id),\n",{"type":43,"tag":171,"props":2346,"children":2347},{"class":173,"line":219},[2348],{"type":43,"tag":171,"props":2349,"children":2350},{},[2351],{"type":49,"value":2352},"        Timeout: timeout,\n",{"type":43,"tag":171,"props":2354,"children":2355},{"class":173,"line":228},[2356],{"type":43,"tag":171,"props":2357,"children":2358},{},[2359],{"type":49,"value":420},{"type":43,"tag":171,"props":2361,"children":2362},{"class":173,"line":238},[2363],{"type":43,"tag":171,"props":2364,"children":2365},{"emptyLinePlaceholder":232},[2366],{"type":49,"value":235},{"type":43,"tag":171,"props":2368,"children":2369},{"class":173,"line":247},[2370],{"type":43,"tag":171,"props":2371,"children":2372},{},[2373],{"type":49,"value":2374},"    outputRaw, err := stateConf.WaitForStateContext(ctx)\n",{"type":43,"tag":171,"props":2376,"children":2377},{"class":173,"line":256},[2378],{"type":43,"tag":171,"props":2379,"children":2380},{},[2381],{"type":49,"value":2382},"    if output, ok := outputRaw.(*example.Example); ok {\n",{"type":43,"tag":171,"props":2384,"children":2385},{"class":173,"line":265},[2386],{"type":43,"tag":171,"props":2387,"children":2388},{},[2389],{"type":49,"value":2390},"        return output, err\n",{"type":43,"tag":171,"props":2392,"children":2393},{"class":173,"line":273},[2394],{"type":43,"tag":171,"props":2395,"children":2396},{},[2397],{"type":49,"value":420},{"type":43,"tag":171,"props":2399,"children":2400},{"class":173,"line":282},[2401],{"type":43,"tag":171,"props":2402,"children":2403},{"emptyLinePlaceholder":232},[2404],{"type":49,"value":235},{"type":43,"tag":171,"props":2406,"children":2407},{"class":173,"line":291},[2408],{"type":43,"tag":171,"props":2409,"children":2410},{},[2411],{"type":49,"value":2412},"    return nil, err\n",{"type":43,"tag":171,"props":2414,"children":2415},{"class":173,"line":300},[2416],{"type":43,"tag":171,"props":2417,"children":2418},{},[2419],{"type":49,"value":429},{"type":43,"tag":171,"props":2421,"children":2422},{"class":173,"line":309},[2423],{"type":43,"tag":171,"props":2424,"children":2425},{"emptyLinePlaceholder":232},[2426],{"type":49,"value":235},{"type":43,"tag":171,"props":2428,"children":2429},{"class":173,"line":318},[2430],{"type":43,"tag":171,"props":2431,"children":2432},{},[2433],{"type":49,"value":2434},"func statusExample(ctx context.Context, conn *example.Client, id string) retry.StateRefreshFunc {\n",{"type":43,"tag":171,"props":2436,"children":2437},{"class":173,"line":327},[2438],{"type":43,"tag":171,"props":2439,"children":2440},{},[2441],{"type":49,"value":2442},"    return func() (interface{}, string, error) {\n",{"type":43,"tag":171,"props":2444,"children":2445},{"class":173,"line":336},[2446],{"type":43,"tag":171,"props":2447,"children":2448},{},[2449],{"type":49,"value":2450},"        output, err := findExampleByID(ctx, conn, id)\n",{"type":43,"tag":171,"props":2452,"children":2453},{"class":173,"line":345},[2454],{"type":43,"tag":171,"props":2455,"children":2456},{},[2457],{"type":49,"value":2458},"        if tfresource.NotFound(err) {\n",{"type":43,"tag":171,"props":2460,"children":2461},{"class":173,"line":354},[2462],{"type":43,"tag":171,"props":2463,"children":2464},{},[2465],{"type":49,"value":2466},"            return nil, \"\", nil\n",{"type":43,"tag":171,"props":2468,"children":2469},{"class":173,"line":363},[2470],{"type":43,"tag":171,"props":2471,"children":2472},{},[2473],{"type":49,"value":1264},{"type":43,"tag":171,"props":2475,"children":2476},{"class":173,"line":371},[2477],{"type":43,"tag":171,"props":2478,"children":2479},{},[2480],{"type":49,"value":1287},{"type":43,"tag":171,"props":2482,"children":2483},{"class":173,"line":380},[2484],{"type":43,"tag":171,"props":2485,"children":2486},{},[2487],{"type":49,"value":2488},"            return nil, \"\", err\n",{"type":43,"tag":171,"props":2490,"children":2491},{"class":173,"line":389},[2492],{"type":43,"tag":171,"props":2493,"children":2494},{},[2495],{"type":49,"value":1264},{"type":43,"tag":171,"props":2497,"children":2498},{"class":173,"line":397},[2499],{"type":43,"tag":171,"props":2500,"children":2501},{},[2502],{"type":49,"value":2503},"        return output, string(output.Status), nil\n",{"type":43,"tag":171,"props":2505,"children":2506},{"class":173,"line":405},[2507],{"type":43,"tag":171,"props":2508,"children":2509},{},[2510],{"type":49,"value":420},{"type":43,"tag":171,"props":2512,"children":2513},{"class":173,"line":414},[2514],{"type":43,"tag":171,"props":2515,"children":2516},{},[2517],{"type":49,"value":429},{"type":43,"tag":52,"props":2519,"children":2521},{"id":2520},"testing",[2522],{"type":49,"value":2523},"Testing",{"type":43,"tag":155,"props":2525,"children":2527},{"id":2526},"basic-acceptance-test",[2528],{"type":49,"value":2529},"Basic Acceptance Test",{"type":43,"tag":122,"props":2531,"children":2533},{"className":163,"code":2532,"language":165,"meta":131,"style":131},"func TestAccExampleResource_basic(t *testing.T) {\n    ctx := acctest.Context(t)\n    rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)\n    resourceName := \"provider_example.test\"\n\n    resource.ParallelTest(t, resource.TestCase{\n        PreCheck:                 func() { acctest.PreCheck(ctx, t) },\n        ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,\n        CheckDestroy:             testAccCheckExampleDestroy(ctx),\n        Steps: []resource.TestStep{\n            {\n                Config: testAccExampleConfig_basic(rName),\n                Check: resource.ComposeTestCheckFunc(\n                    testAccCheckExampleExists(ctx, resourceName),\n                    resource.TestCheckResourceAttr(resourceName, \"name\", rName),\n                    resource.TestCheckResourceAttrSet(resourceName, \"arn\"),\n                ),\n            },\n            {\n                ResourceName:      resourceName,\n                ImportState:       true,\n                ImportStateVerify: true,\n            },\n        },\n    })\n}\n",[2534],{"type":43,"tag":129,"props":2535,"children":2536},{"__ignoreMap":131},[2537,2545,2553,2561,2569,2576,2584,2592,2600,2608,2616,2624,2632,2640,2648,2656,2664,2672,2679,2686,2694,2702,2710,2717,2724,2731],{"type":43,"tag":171,"props":2538,"children":2539},{"class":173,"line":174},[2540],{"type":43,"tag":171,"props":2541,"children":2542},{},[2543],{"type":49,"value":2544},"func TestAccExampleResource_basic(t *testing.T) {\n",{"type":43,"tag":171,"props":2546,"children":2547},{"class":173,"line":183},[2548],{"type":43,"tag":171,"props":2549,"children":2550},{},[2551],{"type":49,"value":2552},"    ctx := acctest.Context(t)\n",{"type":43,"tag":171,"props":2554,"children":2555},{"class":173,"line":192},[2556],{"type":43,"tag":171,"props":2557,"children":2558},{},[2559],{"type":49,"value":2560},"    rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)\n",{"type":43,"tag":171,"props":2562,"children":2563},{"class":173,"line":201},[2564],{"type":43,"tag":171,"props":2565,"children":2566},{},[2567],{"type":49,"value":2568},"    resourceName := \"provider_example.test\"\n",{"type":43,"tag":171,"props":2570,"children":2571},{"class":173,"line":210},[2572],{"type":43,"tag":171,"props":2573,"children":2574},{"emptyLinePlaceholder":232},[2575],{"type":49,"value":235},{"type":43,"tag":171,"props":2577,"children":2578},{"class":173,"line":219},[2579],{"type":43,"tag":171,"props":2580,"children":2581},{},[2582],{"type":49,"value":2583},"    resource.ParallelTest(t, resource.TestCase{\n",{"type":43,"tag":171,"props":2585,"children":2586},{"class":173,"line":228},[2587],{"type":43,"tag":171,"props":2588,"children":2589},{},[2590],{"type":49,"value":2591},"        PreCheck:                 func() { acctest.PreCheck(ctx, t) },\n",{"type":43,"tag":171,"props":2593,"children":2594},{"class":173,"line":238},[2595],{"type":43,"tag":171,"props":2596,"children":2597},{},[2598],{"type":49,"value":2599},"        ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,\n",{"type":43,"tag":171,"props":2601,"children":2602},{"class":173,"line":247},[2603],{"type":43,"tag":171,"props":2604,"children":2605},{},[2606],{"type":49,"value":2607},"        CheckDestroy:             testAccCheckExampleDestroy(ctx),\n",{"type":43,"tag":171,"props":2609,"children":2610},{"class":173,"line":256},[2611],{"type":43,"tag":171,"props":2612,"children":2613},{},[2614],{"type":49,"value":2615},"        Steps: []resource.TestStep{\n",{"type":43,"tag":171,"props":2617,"children":2618},{"class":173,"line":265},[2619],{"type":43,"tag":171,"props":2620,"children":2621},{},[2622],{"type":49,"value":2623},"            {\n",{"type":43,"tag":171,"props":2625,"children":2626},{"class":173,"line":273},[2627],{"type":43,"tag":171,"props":2628,"children":2629},{},[2630],{"type":49,"value":2631},"                Config: testAccExampleConfig_basic(rName),\n",{"type":43,"tag":171,"props":2633,"children":2634},{"class":173,"line":282},[2635],{"type":43,"tag":171,"props":2636,"children":2637},{},[2638],{"type":49,"value":2639},"                Check: resource.ComposeTestCheckFunc(\n",{"type":43,"tag":171,"props":2641,"children":2642},{"class":173,"line":291},[2643],{"type":43,"tag":171,"props":2644,"children":2645},{},[2646],{"type":49,"value":2647},"                    testAccCheckExampleExists(ctx, resourceName),\n",{"type":43,"tag":171,"props":2649,"children":2650},{"class":173,"line":300},[2651],{"type":43,"tag":171,"props":2652,"children":2653},{},[2654],{"type":49,"value":2655},"                    resource.TestCheckResourceAttr(resourceName, \"name\", rName),\n",{"type":43,"tag":171,"props":2657,"children":2658},{"class":173,"line":309},[2659],{"type":43,"tag":171,"props":2660,"children":2661},{},[2662],{"type":49,"value":2663},"                    resource.TestCheckResourceAttrSet(resourceName, \"arn\"),\n",{"type":43,"tag":171,"props":2665,"children":2666},{"class":173,"line":318},[2667],{"type":43,"tag":171,"props":2668,"children":2669},{},[2670],{"type":49,"value":2671},"                ),\n",{"type":43,"tag":171,"props":2673,"children":2674},{"class":173,"line":327},[2675],{"type":43,"tag":171,"props":2676,"children":2677},{},[2678],{"type":49,"value":333},{"type":43,"tag":171,"props":2680,"children":2681},{"class":173,"line":336},[2682],{"type":43,"tag":171,"props":2683,"children":2684},{},[2685],{"type":49,"value":2623},{"type":43,"tag":171,"props":2687,"children":2688},{"class":173,"line":345},[2689],{"type":43,"tag":171,"props":2690,"children":2691},{},[2692],{"type":49,"value":2693},"                ResourceName:      resourceName,\n",{"type":43,"tag":171,"props":2695,"children":2696},{"class":173,"line":354},[2697],{"type":43,"tag":171,"props":2698,"children":2699},{},[2700],{"type":49,"value":2701},"                ImportState:       true,\n",{"type":43,"tag":171,"props":2703,"children":2704},{"class":173,"line":363},[2705],{"type":43,"tag":171,"props":2706,"children":2707},{},[2708],{"type":49,"value":2709},"                ImportStateVerify: true,\n",{"type":43,"tag":171,"props":2711,"children":2712},{"class":173,"line":371},[2713],{"type":43,"tag":171,"props":2714,"children":2715},{},[2716],{"type":49,"value":333},{"type":43,"tag":171,"props":2718,"children":2719},{"class":173,"line":380},[2720],{"type":43,"tag":171,"props":2721,"children":2722},{},[2723],{"type":49,"value":262},{"type":43,"tag":171,"props":2725,"children":2726},{"class":173,"line":389},[2727],{"type":43,"tag":171,"props":2728,"children":2729},{},[2730],{"type":49,"value":1464},{"type":43,"tag":171,"props":2732,"children":2733},{"class":173,"line":397},[2734],{"type":43,"tag":171,"props":2735,"children":2736},{},[2737],{"type":49,"value":429},{"type":43,"tag":155,"props":2739,"children":2741},{"id":2740},"disappears-test",[2742],{"type":49,"value":2743},"Disappears Test",{"type":43,"tag":122,"props":2745,"children":2747},{"className":163,"code":2746,"language":165,"meta":131,"style":131},"func TestAccExampleResource_disappears(t *testing.T) {\n    ctx := acctest.Context(t)\n    rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)\n    resourceName := \"provider_example.test\"\n\n    resource.ParallelTest(t, resource.TestCase{\n        PreCheck:                 func() { acctest.PreCheck(ctx, t) },\n        ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,\n        CheckDestroy:             testAccCheckExampleDestroy(ctx),\n        Steps: []resource.TestStep{\n            {\n                Config: testAccExampleConfig_basic(rName),\n                Check: resource.ComposeTestCheckFunc(\n                    testAccCheckExampleExists(ctx, resourceName),\n                    acctest.CheckResourceDisappears(ctx, acctest.Provider, ResourceExample(), resourceName),\n                ),\n                ExpectNonEmptyPlan: true,\n            },\n        },\n    })\n}\n",[2748],{"type":43,"tag":129,"props":2749,"children":2750},{"__ignoreMap":131},[2751,2759,2766,2773,2780,2787,2794,2801,2808,2815,2822,2829,2836,2843,2850,2858,2865,2873,2880,2887,2894],{"type":43,"tag":171,"props":2752,"children":2753},{"class":173,"line":174},[2754],{"type":43,"tag":171,"props":2755,"children":2756},{},[2757],{"type":49,"value":2758},"func TestAccExampleResource_disappears(t *testing.T) {\n",{"type":43,"tag":171,"props":2760,"children":2761},{"class":173,"line":183},[2762],{"type":43,"tag":171,"props":2763,"children":2764},{},[2765],{"type":49,"value":2552},{"type":43,"tag":171,"props":2767,"children":2768},{"class":173,"line":192},[2769],{"type":43,"tag":171,"props":2770,"children":2771},{},[2772],{"type":49,"value":2560},{"type":43,"tag":171,"props":2774,"children":2775},{"class":173,"line":201},[2776],{"type":43,"tag":171,"props":2777,"children":2778},{},[2779],{"type":49,"value":2568},{"type":43,"tag":171,"props":2781,"children":2782},{"class":173,"line":210},[2783],{"type":43,"tag":171,"props":2784,"children":2785},{"emptyLinePlaceholder":232},[2786],{"type":49,"value":235},{"type":43,"tag":171,"props":2788,"children":2789},{"class":173,"line":219},[2790],{"type":43,"tag":171,"props":2791,"children":2792},{},[2793],{"type":49,"value":2583},{"type":43,"tag":171,"props":2795,"children":2796},{"class":173,"line":228},[2797],{"type":43,"tag":171,"props":2798,"children":2799},{},[2800],{"type":49,"value":2591},{"type":43,"tag":171,"props":2802,"children":2803},{"class":173,"line":238},[2804],{"type":43,"tag":171,"props":2805,"children":2806},{},[2807],{"type":49,"value":2599},{"type":43,"tag":171,"props":2809,"children":2810},{"class":173,"line":247},[2811],{"type":43,"tag":171,"props":2812,"children":2813},{},[2814],{"type":49,"value":2607},{"type":43,"tag":171,"props":2816,"children":2817},{"class":173,"line":256},[2818],{"type":43,"tag":171,"props":2819,"children":2820},{},[2821],{"type":49,"value":2615},{"type":43,"tag":171,"props":2823,"children":2824},{"class":173,"line":265},[2825],{"type":43,"tag":171,"props":2826,"children":2827},{},[2828],{"type":49,"value":2623},{"type":43,"tag":171,"props":2830,"children":2831},{"class":173,"line":273},[2832],{"type":43,"tag":171,"props":2833,"children":2834},{},[2835],{"type":49,"value":2631},{"type":43,"tag":171,"props":2837,"children":2838},{"class":173,"line":282},[2839],{"type":43,"tag":171,"props":2840,"children":2841},{},[2842],{"type":49,"value":2639},{"type":43,"tag":171,"props":2844,"children":2845},{"class":173,"line":291},[2846],{"type":43,"tag":171,"props":2847,"children":2848},{},[2849],{"type":49,"value":2647},{"type":43,"tag":171,"props":2851,"children":2852},{"class":173,"line":300},[2853],{"type":43,"tag":171,"props":2854,"children":2855},{},[2856],{"type":49,"value":2857},"                    acctest.CheckResourceDisappears(ctx, acctest.Provider, ResourceExample(), resourceName),\n",{"type":43,"tag":171,"props":2859,"children":2860},{"class":173,"line":309},[2861],{"type":43,"tag":171,"props":2862,"children":2863},{},[2864],{"type":49,"value":2671},{"type":43,"tag":171,"props":2866,"children":2867},{"class":173,"line":318},[2868],{"type":43,"tag":171,"props":2869,"children":2870},{},[2871],{"type":49,"value":2872},"                ExpectNonEmptyPlan: true,\n",{"type":43,"tag":171,"props":2874,"children":2875},{"class":173,"line":327},[2876],{"type":43,"tag":171,"props":2877,"children":2878},{},[2879],{"type":49,"value":333},{"type":43,"tag":171,"props":2881,"children":2882},{"class":173,"line":336},[2883],{"type":43,"tag":171,"props":2884,"children":2885},{},[2886],{"type":49,"value":262},{"type":43,"tag":171,"props":2888,"children":2889},{"class":173,"line":345},[2890],{"type":43,"tag":171,"props":2891,"children":2892},{},[2893],{"type":49,"value":1464},{"type":43,"tag":171,"props":2895,"children":2896},{"class":173,"line":354},[2897],{"type":43,"tag":171,"props":2898,"children":2899},{},[2900],{"type":49,"value":429},{"type":43,"tag":155,"props":2902,"children":2904},{"id":2903},"test-helper-functions",[2905],{"type":49,"value":2906},"Test Helper Functions",{"type":43,"tag":122,"props":2908,"children":2910},{"className":163,"code":2909,"language":165,"meta":131,"style":131},"func testAccCheckExampleExists(ctx context.Context, name string) resource.TestCheckFunc {\n    return func(s *terraform.State) error {\n        rs, ok := s.RootModule().Resources[name]\n        if !ok {\n            return fmt.Errorf(\"Not found: %s\", name)\n        }\n\n        conn := acctest.Provider.Meta().(*conns.Client).ExampleClient(ctx)\n        _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n\n        return err\n    }\n}\n\nfunc testAccCheckExampleDestroy(ctx context.Context) resource.TestCheckFunc {\n    return func(s *terraform.State) error {\n        conn := acctest.Provider.Meta().(*conns.Client).ExampleClient(ctx)\n\n        for _, rs := range s.RootModule().Resources {\n            if rs.Type != \"provider_example\" {\n                continue\n            }\n\n            _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n            if tfresource.NotFound(err) {\n                continue\n            }\n            if err != nil {\n                return err\n            }\n\n            return fmt.Errorf(\"Example %s still exists\", rs.Primary.ID)\n        }\n\n        return nil\n    }\n}\n",[2911],{"type":43,"tag":129,"props":2912,"children":2913},{"__ignoreMap":131},[2914,2922,2930,2938,2946,2954,2961,2968,2976,2984,2991,2999,3006,3013,3020,3028,3035,3042,3049,3057,3065,3073,3080,3087,3095,3103,3110,3117,3125,3133,3140,3147,3156,3164,3172,3181,3189],{"type":43,"tag":171,"props":2915,"children":2916},{"class":173,"line":174},[2917],{"type":43,"tag":171,"props":2918,"children":2919},{},[2920],{"type":49,"value":2921},"func testAccCheckExampleExists(ctx context.Context, name string) resource.TestCheckFunc {\n",{"type":43,"tag":171,"props":2923,"children":2924},{"class":173,"line":183},[2925],{"type":43,"tag":171,"props":2926,"children":2927},{},[2928],{"type":49,"value":2929},"    return func(s *terraform.State) error {\n",{"type":43,"tag":171,"props":2931,"children":2932},{"class":173,"line":192},[2933],{"type":43,"tag":171,"props":2934,"children":2935},{},[2936],{"type":49,"value":2937},"        rs, ok := s.RootModule().Resources[name]\n",{"type":43,"tag":171,"props":2939,"children":2940},{"class":173,"line":201},[2941],{"type":43,"tag":171,"props":2942,"children":2943},{},[2944],{"type":49,"value":2945},"        if !ok {\n",{"type":43,"tag":171,"props":2947,"children":2948},{"class":173,"line":210},[2949],{"type":43,"tag":171,"props":2950,"children":2951},{},[2952],{"type":49,"value":2953},"            return fmt.Errorf(\"Not found: %s\", name)\n",{"type":43,"tag":171,"props":2955,"children":2956},{"class":173,"line":219},[2957],{"type":43,"tag":171,"props":2958,"children":2959},{},[2960],{"type":49,"value":1264},{"type":43,"tag":171,"props":2962,"children":2963},{"class":173,"line":228},[2964],{"type":43,"tag":171,"props":2965,"children":2966},{"emptyLinePlaceholder":232},[2967],{"type":49,"value":235},{"type":43,"tag":171,"props":2969,"children":2970},{"class":173,"line":238},[2971],{"type":43,"tag":171,"props":2972,"children":2973},{},[2974],{"type":49,"value":2975},"        conn := acctest.Provider.Meta().(*conns.Client).ExampleClient(ctx)\n",{"type":43,"tag":171,"props":2977,"children":2978},{"class":173,"line":247},[2979],{"type":43,"tag":171,"props":2980,"children":2981},{},[2982],{"type":49,"value":2983},"        _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n",{"type":43,"tag":171,"props":2985,"children":2986},{"class":173,"line":256},[2987],{"type":43,"tag":171,"props":2988,"children":2989},{"emptyLinePlaceholder":232},[2990],{"type":49,"value":235},{"type":43,"tag":171,"props":2992,"children":2993},{"class":173,"line":265},[2994],{"type":43,"tag":171,"props":2995,"children":2996},{},[2997],{"type":49,"value":2998},"        return err\n",{"type":43,"tag":171,"props":3000,"children":3001},{"class":173,"line":273},[3002],{"type":43,"tag":171,"props":3003,"children":3004},{},[3005],{"type":49,"value":420},{"type":43,"tag":171,"props":3007,"children":3008},{"class":173,"line":282},[3009],{"type":43,"tag":171,"props":3010,"children":3011},{},[3012],{"type":49,"value":429},{"type":43,"tag":171,"props":3014,"children":3015},{"class":173,"line":291},[3016],{"type":43,"tag":171,"props":3017,"children":3018},{"emptyLinePlaceholder":232},[3019],{"type":49,"value":235},{"type":43,"tag":171,"props":3021,"children":3022},{"class":173,"line":300},[3023],{"type":43,"tag":171,"props":3024,"children":3025},{},[3026],{"type":49,"value":3027},"func testAccCheckExampleDestroy(ctx context.Context) resource.TestCheckFunc {\n",{"type":43,"tag":171,"props":3029,"children":3030},{"class":173,"line":309},[3031],{"type":43,"tag":171,"props":3032,"children":3033},{},[3034],{"type":49,"value":2929},{"type":43,"tag":171,"props":3036,"children":3037},{"class":173,"line":318},[3038],{"type":43,"tag":171,"props":3039,"children":3040},{},[3041],{"type":49,"value":2975},{"type":43,"tag":171,"props":3043,"children":3044},{"class":173,"line":327},[3045],{"type":43,"tag":171,"props":3046,"children":3047},{"emptyLinePlaceholder":232},[3048],{"type":49,"value":235},{"type":43,"tag":171,"props":3050,"children":3051},{"class":173,"line":336},[3052],{"type":43,"tag":171,"props":3053,"children":3054},{},[3055],{"type":49,"value":3056},"        for _, rs := range s.RootModule().Resources {\n",{"type":43,"tag":171,"props":3058,"children":3059},{"class":173,"line":345},[3060],{"type":43,"tag":171,"props":3061,"children":3062},{},[3063],{"type":49,"value":3064},"            if rs.Type != \"provider_example\" {\n",{"type":43,"tag":171,"props":3066,"children":3067},{"class":173,"line":354},[3068],{"type":43,"tag":171,"props":3069,"children":3070},{},[3071],{"type":49,"value":3072},"                continue\n",{"type":43,"tag":171,"props":3074,"children":3075},{"class":173,"line":363},[3076],{"type":43,"tag":171,"props":3077,"children":3078},{},[3079],{"type":49,"value":2217},{"type":43,"tag":171,"props":3081,"children":3082},{"class":173,"line":371},[3083],{"type":43,"tag":171,"props":3084,"children":3085},{"emptyLinePlaceholder":232},[3086],{"type":49,"value":235},{"type":43,"tag":171,"props":3088,"children":3089},{"class":173,"line":380},[3090],{"type":43,"tag":171,"props":3091,"children":3092},{},[3093],{"type":49,"value":3094},"            _, err := findExampleByID(ctx, conn, rs.Primary.ID)\n",{"type":43,"tag":171,"props":3096,"children":3097},{"class":173,"line":389},[3098],{"type":43,"tag":171,"props":3099,"children":3100},{},[3101],{"type":49,"value":3102},"            if tfresource.NotFound(err) {\n",{"type":43,"tag":171,"props":3104,"children":3105},{"class":173,"line":397},[3106],{"type":43,"tag":171,"props":3107,"children":3108},{},[3109],{"type":49,"value":3072},{"type":43,"tag":171,"props":3111,"children":3112},{"class":173,"line":405},[3113],{"type":43,"tag":171,"props":3114,"children":3115},{},[3116],{"type":49,"value":2217},{"type":43,"tag":171,"props":3118,"children":3119},{"class":173,"line":414},[3120],{"type":43,"tag":171,"props":3121,"children":3122},{},[3123],{"type":49,"value":3124},"            if err != nil {\n",{"type":43,"tag":171,"props":3126,"children":3127},{"class":173,"line":423},[3128],{"type":43,"tag":171,"props":3129,"children":3130},{},[3131],{"type":49,"value":3132},"                return err\n",{"type":43,"tag":171,"props":3134,"children":3135},{"class":173,"line":665},[3136],{"type":43,"tag":171,"props":3137,"children":3138},{},[3139],{"type":49,"value":2217},{"type":43,"tag":171,"props":3141,"children":3142},{"class":173,"line":1132},[3143],{"type":43,"tag":171,"props":3144,"children":3145},{"emptyLinePlaceholder":232},[3146],{"type":49,"value":235},{"type":43,"tag":171,"props":3148,"children":3150},{"class":173,"line":3149},32,[3151],{"type":43,"tag":171,"props":3152,"children":3153},{},[3154],{"type":49,"value":3155},"            return fmt.Errorf(\"Example %s still exists\", rs.Primary.ID)\n",{"type":43,"tag":171,"props":3157,"children":3159},{"class":173,"line":3158},33,[3160],{"type":43,"tag":171,"props":3161,"children":3162},{},[3163],{"type":49,"value":1264},{"type":43,"tag":171,"props":3165,"children":3167},{"class":173,"line":3166},34,[3168],{"type":43,"tag":171,"props":3169,"children":3170},{"emptyLinePlaceholder":232},[3171],{"type":49,"value":235},{"type":43,"tag":171,"props":3173,"children":3175},{"class":173,"line":3174},35,[3176],{"type":43,"tag":171,"props":3177,"children":3178},{},[3179],{"type":49,"value":3180},"        return nil\n",{"type":43,"tag":171,"props":3182,"children":3184},{"class":173,"line":3183},36,[3185],{"type":43,"tag":171,"props":3186,"children":3187},{},[3188],{"type":49,"value":420},{"type":43,"tag":171,"props":3190,"children":3192},{"class":173,"line":3191},37,[3193],{"type":43,"tag":171,"props":3194,"children":3195},{},[3196],{"type":49,"value":429},{"type":43,"tag":155,"props":3198,"children":3200},{"id":3199},"running-tests",[3201],{"type":49,"value":3202},"Running Tests",{"type":43,"tag":122,"props":3204,"children":3208},{"className":3205,"code":3206,"language":3207,"meta":131,"style":131},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Compile tests\ngo test -c -o \u002Fdev\u002Fnull .\u002Finternal\u002Fservice\u002F\u003Cservice>\n\n# Run acceptance tests\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -run TestAccExample -v -timeout 60m\n\n# Run with specific provider version\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -run TestAccExample -v\n\n# Run sweeper to clean up\nTF_ACC=1 go test .\u002Finternal\u002Fservice\u002F\u003Cservice> -sweep=\u003Cregion> -v\n","bash",[3209],{"type":43,"tag":129,"props":3210,"children":3211},{"__ignoreMap":131},[3212,3221,3277,3284,3292,3365,3372,3380,3436,3443,3451],{"type":43,"tag":171,"props":3213,"children":3214},{"class":173,"line":174},[3215],{"type":43,"tag":171,"props":3216,"children":3218},{"style":3217},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3219],{"type":49,"value":3220},"# Compile tests\n",{"type":43,"tag":171,"props":3222,"children":3223},{"class":173,"line":183},[3224,3229,3235,3240,3245,3250,3255,3261,3266,3272],{"type":43,"tag":171,"props":3225,"children":3227},{"style":3226},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[3228],{"type":49,"value":165},{"type":43,"tag":171,"props":3230,"children":3232},{"style":3231},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[3233],{"type":49,"value":3234}," test",{"type":43,"tag":171,"props":3236,"children":3237},{"style":3231},[3238],{"type":49,"value":3239}," -c",{"type":43,"tag":171,"props":3241,"children":3242},{"style":3231},[3243],{"type":49,"value":3244}," -o",{"type":43,"tag":171,"props":3246,"children":3247},{"style":3231},[3248],{"type":49,"value":3249}," \u002Fdev\u002Fnull",{"type":43,"tag":171,"props":3251,"children":3252},{"style":3231},[3253],{"type":49,"value":3254}," .\u002Finternal\u002Fservice\u002F",{"type":43,"tag":171,"props":3256,"children":3258},{"style":3257},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[3259],{"type":49,"value":3260},"\u003C",{"type":43,"tag":171,"props":3262,"children":3263},{"style":3231},[3264],{"type":49,"value":3265},"servic",{"type":43,"tag":171,"props":3267,"children":3269},{"style":3268},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[3270],{"type":49,"value":3271},"e",{"type":43,"tag":171,"props":3273,"children":3274},{"style":3257},[3275],{"type":49,"value":3276},">\n",{"type":43,"tag":171,"props":3278,"children":3279},{"class":173,"line":192},[3280],{"type":43,"tag":171,"props":3281,"children":3282},{"emptyLinePlaceholder":232},[3283],{"type":49,"value":235},{"type":43,"tag":171,"props":3285,"children":3286},{"class":173,"line":201},[3287],{"type":43,"tag":171,"props":3288,"children":3289},{"style":3217},[3290],{"type":49,"value":3291},"# Run acceptance tests\n",{"type":43,"tag":171,"props":3293,"children":3294},{"class":173,"line":210},[3295,3300,3305,3310,3315,3319,3323,3327,3331,3335,3340,3345,3350,3355,3360],{"type":43,"tag":171,"props":3296,"children":3297},{"style":3268},[3298],{"type":49,"value":3299},"TF_ACC",{"type":43,"tag":171,"props":3301,"children":3302},{"style":3257},[3303],{"type":49,"value":3304},"=",{"type":43,"tag":171,"props":3306,"children":3307},{"style":3231},[3308],{"type":49,"value":3309},"1",{"type":43,"tag":171,"props":3311,"children":3312},{"style":3226},[3313],{"type":49,"value":3314}," go",{"type":43,"tag":171,"props":3316,"children":3317},{"style":3231},[3318],{"type":49,"value":3234},{"type":43,"tag":171,"props":3320,"children":3321},{"style":3231},[3322],{"type":49,"value":3254},{"type":43,"tag":171,"props":3324,"children":3325},{"style":3257},[3326],{"type":49,"value":3260},{"type":43,"tag":171,"props":3328,"children":3329},{"style":3231},[3330],{"type":49,"value":3265},{"type":43,"tag":171,"props":3332,"children":3333},{"style":3268},[3334],{"type":49,"value":3271},{"type":43,"tag":171,"props":3336,"children":3337},{"style":3257},[3338],{"type":49,"value":3339},">",{"type":43,"tag":171,"props":3341,"children":3342},{"style":3231},[3343],{"type":49,"value":3344}," -run",{"type":43,"tag":171,"props":3346,"children":3347},{"style":3231},[3348],{"type":49,"value":3349}," TestAccExample",{"type":43,"tag":171,"props":3351,"children":3352},{"style":3231},[3353],{"type":49,"value":3354}," -v",{"type":43,"tag":171,"props":3356,"children":3357},{"style":3231},[3358],{"type":49,"value":3359}," -timeout",{"type":43,"tag":171,"props":3361,"children":3362},{"style":3231},[3363],{"type":49,"value":3364}," 60m\n",{"type":43,"tag":171,"props":3366,"children":3367},{"class":173,"line":219},[3368],{"type":43,"tag":171,"props":3369,"children":3370},{"emptyLinePlaceholder":232},[3371],{"type":49,"value":235},{"type":43,"tag":171,"props":3373,"children":3374},{"class":173,"line":228},[3375],{"type":43,"tag":171,"props":3376,"children":3377},{"style":3217},[3378],{"type":49,"value":3379},"# Run with specific provider version\n",{"type":43,"tag":171,"props":3381,"children":3382},{"class":173,"line":238},[3383,3387,3391,3395,3399,3403,3407,3411,3415,3419,3423,3427,3431],{"type":43,"tag":171,"props":3384,"children":3385},{"style":3268},[3386],{"type":49,"value":3299},{"type":43,"tag":171,"props":3388,"children":3389},{"style":3257},[3390],{"type":49,"value":3304},{"type":43,"tag":171,"props":3392,"children":3393},{"style":3231},[3394],{"type":49,"value":3309},{"type":43,"tag":171,"props":3396,"children":3397},{"style":3226},[3398],{"type":49,"value":3314},{"type":43,"tag":171,"props":3400,"children":3401},{"style":3231},[3402],{"type":49,"value":3234},{"type":43,"tag":171,"props":3404,"children":3405},{"style":3231},[3406],{"type":49,"value":3254},{"type":43,"tag":171,"props":3408,"children":3409},{"style":3257},[3410],{"type":49,"value":3260},{"type":43,"tag":171,"props":3412,"children":3413},{"style":3231},[3414],{"type":49,"value":3265},{"type":43,"tag":171,"props":3416,"children":3417},{"style":3268},[3418],{"type":49,"value":3271},{"type":43,"tag":171,"props":3420,"children":3421},{"style":3257},[3422],{"type":49,"value":3339},{"type":43,"tag":171,"props":3424,"children":3425},{"style":3231},[3426],{"type":49,"value":3344},{"type":43,"tag":171,"props":3428,"children":3429},{"style":3231},[3430],{"type":49,"value":3349},{"type":43,"tag":171,"props":3432,"children":3433},{"style":3231},[3434],{"type":49,"value":3435}," -v\n",{"type":43,"tag":171,"props":3437,"children":3438},{"class":173,"line":247},[3439],{"type":43,"tag":171,"props":3440,"children":3441},{"emptyLinePlaceholder":232},[3442],{"type":49,"value":235},{"type":43,"tag":171,"props":3444,"children":3445},{"class":173,"line":256},[3446],{"type":43,"tag":171,"props":3447,"children":3448},{"style":3217},[3449],{"type":49,"value":3450},"# Run sweeper to clean up\n",{"type":43,"tag":171,"props":3452,"children":3453},{"class":173,"line":265},[3454,3458,3462,3466,3470,3474,3478,3482,3486,3490,3494,3499,3503,3508,3512],{"type":43,"tag":171,"props":3455,"children":3456},{"style":3268},[3457],{"type":49,"value":3299},{"type":43,"tag":171,"props":3459,"children":3460},{"style":3257},[3461],{"type":49,"value":3304},{"type":43,"tag":171,"props":3463,"children":3464},{"style":3231},[3465],{"type":49,"value":3309},{"type":43,"tag":171,"props":3467,"children":3468},{"style":3226},[3469],{"type":49,"value":3314},{"type":43,"tag":171,"props":3471,"children":3472},{"style":3231},[3473],{"type":49,"value":3234},{"type":43,"tag":171,"props":3475,"children":3476},{"style":3231},[3477],{"type":49,"value":3254},{"type":43,"tag":171,"props":3479,"children":3480},{"style":3257},[3481],{"type":49,"value":3260},{"type":43,"tag":171,"props":3483,"children":3484},{"style":3231},[3485],{"type":49,"value":3265},{"type":43,"tag":171,"props":3487,"children":3488},{"style":3268},[3489],{"type":49,"value":3271},{"type":43,"tag":171,"props":3491,"children":3492},{"style":3257},[3493],{"type":49,"value":3339},{"type":43,"tag":171,"props":3495,"children":3496},{"style":3231},[3497],{"type":49,"value":3498}," -sweep=",{"type":43,"tag":171,"props":3500,"children":3501},{"style":3257},[3502],{"type":49,"value":3260},{"type":43,"tag":171,"props":3504,"children":3505},{"style":3231},[3506],{"type":49,"value":3507},"region",{"type":43,"tag":171,"props":3509,"children":3510},{"style":3257},[3511],{"type":49,"value":3339},{"type":43,"tag":171,"props":3513,"children":3514},{"style":3231},[3515],{"type":49,"value":3435},{"type":43,"tag":52,"props":3517,"children":3519},{"id":3518},"error-handling",[3520],{"type":49,"value":3521},"Error Handling",{"type":43,"tag":155,"props":3523,"children":3525},{"id":3524},"common-error-patterns",[3526],{"type":49,"value":3527},"Common Error Patterns",{"type":43,"tag":122,"props":3529,"children":3531},{"className":163,"code":3530,"language":165,"meta":131,"style":131},"\u002F\u002F Handle specific API errors\nvar notFound *types.ResourceNotFoundException\nif errors.As(err, &notFound) {\n    \u002F\u002F Resource doesn't exist\n}\n\nvar conflict *types.ConflictException\nif errors.As(err, &conflict) {\n    \u002F\u002F Resource state conflict\n}\n\nvar throttle *types.ThrottlingException\nif errors.As(err, &throttle) {\n    \u002F\u002F Rate limited - SDK handles retry\n}\n",[3532],{"type":43,"tag":129,"props":3533,"children":3534},{"__ignoreMap":131},[3535,3543,3551,3559,3567,3574,3581,3589,3597,3605,3612,3619,3627,3635,3643],{"type":43,"tag":171,"props":3536,"children":3537},{"class":173,"line":174},[3538],{"type":43,"tag":171,"props":3539,"children":3540},{},[3541],{"type":49,"value":3542},"\u002F\u002F Handle specific API errors\n",{"type":43,"tag":171,"props":3544,"children":3545},{"class":173,"line":183},[3546],{"type":43,"tag":171,"props":3547,"children":3548},{},[3549],{"type":49,"value":3550},"var notFound *types.ResourceNotFoundException\n",{"type":43,"tag":171,"props":3552,"children":3553},{"class":173,"line":192},[3554],{"type":43,"tag":171,"props":3555,"children":3556},{},[3557],{"type":49,"value":3558},"if errors.As(err, &notFound) {\n",{"type":43,"tag":171,"props":3560,"children":3561},{"class":173,"line":201},[3562],{"type":43,"tag":171,"props":3563,"children":3564},{},[3565],{"type":49,"value":3566},"    \u002F\u002F Resource doesn't exist\n",{"type":43,"tag":171,"props":3568,"children":3569},{"class":173,"line":210},[3570],{"type":43,"tag":171,"props":3571,"children":3572},{},[3573],{"type":49,"value":429},{"type":43,"tag":171,"props":3575,"children":3576},{"class":173,"line":219},[3577],{"type":43,"tag":171,"props":3578,"children":3579},{"emptyLinePlaceholder":232},[3580],{"type":49,"value":235},{"type":43,"tag":171,"props":3582,"children":3583},{"class":173,"line":228},[3584],{"type":43,"tag":171,"props":3585,"children":3586},{},[3587],{"type":49,"value":3588},"var conflict *types.ConflictException\n",{"type":43,"tag":171,"props":3590,"children":3591},{"class":173,"line":238},[3592],{"type":43,"tag":171,"props":3593,"children":3594},{},[3595],{"type":49,"value":3596},"if errors.As(err, &conflict) {\n",{"type":43,"tag":171,"props":3598,"children":3599},{"class":173,"line":247},[3600],{"type":43,"tag":171,"props":3601,"children":3602},{},[3603],{"type":49,"value":3604},"    \u002F\u002F Resource state conflict\n",{"type":43,"tag":171,"props":3606,"children":3607},{"class":173,"line":256},[3608],{"type":43,"tag":171,"props":3609,"children":3610},{},[3611],{"type":49,"value":429},{"type":43,"tag":171,"props":3613,"children":3614},{"class":173,"line":265},[3615],{"type":43,"tag":171,"props":3616,"children":3617},{"emptyLinePlaceholder":232},[3618],{"type":49,"value":235},{"type":43,"tag":171,"props":3620,"children":3621},{"class":173,"line":273},[3622],{"type":43,"tag":171,"props":3623,"children":3624},{},[3625],{"type":49,"value":3626},"var throttle *types.ThrottlingException\n",{"type":43,"tag":171,"props":3628,"children":3629},{"class":173,"line":282},[3630],{"type":43,"tag":171,"props":3631,"children":3632},{},[3633],{"type":49,"value":3634},"if errors.As(err, &throttle) {\n",{"type":43,"tag":171,"props":3636,"children":3637},{"class":173,"line":291},[3638],{"type":43,"tag":171,"props":3639,"children":3640},{},[3641],{"type":49,"value":3642},"    \u002F\u002F Rate limited - SDK handles retry\n",{"type":43,"tag":171,"props":3644,"children":3645},{"class":173,"line":300},[3646],{"type":43,"tag":171,"props":3647,"children":3648},{},[3649],{"type":49,"value":429},{"type":43,"tag":155,"props":3651,"children":3653},{"id":3652},"diagnostics",[3654],{"type":49,"value":3655},"Diagnostics",{"type":43,"tag":122,"props":3657,"children":3659},{"className":163,"code":3658,"language":165,"meta":131,"style":131},"\u002F\u002F Add error\nresp.Diagnostics.AddError(\n    \"Error creating resource\",\n    fmt.Sprintf(\"Could not create resource: %s\", err),\n)\n\n\u002F\u002F Add warning\nresp.Diagnostics.AddWarning(\n    \"Resource modified outside Terraform\",\n    \"Resource was modified outside of Terraform, state may be inconsistent\",\n)\n\n\u002F\u002F Add attribute error\nresp.Diagnostics.AddAttributeError(\n    path.Root(\"name\"),\n    \"Invalid name\",\n    \"Name must be lowercase alphanumeric\",\n)\n",[3660],{"type":43,"tag":129,"props":3661,"children":3662},{"__ignoreMap":131},[3663,3671,3679,3687,3695,3702,3709,3717,3725,3733,3741,3748,3755,3763,3771,3779,3787,3795],{"type":43,"tag":171,"props":3664,"children":3665},{"class":173,"line":174},[3666],{"type":43,"tag":171,"props":3667,"children":3668},{},[3669],{"type":49,"value":3670},"\u002F\u002F Add error\n",{"type":43,"tag":171,"props":3672,"children":3673},{"class":173,"line":183},[3674],{"type":43,"tag":171,"props":3675,"children":3676},{},[3677],{"type":49,"value":3678},"resp.Diagnostics.AddError(\n",{"type":43,"tag":171,"props":3680,"children":3681},{"class":173,"line":192},[3682],{"type":43,"tag":171,"props":3683,"children":3684},{},[3685],{"type":49,"value":3686},"    \"Error creating resource\",\n",{"type":43,"tag":171,"props":3688,"children":3689},{"class":173,"line":201},[3690],{"type":43,"tag":171,"props":3691,"children":3692},{},[3693],{"type":49,"value":3694},"    fmt.Sprintf(\"Could not create resource: %s\", err),\n",{"type":43,"tag":171,"props":3696,"children":3697},{"class":173,"line":210},[3698],{"type":43,"tag":171,"props":3699,"children":3700},{},[3701],{"type":49,"value":1915},{"type":43,"tag":171,"props":3703,"children":3704},{"class":173,"line":219},[3705],{"type":43,"tag":171,"props":3706,"children":3707},{"emptyLinePlaceholder":232},[3708],{"type":49,"value":235},{"type":43,"tag":171,"props":3710,"children":3711},{"class":173,"line":228},[3712],{"type":43,"tag":171,"props":3713,"children":3714},{},[3715],{"type":49,"value":3716},"\u002F\u002F Add warning\n",{"type":43,"tag":171,"props":3718,"children":3719},{"class":173,"line":238},[3720],{"type":43,"tag":171,"props":3721,"children":3722},{},[3723],{"type":49,"value":3724},"resp.Diagnostics.AddWarning(\n",{"type":43,"tag":171,"props":3726,"children":3727},{"class":173,"line":247},[3728],{"type":43,"tag":171,"props":3729,"children":3730},{},[3731],{"type":49,"value":3732},"    \"Resource modified outside Terraform\",\n",{"type":43,"tag":171,"props":3734,"children":3735},{"class":173,"line":256},[3736],{"type":43,"tag":171,"props":3737,"children":3738},{},[3739],{"type":49,"value":3740},"    \"Resource was modified outside of Terraform, state may be inconsistent\",\n",{"type":43,"tag":171,"props":3742,"children":3743},{"class":173,"line":265},[3744],{"type":43,"tag":171,"props":3745,"children":3746},{},[3747],{"type":49,"value":1915},{"type":43,"tag":171,"props":3749,"children":3750},{"class":173,"line":273},[3751],{"type":43,"tag":171,"props":3752,"children":3753},{"emptyLinePlaceholder":232},[3754],{"type":49,"value":235},{"type":43,"tag":171,"props":3756,"children":3757},{"class":173,"line":282},[3758],{"type":43,"tag":171,"props":3759,"children":3760},{},[3761],{"type":49,"value":3762},"\u002F\u002F Add attribute error\n",{"type":43,"tag":171,"props":3764,"children":3765},{"class":173,"line":291},[3766],{"type":43,"tag":171,"props":3767,"children":3768},{},[3769],{"type":49,"value":3770},"resp.Diagnostics.AddAttributeError(\n",{"type":43,"tag":171,"props":3772,"children":3773},{"class":173,"line":300},[3774],{"type":43,"tag":171,"props":3775,"children":3776},{},[3777],{"type":49,"value":3778},"    path.Root(\"name\"),\n",{"type":43,"tag":171,"props":3780,"children":3781},{"class":173,"line":309},[3782],{"type":43,"tag":171,"props":3783,"children":3784},{},[3785],{"type":49,"value":3786},"    \"Invalid name\",\n",{"type":43,"tag":171,"props":3788,"children":3789},{"class":173,"line":318},[3790],{"type":43,"tag":171,"props":3791,"children":3792},{},[3793],{"type":49,"value":3794},"    \"Name must be lowercase alphanumeric\",\n",{"type":43,"tag":171,"props":3796,"children":3797},{"class":173,"line":327},[3798],{"type":43,"tag":171,"props":3799,"children":3800},{},[3801],{"type":49,"value":1915},{"type":43,"tag":52,"props":3803,"children":3805},{"id":3804},"documentation-standards",[3806],{"type":49,"value":3807},"Documentation Standards",{"type":43,"tag":155,"props":3809,"children":3811},{"id":3810},"resource-documentation",[3812],{"type":49,"value":3813},"Resource Documentation",{"type":43,"tag":122,"props":3815,"children":3819},{"className":3816,"code":3817,"language":3818,"meta":131,"style":131},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nsubcategory: \"Service Name\"\nlayout: \"provider\"\npage_title: \"Provider: provider_example\"\ndescription: |-\n  Manages an Example resource.\n---\n\n# Resource: provider_example\n\nManages an Example resource.\n\n## Example Usage\n\n### Basic Usage\n\n\\```hcl\nresource \"provider_example\" \"example\" {\n  name = \"my-example\"\n}\n\\```\n\n## Argument Reference\n\n* `name` - (Required) Name of the example.\n* `description` - (Optional) Description of the example.\n\n## Attribute Reference\n\n* `id` - ID of the example.\n* `arn` - ARN of the example.\n\n## Import\n\nExample can be imported using the ID:\n\n\\```\n$ terraform import provider_example.example example-id-12345\n\\```\n","markdown",[3820],{"type":43,"tag":129,"props":3821,"children":3822},{"__ignoreMap":131},[3823,3831,3860,3885,3910,3934,3942,3949,3956,3969,3976,3984,3991,4004,4011,4024,4031,4039,4047,4055,4062,4070,4077,4089,4096,4124,4148,4155,4167,4174,4199,4224,4231,4243,4250,4258,4265,4272,4281],{"type":43,"tag":171,"props":3824,"children":3825},{"class":173,"line":174},[3826],{"type":43,"tag":171,"props":3827,"children":3828},{"style":3257},[3829],{"type":49,"value":3830},"---\n",{"type":43,"tag":171,"props":3832,"children":3833},{"class":173,"line":183},[3834,3840,3845,3850,3855],{"type":43,"tag":171,"props":3835,"children":3837},{"style":3836},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[3838],{"type":49,"value":3839},"subcategory",{"type":43,"tag":171,"props":3841,"children":3842},{"style":3257},[3843],{"type":49,"value":3844},":",{"type":43,"tag":171,"props":3846,"children":3847},{"style":3257},[3848],{"type":49,"value":3849}," \"",{"type":43,"tag":171,"props":3851,"children":3852},{"style":3231},[3853],{"type":49,"value":3854},"Service Name",{"type":43,"tag":171,"props":3856,"children":3857},{"style":3257},[3858],{"type":49,"value":3859},"\"\n",{"type":43,"tag":171,"props":3861,"children":3862},{"class":173,"line":192},[3863,3868,3872,3876,3881],{"type":43,"tag":171,"props":3864,"children":3865},{"style":3836},[3866],{"type":49,"value":3867},"layout",{"type":43,"tag":171,"props":3869,"children":3870},{"style":3257},[3871],{"type":49,"value":3844},{"type":43,"tag":171,"props":3873,"children":3874},{"style":3257},[3875],{"type":49,"value":3849},{"type":43,"tag":171,"props":3877,"children":3878},{"style":3231},[3879],{"type":49,"value":3880},"provider",{"type":43,"tag":171,"props":3882,"children":3883},{"style":3257},[3884],{"type":49,"value":3859},{"type":43,"tag":171,"props":3886,"children":3887},{"class":173,"line":201},[3888,3893,3897,3901,3906],{"type":43,"tag":171,"props":3889,"children":3890},{"style":3836},[3891],{"type":49,"value":3892},"page_title",{"type":43,"tag":171,"props":3894,"children":3895},{"style":3257},[3896],{"type":49,"value":3844},{"type":43,"tag":171,"props":3898,"children":3899},{"style":3257},[3900],{"type":49,"value":3849},{"type":43,"tag":171,"props":3902,"children":3903},{"style":3231},[3904],{"type":49,"value":3905},"Provider: provider_example",{"type":43,"tag":171,"props":3907,"children":3908},{"style":3257},[3909],{"type":49,"value":3859},{"type":43,"tag":171,"props":3911,"children":3912},{"class":173,"line":210},[3913,3918,3922,3928],{"type":43,"tag":171,"props":3914,"children":3915},{"style":3836},[3916],{"type":49,"value":3917},"description",{"type":43,"tag":171,"props":3919,"children":3920},{"style":3257},[3921],{"type":49,"value":3844},{"type":43,"tag":171,"props":3923,"children":3925},{"style":3924},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[3926],{"type":49,"value":3927}," |",{"type":43,"tag":171,"props":3929,"children":3931},{"style":3930},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[3932],{"type":49,"value":3933},"-\n",{"type":43,"tag":171,"props":3935,"children":3936},{"class":173,"line":219},[3937],{"type":43,"tag":171,"props":3938,"children":3939},{"style":3231},[3940],{"type":49,"value":3941},"  Manages an Example resource.\n",{"type":43,"tag":171,"props":3943,"children":3944},{"class":173,"line":228},[3945],{"type":43,"tag":171,"props":3946,"children":3947},{"style":3257},[3948],{"type":49,"value":3830},{"type":43,"tag":171,"props":3950,"children":3951},{"class":173,"line":238},[3952],{"type":43,"tag":171,"props":3953,"children":3954},{"emptyLinePlaceholder":232},[3955],{"type":49,"value":235},{"type":43,"tag":171,"props":3957,"children":3958},{"class":173,"line":247},[3959,3964],{"type":43,"tag":171,"props":3960,"children":3961},{"style":3257},[3962],{"type":49,"value":3963},"# ",{"type":43,"tag":171,"props":3965,"children":3966},{"style":3226},[3967],{"type":49,"value":3968},"Resource: provider_example\n",{"type":43,"tag":171,"props":3970,"children":3971},{"class":173,"line":256},[3972],{"type":43,"tag":171,"props":3973,"children":3974},{"emptyLinePlaceholder":232},[3975],{"type":49,"value":235},{"type":43,"tag":171,"props":3977,"children":3978},{"class":173,"line":265},[3979],{"type":43,"tag":171,"props":3980,"children":3981},{"style":3268},[3982],{"type":49,"value":3983},"Manages an Example resource.\n",{"type":43,"tag":171,"props":3985,"children":3986},{"class":173,"line":273},[3987],{"type":43,"tag":171,"props":3988,"children":3989},{"emptyLinePlaceholder":232},[3990],{"type":49,"value":235},{"type":43,"tag":171,"props":3992,"children":3993},{"class":173,"line":282},[3994,3999],{"type":43,"tag":171,"props":3995,"children":3996},{"style":3257},[3997],{"type":49,"value":3998},"## ",{"type":43,"tag":171,"props":4000,"children":4001},{"style":3226},[4002],{"type":49,"value":4003},"Example Usage\n",{"type":43,"tag":171,"props":4005,"children":4006},{"class":173,"line":291},[4007],{"type":43,"tag":171,"props":4008,"children":4009},{"emptyLinePlaceholder":232},[4010],{"type":49,"value":235},{"type":43,"tag":171,"props":4012,"children":4013},{"class":173,"line":300},[4014,4019],{"type":43,"tag":171,"props":4015,"children":4016},{"style":3257},[4017],{"type":49,"value":4018},"### ",{"type":43,"tag":171,"props":4020,"children":4021},{"style":3226},[4022],{"type":49,"value":4023},"Basic Usage\n",{"type":43,"tag":171,"props":4025,"children":4026},{"class":173,"line":309},[4027],{"type":43,"tag":171,"props":4028,"children":4029},{"emptyLinePlaceholder":232},[4030],{"type":49,"value":235},{"type":43,"tag":171,"props":4032,"children":4033},{"class":173,"line":318},[4034],{"type":43,"tag":171,"props":4035,"children":4036},{"style":3268},[4037],{"type":49,"value":4038},"\\```hcl\n",{"type":43,"tag":171,"props":4040,"children":4041},{"class":173,"line":327},[4042],{"type":43,"tag":171,"props":4043,"children":4044},{"style":3268},[4045],{"type":49,"value":4046},"resource \"provider_example\" \"example\" {\n",{"type":43,"tag":171,"props":4048,"children":4049},{"class":173,"line":336},[4050],{"type":43,"tag":171,"props":4051,"children":4052},{"style":3268},[4053],{"type":49,"value":4054},"  name = \"my-example\"\n",{"type":43,"tag":171,"props":4056,"children":4057},{"class":173,"line":345},[4058],{"type":43,"tag":171,"props":4059,"children":4060},{"style":3268},[4061],{"type":49,"value":429},{"type":43,"tag":171,"props":4063,"children":4064},{"class":173,"line":354},[4065],{"type":43,"tag":171,"props":4066,"children":4067},{"style":3268},[4068],{"type":49,"value":4069},"\\```\n",{"type":43,"tag":171,"props":4071,"children":4072},{"class":173,"line":363},[4073],{"type":43,"tag":171,"props":4074,"children":4075},{"emptyLinePlaceholder":232},[4076],{"type":49,"value":235},{"type":43,"tag":171,"props":4078,"children":4079},{"class":173,"line":371},[4080,4084],{"type":43,"tag":171,"props":4081,"children":4082},{"style":3257},[4083],{"type":49,"value":3998},{"type":43,"tag":171,"props":4085,"children":4086},{"style":3226},[4087],{"type":49,"value":4088},"Argument Reference\n",{"type":43,"tag":171,"props":4090,"children":4091},{"class":173,"line":380},[4092],{"type":43,"tag":171,"props":4093,"children":4094},{"emptyLinePlaceholder":232},[4095],{"type":49,"value":235},{"type":43,"tag":171,"props":4097,"children":4098},{"class":173,"line":389},[4099,4104,4109,4114,4119],{"type":43,"tag":171,"props":4100,"children":4101},{"style":3257},[4102],{"type":49,"value":4103},"*",{"type":43,"tag":171,"props":4105,"children":4106},{"style":3257},[4107],{"type":49,"value":4108}," `",{"type":43,"tag":171,"props":4110,"children":4111},{"style":3231},[4112],{"type":49,"value":4113},"name",{"type":43,"tag":171,"props":4115,"children":4116},{"style":3257},[4117],{"type":49,"value":4118},"`",{"type":43,"tag":171,"props":4120,"children":4121},{"style":3268},[4122],{"type":49,"value":4123}," - (Required) Name of the example.\n",{"type":43,"tag":171,"props":4125,"children":4126},{"class":173,"line":397},[4127,4131,4135,4139,4143],{"type":43,"tag":171,"props":4128,"children":4129},{"style":3257},[4130],{"type":49,"value":4103},{"type":43,"tag":171,"props":4132,"children":4133},{"style":3257},[4134],{"type":49,"value":4108},{"type":43,"tag":171,"props":4136,"children":4137},{"style":3231},[4138],{"type":49,"value":3917},{"type":43,"tag":171,"props":4140,"children":4141},{"style":3257},[4142],{"type":49,"value":4118},{"type":43,"tag":171,"props":4144,"children":4145},{"style":3268},[4146],{"type":49,"value":4147}," - (Optional) Description of the example.\n",{"type":43,"tag":171,"props":4149,"children":4150},{"class":173,"line":405},[4151],{"type":43,"tag":171,"props":4152,"children":4153},{"emptyLinePlaceholder":232},[4154],{"type":49,"value":235},{"type":43,"tag":171,"props":4156,"children":4157},{"class":173,"line":414},[4158,4162],{"type":43,"tag":171,"props":4159,"children":4160},{"style":3257},[4161],{"type":49,"value":3998},{"type":43,"tag":171,"props":4163,"children":4164},{"style":3226},[4165],{"type":49,"value":4166},"Attribute Reference\n",{"type":43,"tag":171,"props":4168,"children":4169},{"class":173,"line":423},[4170],{"type":43,"tag":171,"props":4171,"children":4172},{"emptyLinePlaceholder":232},[4173],{"type":49,"value":235},{"type":43,"tag":171,"props":4175,"children":4176},{"class":173,"line":665},[4177,4181,4185,4190,4194],{"type":43,"tag":171,"props":4178,"children":4179},{"style":3257},[4180],{"type":49,"value":4103},{"type":43,"tag":171,"props":4182,"children":4183},{"style":3257},[4184],{"type":49,"value":4108},{"type":43,"tag":171,"props":4186,"children":4187},{"style":3231},[4188],{"type":49,"value":4189},"id",{"type":43,"tag":171,"props":4191,"children":4192},{"style":3257},[4193],{"type":49,"value":4118},{"type":43,"tag":171,"props":4195,"children":4196},{"style":3268},[4197],{"type":49,"value":4198}," - ID of the example.\n",{"type":43,"tag":171,"props":4200,"children":4201},{"class":173,"line":1132},[4202,4206,4210,4215,4219],{"type":43,"tag":171,"props":4203,"children":4204},{"style":3257},[4205],{"type":49,"value":4103},{"type":43,"tag":171,"props":4207,"children":4208},{"style":3257},[4209],{"type":49,"value":4108},{"type":43,"tag":171,"props":4211,"children":4212},{"style":3231},[4213],{"type":49,"value":4214},"arn",{"type":43,"tag":171,"props":4216,"children":4217},{"style":3257},[4218],{"type":49,"value":4118},{"type":43,"tag":171,"props":4220,"children":4221},{"style":3268},[4222],{"type":49,"value":4223}," - ARN of the example.\n",{"type":43,"tag":171,"props":4225,"children":4226},{"class":173,"line":3149},[4227],{"type":43,"tag":171,"props":4228,"children":4229},{"emptyLinePlaceholder":232},[4230],{"type":49,"value":235},{"type":43,"tag":171,"props":4232,"children":4233},{"class":173,"line":3158},[4234,4238],{"type":43,"tag":171,"props":4235,"children":4236},{"style":3257},[4237],{"type":49,"value":3998},{"type":43,"tag":171,"props":4239,"children":4240},{"style":3226},[4241],{"type":49,"value":4242},"Import\n",{"type":43,"tag":171,"props":4244,"children":4245},{"class":173,"line":3166},[4246],{"type":43,"tag":171,"props":4247,"children":4248},{"emptyLinePlaceholder":232},[4249],{"type":49,"value":235},{"type":43,"tag":171,"props":4251,"children":4252},{"class":173,"line":3174},[4253],{"type":43,"tag":171,"props":4254,"children":4255},{"style":3268},[4256],{"type":49,"value":4257},"Example can be imported using the ID:\n",{"type":43,"tag":171,"props":4259,"children":4260},{"class":173,"line":3183},[4261],{"type":43,"tag":171,"props":4262,"children":4263},{"emptyLinePlaceholder":232},[4264],{"type":49,"value":235},{"type":43,"tag":171,"props":4266,"children":4267},{"class":173,"line":3191},[4268],{"type":43,"tag":171,"props":4269,"children":4270},{"style":3268},[4271],{"type":49,"value":4069},{"type":43,"tag":171,"props":4273,"children":4275},{"class":173,"line":4274},38,[4276],{"type":43,"tag":171,"props":4277,"children":4278},{"style":3268},[4279],{"type":49,"value":4280},"$ terraform import provider_example.example example-id-12345\n",{"type":43,"tag":171,"props":4282,"children":4284},{"class":173,"line":4283},39,[4285],{"type":43,"tag":171,"props":4286,"children":4287},{"style":3268},[4288],{"type":49,"value":4069},{"type":43,"tag":52,"props":4290,"children":4292},{"id":4291},"pre-submission-checklist",[4293],{"type":49,"value":4294},"Pre-Submission Checklist",{"type":43,"tag":74,"props":4296,"children":4299},{"className":4297},[4298],"contains-task-list",[4300,4312,4321,4330,4339,4348,4357,4366,4375,4384],{"type":43,"tag":78,"props":4301,"children":4304},{"className":4302},[4303],"task-list-item",[4305,4310],{"type":43,"tag":4306,"props":4307,"children":4309},"input",{"disabled":232,"type":4308},"checkbox",[],{"type":49,"value":4311}," Code compiles without errors",{"type":43,"tag":78,"props":4313,"children":4315},{"className":4314},[4303],[4316,4319],{"type":43,"tag":4306,"props":4317,"children":4318},{"disabled":232,"type":4308},[],{"type":49,"value":4320}," All tests pass locally",{"type":43,"tag":78,"props":4322,"children":4324},{"className":4323},[4303],[4325,4328],{"type":43,"tag":4306,"props":4326,"children":4327},{"disabled":232,"type":4308},[],{"type":49,"value":4329}," Resource has all CRUD operations implemented",{"type":43,"tag":78,"props":4331,"children":4333},{"className":4332},[4303],[4334,4337],{"type":43,"tag":4306,"props":4335,"children":4336},{"disabled":232,"type":4308},[],{"type":49,"value":4338}," Import is implemented and tested",{"type":43,"tag":78,"props":4340,"children":4342},{"className":4341},[4303],[4343,4346],{"type":43,"tag":4306,"props":4344,"children":4345},{"disabled":232,"type":4308},[],{"type":49,"value":4347}," Disappears test is included",{"type":43,"tag":78,"props":4349,"children":4351},{"className":4350},[4303],[4352,4355],{"type":43,"tag":4306,"props":4353,"children":4354},{"disabled":232,"type":4308},[],{"type":49,"value":4356}," Documentation is complete with examples",{"type":43,"tag":78,"props":4358,"children":4360},{"className":4359},[4303],[4361,4364],{"type":43,"tag":4306,"props":4362,"children":4363},{"disabled":232,"type":4308},[],{"type":49,"value":4365}," Error messages are clear and actionable",{"type":43,"tag":78,"props":4367,"children":4369},{"className":4368},[4303],[4370,4373],{"type":43,"tag":4306,"props":4371,"children":4372},{"disabled":232,"type":4308},[],{"type":49,"value":4374}," Sensitive attributes are marked",{"type":43,"tag":78,"props":4376,"children":4378},{"className":4377},[4303],[4379,4382],{"type":43,"tag":4306,"props":4380,"children":4381},{"disabled":232,"type":4308},[],{"type":49,"value":4383}," Plan modifiers are appropriate",{"type":43,"tag":78,"props":4385,"children":4387},{"className":4386},[4303],[4388,4391],{"type":43,"tag":4306,"props":4389,"children":4390},{"disabled":232,"type":4308},[],{"type":49,"value":4392}," Validators cover edge cases",{"type":43,"tag":52,"props":4394,"children":4396},{"id":4395},"references",[4397],{"type":49,"value":4398},"References",{"type":43,"tag":74,"props":4400,"children":4401},{},[4402,4410,4420,4430],{"type":43,"tag":78,"props":4403,"children":4404},{},[4405],{"type":43,"tag":82,"props":4406,"children":4408},{"href":84,"rel":4407},[86],[4409],{"type":49,"value":89},{"type":43,"tag":78,"props":4411,"children":4412},{},[4413],{"type":43,"tag":82,"props":4414,"children":4417},{"href":4415,"rel":4416},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Fsdkv2",[86],[4418],{"type":49,"value":4419},"Terraform Plugin SDKv2",{"type":43,"tag":78,"props":4421,"children":4422},{},[4423],{"type":43,"tag":82,"props":4424,"children":4427},{"href":4425,"rel":4426},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Fplugin\u002Ftesting\u002Facceptance-tests",[86],[4428],{"type":49,"value":4429},"Acceptance Testing",{"type":43,"tag":78,"props":4431,"children":4432},{},[4433],{"type":43,"tag":82,"props":4434,"children":4437},{"href":4435,"rel":4436},"https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fterraform-plugin-framework",[86],[4438],{"type":49,"value":4439},"terraform-plugin-framework GitHub",{"type":43,"tag":4441,"props":4442,"children":4443},"style",{},[4444],{"type":49,"value":4445},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4447,"total":318},[4448,4467,4479,4492,4504,4514,4528],{"slug":4449,"name":4449,"fn":4450,"description":4451,"org":4452,"tags":4453,"stars":22,"repoUrl":23,"updatedAt":4466},"aws-ami-builder","build Amazon Machine Images with Packer","Build Amazon Machine Images (AMIs) with Packer using the amazon-ebs builder. Use when creating custom AMIs for EC2 instances.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4454,4457,4460,4463],{"name":4455,"slug":4456,"type":15},"AWS","aws",{"name":4458,"slug":4459,"type":15},"Deployment","deployment",{"name":4461,"slug":4462,"type":15},"Infrastructure as Code","infrastructure-as-code",{"name":4464,"slug":4465,"type":15},"Packer","packer","2026-04-06T18:25:04.01571",{"slug":4468,"name":4468,"fn":4469,"description":4470,"org":4471,"tags":4472,"stars":22,"repoUrl":23,"updatedAt":4478},"azure-image-builder","build Azure managed images with Packer","Build Azure managed images and Azure Compute Gallery images with Packer. Use when creating custom images for Azure VMs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4473,4476,4477],{"name":4474,"slug":4475,"type":15},"Azure","azure",{"name":4458,"slug":4459,"type":15},{"name":4464,"slug":4465,"type":15},"2026-04-06T18:25:06.590174",{"slug":4480,"name":4480,"fn":4481,"description":4482,"org":4483,"tags":4484,"stars":22,"repoUrl":23,"updatedAt":4491},"azure-verified-modules","develop certified Azure Verified Modules","Azure Verified Modules (AVM) requirements and best practices for developing certified Azure Terraform modules. Use when creating or reviewing Azure modules that need AVM certification.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4485,4486,4489,4490],{"name":4474,"slug":4475,"type":15},{"name":4487,"slug":4488,"type":15},"Compliance","compliance",{"name":4461,"slug":4462,"type":15},{"name":17,"slug":18,"type":15},"2026-04-06T18:25:16.88768",{"slug":4493,"name":4493,"fn":4494,"description":4495,"org":4496,"tags":4497,"stars":22,"repoUrl":23,"updatedAt":4503},"new-terraform-provider","scaffold new Terraform providers","Use this when scaffolding a new Terraform provider.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4498,4499,4502],{"name":13,"slug":14,"type":15},{"name":4500,"slug":4501,"type":15},"Templates","templates",{"name":17,"slug":18,"type":15},"2026-04-06T18:25:11.814973",{"slug":4505,"name":4505,"fn":4506,"description":4507,"org":4508,"tags":4509,"stars":22,"repoUrl":23,"updatedAt":4513},"provider-actions","implement Terraform Provider lifecycle actions","Implement Terraform Provider actions using the Plugin Framework. Use when developing imperative operations that execute at lifecycle events (before\u002Fafter create, update, destroy).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4510,4511,4512],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},"2026-04-06T18:25:07.880533",{"slug":4515,"name":4515,"fn":4516,"description":4517,"org":4518,"tags":4519,"stars":22,"repoUrl":23,"updatedAt":4527},"provider-docs","generate and review Terraform provider documentation","Create, update, and review Terraform provider documentation for Terraform Registry using HashiCorp-recommended patterns, tfplugindocs templates, and schema descriptions. Use when adding or changing provider configuration, resources, data sources, ephemeral resources, list resources, functions, or guides; when validating generated docs; and when troubleshooting missing or incorrect Registry documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4520,4523,4526],{"name":4521,"slug":4522,"type":15},"Documentation","documentation",{"name":4524,"slug":4525,"type":15},"Technical Writing","technical-writing",{"name":17,"slug":18,"type":15},"2026-04-06T18:25:09.261559",{"slug":4,"name":4,"fn":5,"description":6,"org":4529,"tags":4530,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4531,4532,4533],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"items":4535,"total":327},[4536,4543,4549,4556,4562,4568,4574,4580,4593,4608,4620,4631],{"slug":4449,"name":4449,"fn":4450,"description":4451,"org":4537,"tags":4538,"stars":22,"repoUrl":23,"updatedAt":4466},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4539,4540,4541,4542],{"name":4455,"slug":4456,"type":15},{"name":4458,"slug":4459,"type":15},{"name":4461,"slug":4462,"type":15},{"name":4464,"slug":4465,"type":15},{"slug":4468,"name":4468,"fn":4469,"description":4470,"org":4544,"tags":4545,"stars":22,"repoUrl":23,"updatedAt":4478},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4546,4547,4548],{"name":4474,"slug":4475,"type":15},{"name":4458,"slug":4459,"type":15},{"name":4464,"slug":4465,"type":15},{"slug":4480,"name":4480,"fn":4481,"description":4482,"org":4550,"tags":4551,"stars":22,"repoUrl":23,"updatedAt":4491},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4552,4553,4554,4555],{"name":4474,"slug":4475,"type":15},{"name":4487,"slug":4488,"type":15},{"name":4461,"slug":4462,"type":15},{"name":17,"slug":18,"type":15},{"slug":4493,"name":4493,"fn":4494,"description":4495,"org":4557,"tags":4558,"stars":22,"repoUrl":23,"updatedAt":4503},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4559,4560,4561],{"name":13,"slug":14,"type":15},{"name":4500,"slug":4501,"type":15},{"name":17,"slug":18,"type":15},{"slug":4505,"name":4505,"fn":4506,"description":4507,"org":4563,"tags":4564,"stars":22,"repoUrl":23,"updatedAt":4513},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4565,4566,4567],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":4515,"name":4515,"fn":4516,"description":4517,"org":4569,"tags":4570,"stars":22,"repoUrl":23,"updatedAt":4527},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4571,4572,4573],{"name":4521,"slug":4522,"type":15},{"name":4524,"slug":4525,"type":15},{"name":17,"slug":18,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":4575,"tags":4576,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4577,4578,4579],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":4581,"name":4581,"fn":4582,"description":4583,"org":4584,"tags":4585,"stars":22,"repoUrl":23,"updatedAt":4592},"provider-test-patterns","implement Terraform provider acceptance test patterns","Terraform provider acceptance test patterns using terraform-plugin-testing with the Plugin Framework. Covers test structure, TestCase\u002FTestStep fields, ConfigStateChecks with custom statecheck.StateCheck implementations, plan checks, CompareValue for cross-step assertions, config helpers, import testing with ImportStateKind, sweepers, and scenario patterns (basic, update, disappears, validation, regression), and ephemeral resource testing with the echoprovider package. Use when writing, reviewing, or debugging provider acceptance tests, including questions about statecheck, plancheck, TestCheckFunc, CheckDestroy, ExpectError, import state verification, ephemeral resources, or how to structure test files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4586,4587,4590,4591],{"name":13,"slug":14,"type":15},{"name":4588,"slug":4589,"type":15},"QA","qa",{"name":17,"slug":18,"type":15},{"name":2523,"slug":2520,"type":15},"2026-04-06T18:25:14.352781",{"slug":4594,"name":4594,"fn":4595,"description":4596,"org":4597,"tags":4598,"stars":22,"repoUrl":23,"updatedAt":4607},"push-to-registry","push Packer build metadata to HCP registry","Push Packer build metadata to HCP Packer registry for tracking and managing image lifecycle. Use when integrating Packer builds with HCP Packer for version control and governance.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4599,4600,4603,4606],{"name":4458,"slug":4459,"type":15},{"name":4601,"slug":4602,"type":15},"Governance","governance",{"name":4604,"slug":4605,"type":15},"HCP","hcp",{"name":4464,"slug":4465,"type":15},"2026-04-06T18:25:02.749563",{"slug":4609,"name":4609,"fn":4610,"description":4611,"org":4612,"tags":4613,"stars":22,"repoUrl":23,"updatedAt":4619},"refactor-module","refactor Terraform configurations into reusable modules","Transform monolithic Terraform configurations into reusable, maintainable modules following HashiCorp's module design principles and community best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4614,4617,4618],{"name":4615,"slug":4616,"type":15},"Architecture","architecture",{"name":4461,"slug":4462,"type":15},{"name":17,"slug":18,"type":15},"2026-04-06T18:25:20.953737",{"slug":4621,"name":4621,"fn":4622,"description":4623,"org":4624,"tags":4625,"stars":22,"repoUrl":23,"updatedAt":4630},"run-acceptance-tests","run acceptance tests for Terraform providers","Guide for running acceptance tests for a Terraform provider. Use this when asked to run an acceptance test or to run a test with the prefix `TestAcc`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4626,4627,4628,4629],{"name":13,"slug":14,"type":15},{"name":4588,"slug":4589,"type":15},{"name":17,"slug":18,"type":15},{"name":2523,"slug":2520,"type":15},"2026-04-06T18:25:13.098191",{"slug":4632,"name":4632,"fn":4633,"description":4634,"org":4635,"tags":4636,"stars":22,"repoUrl":23,"updatedAt":4643},"terraform-policy","write and test Terraform policy files","Write, test, or convert Terraform Policy files (.policy.hcl, .policytest.hcl, Sentinel→tfpolicy). Triggers: policy.hcl, policytest, convert sentinel, tfpolicy, write a policy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4637,4638,4639,4642],{"name":4487,"slug":4488,"type":15},{"name":4461,"slug":4462,"type":15},{"name":4640,"slug":4641,"type":15},"Security","security",{"name":17,"slug":18,"type":15},"2026-07-18T05:48:20.299442"]