sacloud / terraform-provider-sakuracloud

Terraform provider for SakuraCloud
https://docs.usacloud.jp/terraform
Apache License 2.0
71 stars 22 forks source link

数値範囲のバリデーションでゼロ値を許容 #502

Closed yamamoto-febc closed 5 years ago

yamamoto-febc commented 5 years ago

DNSレコードのポート番号 のようなint型属性での範囲バリデーションにおいて0を許容すべき。

背景

ツールからスキーマを読み取ってtfファイルを生成する場合、各属性の初期値としてデータ型のゼロ値を設定した方が楽なケースがある。

例えば以下のように最低限の項目だけでなく、

resource sakuracloud_dns_record "example" {
  name     = "www"
  type     = "AAAA"
  value    = "fe::b1"
}

以下のようにゼロ値を省略せずに出力する。

resource sakuracloud_dns_record "example" {
  name     = "www"
  type     = "AAAA"
  value    = "fe::b1"
  port     = 0
  priority = 0
  weight   = 0
}

しかし、前者だとスキーマレベルでのバリデーションが行われないのに対し後者だとバリデーションが行われ、そこでゼロ値を許容していないとエラーと判定される。

現在のプロバイダーの実装ではゼロ値が明示されていても後続の処理に影響はない(指定なしと同様の扱いをしている)ため、スキーマレベルのバリデーションではゼロ値を許容すべき。

yamamoto-febc commented 5 years ago

例外: デフォルト値の指定がある場合、かつゼロ値の許容ができない項目 例としてプロバイダーの api_request_rate_limitがある。

これらは変更しない方がよい。

yamamoto-febc commented 5 years ago

対象項目: