diff --git a/docs/resources/phone_user_calling_plans.md b/docs/resources/phone_user_calling_plans.md index 49beab8..afb612a 100644 --- a/docs/resources/phone_user_calling_plans.md +++ b/docs/resources/phone_user_calling_plans.md @@ -49,84 +49,84 @@ resource "zoom_phone_user_calling_plans" "example" { Required: -- `type` (Number) The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan. Allowed: `61000`, `101`, `304`, `41000`, `50202`, `60202`, `203`, `107`, `31001`, `31005`, `50201`, `60201`, `1`, `1001`, `31007`, `51000`, `303`, `103`, `402`, `2000`, `31000`, `43000`, `50207`, `4`, `207`, `302`, `600`, `3000`, `31004`, `100`, `3010`, `31003`, `204`, `201`, `400`, `30007`, `40200`, `70207`, `6`, `404`, `40202`, `102`, `307`, `200`, `3099`, `4000`, `4010`, `30001`, `71000`, `202`, `31002`, `31006`, `40201`, `63000`, `70202`, `30003`, `30000`, `53000`, `70200`, `300`, `5`, `3098`, `3`, `5000`, `30002`, `30004`, `40207`, `50200`, `60200`, `60207`, `3040`, `70201`, `301`, `401`, `403`, `1000`, `104` - - `70200`: MEETINGS_US_CA_NUMBER_INCLUDED - - `300`: US_CA_NUMBER - - `30000`: METERED_US_CA_NUMBER_INCLUDED - - `53000`: MEETINGS_BUS_PN_PRO - - `3`: INTERNATIONAL_TOLL_NUMBER - - `5`: BYOC_NUMBER - - `3098`: RESERVED_PLAN - - `30004`: METERED_EURB_NUMBER_INCLUDED - - `40207`: MEETINGS_PRO_UNLIMITED_JP - - `50200`: MEETINGS_BUS_UNLIMITED_US_CA - - `60200`: MEETINGS_ENT_UNLIMITED_US_CA - - `60207`: MEETINGS_ENT_UNLIMITED_JP - - `3040`: ZP_COMMON_AREA - - `5000`: PREMIUM_NUMBER - - `30002`: METERED_GB_IE_NUMBER_INCLUDED - - `70201`: MEETINGS_AU_NZ_NUMBER_INCLUDED - - `403`: NZ_TOLLFREE_NUMBER - - `1000`: UNLIMITED_DOMESTIC_SELECT - - `104`: METERED_EURB - - `301`: AU_NZ_NUMBER - - `401`: AU_TOLLFREE_NUMBER - - `101`: METERED_PLAN_AU_NZ - - `61000`: MEETINGS_ENT_GLOBAL_SELECT - - `50202`: MEETINGS_BUS_UNLIMITED_GB_IE - - `60202`: MEETINGS_ENT_UNLIMITED_GB_IE - - `203`: UNLIMITED_EURA - - `304`: EURB_NUMBER - - `41000`: MEETINGS_PRO_GLOBAL_SELECT - - `31005`: UNLIMITED_DOMESTIC_SELECT_NUMBER_INCLUDED - - `50201`: MEETINGS_BUS_UNLIMITED_AU_NZ - - `60201`: MEETINGS_ENT_UNLIMITED_AU_NZ - - `1`: NO_FEATURE_PACKAGE - - `107`: METERED_JP - - `31001`: UNLIMITED_AU_NZ_NUMBER_INCLUDED - - `51000`: MEETINGS_BUS_GLOBAL_SELECT - - `303`: EURA_NUMBER - - `1001`: METERED_GLOBAL_SELECT - - `31007`: UNLIMITED_JP_NUMBER_INCLUDED - - `2000`: UNLIMITED_DOMESTIC_SELECT_NUMBER - - `31000`: UNLIMITED_US_CA_NUMBER_INCLUDED - - `43000`: MEETINGS_PRO_PN_PRO - - `50207`: MEETINGS_BUS_UNLIMITED_JP - - `4`: INTERNATIONAL_TOLL_FREE_NUMBER - - `103`: METERED_EURA - - `402`: GB_IE_TOLLFREE_NUMBER - - `600`: BETA - - `3000`: ZP_PRO - - `31004`: UNLIMITED_EURB_NUMBER_INCLUDED - - `100`: METERED_PLAN_US_CA - - `207`: UNLIMITED_JP - - `302`: GB_IE_NUMBER - - `204`: UNLIMITED_EURB - - `3010`: BASIC - - `31003`: UNLIMITED_EURA_NUMBER_INCLUDED - - `30007`: METERED_JP_NUMBER_INCLUDED - - `40200`: MEETINGS_PRO_UNLIMITED_US_CA - - `70207`: MEETINGS_JP_NUMBER_INCLUDED - - `6`: BETA_NUMBER - - `201`: UNLIMITED_PLAN_AU_NZ - - `400`: US_CA_TOLLFREE_NUMBER - - `102`: METERED_PLAN_GB_IE - - `404`: GLOBAL_TOLLFREE_NUMBER - - `40202`: MEETINGS_PRO_UNLIMITED_GB_IE - - `200`: UNLIMITED_PLAN_US_CA - - `307`: JP_NUMBER - - `4010`: ZP_PREMIUM_ADDON - - `30001`: METERED_AU_NZ_NUMBER_INCLUDED - - `71000`: MEETINGS_GLOBAL_SELECT_NUMBER_INCLUDED - - `202`: UNLIMITED_PLAN_GB_IE - - `3099`: BASIC_MIGRATED - - `4000`: INTERNATIONAL_SELECT_ADDON - - `40201`: MEETINGS_PRO_UNLIMITED_AU_NZ - - `63000`: MEETINGS_ENT_PN_PRO - - `70202`: MEETINGS_GB_IE_NUMBER_INCLUDED - - `30003`: METERED_EURA_NUMBER_INCLUDED - - `31002`: UNLIMITED_GB_IE_NUMBER_INCLUDED - - `31006`: METERED_GLOBAL_SELECT_NUMBER_INCLUDED +- `type` (Number) The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan. Allowed: `1`, `3`, `4`, `5`, `6`, `100`, `101`, `102`, `103`, `104`, `107`, `200`, `201`, `202`, `203`, `204`, `207`, `300`, `301`, `302`, `303`, `304`, `307`, `400`, `401`, `402`, `403`, `404`, `600`, `1000`, `1001`, `2000`, `3000`, `3010`, `3040`, `3098`, `3099`, `4000`, `4010`, `5000`, `30000`, `30001`, `30002`, `30003`, `30004`, `30007`, `31000`, `31001`, `31002`, `31003`, `31004`, `31005`, `31006`, `31007`, `40200`, `40201`, `40202`, `40207`, `41000`, `43000`, `50200`, `50201`, `50202`, `50207`, `51000`, `53000`, `60200`, `60201`, `60202`, `60207`, `61000`, `63000`, `70200`, `70201`, `70202`, `70207`, `71000` + - `1`: NO_FEATURE_PACKAGE + - `3`: INTERNATIONAL_TOLL_NUMBER + - `4`: INTERNATIONAL_TOLL_FREE_NUMBER + - `5`: BYOC_NUMBER + - `6`: BETA_NUMBER + - `100`: METERED_PLAN_US_CA + - `101`: METERED_PLAN_AU_NZ + - `102`: METERED_PLAN_GB_IE + - `103`: METERED_EURA + - `104`: METERED_EURB + - `107`: METERED_JP + - `200`: UNLIMITED_PLAN_US_CA + - `201`: UNLIMITED_PLAN_AU_NZ + - `202`: UNLIMITED_PLAN_GB_IE + - `203`: UNLIMITED_EURA + - `204`: UNLIMITED_EURB + - `207`: UNLIMITED_JP + - `300`: US_CA_NUMBER + - `301`: AU_NZ_NUMBER + - `302`: GB_IE_NUMBER + - `303`: EURA_NUMBER + - `304`: EURB_NUMBER + - `307`: JP_NUMBER + - `400`: US_CA_TOLLFREE_NUMBER + - `401`: AU_TOLLFREE_NUMBER + - `402`: GB_IE_TOLLFREE_NUMBER + - `403`: NZ_TOLLFREE_NUMBER + - `404`: GLOBAL_TOLLFREE_NUMBER + - `600`: BETA + - `1000`: UNLIMITED_DOMESTIC_SELECT + - `1001`: METERED_GLOBAL_SELECT + - `2000`: UNLIMITED_DOMESTIC_SELECT_NUMBER + - `3000`: ZP_PRO + - `3010`: BASIC + - `3040`: ZP_COMMON_AREA + - `3098`: RESERVED_PLAN + - `3099`: BASIC_MIGRATED + - `4000`: INTERNATIONAL_SELECT_ADDON + - `4010`: ZP_PREMIUM_ADDON + - `5000`: PREMIUM_NUMBER + - `30000`: METERED_US_CA_NUMBER_INCLUDED + - `30001`: METERED_AU_NZ_NUMBER_INCLUDED + - `30002`: METERED_GB_IE_NUMBER_INCLUDED + - `30003`: METERED_EURA_NUMBER_INCLUDED + - `30004`: METERED_EURB_NUMBER_INCLUDED + - `30007`: METERED_JP_NUMBER_INCLUDED + - `31000`: UNLIMITED_US_CA_NUMBER_INCLUDED + - `31001`: UNLIMITED_AU_NZ_NUMBER_INCLUDED + - `31002`: UNLIMITED_GB_IE_NUMBER_INCLUDED + - `31003`: UNLIMITED_EURA_NUMBER_INCLUDED + - `31004`: UNLIMITED_EURB_NUMBER_INCLUDED + - `31005`: UNLIMITED_DOMESTIC_SELECT_NUMBER_INCLUDED + - `31006`: METERED_GLOBAL_SELECT_NUMBER_INCLUDED + - `31007`: UNLIMITED_JP_NUMBER_INCLUDED + - `40200`: MEETINGS_PRO_UNLIMITED_US_CA + - `40201`: MEETINGS_PRO_UNLIMITED_AU_NZ + - `40202`: MEETINGS_PRO_UNLIMITED_GB_IE + - `40207`: MEETINGS_PRO_UNLIMITED_JP + - `41000`: MEETINGS_PRO_GLOBAL_SELECT + - `43000`: MEETINGS_PRO_PN_PRO + - `50200`: MEETINGS_BUS_UNLIMITED_US_CA + - `50201`: MEETINGS_BUS_UNLIMITED_AU_NZ + - `50202`: MEETINGS_BUS_UNLIMITED_GB_IE + - `50207`: MEETINGS_BUS_UNLIMITED_JP + - `51000`: MEETINGS_BUS_GLOBAL_SELECT + - `53000`: MEETINGS_BUS_PN_PRO + - `60200`: MEETINGS_ENT_UNLIMITED_US_CA + - `60201`: MEETINGS_ENT_UNLIMITED_AU_NZ + - `60202`: MEETINGS_ENT_UNLIMITED_GB_IE + - `60207`: MEETINGS_ENT_UNLIMITED_JP + - `61000`: MEETINGS_ENT_GLOBAL_SELECT + - `63000`: MEETINGS_ENT_PN_PRO + - `70200`: MEETINGS_US_CA_NUMBER_INCLUDED + - `70201`: MEETINGS_AU_NZ_NUMBER_INCLUDED + - `70202`: MEETINGS_GB_IE_NUMBER_INCLUDED + - `70207`: MEETINGS_JP_NUMBER_INCLUDED + - `71000`: MEETINGS_GLOBAL_SELECT_NUMBER_INCLUDED Optional: diff --git a/internal/services/phone/usercallingplans/user_calling_plans_resource.go b/internal/services/phone/usercallingplans/user_calling_plans_resource.go index 698e0fa..8fa25d9 100644 --- a/internal/services/phone/usercallingplans/user_calling_plans_resource.go +++ b/internal/services/phone/usercallingplans/user_calling_plans_resource.go @@ -3,6 +3,7 @@ package usercallingplans import ( "context" "fmt" + "sort" "strings" "github.com/folio-sec/terraform-provider-zoom/internal/provider/shared" @@ -24,84 +25,84 @@ var ( ) // See also: https://developers.zoom.us/docs/api/rest/other-references/calling-plans/ -var callingPlanMapping = map[string]int32{ - "NO_FEATURE_PACKAGE": 1, - "INTERNATIONAL_TOLL_NUMBER": 3, - "INTERNATIONAL_TOLL_FREE_NUMBER": 4, - "BYOC_NUMBER": 5, - "BETA_NUMBER": 6, - "METERED_PLAN_US_CA": 100, - "METERED_PLAN_AU_NZ": 101, - "METERED_PLAN_GB_IE": 102, - "METERED_EURA": 103, - "METERED_EURB": 104, - "METERED_JP": 107, - "UNLIMITED_PLAN_US_CA": 200, - "UNLIMITED_PLAN_AU_NZ": 201, - "UNLIMITED_PLAN_GB_IE": 202, - "UNLIMITED_EURA": 203, - "UNLIMITED_EURB": 204, - "UNLIMITED_JP": 207, - "US_CA_NUMBER": 300, - "AU_NZ_NUMBER": 301, - "GB_IE_NUMBER": 302, - "EURA_NUMBER": 303, - "EURB_NUMBER": 304, - "JP_NUMBER": 307, - "US_CA_TOLLFREE_NUMBER": 400, - "AU_TOLLFREE_NUMBER": 401, - "GB_IE_TOLLFREE_NUMBER": 402, - "NZ_TOLLFREE_NUMBER": 403, - "GLOBAL_TOLLFREE_NUMBER": 404, - "BETA": 600, - "UNLIMITED_DOMESTIC_SELECT": 1000, - "METERED_GLOBAL_SELECT": 1001, - "UNLIMITED_DOMESTIC_SELECT_NUMBER": 2000, - "ZP_PRO": 3000, - "BASIC": 3010, - "ZP_COMMON_AREA": 3040, - "RESERVED_PLAN": 3098, - "BASIC_MIGRATED": 3099, - "INTERNATIONAL_SELECT_ADDON": 4000, - "ZP_PREMIUM_ADDON": 4010, - "PREMIUM_NUMBER": 5000, - "METERED_US_CA_NUMBER_INCLUDED": 30000, - "METERED_AU_NZ_NUMBER_INCLUDED": 30001, - "METERED_GB_IE_NUMBER_INCLUDED": 30002, - "METERED_EURA_NUMBER_INCLUDED": 30003, - "METERED_EURB_NUMBER_INCLUDED": 30004, - "METERED_JP_NUMBER_INCLUDED": 30007, - "UNLIMITED_US_CA_NUMBER_INCLUDED": 31000, - "UNLIMITED_AU_NZ_NUMBER_INCLUDED": 31001, - "UNLIMITED_GB_IE_NUMBER_INCLUDED": 31002, - "UNLIMITED_EURA_NUMBER_INCLUDED": 31003, - "UNLIMITED_EURB_NUMBER_INCLUDED": 31004, - "UNLIMITED_JP_NUMBER_INCLUDED": 31007, - "UNLIMITED_DOMESTIC_SELECT_NUMBER_INCLUDED": 31005, - "METERED_GLOBAL_SELECT_NUMBER_INCLUDED": 31006, - "MEETINGS_PRO_UNLIMITED_US_CA": 40200, - "MEETINGS_PRO_UNLIMITED_AU_NZ": 40201, - "MEETINGS_PRO_UNLIMITED_GB_IE": 40202, - "MEETINGS_PRO_UNLIMITED_JP": 40207, - "MEETINGS_PRO_GLOBAL_SELECT": 41000, - "MEETINGS_PRO_PN_PRO": 43000, - "MEETINGS_BUS_UNLIMITED_US_CA": 50200, - "MEETINGS_BUS_UNLIMITED_AU_NZ": 50201, - "MEETINGS_BUS_UNLIMITED_GB_IE": 50202, - "MEETINGS_BUS_UNLIMITED_JP": 50207, - "MEETINGS_BUS_GLOBAL_SELECT": 51000, - "MEETINGS_BUS_PN_PRO": 53000, - "MEETINGS_ENT_UNLIMITED_US_CA": 60200, - "MEETINGS_ENT_UNLIMITED_AU_NZ": 60201, - "MEETINGS_ENT_UNLIMITED_GB_IE": 60202, - "MEETINGS_ENT_UNLIMITED_JP": 60207, - "MEETINGS_ENT_GLOBAL_SELECT": 61000, - "MEETINGS_ENT_PN_PRO": 63000, - "MEETINGS_US_CA_NUMBER_INCLUDED": 70200, - "MEETINGS_AU_NZ_NUMBER_INCLUDED": 70201, - "MEETINGS_GB_IE_NUMBER_INCLUDED": 70202, - "MEETINGS_JP_NUMBER_INCLUDED": 70207, - "MEETINGS_GLOBAL_SELECT_NUMBER_INCLUDED": 71000, +var callingPlanMapping = map[int32]string{ + 1: "NO_FEATURE_PACKAGE", + 3: "INTERNATIONAL_TOLL_NUMBER", + 4: "INTERNATIONAL_TOLL_FREE_NUMBER", + 5: "BYOC_NUMBER", + 6: "BETA_NUMBER", + 100: "METERED_PLAN_US_CA", + 101: "METERED_PLAN_AU_NZ", + 102: "METERED_PLAN_GB_IE", + 103: "METERED_EURA", + 104: "METERED_EURB", + 107: "METERED_JP", + 200: "UNLIMITED_PLAN_US_CA", + 201: "UNLIMITED_PLAN_AU_NZ", + 202: "UNLIMITED_PLAN_GB_IE", + 203: "UNLIMITED_EURA", + 204: "UNLIMITED_EURB", + 207: "UNLIMITED_JP", + 300: "US_CA_NUMBER", + 301: "AU_NZ_NUMBER", + 302: "GB_IE_NUMBER", + 303: "EURA_NUMBER", + 304: "EURB_NUMBER", + 307: "JP_NUMBER", + 400: "US_CA_TOLLFREE_NUMBER", + 401: "AU_TOLLFREE_NUMBER", + 402: "GB_IE_TOLLFREE_NUMBER", + 403: "NZ_TOLLFREE_NUMBER", + 404: "GLOBAL_TOLLFREE_NUMBER", + 600: "BETA", + 1000: "UNLIMITED_DOMESTIC_SELECT", + 1001: "METERED_GLOBAL_SELECT", + 2000: "UNLIMITED_DOMESTIC_SELECT_NUMBER", + 3000: "ZP_PRO", + 3010: "BASIC", + 3040: "ZP_COMMON_AREA", + 3098: "RESERVED_PLAN", + 3099: "BASIC_MIGRATED", + 4000: "INTERNATIONAL_SELECT_ADDON", + 4010: "ZP_PREMIUM_ADDON", + 5000: "PREMIUM_NUMBER", + 30000: "METERED_US_CA_NUMBER_INCLUDED", + 30001: "METERED_AU_NZ_NUMBER_INCLUDED", + 30002: "METERED_GB_IE_NUMBER_INCLUDED", + 30003: "METERED_EURA_NUMBER_INCLUDED", + 30004: "METERED_EURB_NUMBER_INCLUDED", + 30007: "METERED_JP_NUMBER_INCLUDED", + 31000: "UNLIMITED_US_CA_NUMBER_INCLUDED", + 31001: "UNLIMITED_AU_NZ_NUMBER_INCLUDED", + 31002: "UNLIMITED_GB_IE_NUMBER_INCLUDED", + 31003: "UNLIMITED_EURA_NUMBER_INCLUDED", + 31004: "UNLIMITED_EURB_NUMBER_INCLUDED", + 31005: "UNLIMITED_DOMESTIC_SELECT_NUMBER_INCLUDED", + 31006: "METERED_GLOBAL_SELECT_NUMBER_INCLUDED", + 31007: "UNLIMITED_JP_NUMBER_INCLUDED", + 40200: "MEETINGS_PRO_UNLIMITED_US_CA", + 40201: "MEETINGS_PRO_UNLIMITED_AU_NZ", + 40202: "MEETINGS_PRO_UNLIMITED_GB_IE", + 40207: "MEETINGS_PRO_UNLIMITED_JP", + 41000: "MEETINGS_PRO_GLOBAL_SELECT", + 43000: "MEETINGS_PRO_PN_PRO", + 50200: "MEETINGS_BUS_UNLIMITED_US_CA", + 50201: "MEETINGS_BUS_UNLIMITED_AU_NZ", + 50202: "MEETINGS_BUS_UNLIMITED_GB_IE", + 50207: "MEETINGS_BUS_UNLIMITED_JP", + 51000: "MEETINGS_BUS_GLOBAL_SELECT", + 53000: "MEETINGS_BUS_PN_PRO", + 60200: "MEETINGS_ENT_UNLIMITED_US_CA", + 60201: "MEETINGS_ENT_UNLIMITED_AU_NZ", + 60202: "MEETINGS_ENT_UNLIMITED_GB_IE", + 60207: "MEETINGS_ENT_UNLIMITED_JP", + 61000: "MEETINGS_ENT_GLOBAL_SELECT", + 63000: "MEETINGS_ENT_PN_PRO", + 70200: "MEETINGS_US_CA_NUMBER_INCLUDED", + 70201: "MEETINGS_AU_NZ_NUMBER_INCLUDED", + 70202: "MEETINGS_GB_IE_NUMBER_INCLUDED", + 70207: "MEETINGS_JP_NUMBER_INCLUDED", + 71000: "MEETINGS_GLOBAL_SELECT_NUMBER_INCLUDED", } func NewPhoneUserCallingPlansResource() resource.Resource { @@ -132,6 +133,8 @@ func (r *tfResource) Metadata(_ context.Context, req resource.MetadataRequest, r } func (r *tfResource) Schema(_ context.Context, _ resource.SchemaRequest, resp *resource.SchemaResponse) { + sortedCallingPlans := lo.MapToSlice(callingPlanMapping, func(k int32, _ string) int { return int(k) }) + sort.Ints(sortedCallingPlans) markdownSeparatorForList := "\n " resp.Schema = schema.Schema{ @@ -161,11 +164,11 @@ This resource requires the ` + strings.Join([]string{ "type": schema.Int32Attribute{ Required: true, Validators: []validator.Int32{ - int32validator.OneOf(lo.Values(callingPlanMapping)...), + int32validator.OneOf(lo.Keys(callingPlanMapping)...), }, - MarkdownDescription: "The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan. Allowed: " + strings.Join(lo.MapToSlice(callingPlanMapping, func(_ string, v int32) string { return fmt.Sprintf("`%d`", v) }), ", ") + + MarkdownDescription: "The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan. Allowed: " + strings.Join(lo.Map(sortedCallingPlans, func(v int, _ int) string { return fmt.Sprintf("`%d`", v) }), ", ") + strings.Join( - append([]string{""}, lo.MapToSlice(callingPlanMapping, func(k string, v int32) string { return fmt.Sprintf(" - `%d`: %s", v, k) })...), + append([]string{""}, lo.Map(sortedCallingPlans, func(v int, _ int) string { return fmt.Sprintf("- `%d`: %s", v, callingPlanMapping[int32(v)]) })...), markdownSeparatorForList, ), },