スキル一覧に戻る
datarobot-community

new-resource

by datarobot-community

4🍴 3📅 2026年1月19日
GitHubで見るManusで実行

SKILL.md


name: new-resource description: Create a new Terraform resource for the DataRobot provider

Create New Terraform Resource

This skill helps you create a new Terraform resource for the DataRobot provider following established patterns.

Steps

  1. Create the resource file at pkg/provider/{resource_name}_resource.go:

    • Define the resource struct with provider *Provider
    • Implement resource.Resource interface (Metadata, Schema, Configure, Create, Read, Update, Delete)
    • Implement resource.ResourceWithImportState for import support
    • Add proper MarkdownDescription for all schema attributes
  2. Create the model file at pkg/provider/{resource_name}_model.go:

    • Define the ResourceModel struct with types.* fields
    • Match field names to API response/request structures
  3. Add client service methods in internal/client/:

    • Add interface methods to service.go
    • Implement methods in appropriate *_service.go file
  4. Create tests at pkg/provider/{resource_name}_resource_test.go:

    • Add TestAcc{ResourceName}Resource for acceptance tests
    • Add Test{ResourceName}ResourceSchema for schema validation
  5. Add example in examples/resources/{resource_name}/:

    • Create resource.tf with usage example
  6. Update documentation:

    • Run make generate to create docs
    • Update CHANGELOG.md

Template

package provider

import (
    "context"
    "fmt"

    "github.com/datarobot-community/terraform-provider-datarobot/internal/client"
    "github.com/hashicorp/terraform-plugin-framework/resource"
    "github.com/hashicorp/terraform-plugin-framework/resource/schema"
    "github.com/hashicorp/terraform-plugin-framework/types"
)

var _ resource.Resource = &{ResourceName}Resource{}
var _ resource.ResourceWithImportState = &{ResourceName}Resource{}

func New{ResourceName}Resource() resource.Resource {
    return &{ResourceName}Resource{}
}

type {ResourceName}Resource struct {
    provider *Provider
}

func (r *{ResourceName}Resource) Metadata(ctx context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {
    resp.TypeName = req.ProviderTypeName + "_{resource_name}"
}

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です