Closed yamamoto-febc closed 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 }
しかし、前者だとスキーマレベルでのバリデーションが行われないのに対し後者だとバリデーションが行われ、そこでゼロ値を許容していないとエラーと判定される。
現在のプロバイダーの実装ではゼロ値が明示されていても後続の処理に影響はない(指定なしと同様の扱いをしている)ため、スキーマレベルのバリデーションではゼロ値を許容すべき。
例外: デフォルト値の指定がある場合、かつゼロ値の許容ができない項目 例としてプロバイダーの api_request_rate_limitがある。
api_request_rate_limit
これらは変更しない方がよい。
対象項目:
port
retry_max
retry_interval
traffic_control.#.band_width_limit
health_check.#.remaining_days
DNSレコードのポート番号 のようなint型属性での範囲バリデーションにおいて0を許容すべき。
背景
ツールからスキーマを読み取ってtfファイルを生成する場合、各属性の初期値としてデータ型のゼロ値を設定した方が楽なケースがある。
例えば以下のように最低限の項目だけでなく、
以下のようにゼロ値を省略せずに出力する。
しかし、前者だとスキーマレベルでのバリデーションが行われないのに対し後者だとバリデーションが行われ、そこでゼロ値を許容していないとエラーと判定される。
現在のプロバイダーの実装ではゼロ値が明示されていても後続の処理に影響はない(指定なしと同様の扱いをしている)ため、スキーマレベルのバリデーションではゼロ値を許容すべき。