From 61deb6d427588b0251072c694ba0341f963ecaea Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Mon, 23 Dec 2024 11:11:58 +0100 Subject: [PATCH 1/7] feat(partner center sell): add custom service parameters for service object and set gc flags Signed-off-by: Peter Harasztia --- examples/ibm-partner-center-sell/README.md | 3 + examples/ibm-partner-center-sell/main.tf | 211 +++ go.mod | 8 +- go.sum | 14 +- ...ource_ibm_onboarding_catalog_deployment.go | 1417 ++++++++++++++- ..._ibm_onboarding_catalog_deployment_test.go | 830 ++++++++- .../resource_ibm_onboarding_catalog_plan.go | 255 ++- ...source_ibm_onboarding_catalog_plan_test.go | 82 +- ...resource_ibm_onboarding_catalog_product.go | 1611 +++++++++++++++-- ...rce_ibm_onboarding_catalog_product_test.go | 855 ++++++++- ...esource_ibm_onboarding_iam_registration.go | 463 +++-- ...ce_ibm_onboarding_iam_registration_test.go | 40 +- .../resource_ibm_onboarding_product.go | 39 +- .../resource_ibm_onboarding_registration.go | 8 + ...resource_ibm_onboarding_resource_broker.go | 29 +- ...nboarding_catalog_deployment.html.markdown | 274 ++- .../r/onboarding_catalog_plan.html.markdown | 8 +- .../onboarding_catalog_product.html.markdown | 273 ++- .../onboarding_iam_registration.html.markdown | 2 +- .../docs/r/onboarding_product.html.markdown | 4 +- .../r/onboarding_registration.html.markdown | 4 +- .../onboarding_resource_broker.html.markdown | 4 +- 22 files changed, 5793 insertions(+), 641 deletions(-) diff --git a/examples/ibm-partner-center-sell/README.md b/examples/ibm-partner-center-sell/README.md index cb93a89cb5a..c016ed6a437 100644 --- a/examples/ibm-partner-center-sell/README.md +++ b/examples/ibm-partner-center-sell/README.md @@ -120,6 +120,7 @@ resource "ibm_onboarding_catalog_deployment" "onboarding_catalog_deployment_inst | Name | Description | |------|-------------| +| geo_tags | | | url | The global catalog URL of your product. | | catalog_deployment_id | The ID of a global catalog object. | @@ -164,6 +165,7 @@ resource "ibm_onboarding_catalog_plan" "onboarding_catalog_plan_instance" { | Name | Description | |------|-------------| +| geo_tags | | | url | The global catalog URL of your product. | | catalog_plan_id | The ID of a global catalog object. | @@ -208,6 +210,7 @@ resource "ibm_onboarding_catalog_product" "onboarding_catalog_product_instance" | Name | Description | |------|-------------| +| geo_tags | | | url | The global catalog URL of your product. | | catalog_product_id | The ID of a global catalog object. | diff --git a/examples/ibm-partner-center-sell/main.tf b/examples/ibm-partner-center-sell/main.tf index 9bc4fc99239..bbe0d47d398 100644 --- a/examples/ibm-partner-center-sell/main.tf +++ b/examples/ibm-partner-center-sell/main.tf @@ -80,6 +80,111 @@ resource "ibm_onboarding_catalog_deployment" "onboarding_catalog_deployment_inst bindable = true plan_updateable = true service_key_supported = true + parameters { + displayname = "displayname" + name = "name" + type = "text" + options { + displayname = "displayname" + value = "value" + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } + value = [ "value" ] + layout = "layout" + associations = { "key" = "anything as a string" } + validation_url = "validation_url" + options_url = "options_url" + invalidmessage = "invalidmessage" + description = "description" + required = true + pattern = "pattern" + placeholder = "placeholder" + readonly = true + hidden = true + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } } deployment { broker { @@ -229,6 +334,112 @@ resource "ibm_onboarding_catalog_product" "onboarding_catalog_product_instance" bindable = true plan_updateable = true service_key_supported = true + unique_api_key = true + parameters { + displayname = "displayname" + name = "name" + type = "text" + options { + displayname = "displayname" + value = "value" + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } + value = [ "value" ] + layout = "layout" + associations = { "key" = "anything as a string" } + validation_url = "validation_url" + options_url = "options_url" + invalidmessage = "invalidmessage" + description = "description" + required = true + pattern = "pattern" + placeholder = "placeholder" + readonly = true + hidden = true + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } } other { pc { diff --git a/go.mod b/go.mod index 5f28ac1d487..0166d3859f6 100644 --- a/go.mod +++ b/go.mod @@ -205,15 +205,15 @@ require ( go.uber.org/atomic v1.9.0 // indirect go.uber.org/ratelimit v0.2.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect google.golang.org/grpc v1.67.1 // indirect @@ -248,3 +248,5 @@ exclude ( k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible k8s.io/client-go v12.0.0+incompatible ) + +replace github.com/IBM/platform-services-go-sdk v0.71.1 => ../platform-services-go-sdk diff --git a/go.sum b/go.sum index 15c17f91c9b..66b94437c28 100644 --- a/go.sum +++ b/go.sum @@ -155,8 +155,6 @@ github.com/IBM/mqcloud-go-sdk v0.2.0 h1:QOWk8ZGk0QfIL0MOGTKzNdM3Qe0Hk+ifAFtNSFQo github.com/IBM/mqcloud-go-sdk v0.2.0/go.mod h1:VZQKMtqmcdXKhmLhLiPuS/UHMs/5yo2tA/nD83cQt9E= github.com/IBM/networking-go-sdk v0.49.0 h1:lPS34u3C0JVrbxH+Ulua76Nwl6Frv8BEfq6LRkyvOv0= github.com/IBM/networking-go-sdk v0.49.0/go.mod h1:G9CKbmPE8gSLjN+ABh4hIZ1bMx076enl5Eekvj6zQnA= -github.com/IBM/platform-services-go-sdk v0.71.1 h1:EyqSctlLVqj092yU6K9hyTyx7JIpzhE192n6eG+Daac= -github.com/IBM/platform-services-go-sdk v0.71.1/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw= github.com/IBM/project-go-sdk v0.3.5 h1:L+YClFUa14foS0B/hOOY9n7sIdsT5/XQicnXOyJSpyM= github.com/IBM/project-go-sdk v0.3.5/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4= @@ -1389,8 +1387,8 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1471,8 +1469,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1778,8 +1776,8 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment.go index 00486adbed2..034b8274853 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment.go @@ -347,6 +347,528 @@ func ResourceIbmOnboardingCatalogDeployment() *schema.Resource { Optional: true, Description: "Indicates service credentials support and controls the Service Credential tab on Resource Details page.", }, + "parameters": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The display name for custom service parameters.", + }, + "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The key of the parameter.", + }, + "type": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The type of custom service parameters.", + }, + "options": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The display name for custom service parameters.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The value for custom service parameters.", + }, + "i18n": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The description for the object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "en": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "de": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "es": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "fr": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "it": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ja": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ko": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "pt_br": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_tw": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_cn": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + "value": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "layout": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Specifies the layout of check box or radio input types. When unspecified, the default layout is horizontal.", + }, + "associations": &schema.Schema{ + Type: schema.TypeMap, + Optional: true, + Description: "A JSON structure to describe the interactions with pricing plans and/or other custom parameters.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "validation_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The validation URL for custom service parameters.", + }, + "options_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The options URL for custom service parameters.", + }, + "invalidmessage": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The message that appears when the content of the text box is invalid.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The description of the parameter that is displayed to help users with the value of the parameter.", + }, + "required": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "A boolean value that indicates whether the parameter must be entered in the IBM Cloud user interface.", + }, + "pattern": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A regular expression that the value is checked against.", + }, + "placeholder": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The placeholder text for custom parameters.", + }, + "readonly": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "A boolean value that indicates whether the value of the parameter is displayed only and cannot be changed by users. The default value is false.", + }, + "hidden": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Indicates whether the custom parameters is hidden required or not.", + }, + "i18n": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The description for the object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "en": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "de": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "es": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "fr": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "it": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ja": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ko": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "pt_br": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_tw": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_cn": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, }, }, }, @@ -398,6 +920,11 @@ func ResourceIbmOnboardingCatalogDeployment() *schema.Resource { }, }, }, + "geo_tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, "url": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -623,6 +1150,12 @@ func resourceIbmOnboardingCatalogDeploymentRead(context context.Context, d *sche return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_deployment", "read", "set-metadata").GetDiag() } } + if !core.IsNil(globalCatalogDeployment.GeoTags) { + if err = d.Set("geo_tags", globalCatalogDeployment.GeoTags); err != nil { + err = fmt.Errorf("Error setting geo_tags: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_deployment", "read", "set-geo_tags").GetDiag() + } + } if !core.IsNil(globalCatalogDeployment.URL) { if err = d.Set("url", globalCatalogDeployment.URL); err != nil { err = fmt.Errorf("Error setting url: %s", err) @@ -844,7 +1377,7 @@ func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadata( model.Ui = UiModel } if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 && modelMap["service"].([]interface{})[0] != nil { - ServiceModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) + ServiceModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } @@ -999,8 +1532,8 @@ func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataUIUrls(mode return model, nil } -func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataService, error) { - model := &partnercentersellv1.GlobalCatalogMetadataService{} +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogDeploymentMetadataService, error) { + model := &partnercentersellv1.GlobalCatalogDeploymentMetadataService{} if modelMap["rc_provisionable"] != nil { model.RcProvisionable = core.BoolPtr(modelMap["rc_provisionable"].(bool)) } @@ -1016,26 +1549,213 @@ func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataService(mod if modelMap["service_key_supported"] != nil { model.ServiceKeySupported = core.BoolPtr(modelMap["service_key_supported"].(bool)) } + if modelMap["parameters"] != nil { + parameters := []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{} + for _, parametersItem := range modelMap["parameters"].([]interface{}) { + parametersItemModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParameters(parametersItem.(map[string]interface{})) + if err != nil { + return model, err + } + parameters = append(parameters, *parametersItemModel) + } + model.Parameters = parameters + } return model, nil } -func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataDeployment(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataDeployment, error) { - model := &partnercentersellv1.GlobalCatalogMetadataDeployment{} - if modelMap["broker"] != nil && len(modelMap["broker"].([]interface{})) > 0 && modelMap["broker"].([]interface{})[0] != nil { - BrokerModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataDeploymentBroker(modelMap["broker"].([]interface{})[0].(map[string]interface{})) - if err != nil { - return model, err - } - model.Broker = BrokerModel - } - if modelMap["location"] != nil && modelMap["location"].(string) != "" { - model.Location = core.StringPtr(modelMap["location"].(string)) +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParameters(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) } - if modelMap["location_url"] != nil && modelMap["location_url"].(string) != "" { - model.LocationURL = core.StringPtr(modelMap["location_url"].(string)) + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) } - if modelMap["target_crn"] != nil && modelMap["target_crn"].(string) != "" { - model.TargetCrn = core.StringPtr(modelMap["target_crn"].(string)) + if modelMap["type"] != nil && modelMap["type"].(string) != "" { + model.Type = core.StringPtr(modelMap["type"].(string)) + } + if modelMap["options"] != nil { + options := []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{} + for _, optionsItem := range modelMap["options"].([]interface{}) { + optionsItemModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersOptions(optionsItem.(map[string]interface{})) + if err != nil { + return model, err + } + options = append(options, *optionsItemModel) + } + model.Options = options + } + if modelMap["value"] != nil { + value := []string{} + for _, valueItem := range modelMap["value"].([]interface{}) { + value = append(value, valueItem.(string)) + } + model.Value = value + } + if modelMap["layout"] != nil && modelMap["layout"].(string) != "" { + model.Layout = core.StringPtr(modelMap["layout"].(string)) + } + if modelMap["associations"] != nil { + model.Associations = modelMap["associations"].(map[string]interface{}) + } + if modelMap["validation_url"] != nil && modelMap["validation_url"].(string) != "" { + model.ValidationURL = core.StringPtr(modelMap["validation_url"].(string)) + } + if modelMap["options_url"] != nil && modelMap["options_url"].(string) != "" { + model.OptionsURL = core.StringPtr(modelMap["options_url"].(string)) + } + if modelMap["invalidmessage"] != nil && modelMap["invalidmessage"].(string) != "" { + model.Invalidmessage = core.StringPtr(modelMap["invalidmessage"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["required"] != nil { + model.Required = core.BoolPtr(modelMap["required"].(bool)) + } + if modelMap["pattern"] != nil && modelMap["pattern"].(string) != "" { + model.Pattern = core.StringPtr(modelMap["pattern"].(string)) + } + if modelMap["placeholder"] != nil && modelMap["placeholder"].(string) != "" { + model.Placeholder = core.StringPtr(modelMap["placeholder"].(string)) + } + if modelMap["readonly"] != nil { + model.Readonly = core.BoolPtr(modelMap["readonly"].(bool)) + } + if modelMap["hidden"] != nil { + model.Hidden = core.BoolPtr(modelMap["hidden"].(bool)) + } + if modelMap["i18n"] != nil && len(modelMap["i18n"].([]interface{})) > 0 { + I18nModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap["i18n"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.I18n = I18nModel + } + return model, nil +} + +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersOptions(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) + } + if modelMap["value"] != nil && modelMap["value"].(string) != "" { + model.Value = core.StringPtr(modelMap["value"].(string)) + } + if modelMap["i18n"] != nil && len(modelMap["i18n"].([]interface{})) > 0 { + I18nModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap["i18n"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.I18n = I18nModel + } + return model, nil +} + +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n{} + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { + EnModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["en"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.En = EnModel + } + if modelMap["de"] != nil && len(modelMap["de"].([]interface{})) > 0 { + DeModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["de"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.De = DeModel + } + if modelMap["es"] != nil && len(modelMap["es"].([]interface{})) > 0 { + EsModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["es"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Es = EsModel + } + if modelMap["fr"] != nil && len(modelMap["fr"].([]interface{})) > 0 { + FrModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["fr"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Fr = FrModel + } + if modelMap["it"] != nil && len(modelMap["it"].([]interface{})) > 0 { + ItModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["it"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.It = ItModel + } + if modelMap["ja"] != nil && len(modelMap["ja"].([]interface{})) > 0 { + JaModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["ja"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Ja = JaModel + } + if modelMap["ko"] != nil && len(modelMap["ko"].([]interface{})) > 0 { + KoModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["ko"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Ko = KoModel + } + if modelMap["pt_br"] != nil && len(modelMap["pt_br"].([]interface{})) > 0 { + PtBrModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["pt_br"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.PtBr = PtBrModel + } + if modelMap["zh_tw"] != nil && len(modelMap["zh_tw"].([]interface{})) > 0 { + ZhTwModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["zh_tw"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ZhTw = ZhTwModel + } + if modelMap["zh_cn"] != nil && len(modelMap["zh_cn"].([]interface{})) > 0 { + ZhCnModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["zh_cn"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ZhCn = ZhCnModel + } + return model, nil +} + +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + return model, nil +} + +func ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataDeployment(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataDeployment, error) { + model := &partnercentersellv1.GlobalCatalogMetadataDeployment{} + if modelMap["broker"] != nil && len(modelMap["broker"].([]interface{})) > 0 && modelMap["broker"].([]interface{})[0] != nil { + BrokerModel, err := ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataDeploymentBroker(modelMap["broker"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Broker = BrokerModel + } + if modelMap["location"] != nil && modelMap["location"].(string) != "" { + model.Location = core.StringPtr(modelMap["location"].(string)) + } + if modelMap["location_url"] != nil && modelMap["location_url"].(string) != "" { + model.LocationURL = core.StringPtr(modelMap["location_url"].(string)) + } + if modelMap["target_crn"] != nil && modelMap["target_crn"].(string) != "" { + model.TargetCrn = core.StringPtr(modelMap["target_crn"].(string)) } return model, nil } @@ -1101,7 +1821,7 @@ func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataToMap( modelMap["ui"] = []map[string]interface{}{uiMap} } if model.Service != nil { - serviceMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceToMap(model.Service) + serviceMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceToMap(model.Service) if err != nil { return modelMap, err } @@ -1253,7 +1973,7 @@ func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsToMap(mode return modelMap, nil } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogMetadataService) (map[string]interface{}, error) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogDeploymentMetadataService) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.RcProvisionable != nil { modelMap["rc_provisionable"] = *model.RcProvisionable @@ -1270,6 +1990,193 @@ func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceToMap(mod if model.ServiceKeySupported != nil { modelMap["service_key_supported"] = *model.ServiceKeySupported } + if model.Parameters != nil { + parameters := []map[string]interface{}{} + for _, parametersItem := range model.Parameters { + parametersItemMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersToMap(¶metersItem) // #nosec G601 + if err != nil { + return modelMap, err + } + parameters = append(parameters, parametersItemMap) + } + modelMap["parameters"] = parameters + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.Type != nil { + modelMap["type"] = *model.Type + } + if model.Options != nil { + options := []map[string]interface{}{} + for _, optionsItem := range model.Options { + optionsItemMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsToMap(&optionsItem) // #nosec G601 + if err != nil { + return modelMap, err + } + options = append(options, optionsItemMap) + } + modelMap["options"] = options + } + if model.Value != nil { + modelMap["value"] = model.Value + } + if model.Layout != nil { + modelMap["layout"] = *model.Layout + } + if model.Associations != nil { + associations := make(map[string]interface{}) + for k, v := range model.Associations { + associations[k] = flex.Stringify(v) + } + modelMap["associations"] = associations + } + if model.ValidationURL != nil { + modelMap["validation_url"] = *model.ValidationURL + } + if model.OptionsURL != nil { + modelMap["options_url"] = *model.OptionsURL + } + if model.Invalidmessage != nil { + modelMap["invalidmessage"] = *model.Invalidmessage + } + if model.Description != nil { + modelMap["description"] = *model.Description + } + if model.Required != nil { + modelMap["required"] = *model.Required + } + if model.Pattern != nil { + modelMap["pattern"] = *model.Pattern + } + if model.Placeholder != nil { + modelMap["placeholder"] = *model.Placeholder + } + if model.Readonly != nil { + modelMap["readonly"] = *model.Readonly + } + if model.Hidden != nil { + modelMap["hidden"] = *model.Hidden + } + if model.I18n != nil { + i18nMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nToMap(model.I18n) + if err != nil { + return modelMap, err + } + modelMap["i18n"] = []map[string]interface{}{i18nMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Value != nil { + modelMap["value"] = *model.Value + } + if model.I18n != nil { + i18nMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nToMap(model.I18n) + if err != nil { + return modelMap, err + } + modelMap["i18n"] = []map[string]interface{}{i18nMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.En != nil { + enMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.En) + if err != nil { + return modelMap, err + } + modelMap["en"] = []map[string]interface{}{enMap} + } + if model.De != nil { + deMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.De) + if err != nil { + return modelMap, err + } + modelMap["de"] = []map[string]interface{}{deMap} + } + if model.Es != nil { + esMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Es) + if err != nil { + return modelMap, err + } + modelMap["es"] = []map[string]interface{}{esMap} + } + if model.Fr != nil { + frMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Fr) + if err != nil { + return modelMap, err + } + modelMap["fr"] = []map[string]interface{}{frMap} + } + if model.It != nil { + itMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.It) + if err != nil { + return modelMap, err + } + modelMap["it"] = []map[string]interface{}{itMap} + } + if model.Ja != nil { + jaMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Ja) + if err != nil { + return modelMap, err + } + modelMap["ja"] = []map[string]interface{}{jaMap} + } + if model.Ko != nil { + koMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Ko) + if err != nil { + return modelMap, err + } + modelMap["ko"] = []map[string]interface{}{koMap} + } + if model.PtBr != nil { + ptBrMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.PtBr) + if err != nil { + return modelMap, err + } + modelMap["pt_br"] = []map[string]interface{}{ptBrMap} + } + if model.ZhTw != nil { + zhTwMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.ZhTw) + if err != nil { + return modelMap, err + } + modelMap["zh_tw"] = []map[string]interface{}{zhTwMap} + } + if model.ZhCn != nil { + zhCnMap, err := ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.ZhCn) + if err != nil { + return modelMap, err + } + modelMap["zh_cn"] = []map[string]interface{}{zhCnMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Description != nil { + modelMap["description"] = *model.Description + } return modelMap, nil } @@ -1312,286 +2219,620 @@ func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentPatchAsPatch(p path = "active" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["active"] = nil + } else if !exists { + delete(patch, "active") } path = "disabled" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["disabled"] = nil + } else if !exists { + delete(patch, "disabled") } path = "overview_ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["overview_ui"] = nil } else if exists && patch["overview_ui"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "overview_ui") } path = "tags" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["tags"] = nil + } else if !exists { + delete(patch, "tags") } path = "object_provider" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["object_provider"] = nil } else if exists && patch["object_provider"] != nil { - ResourceIbmOnboardingCatalogDeploymentCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "object_provider") } path = "metadata" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["metadata"] = nil } else if exists && patch["metadata"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataAsPatch(patch["metadata"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataAsPatch(patch["metadata"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "metadata") } return patch } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.rc_compatible" + path = rootPath + ".rc_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_compatible"] = nil + } else if !exists { + delete(patch, "rc_compatible") } - path = "metadata.0.ui" + path = rootPath + ".ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ui"] = nil } else if exists && patch["ui"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "ui") } - path = "metadata.0.service" + path = rootPath + ".service" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service"] = nil } else if exists && patch["service"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "service") } - path = "metadata.0.deployment" + path = rootPath + ".deployment" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["deployment"] = nil } else if exists && patch["deployment"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentAsPatch(patch["deployment"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentAsPatch(patch["deployment"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "deployment") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.deployment.0.broker" + path = rootPath + ".broker" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["broker"] = nil } else if exists && patch["broker"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentBrokerAsPatch(patch["broker"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentBrokerAsPatch(patch["broker"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "broker") } - path = "metadata.0.deployment.0.location" + path = rootPath + ".location" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["location"] = nil + } else if !exists { + delete(patch, "location") } - path = "metadata.0.deployment.0.location_url" + path = rootPath + ".location_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["location_url"] = nil + } else if !exists { + delete(patch, "location_url") } - path = "metadata.0.deployment.0.target_crn" + path = rootPath + ".target_crn" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["target_crn"] = nil + } else if !exists { + delete(patch, "target_crn") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentBrokerAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataDeploymentBrokerAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.deployment.0.broker.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } - path = "metadata.0.deployment.0.broker.0.guid" + path = rootPath + ".guid" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["guid"] = nil + } else if !exists { + delete(patch, "guid") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.service.0.rc_provisionable" + path = rootPath + ".rc_provisionable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_provisionable"] = nil + } else if !exists { + delete(patch, "rc_provisionable") } - path = "metadata.0.service.0.iam_compatible" + path = rootPath + ".iam_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["iam_compatible"] = nil + } else if !exists { + delete(patch, "iam_compatible") } - path = "metadata.0.service.0.bindable" + path = rootPath + ".bindable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bindable"] = nil + } else if !exists { + delete(patch, "bindable") } - path = "metadata.0.service.0.plan_updateable" + path = rootPath + ".plan_updateable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["plan_updateable"] = nil + } else if !exists { + delete(patch, "plan_updateable") } - path = "metadata.0.service.0.service_key_supported" + path = rootPath + ".service_key_supported" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service_key_supported"] = nil + } else if !exists { + delete(patch, "service_key_supported") + } + path = rootPath + ".parameters" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["parameters"] = nil + } else if exists && patch["parameters"] != nil { + parametersList := patch["parameters"].([]map[string]interface{}) + for i, parametersItem := range parametersList { + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersAsPatch(parametersItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "parameters") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings" + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".name" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["name"] = nil + } else if !exists { + delete(patch, "name") + } + path = rootPath + ".type" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["type"] = nil + } else if !exists { + delete(patch, "type") + } + path = rootPath + ".options" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["options"] = nil + } else if exists && patch["options"] != nil { + optionsList := patch["options"].([]map[string]interface{}) + for i, optionsItem := range optionsList { + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsAsPatch(optionsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "options") + } + path = rootPath + ".value" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["value"] = nil + } else if !exists { + delete(patch, "value") + } + path = rootPath + ".layout" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["layout"] = nil + } else if !exists { + delete(patch, "layout") + } + path = rootPath + ".associations" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["associations"] = nil + } else if !exists { + delete(patch, "associations") + } + path = rootPath + ".validation_url" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["validation_url"] = nil + } else if !exists { + delete(patch, "validation_url") + } + path = rootPath + ".options_url" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["options_url"] = nil + } else if !exists { + delete(patch, "options_url") + } + path = rootPath + ".invalidmessage" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["invalidmessage"] = nil + } else if !exists { + delete(patch, "invalidmessage") + } + path = rootPath + ".description" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["description"] = nil + } else if !exists { + delete(patch, "description") + } + path = rootPath + ".required" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["required"] = nil + } else if !exists { + delete(patch, "required") + } + path = rootPath + ".pattern" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["pattern"] = nil + } else if !exists { + delete(patch, "pattern") + } + path = rootPath + ".placeholder" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["placeholder"] = nil + } else if !exists { + delete(patch, "placeholder") + } + path = rootPath + ".readonly" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["readonly"] = nil + } else if !exists { + delete(patch, "readonly") + } + path = rootPath + ".hidden" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") + } + path = rootPath + ".i18n" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["i18n"] = nil + } else if !exists { + delete(patch, "i18n") + } +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".value" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["value"] = nil + } else if !exists { + delete(patch, "value") + } + path = rootPath + ".i18n" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["i18n"] = nil + } else if exists && patch["i18n"] != nil { + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nAsPatch(patch["i18n"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "i18n") + } +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".en" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["en"] = nil + } else if exists && patch["en"] != nil { + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") + } + path = rootPath + ".de" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["de"] = nil + } else if !exists { + delete(patch, "de") + } + path = rootPath + ".es" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["es"] = nil + } else if !exists { + delete(patch, "es") + } + path = rootPath + ".fr" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["fr"] = nil + } else if !exists { + delete(patch, "fr") + } + path = rootPath + ".it" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["it"] = nil + } else if !exists { + delete(patch, "it") + } + path = rootPath + ".ja" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["ja"] = nil + } else if !exists { + delete(patch, "ja") + } + path = rootPath + ".ko" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["ko"] = nil + } else if !exists { + delete(patch, "ko") + } + path = rootPath + ".pt_br" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["pt_br"] = nil + } else if !exists { + delete(patch, "pt_br") + } + path = rootPath + ".zh_tw" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["zh_tw"] = nil + } else if !exists { + delete(patch, "zh_tw") + } + path = rootPath + ".zh_cn" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["zh_cn"] = nil + } else if !exists { + delete(patch, "zh_cn") + } +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".description" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["description"] = nil + } else if !exists { + delete(patch, "description") + } +} + +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".strings" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["strings"] = nil } else if exists && patch["strings"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "strings") } - path = "metadata.0.ui.0.urls" + path = rootPath + ".urls" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["urls"] = nil } else if exists && patch["urls"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "urls") } - path = "metadata.0.ui.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } - path = "metadata.0.ui.0.side_by_side_index" + path = rootPath + ".side_by_side_index" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["side_by_side_index"] = nil + } else if !exists { + delete(patch, "side_by_side_index") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.urls.0.doc_url" + path = rootPath + ".doc_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["doc_url"] = nil + } else if !exists { + delete(patch, "doc_url") } - path = "metadata.0.ui.0.urls.0.apidocs_url" + path = rootPath + ".apidocs_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["apidocs_url"] = nil + } else if !exists { + delete(patch, "apidocs_url") } - path = "metadata.0.ui.0.urls.0.terms_url" + path = rootPath + ".terms_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["terms_url"] = nil + } else if !exists { + delete(patch, "terms_url") } - path = "metadata.0.ui.0.urls.0.instructions_url" + path = rootPath + ".instructions_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["instructions_url"] = nil + } else if !exists { + delete(patch, "instructions_url") } - path = "metadata.0.ui.0.urls.0.catalog_details_url" + path = rootPath + ".catalog_details_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["catalog_details_url"] = nil + } else if !exists { + delete(patch, "catalog_details_url") } - path = "metadata.0.ui.0.urls.0.custom_create_page_url" + path = rootPath + ".custom_create_page_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["custom_create_page_url"] = nil + } else if !exists { + delete(patch, "custom_create_page_url") } - path = "metadata.0.ui.0.urls.0.dashboard" + path = rootPath + ".dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["dashboard"] = nil + } else if !exists { + delete(patch, "dashboard") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets" + path = rootPath + ".bullets" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bullets"] = nil } else if exists && patch["bullets"] != nil { - ResourceIbmOnboardingCatalogDeploymentCatalogHighlightItemAsPatch(patch["bullets"].([]map[string]interface{})[0], d) + bulletsList := patch["bullets"].([]map[string]interface{}) + for i, bulletsItem := range bulletsList { + ResourceIbmOnboardingCatalogDeploymentCatalogHighlightItemAsPatch(bulletsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "bullets") } - path = "metadata.0.ui.0.strings.0.en.0.media" + path = rootPath + ".media" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["media"] = nil } else if exists && patch["media"] != nil { - ResourceIbmOnboardingCatalogDeploymentCatalogProductMediaItemAsPatch(patch["media"].([]map[string]interface{})[0], d) + mediaList := patch["media"].([]map[string]interface{}) + for i, mediaItem := range mediaList { + ResourceIbmOnboardingCatalogDeploymentCatalogProductMediaItemAsPatch(mediaItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "media") } - path = "metadata.0.ui.0.strings.0.en.0.embeddable_dashboard" + path = rootPath + ".embeddable_dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["embeddable_dashboard"] = nil + } else if !exists { + delete(patch, "embeddable_dashboard") } } -func ResourceIbmOnboardingCatalogDeploymentCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.media.0.caption_i18n" + path = rootPath + ".caption_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["caption_i18n"] = nil + } else if !exists { + delete(patch, "caption_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.media.0.thumbnail" + path = rootPath + ".thumbnail" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["thumbnail"] = nil + } else if !exists { + delete(patch, "thumbnail") } } -func ResourceIbmOnboardingCatalogDeploymentCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description_i18n" + path = rootPath + ".description_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description_i18n"] = nil + } else if !exists { + delete(patch, "description_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title" + path = rootPath + ".title" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title"] = nil + } else if !exists { + delete(patch, "title") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title_i18n" + path = rootPath + ".title_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title_i18n"] = nil + } else if !exists { + delete(patch, "title_i18n") } } -func ResourceIbmOnboardingCatalogDeploymentCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "object_provider.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } - path = "object_provider.0.email" + path = rootPath + ".email" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["email"] = nil + } else if !exists { + delete(patch, "email") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogDeploymentGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil + } else if !exists { + delete(patch, "display_name") } - path = "overview_ui.0.en.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "overview_ui.0.en.0.long_description" + path = rootPath + ".long_description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["long_description"] = nil + } else if !exists { + delete(patch, "long_description") } } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go index 4c533f287c8..79f68277f02 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go @@ -214,12 +214,12 @@ func testAccCheckIbmOnboardingCatalogDeploymentConfig(productID string, catalogP target_crn = "crn:v1:staging:public::ams03:::environment:staging-ams03" } ui { - strings { - en { - bullets { + strings { + en { + bullets { title = "%s" description = "some1" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" @@ -248,51 +248,51 @@ func testAccCheckIbmOnboardingCatalogDeploymentUpdateConfig(productID string, ca overview_ui { en { display_name = "%s" - description = "description" + description = "description" long_description = "long_description" - } + } } tags = ["sample", "moreSample"] object_provider { name = "name" email = "email@email.com" - } + } metadata { rc_compatible = "%s" service { rc_provisionable = true iam_compatible = "%s" - } + } deployment { broker { name = "%s" guid = "guid" - } + } location = "ams03" location_url = "https://globalcatalog.test.cloud.ibm.com/api/v1/ams03" target_crn = "crn:v1:staging:public::ams03:::environment:staging-ams03" } ui { strings { - en { + en { bullets { title = "%s" description = "some1" - } + } bullets { title = "newBullet" description = "some1" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" caption = "%s" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" caption = "newMedia" - } + } } } } @@ -473,12 +473,53 @@ func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataTo globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogDeploymentMetadataServiceModel := make(map[string]interface{}) + globalCatalogDeploymentMetadataServiceModel["rc_provisionable"] = true + globalCatalogDeploymentMetadataServiceModel["iam_compatible"] = true + globalCatalogDeploymentMetadataServiceModel["bindable"] = true + globalCatalogDeploymentMetadataServiceModel["plan_updateable"] = true + globalCatalogDeploymentMetadataServiceModel["service_key_supported"] = true + globalCatalogDeploymentMetadataServiceModel["parameters"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersModel} globalCatalogMetadataDeploymentBrokerModel := make(map[string]interface{}) globalCatalogMetadataDeploymentBrokerModel["name"] = "testString" @@ -493,7 +534,7 @@ func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataTo model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []map[string]interface{}{globalCatalogMetadataUiModel} - model["service"] = []map[string]interface{}{globalCatalogMetadataServiceModel} + model["service"] = []map[string]interface{}{globalCatalogDeploymentMetadataServiceModel} model["deployment"] = []map[string]interface{}{globalCatalogMetadataDeploymentModel} assert.Equal(t, result, model) @@ -535,12 +576,53 @@ func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataTo globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogDeploymentMetadataServiceModel := new(partnercentersellv1.GlobalCatalogDeploymentMetadataService) + globalCatalogDeploymentMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} globalCatalogMetadataDeploymentBrokerModel := new(partnercentersellv1.GlobalCatalogMetadataDeploymentBroker) globalCatalogMetadataDeploymentBrokerModel.Name = core.StringPtr("testString") @@ -555,7 +637,7 @@ func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataTo model := new(partnercentersellv1.GlobalCatalogDeploymentMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogDeploymentMetadataServiceModel model.Deployment = globalCatalogMetadataDeploymentModel result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataToMap(model) @@ -817,26 +899,310 @@ func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataUIUrlsToMap( checkResult(result) } -func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceToMap(t *testing.T) { +func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceToMap(t *testing.T) { checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + model := make(map[string]interface{}) model["rc_provisionable"] = true model["iam_compatible"] = true model["bindable"] = true model["plan_updateable"] = true model["service_key_supported"] = true + model["parameters"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersModel} assert.Equal(t, result, model) } - model := new(partnercentersellv1.GlobalCatalogMetadataService) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogDeploymentMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) model.PlanUpdateable = core.BoolPtr(true) model.ServiceKeySupported = core.BoolPtr(true) + model.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogDeploymentMetadataServiceToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["name"] = "testString" + model["type"] = "text" + model["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + model["value"] = []string{"testString"} + model["layout"] = "testString" + model["associations"] = map[string]interface{}{"anyKey": "anyValue"} + model["validation_url"] = "testString" + model["options_url"] = "testString" + model["invalidmessage"] = "testString" + model["description"] = "testString" + model["required"] = true + model["pattern"] = "testString" + model["placeholder"] = "testString" + model["readonly"] = true + model["hidden"] = true + model["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + model.Displayname = core.StringPtr("testString") + model.Name = core.StringPtr("testString") + model.Type = core.StringPtr("text") + model.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + model.Value = []string{"testString"} + model.Layout = core.StringPtr("testString") + model.Associations = map[string]interface{}{"anyKey": "anyValue"} + model.ValidationURL = core.StringPtr("testString") + model.OptionsURL = core.StringPtr("testString") + model.Invalidmessage = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + model.Required = core.BoolPtr(true) + model.Pattern = core.StringPtr("testString") + model.Placeholder = core.StringPtr("testString") + model.Readonly = core.BoolPtr(true) + model.Hidden = core.BoolPtr(true) + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["value"] = "testString" + model["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + model.Displayname = core.StringPtr("testString") + model.Value = core.StringPtr("testString") + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersOptionsToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + model := make(map[string]interface{}) + model["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + model.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["description"] = "testString" + + assert.Equal(t, result, model) + } + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + model.Displayname = core.StringPtr("testString") + model.Description = core.StringPtr("testString") - result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceToMap(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model) assert.Nil(t, err) checkResult(result) } @@ -991,12 +1357,53 @@ func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetad globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogDeploymentMetadataServiceModel := new(partnercentersellv1.GlobalCatalogDeploymentMetadataService) + globalCatalogDeploymentMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogDeploymentMetadataServiceModel.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} globalCatalogMetadataDeploymentBrokerModel := new(partnercentersellv1.GlobalCatalogMetadataDeploymentBroker) globalCatalogMetadataDeploymentBrokerModel.Name = core.StringPtr("testString") @@ -1011,7 +1418,7 @@ func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetad model := new(partnercentersellv1.GlobalCatalogDeploymentMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogDeploymentMetadataServiceModel model.Deployment = globalCatalogMetadataDeploymentModel assert.Equal(t, result, model) @@ -1053,12 +1460,53 @@ func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetad globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []interface{}{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogDeploymentMetadataServiceModel := make(map[string]interface{}) + globalCatalogDeploymentMetadataServiceModel["rc_provisionable"] = true + globalCatalogDeploymentMetadataServiceModel["iam_compatible"] = true + globalCatalogDeploymentMetadataServiceModel["bindable"] = true + globalCatalogDeploymentMetadataServiceModel["plan_updateable"] = true + globalCatalogDeploymentMetadataServiceModel["service_key_supported"] = true + globalCatalogDeploymentMetadataServiceModel["parameters"] = []interface{}{globalCatalogMetadataServiceCustomParametersModel} globalCatalogMetadataDeploymentBrokerModel := make(map[string]interface{}) globalCatalogMetadataDeploymentBrokerModel["name"] = "testString" @@ -1073,7 +1521,7 @@ func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetad model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []interface{}{globalCatalogMetadataUiModel} - model["service"] = []interface{}{globalCatalogMetadataServiceModel} + model["service"] = []interface{}{globalCatalogDeploymentMetadataServiceModel} model["deployment"] = []interface{}{globalCatalogMetadataDeploymentModel} result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadata(model) @@ -1335,26 +1783,310 @@ func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataUIUrls( checkResult(result) } -func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataService(t *testing.T) { - checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataService) { - model := new(partnercentersellv1.GlobalCatalogMetadataService) +func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadataService(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogDeploymentMetadataService) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogDeploymentMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) model.PlanUpdateable = core.BoolPtr(true) model.ServiceKeySupported = core.BoolPtr(true) + model.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} assert.Equal(t, result, model) } + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []interface{}{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + model := make(map[string]interface{}) model["rc_provisionable"] = true model["iam_compatible"] = true model["bindable"] = true model["plan_updateable"] = true model["service_key_supported"] = true + model["parameters"] = []interface{}{globalCatalogMetadataServiceCustomParametersModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogDeploymentMetadataService(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParameters(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + model.Displayname = core.StringPtr("testString") + model.Name = core.StringPtr("testString") + model.Type = core.StringPtr("text") + model.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + model.Value = []string{"testString"} + model.Layout = core.StringPtr("testString") + model.Associations = map[string]interface{}{"anyKey": "anyValue"} + model.ValidationURL = core.StringPtr("testString") + model.OptionsURL = core.StringPtr("testString") + model.Invalidmessage = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + model.Required = core.BoolPtr(true) + model.Pattern = core.StringPtr("testString") + model.Placeholder = core.StringPtr("testString") + model.Readonly = core.BoolPtr(true) + model.Hidden = core.BoolPtr(true) + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["name"] = "testString" + model["type"] = "text" + model["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + model["value"] = []interface{}{"testString"} + model["layout"] = "testString" + model["associations"] = map[string]interface{}{"anyKey": "anyValue"} + model["validation_url"] = "testString" + model["options_url"] = "testString" + model["invalidmessage"] = "testString" + model["description"] = "testString" + model["required"] = true + model["pattern"] = "testString" + model["placeholder"] = "testString" + model["readonly"] = true + model["hidden"] = true + model["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParameters(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersOptions(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + model.Displayname = core.StringPtr("testString") + model.Value = core.StringPtr("testString") + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["value"] = "testString" + model["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersOptions(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18n(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + model.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + model := make(map[string]interface{}) + model["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18n(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) { + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + model.Displayname = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + + assert.Equal(t, result, model) + } + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["description"] = "testString" - result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataService(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogDeploymentMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(model) assert.Nil(t, err) checkResult(result) } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan.go index 8b291a74052..2de16d95ab9 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan.go @@ -386,6 +386,11 @@ func ResourceIbmOnboardingCatalogPlan() *schema.Resource { }, }, }, + "geo_tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, "url": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -597,6 +602,12 @@ func resourceIbmOnboardingCatalogPlanRead(context context.Context, d *schema.Res return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_plan", "read", "set-metadata").GetDiag() } } + if !core.IsNil(globalCatalogPlan.GeoTags) { + if err = d.Set("geo_tags", globalCatalogPlan.GeoTags); err != nil { + err = fmt.Errorf("Error setting geo_tags: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_plan", "read", "set-geo_tags").GetDiag() + } + } if !core.IsNil(globalCatalogPlan.URL) { if err = d.Set("url", globalCatalogPlan.URL); err != nil { err = fmt.Errorf("Error setting url: %s", err) @@ -805,7 +816,7 @@ func ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadata(modelMap map model.Ui = UiModel } if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 && modelMap["service"].([]interface{})[0] != nil { - ServiceModel, err := ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) + ServiceModel, err := ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } @@ -967,8 +978,8 @@ func ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataUIUrls(modelMap m return model, nil } -func ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataService, error) { - model := &partnercentersellv1.GlobalCatalogMetadataService{} +func ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogPlanMetadataService, error) { + model := &partnercentersellv1.GlobalCatalogPlanMetadataService{} if modelMap["rc_provisionable"] != nil { model.RcProvisionable = core.BoolPtr(modelMap["rc_provisionable"].(bool)) } @@ -1059,7 +1070,7 @@ func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataToMap(model *partn modelMap["ui"] = []map[string]interface{}{uiMap} } if model.Service != nil { - serviceMap, err := ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceToMap(model.Service) + serviceMap, err := ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceToMap(model.Service) if err != nil { return modelMap, err } @@ -1218,7 +1229,7 @@ func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsToMap(model *par return modelMap, nil } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogMetadataService) (map[string]interface{}, error) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogPlanMetadataService) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.RcProvisionable != nil { modelMap["rc_provisionable"] = *model.RcProvisionable @@ -1267,282 +1278,382 @@ func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanPatchAsPatch(patchVals *pa path = "active" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["active"] = nil + } else if !exists { + delete(patch, "active") } path = "disabled" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["disabled"] = nil + } else if !exists { + delete(patch, "disabled") } path = "overview_ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["overview_ui"] = nil } else if exists && patch["overview_ui"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "overview_ui") } path = "tags" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["tags"] = nil + } else if !exists { + delete(patch, "tags") } path = "object_provider" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["object_provider"] = nil } else if exists && patch["object_provider"] != nil { - ResourceIbmOnboardingCatalogPlanCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "object_provider") } path = "metadata" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["metadata"] = nil } else if exists && patch["metadata"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataAsPatch(patch["metadata"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataAsPatch(patch["metadata"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "metadata") } return patch } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.rc_compatible" + path = rootPath + ".rc_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_compatible"] = nil + } else if !exists { + delete(patch, "rc_compatible") } - path = "metadata.0.ui" + path = rootPath + ".ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ui"] = nil } else if exists && patch["ui"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "ui") } - path = "metadata.0.service" + path = rootPath + ".service" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service"] = nil } else if exists && patch["service"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "service") } - path = "metadata.0.pricing" + path = rootPath + ".pricing" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["pricing"] = nil } else if exists && patch["pricing"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataPricingAsPatch(patch["pricing"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataPricingAsPatch(patch["pricing"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "pricing") } - path = "metadata.0.plan" + path = rootPath + ".plan" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["plan"] = nil } else if exists && patch["plan"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataPlanAsPatch(patch["plan"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataPlanAsPatch(patch["plan"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "plan") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataPlanAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataPlanAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.plan.0.allow_internal_users" + path = rootPath + ".allow_internal_users" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["allow_internal_users"] = nil + } else if !exists { + delete(patch, "allow_internal_users") } - path = "metadata.0.plan.0.bindable" + path = rootPath + ".bindable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bindable"] = nil + } else if !exists { + delete(patch, "bindable") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataPricingAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataPricingAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.pricing.0.type" + path = rootPath + ".type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["type"] = nil + } else if !exists { + delete(patch, "type") } - path = "metadata.0.pricing.0.origin" + path = rootPath + ".origin" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["origin"] = nil + } else if !exists { + delete(patch, "origin") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.service.0.rc_provisionable" + path = rootPath + ".rc_provisionable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_provisionable"] = nil + } else if !exists { + delete(patch, "rc_provisionable") } - path = "metadata.0.service.0.iam_compatible" + path = rootPath + ".iam_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["iam_compatible"] = nil + } else if !exists { + delete(patch, "iam_compatible") } - path = "metadata.0.service.0.bindable" + path = rootPath + ".bindable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bindable"] = nil + } else if !exists { + delete(patch, "bindable") } - path = "metadata.0.service.0.plan_updateable" + path = rootPath + ".plan_updateable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["plan_updateable"] = nil + } else if !exists { + delete(patch, "plan_updateable") } - path = "metadata.0.service.0.service_key_supported" + path = rootPath + ".service_key_supported" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service_key_supported"] = nil + } else if !exists { + delete(patch, "service_key_supported") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings" + path = rootPath + ".strings" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["strings"] = nil } else if exists && patch["strings"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "strings") } - path = "metadata.0.ui.0.urls" + path = rootPath + ".urls" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["urls"] = nil } else if exists && patch["urls"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "urls") } - path = "metadata.0.ui.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } - path = "metadata.0.ui.0.side_by_side_index" + path = rootPath + ".side_by_side_index" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["side_by_side_index"] = nil + } else if !exists { + delete(patch, "side_by_side_index") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.urls.0.doc_url" + path = rootPath + ".doc_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["doc_url"] = nil + } else if !exists { + delete(patch, "doc_url") } - path = "metadata.0.ui.0.urls.0.apidocs_url" + path = rootPath + ".apidocs_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["apidocs_url"] = nil + } else if !exists { + delete(patch, "apidocs_url") } - path = "metadata.0.ui.0.urls.0.terms_url" + path = rootPath + ".terms_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["terms_url"] = nil + } else if !exists { + delete(patch, "terms_url") } - path = "metadata.0.ui.0.urls.0.instructions_url" + path = rootPath + ".instructions_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["instructions_url"] = nil + } else if !exists { + delete(patch, "instructions_url") } - path = "metadata.0.ui.0.urls.0.catalog_details_url" + path = rootPath + ".catalog_details_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["catalog_details_url"] = nil + } else if !exists { + delete(patch, "catalog_details_url") } - path = "metadata.0.ui.0.urls.0.custom_create_page_url" + path = rootPath + ".custom_create_page_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["custom_create_page_url"] = nil + } else if !exists { + delete(patch, "custom_create_page_url") } - path = "metadata.0.ui.0.urls.0.dashboard" + path = rootPath + ".dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["dashboard"] = nil + } else if !exists { + delete(patch, "dashboard") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets" + path = rootPath + ".bullets" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bullets"] = nil } else if exists && patch["bullets"] != nil { - ResourceIbmOnboardingCatalogPlanCatalogHighlightItemAsPatch(patch["bullets"].([]map[string]interface{})[0], d) + bulletsList := patch["bullets"].([]map[string]interface{}) + for i, bulletsItem := range bulletsList { + ResourceIbmOnboardingCatalogPlanCatalogHighlightItemAsPatch(bulletsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "bullets") } - path = "metadata.0.ui.0.strings.0.en.0.media" + path = rootPath + ".media" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["media"] = nil } else if exists && patch["media"] != nil { - ResourceIbmOnboardingCatalogPlanCatalogProductMediaItemAsPatch(patch["media"].([]map[string]interface{})[0], d) + mediaList := patch["media"].([]map[string]interface{}) + for i, mediaItem := range mediaList { + ResourceIbmOnboardingCatalogPlanCatalogProductMediaItemAsPatch(mediaItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "media") } - path = "metadata.0.ui.0.strings.0.en.0.embeddable_dashboard" + path = rootPath + ".embeddable_dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["embeddable_dashboard"] = nil + } else if !exists { + delete(patch, "embeddable_dashboard") } } -func ResourceIbmOnboardingCatalogPlanCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.media.0.caption_i18n" + path = rootPath + ".caption_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["caption_i18n"] = nil + } else if !exists { + delete(patch, "caption_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.media.0.thumbnail" + path = rootPath + ".thumbnail" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["thumbnail"] = nil + } else if !exists { + delete(patch, "thumbnail") } } -func ResourceIbmOnboardingCatalogPlanCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description_i18n" + path = rootPath + ".description_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description_i18n"] = nil + } else if !exists { + delete(patch, "description_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title" + path = rootPath + ".title" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title"] = nil + } else if !exists { + delete(patch, "title") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title_i18n" + path = rootPath + ".title_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title_i18n"] = nil + } else if !exists { + delete(patch, "title_i18n") } } -func ResourceIbmOnboardingCatalogPlanCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "object_provider.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } - path = "object_provider.0.email" + path = rootPath + ".email" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["email"] = nil + } else if !exists { + delete(patch, "email") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogPlanGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil + } else if !exists { + delete(patch, "display_name") } - path = "overview_ui.0.en.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "overview_ui.0.en.0.long_description" + path = rootPath + ".long_description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["long_description"] = nil + } else if !exists { + delete(patch, "long_description") } } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go index 5ddd617c115..7e8931d24ac 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go @@ -161,7 +161,7 @@ func testAccCheckIbmOnboardingCatalogPlanConfigBasic(productID string, catalogPr allow_internal_users = true bindable = false } - } + } } `, productID, catalogProductID, name, active, disabled, kind, objectId) } @@ -201,12 +201,12 @@ func testAccCheckIbmOnboardingCatalogPlanConfig(productID string, catalogProduct bindable = false } ui { - strings { - en { - bullets { + strings { + en { + bullets { title = "%s" description = "some1" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" @@ -277,7 +277,7 @@ func testAccCheckIbmOnboardingCatalogPlanUpdateConfig(productID string, catalogP } } } - } + } } } `, productID, catalogProductID, env, name, active, disabled, kind, objectId, overviewUiEn, rcCompatible, pricingType, allowInternalUsers, bulletTitleName, mediaCaption) @@ -453,12 +453,12 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataToMap(t *testi globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogPlanMetadataServiceModel := make(map[string]interface{}) + globalCatalogPlanMetadataServiceModel["rc_provisionable"] = true + globalCatalogPlanMetadataServiceModel["iam_compatible"] = true + globalCatalogPlanMetadataServiceModel["bindable"] = true + globalCatalogPlanMetadataServiceModel["plan_updateable"] = true + globalCatalogPlanMetadataServiceModel["service_key_supported"] = true globalCatalogMetadataPricingModel := make(map[string]interface{}) globalCatalogMetadataPricingModel["type"] = "free" @@ -471,7 +471,7 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataToMap(t *testi model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []map[string]interface{}{globalCatalogMetadataUiModel} - model["service"] = []map[string]interface{}{globalCatalogMetadataServiceModel} + model["service"] = []map[string]interface{}{globalCatalogPlanMetadataServiceModel} model["pricing"] = []map[string]interface{}{globalCatalogMetadataPricingModel} model["plan"] = []map[string]interface{}{globalCatalogPlanMetadataPlanModel} @@ -514,12 +514,12 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataToMap(t *testi globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel := new(partnercentersellv1.GlobalCatalogPlanMetadataService) + globalCatalogPlanMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) globalCatalogMetadataPricingModel := new(partnercentersellv1.GlobalCatalogMetadataPricing) globalCatalogMetadataPricingModel.Type = core.StringPtr("free") @@ -532,7 +532,7 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataToMap(t *testi model := new(partnercentersellv1.GlobalCatalogPlanMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogPlanMetadataServiceModel model.Pricing = globalCatalogMetadataPricingModel model.Plan = globalCatalogPlanMetadataPlanModel @@ -795,7 +795,7 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataUIUrlsToMap(t *tes checkResult(result) } -func TestResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceToMap(t *testing.T) { +func TestResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceToMap(t *testing.T) { checkResult := func(result map[string]interface{}) { model := make(map[string]interface{}) model["rc_provisionable"] = true @@ -807,14 +807,14 @@ func TestResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceToMap(t *te assert.Equal(t, result, model) } - model := new(partnercentersellv1.GlobalCatalogMetadataService) + model := new(partnercentersellv1.GlobalCatalogPlanMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) model.PlanUpdateable = core.BoolPtr(true) model.ServiceKeySupported = core.BoolPtr(true) - result, err := partnercentersell.ResourceIbmOnboardingCatalogPlanGlobalCatalogMetadataServiceToMap(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogPlanGlobalCatalogPlanMetadataServiceToMap(model) assert.Nil(t, err) checkResult(result) } @@ -957,12 +957,12 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadata(t *testi globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel := new(partnercentersellv1.GlobalCatalogPlanMetadataService) + globalCatalogPlanMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogPlanMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) globalCatalogMetadataPricingModel := new(partnercentersellv1.GlobalCatalogMetadataPricing) globalCatalogMetadataPricingModel.Type = core.StringPtr("free") @@ -975,7 +975,7 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadata(t *testi model := new(partnercentersellv1.GlobalCatalogPlanMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogPlanMetadataServiceModel model.Pricing = globalCatalogMetadataPricingModel model.Plan = globalCatalogPlanMetadataPlanModel @@ -1018,12 +1018,12 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadata(t *testi globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogPlanMetadataServiceModel := make(map[string]interface{}) + globalCatalogPlanMetadataServiceModel["rc_provisionable"] = true + globalCatalogPlanMetadataServiceModel["iam_compatible"] = true + globalCatalogPlanMetadataServiceModel["bindable"] = true + globalCatalogPlanMetadataServiceModel["plan_updateable"] = true + globalCatalogPlanMetadataServiceModel["service_key_supported"] = true globalCatalogMetadataPricingModel := make(map[string]interface{}) globalCatalogMetadataPricingModel["type"] = "free" @@ -1036,7 +1036,7 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadata(t *testi model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []interface{}{globalCatalogMetadataUiModel} - model["service"] = []interface{}{globalCatalogMetadataServiceModel} + model["service"] = []interface{}{globalCatalogPlanMetadataServiceModel} model["pricing"] = []interface{}{globalCatalogMetadataPricingModel} model["plan"] = []interface{}{globalCatalogPlanMetadataPlanModel} @@ -1299,9 +1299,9 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataUIUrls(t *tes checkResult(result) } -func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataService(t *testing.T) { - checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataService) { - model := new(partnercentersellv1.GlobalCatalogMetadataService) +func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadataService(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogPlanMetadataService) { + model := new(partnercentersellv1.GlobalCatalogPlanMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) @@ -1318,7 +1318,7 @@ func TestResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataService(t *te model["plan_updateable"] = true model["service_key_supported"] = true - result, err := partnercentersell.ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogMetadataService(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogPlanMapToGlobalCatalogPlanMetadataService(model) assert.Nil(t, err) checkResult(result) } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go index 839bcb89de1..54281c54aed 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go @@ -348,6 +348,533 @@ func ResourceIbmOnboardingCatalogProduct() *schema.Resource { Optional: true, Description: "Indicates service credentials support and controls the Service Credential tab on Resource Details page.", }, + "unique_api_key": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Indicates that the deployment uses an unique api key or not.", + }, + "parameters": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The display name for custom service parameters.", + }, + "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The key of the parameter.", + }, + "type": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The type of custom service parameters.", + }, + "options": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The display name for custom service parameters.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The value for custom service parameters.", + }, + "i18n": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The description for the object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "en": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "de": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "es": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "fr": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "it": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ja": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ko": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "pt_br": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_tw": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_cn": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + "value": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "layout": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Specifies the layout of check box or radio input types. When unspecified, the default layout is horizontal.", + }, + "associations": &schema.Schema{ + Type: schema.TypeMap, + Optional: true, + Description: "A JSON structure to describe the interactions with pricing plans and/or other custom parameters.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "validation_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The validation URL for custom service parameters.", + }, + "options_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The options URL for custom service parameters.", + }, + "invalidmessage": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The message that appears when the content of the text box is invalid.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The description of the parameter that is displayed to help users with the value of the parameter.", + }, + "required": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "A boolean value that indicates whether the parameter must be entered in the IBM Cloud user interface.", + }, + "pattern": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A regular expression that the value is checked against.", + }, + "placeholder": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The placeholder text for custom parameters.", + }, + "readonly": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "A boolean value that indicates whether the value of the parameter is displayed only and cannot be changed by users. The default value is false.", + }, + "hidden": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Indicates whether the custom parameters is hidden required or not.", + }, + "i18n": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The description for the object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "en": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "de": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "es": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "fr": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "it": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ja": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "ko": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "pt_br": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_tw": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + "zh_cn": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The translations for custom service parameter display name and description.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "displayname": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter display name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The translations for custom service parameter description.", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, }, }, }, @@ -598,6 +1125,11 @@ func ResourceIbmOnboardingCatalogProduct() *schema.Resource { }, }, }, + "geo_tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, "url": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -815,6 +1347,12 @@ func resourceIbmOnboardingCatalogProductRead(context context.Context, d *schema. return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-metadata").GetDiag() } } + if !core.IsNil(globalCatalogProduct.GeoTags) { + if err = d.Set("geo_tags", globalCatalogProduct.GeoTags); err != nil { + err = fmt.Errorf("Error setting geo_tags: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-geo_tags").GetDiag() + } + } if !core.IsNil(globalCatalogProduct.URL) { if err = d.Set("url", globalCatalogProduct.URL); err != nil { err = fmt.Errorf("Error setting url: %s", err) @@ -1026,7 +1564,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(modelM model.Ui = UiModel } if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 && modelMap["service"].([]interface{})[0] != nil { - ServiceModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) + ServiceModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } @@ -1160,43 +1698,233 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIUrls(modelMa if modelMap["doc_url"] != nil && modelMap["doc_url"].(string) != "" { model.DocURL = core.StringPtr(modelMap["doc_url"].(string)) } - if modelMap["apidocs_url"] != nil && modelMap["apidocs_url"].(string) != "" { - model.ApidocsURL = core.StringPtr(modelMap["apidocs_url"].(string)) + if modelMap["apidocs_url"] != nil && modelMap["apidocs_url"].(string) != "" { + model.ApidocsURL = core.StringPtr(modelMap["apidocs_url"].(string)) + } + if modelMap["terms_url"] != nil && modelMap["terms_url"].(string) != "" { + model.TermsURL = core.StringPtr(modelMap["terms_url"].(string)) + } + if modelMap["instructions_url"] != nil && modelMap["instructions_url"].(string) != "" { + model.InstructionsURL = core.StringPtr(modelMap["instructions_url"].(string)) + } + if modelMap["catalog_details_url"] != nil && modelMap["catalog_details_url"].(string) != "" { + model.CatalogDetailsURL = core.StringPtr(modelMap["catalog_details_url"].(string)) + } + if modelMap["custom_create_page_url"] != nil && modelMap["custom_create_page_url"].(string) != "" { + model.CustomCreatePageURL = core.StringPtr(modelMap["custom_create_page_url"].(string)) + } + if modelMap["dashboard"] != nil && modelMap["dashboard"].(string) != "" { + model.Dashboard = core.StringPtr(modelMap["dashboard"].(string)) + } + return model, nil +} + +func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogProductMetadataService, error) { + model := &partnercentersellv1.GlobalCatalogProductMetadataService{} + if modelMap["rc_provisionable"] != nil { + model.RcProvisionable = core.BoolPtr(modelMap["rc_provisionable"].(bool)) + } + if modelMap["iam_compatible"] != nil { + model.IamCompatible = core.BoolPtr(modelMap["iam_compatible"].(bool)) + } + if modelMap["bindable"] != nil { + model.Bindable = core.BoolPtr(modelMap["bindable"].(bool)) + } + if modelMap["plan_updateable"] != nil { + model.PlanUpdateable = core.BoolPtr(modelMap["plan_updateable"].(bool)) + } + if modelMap["service_key_supported"] != nil { + model.ServiceKeySupported = core.BoolPtr(modelMap["service_key_supported"].(bool)) + } + if modelMap["unique_api_key"] != nil { + model.UniqueApiKey = core.BoolPtr(modelMap["unique_api_key"].(bool)) + } + if modelMap["parameters"] != nil { + parameters := []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{} + for _, parametersItem := range modelMap["parameters"].([]interface{}) { + parametersItemModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParameters(parametersItem.(map[string]interface{})) + if err != nil { + return model, err + } + parameters = append(parameters, *parametersItemModel) + } + model.Parameters = parameters + } + return model, nil +} + +func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParameters(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) + } + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["type"] != nil && modelMap["type"].(string) != "" { + model.Type = core.StringPtr(modelMap["type"].(string)) + } + if modelMap["options"] != nil { + options := []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{} + for _, optionsItem := range modelMap["options"].([]interface{}) { + optionsItemModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersOptions(optionsItem.(map[string]interface{})) + if err != nil { + return model, err + } + options = append(options, *optionsItemModel) + } + model.Options = options + } + if modelMap["value"] != nil { + value := []string{} + for _, valueItem := range modelMap["value"].([]interface{}) { + value = append(value, valueItem.(string)) + } + model.Value = value + } + if modelMap["layout"] != nil && modelMap["layout"].(string) != "" { + model.Layout = core.StringPtr(modelMap["layout"].(string)) + } + if modelMap["associations"] != nil { + model.Associations = modelMap["associations"].(map[string]interface{}) + } + if modelMap["validation_url"] != nil && modelMap["validation_url"].(string) != "" { + model.ValidationURL = core.StringPtr(modelMap["validation_url"].(string)) + } + if modelMap["options_url"] != nil && modelMap["options_url"].(string) != "" { + model.OptionsURL = core.StringPtr(modelMap["options_url"].(string)) + } + if modelMap["invalidmessage"] != nil && modelMap["invalidmessage"].(string) != "" { + model.Invalidmessage = core.StringPtr(modelMap["invalidmessage"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["required"] != nil { + model.Required = core.BoolPtr(modelMap["required"].(bool)) + } + if modelMap["pattern"] != nil && modelMap["pattern"].(string) != "" { + model.Pattern = core.StringPtr(modelMap["pattern"].(string)) + } + if modelMap["placeholder"] != nil && modelMap["placeholder"].(string) != "" { + model.Placeholder = core.StringPtr(modelMap["placeholder"].(string)) + } + if modelMap["readonly"] != nil { + model.Readonly = core.BoolPtr(modelMap["readonly"].(bool)) + } + if modelMap["hidden"] != nil { + model.Hidden = core.BoolPtr(modelMap["hidden"].(bool)) + } + if modelMap["i18n"] != nil && len(modelMap["i18n"].([]interface{})) > 0 { + I18nModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap["i18n"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.I18n = I18nModel + } + return model, nil +} + +func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersOptions(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) + } + if modelMap["value"] != nil && modelMap["value"].(string) != "" { + model.Value = core.StringPtr(modelMap["value"].(string)) + } + if modelMap["i18n"] != nil && len(modelMap["i18n"].([]interface{})) > 0 { + I18nModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap["i18n"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.I18n = I18nModel + } + return model, nil +} + +func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18n(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n{} + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { + EnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["en"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.En = EnModel + } + if modelMap["de"] != nil && len(modelMap["de"].([]interface{})) > 0 { + DeModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["de"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.De = DeModel + } + if modelMap["es"] != nil && len(modelMap["es"].([]interface{})) > 0 { + EsModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["es"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Es = EsModel + } + if modelMap["fr"] != nil && len(modelMap["fr"].([]interface{})) > 0 { + FrModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["fr"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Fr = FrModel + } + if modelMap["it"] != nil && len(modelMap["it"].([]interface{})) > 0 { + ItModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["it"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.It = ItModel } - if modelMap["terms_url"] != nil && modelMap["terms_url"].(string) != "" { - model.TermsURL = core.StringPtr(modelMap["terms_url"].(string)) + if modelMap["ja"] != nil && len(modelMap["ja"].([]interface{})) > 0 { + JaModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["ja"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Ja = JaModel } - if modelMap["instructions_url"] != nil && modelMap["instructions_url"].(string) != "" { - model.InstructionsURL = core.StringPtr(modelMap["instructions_url"].(string)) + if modelMap["ko"] != nil && len(modelMap["ko"].([]interface{})) > 0 { + KoModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["ko"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Ko = KoModel } - if modelMap["catalog_details_url"] != nil && modelMap["catalog_details_url"].(string) != "" { - model.CatalogDetailsURL = core.StringPtr(modelMap["catalog_details_url"].(string)) + if modelMap["pt_br"] != nil && len(modelMap["pt_br"].([]interface{})) > 0 { + PtBrModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["pt_br"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.PtBr = PtBrModel } - if modelMap["custom_create_page_url"] != nil && modelMap["custom_create_page_url"].(string) != "" { - model.CustomCreatePageURL = core.StringPtr(modelMap["custom_create_page_url"].(string)) + if modelMap["zh_tw"] != nil && len(modelMap["zh_tw"].([]interface{})) > 0 { + ZhTwModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["zh_tw"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ZhTw = ZhTwModel } - if modelMap["dashboard"] != nil && modelMap["dashboard"].(string) != "" { - model.Dashboard = core.StringPtr(modelMap["dashboard"].(string)) + if modelMap["zh_cn"] != nil && len(modelMap["zh_cn"].([]interface{})) > 0 { + ZhCnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap["zh_cn"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ZhCn = ZhCnModel } return model, nil } -func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataService(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataService, error) { - model := &partnercentersellv1.GlobalCatalogMetadataService{} - if modelMap["rc_provisionable"] != nil { - model.RcProvisionable = core.BoolPtr(modelMap["rc_provisionable"].(bool)) - } - if modelMap["iam_compatible"] != nil { - model.IamCompatible = core.BoolPtr(modelMap["iam_compatible"].(bool)) - } - if modelMap["bindable"] != nil { - model.Bindable = core.BoolPtr(modelMap["bindable"].(bool)) - } - if modelMap["plan_updateable"] != nil { - model.PlanUpdateable = core.BoolPtr(modelMap["plan_updateable"].(bool)) +func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields, error) { + model := &partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields{} + if modelMap["displayname"] != nil && modelMap["displayname"].(string) != "" { + model.Displayname = core.StringPtr(modelMap["displayname"].(string)) } - if modelMap["service_key_supported"] != nil { - model.ServiceKeySupported = core.BoolPtr(modelMap["service_key_supported"].(bool)) + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) } return model, nil } @@ -1474,7 +2202,7 @@ func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(model modelMap["ui"] = []map[string]interface{}{uiMap} } if model.Service != nil { - serviceMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceToMap(model.Service) + serviceMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceToMap(model.Service) if err != nil { return modelMap, err } @@ -1626,7 +2354,7 @@ func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsToMap(model * return modelMap, nil } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogMetadataService) (map[string]interface{}, error) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceToMap(model *partnercentersellv1.GlobalCatalogProductMetadataService) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.RcProvisionable != nil { modelMap["rc_provisionable"] = *model.RcProvisionable @@ -1643,6 +2371,196 @@ func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceToMap(model if model.ServiceKeySupported != nil { modelMap["service_key_supported"] = *model.ServiceKeySupported } + if model.UniqueApiKey != nil { + modelMap["unique_api_key"] = *model.UniqueApiKey + } + if model.Parameters != nil { + parameters := []map[string]interface{}{} + for _, parametersItem := range model.Parameters { + parametersItemMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersToMap(¶metersItem) // #nosec G601 + if err != nil { + return modelMap, err + } + parameters = append(parameters, parametersItemMap) + } + modelMap["parameters"] = parameters + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.Type != nil { + modelMap["type"] = *model.Type + } + if model.Options != nil { + options := []map[string]interface{}{} + for _, optionsItem := range model.Options { + optionsItemMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsToMap(&optionsItem) // #nosec G601 + if err != nil { + return modelMap, err + } + options = append(options, optionsItemMap) + } + modelMap["options"] = options + } + if model.Value != nil { + modelMap["value"] = model.Value + } + if model.Layout != nil { + modelMap["layout"] = *model.Layout + } + if model.Associations != nil { + associations := make(map[string]interface{}) + for k, v := range model.Associations { + associations[k] = flex.Stringify(v) + } + modelMap["associations"] = associations + } + if model.ValidationURL != nil { + modelMap["validation_url"] = *model.ValidationURL + } + if model.OptionsURL != nil { + modelMap["options_url"] = *model.OptionsURL + } + if model.Invalidmessage != nil { + modelMap["invalidmessage"] = *model.Invalidmessage + } + if model.Description != nil { + modelMap["description"] = *model.Description + } + if model.Required != nil { + modelMap["required"] = *model.Required + } + if model.Pattern != nil { + modelMap["pattern"] = *model.Pattern + } + if model.Placeholder != nil { + modelMap["placeholder"] = *model.Placeholder + } + if model.Readonly != nil { + modelMap["readonly"] = *model.Readonly + } + if model.Hidden != nil { + modelMap["hidden"] = *model.Hidden + } + if model.I18n != nil { + i18nMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nToMap(model.I18n) + if err != nil { + return modelMap, err + } + modelMap["i18n"] = []map[string]interface{}{i18nMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Value != nil { + modelMap["value"] = *model.Value + } + if model.I18n != nil { + i18nMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nToMap(model.I18n) + if err != nil { + return modelMap, err + } + modelMap["i18n"] = []map[string]interface{}{i18nMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.En != nil { + enMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.En) + if err != nil { + return modelMap, err + } + modelMap["en"] = []map[string]interface{}{enMap} + } + if model.De != nil { + deMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.De) + if err != nil { + return modelMap, err + } + modelMap["de"] = []map[string]interface{}{deMap} + } + if model.Es != nil { + esMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Es) + if err != nil { + return modelMap, err + } + modelMap["es"] = []map[string]interface{}{esMap} + } + if model.Fr != nil { + frMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Fr) + if err != nil { + return modelMap, err + } + modelMap["fr"] = []map[string]interface{}{frMap} + } + if model.It != nil { + itMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.It) + if err != nil { + return modelMap, err + } + modelMap["it"] = []map[string]interface{}{itMap} + } + if model.Ja != nil { + jaMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Ja) + if err != nil { + return modelMap, err + } + modelMap["ja"] = []map[string]interface{}{jaMap} + } + if model.Ko != nil { + koMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.Ko) + if err != nil { + return modelMap, err + } + modelMap["ko"] = []map[string]interface{}{koMap} + } + if model.PtBr != nil { + ptBrMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.PtBr) + if err != nil { + return modelMap, err + } + modelMap["pt_br"] = []map[string]interface{}{ptBrMap} + } + if model.ZhTw != nil { + zhTwMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.ZhTw) + if err != nil { + return modelMap, err + } + modelMap["zh_tw"] = []map[string]interface{}{zhTwMap} + } + if model.ZhCn != nil { + zhCnMap, err := ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model.ZhCn) + if err != nil { + return modelMap, err + } + modelMap["zh_cn"] = []map[string]interface{}{zhCnMap} + } + return modelMap, nil +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Displayname != nil { + modelMap["displayname"] = *model.Displayname + } + if model.Description != nil { + modelMap["description"] = *model.Description + } return modelMap, nil } @@ -1859,463 +2777,868 @@ func ResourceIbmOnboardingCatalogProductGlobalCatalogProductPatchAsPatch(patchVa path = "active" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["active"] = nil + } else if !exists { + delete(patch, "active") } path = "disabled" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["disabled"] = nil + } else if !exists { + delete(patch, "disabled") } path = "overview_ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["overview_ui"] = nil } else if exists && patch["overview_ui"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUIAsPatch(patch["overview_ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "overview_ui") } path = "tags" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["tags"] = nil + } else if !exists { + delete(patch, "tags") } path = "images" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["images"] = nil } else if exists && patch["images"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductImagesAsPatch(patch["images"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductImagesAsPatch(patch["images"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "images") } path = "object_provider" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["object_provider"] = nil } else if exists && patch["object_provider"] != nil { - ResourceIbmOnboardingCatalogProductCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductCatalogProductProviderAsPatch(patch["object_provider"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "object_provider") } path = "metadata" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["metadata"] = nil } else if exists && patch["metadata"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataAsPatch(patch["metadata"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataAsPatch(patch["metadata"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "metadata") } return patch } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.rc_compatible" + path = rootPath + ".rc_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_compatible"] = nil + } else if !exists { + delete(patch, "rc_compatible") } - path = "metadata.0.ui" + path = rootPath + ".ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ui"] = nil } else if exists && patch["ui"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIAsPatch(patch["ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "ui") } - path = "metadata.0.service" + path = rootPath + ".service" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service"] = nil } else if exists && patch["service"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceAsPatch(patch["service"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "service") } - path = "metadata.0.other" + path = rootPath + ".other" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["other"] = nil } else if exists && patch["other"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherAsPatch(patch["other"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherAsPatch(patch["other"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "other") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc" + path = rootPath + ".pc" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["pc"] = nil } else if exists && patch["pc"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCAsPatch(patch["pc"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCAsPatch(patch["pc"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "pc") } - path = "metadata.0.other.0.composite" + path = rootPath + ".composite" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["composite"] = nil } else if exists && patch["composite"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeAsPatch(patch["composite"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeAsPatch(patch["composite"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "composite") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.composite.0.composite_kind" + path = rootPath + ".composite_kind" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["composite_kind"] = nil + } else if !exists { + delete(patch, "composite_kind") } - path = "metadata.0.other.0.composite.0.composite_tag" + path = rootPath + ".composite_tag" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["composite_tag"] = nil + } else if !exists { + delete(patch, "composite_tag") } - path = "metadata.0.other.0.composite.0.children" + path = rootPath + ".children" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["children"] = nil } else if exists && patch["children"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeChildAsPatch(patch["children"].([]map[string]interface{})[0], d) + childrenList := patch["children"].([]map[string]interface{}) + for i, childrenItem := range childrenList { + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeChildAsPatch(childrenItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "children") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeChildAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherCompositeChildAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.composite.0.children.0.kind" + path = rootPath + ".kind" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["kind"] = nil + } else if !exists { + delete(patch, "kind") } - path = "metadata.0.other.0.composite.0.children.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support" + path = rootPath + ".support" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["support"] = nil } else if exists && patch["support"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCSupportAsPatch(patch["support"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCSupportAsPatch(patch["support"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "support") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCSupportAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataOtherPCSupportAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.url" + path = rootPath + ".url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["url"] = nil + } else if !exists { + delete(patch, "url") } - path = "metadata.0.other.0.pc.0.support.0.status_url" + path = rootPath + ".status_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["status_url"] = nil + } else if !exists { + delete(patch, "status_url") } - path = "metadata.0.other.0.pc.0.support.0.locations" + path = rootPath + ".locations" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["locations"] = nil + } else if !exists { + delete(patch, "locations") } - path = "metadata.0.other.0.pc.0.support.0.languages" + path = rootPath + ".languages" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["languages"] = nil + } else if !exists { + delete(patch, "languages") } - path = "metadata.0.other.0.pc.0.support.0.process" + path = rootPath + ".process" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["process"] = nil + } else if !exists { + delete(patch, "process") } - path = "metadata.0.other.0.pc.0.support.0.process_i18n" + path = rootPath + ".process_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["process_i18n"] = nil + } else if !exists { + delete(patch, "process_i18n") } - path = "metadata.0.other.0.pc.0.support.0.support_type" + path = rootPath + ".support_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["support_type"] = nil + } else if !exists { + delete(patch, "support_type") } - path = "metadata.0.other.0.pc.0.support.0.support_escalation" + path = rootPath + ".support_escalation" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["support_escalation"] = nil } else if exists && patch["support_escalation"] != nil { - ResourceIbmOnboardingCatalogProductSupportEscalationAsPatch(patch["support_escalation"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductSupportEscalationAsPatch(patch["support_escalation"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "support_escalation") } - path = "metadata.0.other.0.pc.0.support.0.support_details" + path = rootPath + ".support_details" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["support_details"] = nil } else if exists && patch["support_details"] != nil { - ResourceIbmOnboardingCatalogProductSupportDetailsItemAsPatch(patch["support_details"].([]map[string]interface{})[0], d) + support_detailsList := patch["support_details"].([]map[string]interface{}) + for i, support_detailsItem := range support_detailsList { + ResourceIbmOnboardingCatalogProductSupportDetailsItemAsPatch(support_detailsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "support_details") } } -func ResourceIbmOnboardingCatalogProductSupportDetailsItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductSupportDetailsItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.support_details.0.type" + path = rootPath + ".type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["type"] = nil + } else if !exists { + delete(patch, "type") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.contact" + path = rootPath + ".contact" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["contact"] = nil + } else if !exists { + delete(patch, "contact") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.response_wait_time" + path = rootPath + ".response_wait_time" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["response_wait_time"] = nil } else if exists && patch["response_wait_time"] != nil { - ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch["response_wait_time"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch["response_wait_time"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "response_wait_time") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability" + path = rootPath + ".availability" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["availability"] = nil } else if exists && patch["availability"] != nil { - ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityAsPatch(patch["availability"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityAsPatch(patch["availability"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "availability") } } -func ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.times" + path = rootPath + ".times" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["times"] = nil } else if exists && patch["times"] != nil { - ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityTimeAsPatch(patch["times"].([]map[string]interface{})[0], d) + timesList := patch["times"].([]map[string]interface{}) + for i, timesItem := range timesList { + ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityTimeAsPatch(timesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "times") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.timezone" + path = rootPath + ".timezone" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["timezone"] = nil + } else if !exists { + delete(patch, "timezone") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.always_available" + path = rootPath + ".always_available" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["always_available"] = nil + } else if !exists { + delete(patch, "always_available") } } -func ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityTimeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductSupportDetailsItemAvailabilityTimeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.times.0.day" + path = rootPath + ".day" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["day"] = nil + } else if !exists { + delete(patch, "day") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.times.0.start_time" + path = rootPath + ".start_time" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["start_time"] = nil + } else if !exists { + delete(patch, "start_time") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.availability.0.times.0.end_time" + path = rootPath + ".end_time" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["end_time"] = nil + } else if !exists { + delete(patch, "end_time") } } -func ResourceIbmOnboardingCatalogProductSupportEscalationAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductSupportEscalationAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.support_escalation.0.contact" + path = rootPath + ".contact" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["contact"] = nil + } else if !exists { + delete(patch, "contact") } - path = "metadata.0.other.0.pc.0.support.0.support_escalation.0.escalation_wait_time" + path = rootPath + ".escalation_wait_time" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["escalation_wait_time"] = nil } else if exists && patch["escalation_wait_time"] != nil { - ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch["escalation_wait_time"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch["escalation_wait_time"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "escalation_wait_time") } - path = "metadata.0.other.0.pc.0.support.0.support_escalation.0.response_wait_time" + path = rootPath + ".response_wait_time" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["response_wait_time"] = nil + } else if !exists { + delete(patch, "response_wait_time") } } -func ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductSupportTimeIntervalAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.other.0.pc.0.support.0.support_details.0.response_wait_time.0.value" + path = rootPath + ".value" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value"] = nil + } else if !exists { + delete(patch, "value") } - path = "metadata.0.other.0.pc.0.support.0.support_details.0.response_wait_time.0.type" + path = rootPath + ".type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["type"] = nil + } else if !exists { + delete(patch, "type") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.service.0.rc_provisionable" + path = rootPath + ".rc_provisionable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["rc_provisionable"] = nil + } else if !exists { + delete(patch, "rc_provisionable") } - path = "metadata.0.service.0.iam_compatible" + path = rootPath + ".iam_compatible" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["iam_compatible"] = nil + } else if !exists { + delete(patch, "iam_compatible") } - path = "metadata.0.service.0.bindable" + path = rootPath + ".bindable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bindable"] = nil + } else if !exists { + delete(patch, "bindable") } - path = "metadata.0.service.0.plan_updateable" + path = rootPath + ".plan_updateable" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["plan_updateable"] = nil + } else if !exists { + delete(patch, "plan_updateable") } - path = "metadata.0.service.0.service_key_supported" + path = rootPath + ".service_key_supported" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service_key_supported"] = nil + } else if !exists { + delete(patch, "service_key_supported") + } + path = rootPath + ".unique_api_key" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["unique_api_key"] = nil + } else if !exists { + delete(patch, "unique_api_key") + } + path = rootPath + ".parameters" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["parameters"] = nil + } else if exists && patch["parameters"] != nil { + parametersList := patch["parameters"].([]map[string]interface{}) + for i, parametersItem := range parametersList { + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersAsPatch(parametersItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "parameters") + } +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".name" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["name"] = nil + } else if !exists { + delete(patch, "name") + } + path = rootPath + ".type" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["type"] = nil + } else if !exists { + delete(patch, "type") + } + path = rootPath + ".options" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["options"] = nil + } else if exists && patch["options"] != nil { + optionsList := patch["options"].([]map[string]interface{}) + for i, optionsItem := range optionsList { + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsAsPatch(optionsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "options") + } + path = rootPath + ".value" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["value"] = nil + } else if !exists { + delete(patch, "value") + } + path = rootPath + ".layout" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["layout"] = nil + } else if !exists { + delete(patch, "layout") + } + path = rootPath + ".associations" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["associations"] = nil + } else if !exists { + delete(patch, "associations") + } + path = rootPath + ".validation_url" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["validation_url"] = nil + } else if !exists { + delete(patch, "validation_url") + } + path = rootPath + ".options_url" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["options_url"] = nil + } else if !exists { + delete(patch, "options_url") + } + path = rootPath + ".invalidmessage" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["invalidmessage"] = nil + } else if !exists { + delete(patch, "invalidmessage") + } + path = rootPath + ".description" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["description"] = nil + } else if !exists { + delete(patch, "description") + } + path = rootPath + ".required" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["required"] = nil + } else if !exists { + delete(patch, "required") + } + path = rootPath + ".pattern" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["pattern"] = nil + } else if !exists { + delete(patch, "pattern") + } + path = rootPath + ".placeholder" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["placeholder"] = nil + } else if !exists { + delete(patch, "placeholder") + } + path = rootPath + ".readonly" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["readonly"] = nil + } else if !exists { + delete(patch, "readonly") + } + path = rootPath + ".hidden" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") + } + path = rootPath + ".i18n" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["i18n"] = nil + } else if !exists { + delete(patch, "i18n") + } +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".value" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["value"] = nil + } else if !exists { + delete(patch, "value") + } + path = rootPath + ".i18n" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["i18n"] = nil + } else if exists && patch["i18n"] != nil { + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nAsPatch(patch["i18n"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "i18n") + } +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".en" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["en"] = nil + } else if exists && patch["en"] != nil { + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") + } + path = rootPath + ".de" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["de"] = nil + } else if !exists { + delete(patch, "de") + } + path = rootPath + ".es" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["es"] = nil + } else if !exists { + delete(patch, "es") + } + path = rootPath + ".fr" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["fr"] = nil + } else if !exists { + delete(patch, "fr") + } + path = rootPath + ".it" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["it"] = nil + } else if !exists { + delete(patch, "it") + } + path = rootPath + ".ja" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["ja"] = nil + } else if !exists { + delete(patch, "ja") + } + path = rootPath + ".ko" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["ko"] = nil + } else if !exists { + delete(patch, "ko") + } + path = rootPath + ".pt_br" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["pt_br"] = nil + } else if !exists { + delete(patch, "pt_br") + } + path = rootPath + ".zh_tw" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["zh_tw"] = nil + } else if !exists { + delete(patch, "zh_tw") + } + path = rootPath + ".zh_cn" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["zh_cn"] = nil + } else if !exists { + delete(patch, "zh_cn") + } +} + +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { + var path string + + path = rootPath + ".displayname" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["displayname"] = nil + } else if !exists { + delete(patch, "displayname") + } + path = rootPath + ".description" + if _, exists := d.GetOk(path); d.HasChange(path) && !exists { + patch["description"] = nil + } else if !exists { + delete(patch, "description") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings" + path = rootPath + ".strings" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["strings"] = nil } else if exists && patch["strings"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsAsPatch(patch["strings"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "strings") } - path = "metadata.0.ui.0.urls" + path = rootPath + ".urls" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["urls"] = nil } else if exists && patch["urls"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsAsPatch(patch["urls"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "urls") } - path = "metadata.0.ui.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } - path = "metadata.0.ui.0.side_by_side_index" + path = rootPath + ".side_by_side_index" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["side_by_side_index"] = nil + } else if !exists { + delete(patch, "side_by_side_index") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.urls.0.doc_url" + path = rootPath + ".doc_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["doc_url"] = nil + } else if !exists { + delete(patch, "doc_url") } - path = "metadata.0.ui.0.urls.0.apidocs_url" + path = rootPath + ".apidocs_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["apidocs_url"] = nil + } else if !exists { + delete(patch, "apidocs_url") } - path = "metadata.0.ui.0.urls.0.terms_url" + path = rootPath + ".terms_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["terms_url"] = nil + } else if !exists { + delete(patch, "terms_url") } - path = "metadata.0.ui.0.urls.0.instructions_url" + path = rootPath + ".instructions_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["instructions_url"] = nil + } else if !exists { + delete(patch, "instructions_url") } - path = "metadata.0.ui.0.urls.0.catalog_details_url" + path = rootPath + ".catalog_details_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["catalog_details_url"] = nil + } else if !exists { + delete(patch, "catalog_details_url") } - path = "metadata.0.ui.0.urls.0.custom_create_page_url" + path = rootPath + ".custom_create_page_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["custom_create_page_url"] = nil + } else if !exists { + delete(patch, "custom_create_page_url") } - path = "metadata.0.ui.0.urls.0.dashboard" + path = rootPath + ".dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["dashboard"] = nil + } else if !exists { + delete(patch, "dashboard") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIStringsContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets" + path = rootPath + ".bullets" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["bullets"] = nil } else if exists && patch["bullets"] != nil { - ResourceIbmOnboardingCatalogProductCatalogHighlightItemAsPatch(patch["bullets"].([]map[string]interface{})[0], d) + bulletsList := patch["bullets"].([]map[string]interface{}) + for i, bulletsItem := range bulletsList { + ResourceIbmOnboardingCatalogProductCatalogHighlightItemAsPatch(bulletsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "bullets") } - path = "metadata.0.ui.0.strings.0.en.0.media" + path = rootPath + ".media" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["media"] = nil } else if exists && patch["media"] != nil { - ResourceIbmOnboardingCatalogProductCatalogProductMediaItemAsPatch(patch["media"].([]map[string]interface{})[0], d) + mediaList := patch["media"].([]map[string]interface{}) + for i, mediaItem := range mediaList { + ResourceIbmOnboardingCatalogProductCatalogProductMediaItemAsPatch(mediaItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "media") } - path = "metadata.0.ui.0.strings.0.en.0.embeddable_dashboard" + path = rootPath + ".embeddable_dashboard" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["embeddable_dashboard"] = nil + } else if !exists { + delete(patch, "embeddable_dashboard") } } -func ResourceIbmOnboardingCatalogProductCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductCatalogProductMediaItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.media.0.caption_i18n" + path = rootPath + ".caption_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["caption_i18n"] = nil + } else if !exists { + delete(patch, "caption_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.media.0.thumbnail" + path = rootPath + ".thumbnail" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["thumbnail"] = nil + } else if !exists { + delete(patch, "thumbnail") } } -func ResourceIbmOnboardingCatalogProductCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductCatalogHighlightItemAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.description_i18n" + path = rootPath + ".description_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description_i18n"] = nil + } else if !exists { + delete(patch, "description_i18n") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title" + path = rootPath + ".title" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title"] = nil + } else if !exists { + delete(patch, "title") } - path = "metadata.0.ui.0.strings.0.en.0.bullets.0.title_i18n" + path = rootPath + ".title_i18n" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["title_i18n"] = nil + } else if !exists { + delete(patch, "title_i18n") } } -func ResourceIbmOnboardingCatalogProductCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductCatalogProductProviderAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "object_provider.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } - path = "object_provider.0.email" + path = rootPath + ".email" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["email"] = nil + } else if !exists { + delete(patch, "email") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogProductImagesAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogProductImagesAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "images.0.image" + path = rootPath + ".image" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["image"] = nil + } else if !exists { + delete(patch, "image") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUIAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil } else if exists && patch["en"] != nil { - ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d) + ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUITranslatedContentAsPatch(patch["en"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "en") } } -func ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingCatalogProductGlobalCatalogOverviewUITranslatedContentAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "overview_ui.0.en.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil + } else if !exists { + delete(patch, "display_name") } - path = "overview_ui.0.en.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil + } else if !exists { + delete(patch, "description") } - path = "overview_ui.0.en.0.long_description" + path = rootPath + ".long_description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["long_description"] = nil + } else if !exists { + delete(patch, "long_description") } } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go index f789698d188..1cf2a2542e4 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go @@ -180,7 +180,7 @@ func testAccCheckIbmOnboardingCatalogProductConfigBasic(productID string, name s } metadata { rc_compatible = false - } + } } `, productID, name, active, disabled, kind, objectId) } @@ -195,7 +195,6 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, active = %s disabled = %s kind = "%s" - object_id = "%s" overview_ui { en { display_name = "%s" @@ -209,27 +208,31 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, } object_provider { name = "name" - email = "email@email.com" + email = "email" } metadata { rc_compatible = "%s" ui { - strings { - en { - bullets { + strings { + en { + bullets { title = "%s" description = "some1" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" caption = "%s" } - } - } + } + } urls { doc_url = "doc_url" terms_url = "terms_url" + instructions_url = "instructions_url" + catalog_details_url = "catalog_details_url" + custom_create_page_url = "custom_create_page_url" + dashboard = "dashboard" } hidden = true side_by_side_index = 1.0 @@ -282,7 +285,7 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, day = "%s" start_time = "start_time" end_time = "end_time" - } + } times { day = "2.0" start_time = "start_time" @@ -329,9 +332,9 @@ func testAccCheckIbmOnboardingCatalogProductUpdateConfig(productID string, env s kind = "%s" object_id = "%s" overview_ui { - en { + en { display_name = "%s" - description = "description" + description = "description" long_description = "long_description" } } @@ -342,7 +345,7 @@ func testAccCheckIbmOnboardingCatalogProductUpdateConfig(productID string, env s object_provider { name = "name" email = "email@email.com" - } + } metadata { rc_compatible = "%s" ui { @@ -351,30 +354,30 @@ func testAccCheckIbmOnboardingCatalogProductUpdateConfig(productID string, env s bullets { title = "%s" description = "some1" - } + } bullets { title = "newBullet" description = "some1" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" caption = "%s" - } + } media { type = "youtube" url = "https://www.youtube.com/embed/HtkpMgNFYtE" caption = "newMedia" - } - } - } + } + } + } urls { doc_url = "doc_url" terms_url = "terms_url" - } + } hidden = true side_by_side_index = 1.0 - } + } service { rc_provisionable = true iam_compatible = false @@ -616,12 +619,54 @@ func TestResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(t globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogProductMetadataServiceModel := make(map[string]interface{}) + globalCatalogProductMetadataServiceModel["rc_provisionable"] = true + globalCatalogProductMetadataServiceModel["iam_compatible"] = true + globalCatalogProductMetadataServiceModel["bindable"] = true + globalCatalogProductMetadataServiceModel["plan_updateable"] = true + globalCatalogProductMetadataServiceModel["service_key_supported"] = true + globalCatalogProductMetadataServiceModel["unique_api_key"] = true + globalCatalogProductMetadataServiceModel["parameters"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersModel} supportTimeIntervalModel := make(map[string]interface{}) supportTimeIntervalModel["value"] = float64(72.5) @@ -678,7 +723,7 @@ func TestResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(t model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []map[string]interface{}{globalCatalogMetadataUiModel} - model["service"] = []map[string]interface{}{globalCatalogMetadataServiceModel} + model["service"] = []map[string]interface{}{globalCatalogProductMetadataServiceModel} model["other"] = []map[string]interface{}{globalCatalogProductMetadataOtherModel} assert.Equal(t, result, model) @@ -720,12 +765,54 @@ func TestResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(t globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogProductMetadataServiceModel := new(partnercentersellv1.GlobalCatalogProductMetadataService) + globalCatalogProductMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.UniqueApiKey = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} supportTimeIntervalModel := new(partnercentersellv1.SupportTimeInterval) supportTimeIntervalModel.Value = core.Float64Ptr(float64(72.5)) @@ -782,7 +869,7 @@ func TestResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(t model := new(partnercentersellv1.GlobalCatalogProductMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogProductMetadataServiceModel model.Other = globalCatalogProductMetadataOtherModel result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataToMap(model) @@ -1044,26 +1131,312 @@ func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataUIUrlsToMap(t * checkResult(result) } -func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceToMap(t *testing.T) { +func TestResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceToMap(t *testing.T) { checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + model := make(map[string]interface{}) model["rc_provisionable"] = true model["iam_compatible"] = true model["bindable"] = true model["plan_updateable"] = true model["service_key_supported"] = true + model["unique_api_key"] = true + model["parameters"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersModel} assert.Equal(t, result, model) } - model := new(partnercentersellv1.GlobalCatalogMetadataService) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogProductMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) model.PlanUpdateable = core.BoolPtr(true) model.ServiceKeySupported = core.BoolPtr(true) + model.UniqueApiKey = core.BoolPtr(true) + model.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} - result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceToMap(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogProductMetadataServiceToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["name"] = "testString" + model["type"] = "text" + model["options"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + model["value"] = []string{"testString"} + model["layout"] = "testString" + model["associations"] = map[string]interface{}{"anyKey": "anyValue"} + model["validation_url"] = "testString" + model["options_url"] = "testString" + model["invalidmessage"] = "testString" + model["description"] = "testString" + model["required"] = true + model["pattern"] = "testString" + model["placeholder"] = "testString" + model["readonly"] = true + model["hidden"] = true + model["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + model.Displayname = core.StringPtr("testString") + model.Name = core.StringPtr("testString") + model.Type = core.StringPtr("text") + model.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + model.Value = []string{"testString"} + model.Layout = core.StringPtr("testString") + model.Associations = map[string]interface{}{"anyKey": "anyValue"} + model.ValidationURL = core.StringPtr("testString") + model.OptionsURL = core.StringPtr("testString") + model.Invalidmessage = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + model.Required = core.BoolPtr(true) + model.Pattern = core.StringPtr("testString") + model.Placeholder = core.StringPtr("testString") + model.Readonly = core.BoolPtr(true) + model.Hidden = core.BoolPtr(true) + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["value"] = "testString" + model["i18n"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + model.Displayname = core.StringPtr("testString") + model.Value = core.StringPtr("testString") + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersOptionsToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + model := make(map[string]interface{}) + model["en"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["de"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["es"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["fr"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["it"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ja"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ko"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["pt_br"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_tw"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_cn"] = []map[string]interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + model.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nToMap(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(t *testing.T) { + checkResult := func(result map[string]interface{}) { + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["description"] = "testString" + + assert.Equal(t, result, model) + } + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + model.Displayname = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductGlobalCatalogMetadataServiceCustomParametersI18nFieldsToMap(model) assert.Nil(t, err) checkResult(result) } @@ -1662,12 +2035,54 @@ func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(t globalCatalogMetadataUiModel.Hidden = core.BoolPtr(true) globalCatalogMetadataUiModel.SideBySideIndex = core.Float64Ptr(float64(72.5)) - globalCatalogMetadataServiceModel := new(partnercentersellv1.GlobalCatalogMetadataService) - globalCatalogMetadataServiceModel.RcProvisionable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.IamCompatible = core.BoolPtr(true) - globalCatalogMetadataServiceModel.Bindable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) - globalCatalogMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogProductMetadataServiceModel := new(partnercentersellv1.GlobalCatalogProductMetadataService) + globalCatalogProductMetadataServiceModel.RcProvisionable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.IamCompatible = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.Bindable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.PlanUpdateable = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.ServiceKeySupported = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.UniqueApiKey = core.BoolPtr(true) + globalCatalogProductMetadataServiceModel.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} supportTimeIntervalModel := new(partnercentersellv1.SupportTimeInterval) supportTimeIntervalModel.Value = core.Float64Ptr(float64(72.5)) @@ -1724,7 +2139,7 @@ func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(t model := new(partnercentersellv1.GlobalCatalogProductMetadata) model.RcCompatible = core.BoolPtr(true) model.Ui = globalCatalogMetadataUiModel - model.Service = globalCatalogMetadataServiceModel + model.Service = globalCatalogProductMetadataServiceModel model.Other = globalCatalogProductMetadataOtherModel assert.Equal(t, result, model) @@ -1766,12 +2181,54 @@ func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(t globalCatalogMetadataUiModel["hidden"] = true globalCatalogMetadataUiModel["side_by_side_index"] = float64(72.5) - globalCatalogMetadataServiceModel := make(map[string]interface{}) - globalCatalogMetadataServiceModel["rc_provisionable"] = true - globalCatalogMetadataServiceModel["iam_compatible"] = true - globalCatalogMetadataServiceModel["bindable"] = true - globalCatalogMetadataServiceModel["plan_updateable"] = true - globalCatalogMetadataServiceModel["service_key_supported"] = true + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []interface{}{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogProductMetadataServiceModel := make(map[string]interface{}) + globalCatalogProductMetadataServiceModel["rc_provisionable"] = true + globalCatalogProductMetadataServiceModel["iam_compatible"] = true + globalCatalogProductMetadataServiceModel["bindable"] = true + globalCatalogProductMetadataServiceModel["plan_updateable"] = true + globalCatalogProductMetadataServiceModel["service_key_supported"] = true + globalCatalogProductMetadataServiceModel["unique_api_key"] = true + globalCatalogProductMetadataServiceModel["parameters"] = []interface{}{globalCatalogMetadataServiceCustomParametersModel} supportTimeIntervalModel := make(map[string]interface{}) supportTimeIntervalModel["value"] = float64(72.5) @@ -1828,7 +2285,7 @@ func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(t model := make(map[string]interface{}) model["rc_compatible"] = true model["ui"] = []interface{}{globalCatalogMetadataUiModel} - model["service"] = []interface{}{globalCatalogMetadataServiceModel} + model["service"] = []interface{}{globalCatalogProductMetadataServiceModel} model["other"] = []interface{}{globalCatalogProductMetadataOtherModel} result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(model) @@ -2090,26 +2547,312 @@ func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIUrls(t * checkResult(result) } -func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataService(t *testing.T) { - checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataService) { - model := new(partnercentersellv1.GlobalCatalogMetadataService) +func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogProductMetadataService) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + globalCatalogMetadataServiceCustomParametersModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + globalCatalogMetadataServiceCustomParametersModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Name = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Type = core.StringPtr("text") + globalCatalogMetadataServiceCustomParametersModel.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel.Value = []string{"testString"} + globalCatalogMetadataServiceCustomParametersModel.Layout = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Associations = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel.ValidationURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.OptionsURL = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Invalidmessage = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Description = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Required = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Pattern = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Placeholder = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersModel.Readonly = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.Hidden = core.BoolPtr(true) + globalCatalogMetadataServiceCustomParametersModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogProductMetadataService) model.RcProvisionable = core.BoolPtr(true) model.IamCompatible = core.BoolPtr(true) model.Bindable = core.BoolPtr(true) model.PlanUpdateable = core.BoolPtr(true) model.ServiceKeySupported = core.BoolPtr(true) + model.UniqueApiKey = core.BoolPtr(true) + model.Parameters = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters{*globalCatalogMetadataServiceCustomParametersModel} assert.Equal(t, result, model) } + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + globalCatalogMetadataServiceCustomParametersModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["name"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["type"] = "text" + globalCatalogMetadataServiceCustomParametersModel["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + globalCatalogMetadataServiceCustomParametersModel["value"] = []interface{}{"testString"} + globalCatalogMetadataServiceCustomParametersModel["layout"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["associations"] = map[string]interface{}{"anyKey": "anyValue"} + globalCatalogMetadataServiceCustomParametersModel["validation_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["options_url"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["invalidmessage"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["description"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["required"] = true + globalCatalogMetadataServiceCustomParametersModel["pattern"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["placeholder"] = "testString" + globalCatalogMetadataServiceCustomParametersModel["readonly"] = true + globalCatalogMetadataServiceCustomParametersModel["hidden"] = true + globalCatalogMetadataServiceCustomParametersModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + model := make(map[string]interface{}) model["rc_provisionable"] = true model["iam_compatible"] = true model["bindable"] = true model["plan_updateable"] = true model["service_key_supported"] = true + model["unique_api_key"] = true + model["parameters"] = []interface{}{globalCatalogMetadataServiceCustomParametersModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParameters(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + globalCatalogMetadataServiceCustomParametersOptionsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + globalCatalogMetadataServiceCustomParametersOptionsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.Value = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersOptionsModel.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParameters) + model.Displayname = core.StringPtr("testString") + model.Name = core.StringPtr("testString") + model.Type = core.StringPtr("text") + model.Options = []partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions{*globalCatalogMetadataServiceCustomParametersOptionsModel} + model.Value = []string{"testString"} + model.Layout = core.StringPtr("testString") + model.Associations = map[string]interface{}{"anyKey": "anyValue"} + model.ValidationURL = core.StringPtr("testString") + model.OptionsURL = core.StringPtr("testString") + model.Invalidmessage = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + model.Required = core.BoolPtr(true) + model.Pattern = core.StringPtr("testString") + model.Placeholder = core.StringPtr("testString") + model.Readonly = core.BoolPtr(true) + model.Hidden = core.BoolPtr(true) + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + globalCatalogMetadataServiceCustomParametersOptionsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersOptionsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["value"] = "testString" + globalCatalogMetadataServiceCustomParametersOptionsModel["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["name"] = "testString" + model["type"] = "text" + model["options"] = []interface{}{globalCatalogMetadataServiceCustomParametersOptionsModel} + model["value"] = []interface{}{"testString"} + model["layout"] = "testString" + model["associations"] = map[string]interface{}{"anyKey": "anyValue"} + model["validation_url"] = "testString" + model["options_url"] = "testString" + model["invalidmessage"] = "testString" + model["description"] = "testString" + model["required"] = true + model["pattern"] = "testString" + model["placeholder"] = "testString" + model["readonly"] = true + model["hidden"] = true + model["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParameters(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersOptions(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + globalCatalogMetadataServiceCustomParametersI18nModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + globalCatalogMetadataServiceCustomParametersI18nModel.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + globalCatalogMetadataServiceCustomParametersI18nModel.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersOptions) + model.Displayname = core.StringPtr("testString") + model.Value = core.StringPtr("testString") + model.I18n = globalCatalogMetadataServiceCustomParametersI18nModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + globalCatalogMetadataServiceCustomParametersI18nModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nModel["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + globalCatalogMetadataServiceCustomParametersI18nModel["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["value"] = "testString" + model["i18n"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersOptions(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18n(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) { + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Displayname = core.StringPtr("testString") + globalCatalogMetadataServiceCustomParametersI18nFieldsModel.Description = core.StringPtr("testString") + + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18n) + model.En = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.De = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Es = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Fr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.It = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ja = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.Ko = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.PtBr = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhTw = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + model.ZhCn = globalCatalogMetadataServiceCustomParametersI18nFieldsModel + + assert.Equal(t, result, model) + } + + globalCatalogMetadataServiceCustomParametersI18nFieldsModel := make(map[string]interface{}) + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["displayname"] = "testString" + globalCatalogMetadataServiceCustomParametersI18nFieldsModel["description"] = "testString" + + model := make(map[string]interface{}) + model["en"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["de"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["es"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["fr"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["it"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ja"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["ko"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["pt_br"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_tw"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + model["zh_cn"] = []interface{}{globalCatalogMetadataServiceCustomParametersI18nFieldsModel} + + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18n(model) + assert.Nil(t, err) + checkResult(result) +} + +func TestResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(t *testing.T) { + checkResult := func(result *partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) { + model := new(partnercentersellv1.GlobalCatalogMetadataServiceCustomParametersI18nFields) + model.Displayname = core.StringPtr("testString") + model.Description = core.StringPtr("testString") + + assert.Equal(t, result, model) + } + + model := make(map[string]interface{}) + model["displayname"] = "testString" + model["description"] = "testString" - result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataService(model) + result, err := partnercentersell.ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomParametersI18nFields(model) assert.Nil(t, err) checkResult(result) } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration.go b/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration.go index df11aba1676..c9a5e1e8c07 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration.go @@ -2518,538 +2518,741 @@ func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationPatchAsPatch(patc path = "enabled" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["enabled"] = nil + } else if !exists { + delete(patch, "enabled") } path = "service_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service_type"] = nil + } else if !exists { + delete(patch, "service_type") } path = "actions" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["actions"] = nil } else if exists && patch["actions"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionAsPatch(patch["actions"].([]map[string]interface{})[0], d) + actionsList := patch["actions"].([]map[string]interface{}) + for i, actionsItem := range actionsList { + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionAsPatch(actionsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "actions") } path = "additional_policy_scopes" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["additional_policy_scopes"] = nil + } else if !exists { + delete(patch, "additional_policy_scopes") } path = "display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil + } else if !exists { + delete(patch, "display_name") } path = "parent_ids" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["parent_ids"] = nil + } else if !exists { + delete(patch, "parent_ids") } path = "resource_hierarchy_attribute" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["resource_hierarchy_attribute"] = nil } else if exists && patch["resource_hierarchy_attribute"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationResourceHierarchyAttributeAsPatch(patch["resource_hierarchy_attribute"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationResourceHierarchyAttributeAsPatch(patch["resource_hierarchy_attribute"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "resource_hierarchy_attribute") } path = "supported_anonymous_accesses" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_anonymous_accesses"] = nil } else if exists && patch["supported_anonymous_accesses"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAnonymousAccessAsPatch(patch["supported_anonymous_accesses"].([]map[string]interface{})[0], d) + supported_anonymous_accessesList := patch["supported_anonymous_accesses"].([]map[string]interface{}) + for i, supported_anonymous_accessesItem := range supported_anonymous_accessesList { + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAnonymousAccessAsPatch(supported_anonymous_accessesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "supported_anonymous_accesses") } path = "supported_attributes" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_attributes"] = nil } else if exists && patch["supported_attributes"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAttributeAsPatch(patch["supported_attributes"].([]map[string]interface{})[0], d) + supported_attributesList := patch["supported_attributes"].([]map[string]interface{}) + for i, supported_attributesItem := range supported_attributesList { + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAttributeAsPatch(supported_attributesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "supported_attributes") } path = "supported_authorization_subjects" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_authorization_subjects"] = nil } else if exists && patch["supported_authorization_subjects"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAuthorizationSubjectAsPatch(patch["supported_authorization_subjects"].([]map[string]interface{})[0], d) + supported_authorization_subjectsList := patch["supported_authorization_subjects"].([]map[string]interface{}) + for i, supported_authorization_subjectsItem := range supported_authorization_subjectsList { + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAuthorizationSubjectAsPatch(supported_authorization_subjectsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "supported_authorization_subjects") } path = "supported_roles" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_roles"] = nil } else if exists && patch["supported_roles"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedRoleAsPatch(patch["supported_roles"].([]map[string]interface{})[0], d) + supported_rolesList := patch["supported_roles"].([]map[string]interface{}) + for i, supported_rolesItem := range supported_rolesList { + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedRoleAsPatch(supported_rolesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "supported_roles") } path = "supported_network" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_network"] = nil } else if exists && patch["supported_network"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedNetworkAsPatch(patch["supported_network"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedNetworkAsPatch(patch["supported_network"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "supported_network") } return patch } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedNetworkAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedNetworkAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_network.0.environment_attributes" + path = rootPath + ".environment_attributes" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["environment_attributes"] = nil } else if exists && patch["environment_attributes"] != nil { - ResourceIbmOnboardingIamRegistrationEnvironmentAttributeAsPatch(patch["environment_attributes"].([]map[string]interface{})[0], d) + environment_attributesList := patch["environment_attributes"].([]map[string]interface{}) + for i, environment_attributesItem := range environment_attributesList { + ResourceIbmOnboardingIamRegistrationEnvironmentAttributeAsPatch(environment_attributesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "environment_attributes") } } -func ResourceIbmOnboardingIamRegistrationEnvironmentAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationEnvironmentAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_network.0.environment_attributes.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } - path = "supported_network.0.environment_attributes.0.values" + path = rootPath + ".values" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["values"] = nil + } else if !exists { + delete(patch, "values") } - path = "supported_network.0.environment_attributes.0.options" + path = rootPath + ".options" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["options"] = nil } else if exists && patch["options"] != nil { - ResourceIbmOnboardingIamRegistrationEnvironmentAttributeOptionsAsPatch(patch["options"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationEnvironmentAttributeOptionsAsPatch(patch["options"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "options") } } -func ResourceIbmOnboardingIamRegistrationEnvironmentAttributeOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationEnvironmentAttributeOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_network.0.environment_attributes.0.options.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedRoleAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedRoleAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_roles.0.id" + path = rootPath + ".id" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["id"] = nil + } else if !exists { + delete(patch, "id") } - path = "supported_roles.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil } else if exists && patch["description"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "description") } - path = "supported_roles.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil } else if exists && patch["display_name"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "display_name") } - path = "supported_roles.0.options" + path = rootPath + ".options" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["options"] = nil } else if exists && patch["options"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedRoleOptionsAsPatch(patch["options"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedRoleOptionsAsPatch(patch["options"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "options") } } -func ResourceIbmOnboardingIamRegistrationSupportedRoleOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedRoleOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_roles.0.options.0.policy_type" + path = rootPath + ".policy_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["policy_type"] = nil + } else if !exists { + delete(patch, "policy_type") } - path = "supported_roles.0.options.0.account_type" + path = rootPath + ".account_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["account_type"] = nil + } else if !exists { + delete(patch, "account_type") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAuthorizationSubjectAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAuthorizationSubjectAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_authorization_subjects.0.attributes" + path = rootPath + ".attributes" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["attributes"] = nil } else if exists && patch["attributes"] != nil { - ResourceIbmOnboardingIamRegistrationSupportAuthorizationSubjectAttributeAsPatch(patch["attributes"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportAuthorizationSubjectAttributeAsPatch(patch["attributes"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "attributes") } - path = "supported_authorization_subjects.0.roles" + path = rootPath + ".roles" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["roles"] = nil + } else if !exists { + delete(patch, "roles") } } -func ResourceIbmOnboardingIamRegistrationSupportAuthorizationSubjectAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportAuthorizationSubjectAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_authorization_subjects.0.attributes.0.service_name" + path = rootPath + ".service_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["service_name"] = nil + } else if !exists { + delete(patch, "service_name") } - path = "supported_authorization_subjects.0.attributes.0.resource_type" + path = rootPath + ".resource_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["resource_type"] = nil + } else if !exists { + delete(patch, "resource_type") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } - path = "supported_attributes.0.options" + path = rootPath + ".options" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["options"] = nil } else if exists && patch["options"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsAsPatch(patch["options"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsAsPatch(patch["options"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "options") } - path = "supported_attributes.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil } else if exists && patch["display_name"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "display_name") } - path = "supported_attributes.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil } else if exists && patch["description"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "description") } - path = "supported_attributes.0.ui" + path = rootPath + ".ui" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ui"] = nil } else if exists && patch["ui"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributeUiAsPatch(patch["ui"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributeUiAsPatch(patch["ui"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "ui") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.ui.0.input_type" + path = rootPath + ".input_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["input_type"] = nil + } else if !exists { + delete(patch, "input_type") } - path = "supported_attributes.0.ui.0.input_details" + path = rootPath + ".input_details" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["input_details"] = nil } else if exists && patch["input_details"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputDetailsAsPatch(patch["input_details"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputDetailsAsPatch(patch["input_details"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "input_details") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputDetailsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputDetailsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.ui.0.input_details.0.type" + path = rootPath + ".type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["type"] = nil + } else if !exists { + delete(patch, "type") } - path = "supported_attributes.0.ui.0.input_details.0.values" + path = rootPath + ".values" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["values"] = nil } else if exists && patch["values"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputValueAsPatch(patch["values"].([]map[string]interface{})[0], d) + valuesList := patch["values"].([]map[string]interface{}) + for i, valuesItem := range valuesList { + ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputValueAsPatch(valuesItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "values") } - path = "supported_attributes.0.ui.0.input_details.0.gst" + path = rootPath + ".gst" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["gst"] = nil } else if exists && patch["gst"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputGstAsPatch(patch["gst"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputGstAsPatch(patch["gst"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "gst") } - path = "supported_attributes.0.ui.0.input_details.0.url" + path = rootPath + ".url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["url"] = nil } else if exists && patch["url"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputURLAsPatch(patch["url"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputURLAsPatch(patch["url"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "url") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputURLAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputURLAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.ui.0.input_details.0.url.0.url_endpoint" + path = rootPath + ".url_endpoint" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["url_endpoint"] = nil + } else if !exists { + delete(patch, "url_endpoint") } - path = "supported_attributes.0.ui.0.input_details.0.url.0.input_option_label" + path = rootPath + ".input_option_label" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["input_option_label"] = nil + } else if !exists { + delete(patch, "input_option_label") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputGstAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputGstAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.ui.0.input_details.0.gst.0.query" + path = rootPath + ".query" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["query"] = nil + } else if !exists { + delete(patch, "query") } - path = "supported_attributes.0.ui.0.input_details.0.gst.0.value_property_name" + path = rootPath + ".value_property_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value_property_name"] = nil + } else if !exists { + delete(patch, "value_property_name") } - path = "supported_attributes.0.ui.0.input_details.0.gst.0.label_property_name" + path = rootPath + ".label_property_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["label_property_name"] = nil + } else if !exists { + delete(patch, "label_property_name") } - path = "supported_attributes.0.ui.0.input_details.0.gst.0.input_option_label" + path = rootPath + ".input_option_label" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["input_option_label"] = nil + } else if !exists { + delete(patch, "input_option_label") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputValueAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributeUiInputValueAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.ui.0.input_details.0.values.0.value" + path = rootPath + ".value" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value"] = nil + } else if !exists { + delete(patch, "value") } - path = "supported_attributes.0.ui.0.input_details.0.values.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil } else if exists && patch["display_name"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "display_name") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.options.0.operators" + path = rootPath + ".operators" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["operators"] = nil + } else if !exists { + delete(patch, "operators") } - path = "supported_attributes.0.options.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } - path = "supported_attributes.0.options.0.supported_patterns" + path = rootPath + ".supported_patterns" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["supported_patterns"] = nil + } else if !exists { + delete(patch, "supported_patterns") } - path = "supported_attributes.0.options.0.policy_types" + path = rootPath + ".policy_types" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["policy_types"] = nil + } else if !exists { + delete(patch, "policy_types") } - path = "supported_attributes.0.options.0.is_empty_value_supported" + path = rootPath + ".is_empty_value_supported" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["is_empty_value_supported"] = nil + } else if !exists { + delete(patch, "is_empty_value_supported") } - path = "supported_attributes.0.options.0.is_string_exists_false_value_supported" + path = rootPath + ".is_string_exists_false_value_supported" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["is_string_exists_false_value_supported"] = nil + } else if !exists { + delete(patch, "is_string_exists_false_value_supported") } - path = "supported_attributes.0.options.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } - path = "supported_attributes.0.options.0.resource_hierarchy" + path = rootPath + ".resource_hierarchy" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["resource_hierarchy"] = nil } else if exists && patch["resource_hierarchy"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyAsPatch(patch["resource_hierarchy"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyAsPatch(patch["resource_hierarchy"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "resource_hierarchy") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.options.0.resource_hierarchy.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil } else if exists && patch["key"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyKeyAsPatch(patch["key"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyKeyAsPatch(patch["key"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "key") } - path = "supported_attributes.0.options.0.resource_hierarchy.0.value" + path = rootPath + ".value" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value"] = nil } else if exists && patch["value"] != nil { - ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyValueAsPatch(patch["value"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyValueAsPatch(patch["value"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "value") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyValueAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyValueAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.options.0.resource_hierarchy.0.value.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } } -func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyKeyAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsResourceHierarchyKeyAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_attributes.0.options.0.resource_hierarchy.0.key.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } - path = "supported_attributes.0.options.0.resource_hierarchy.0.key.0.value" + path = rootPath + ".value" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value"] = nil + } else if !exists { + delete(patch, "value") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAnonymousAccessAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAnonymousAccessAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_anonymous_accesses.0.attributes" + path = rootPath + ".attributes" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["attributes"] = nil + } else if !exists { + delete(patch, "attributes") } - path = "supported_anonymous_accesses.0.roles" + path = rootPath + ".roles" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["roles"] = nil + } else if !exists { + delete(patch, "roles") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationResourceHierarchyAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationResourceHierarchyAttributeAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "resource_hierarchy_attribute.0.key" + path = rootPath + ".key" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["key"] = nil + } else if !exists { + delete(patch, "key") } - path = "resource_hierarchy_attribute.0.value" + path = rootPath + ".value" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["value"] = nil + } else if !exists { + delete(patch, "value") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "actions.0.id" + path = rootPath + ".id" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["id"] = nil + } else if !exists { + delete(patch, "id") } - path = "actions.0.roles" + path = rootPath + ".roles" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["roles"] = nil + } else if !exists { + delete(patch, "roles") } - path = "actions.0.description" + path = rootPath + ".description" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["description"] = nil } else if exists && patch["description"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch["description"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "description") } - path = "actions.0.display_name" + path = rootPath + ".display_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["display_name"] = nil } else if exists && patch["display_name"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch["display_name"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "display_name") } - path = "actions.0.options" + path = rootPath + ".options" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["options"] = nil } else if exists && patch["options"] != nil { - ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionOptionsAsPatch(patch["options"].(map[string]interface{}), d) + ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionOptionsAsPatch(patch["options"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "options") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationActionOptionsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "actions.0.options.0.hidden" + path = rootPath + ".hidden" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["hidden"] = nil + } else if !exists { + delete(patch, "hidden") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDisplayNameObjectAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_roles.0.display_name.0.default" + path = rootPath + ".default" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["default"] = nil + } else if !exists { + delete(patch, "default") } - path = "supported_roles.0.display_name.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil + } else if !exists { + delete(patch, "en") } - path = "supported_roles.0.display_name.0.de" + path = rootPath + ".de" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["de"] = nil + } else if !exists { + delete(patch, "de") } - path = "supported_roles.0.display_name.0.es" + path = rootPath + ".es" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["es"] = nil + } else if !exists { + delete(patch, "es") } - path = "supported_roles.0.display_name.0.fr" + path = rootPath + ".fr" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["fr"] = nil + } else if !exists { + delete(patch, "fr") } - path = "supported_roles.0.display_name.0.it" + path = rootPath + ".it" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["it"] = nil + } else if !exists { + delete(patch, "it") } - path = "supported_roles.0.display_name.0.ja" + path = rootPath + ".ja" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ja"] = nil + } else if !exists { + delete(patch, "ja") } - path = "supported_roles.0.display_name.0.ko" + path = rootPath + ".ko" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ko"] = nil + } else if !exists { + delete(patch, "ko") } - path = "supported_roles.0.display_name.0.pt_br" + path = rootPath + ".pt_br" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["pt_br"] = nil + } else if !exists { + delete(patch, "pt_br") } - path = "supported_roles.0.display_name.0.zh_tw" + path = rootPath + ".zh_tw" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["zh_tw"] = nil + } else if !exists { + delete(patch, "zh_tw") } - path = "supported_roles.0.display_name.0.zh_cn" + path = rootPath + ".zh_cn" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["zh_cn"] = nil + } else if !exists { + delete(patch, "zh_cn") } } -func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingIamRegistrationIamServiceRegistrationDescriptionObjectAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "supported_roles.0.description.0.default" + path = rootPath + ".default" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["default"] = nil + } else if !exists { + delete(patch, "default") } - path = "supported_roles.0.description.0.en" + path = rootPath + ".en" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["en"] = nil + } else if !exists { + delete(patch, "en") } - path = "supported_roles.0.description.0.de" + path = rootPath + ".de" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["de"] = nil + } else if !exists { + delete(patch, "de") } - path = "supported_roles.0.description.0.es" + path = rootPath + ".es" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["es"] = nil + } else if !exists { + delete(patch, "es") } - path = "supported_roles.0.description.0.fr" + path = rootPath + ".fr" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["fr"] = nil + } else if !exists { + delete(patch, "fr") } - path = "supported_roles.0.description.0.it" + path = rootPath + ".it" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["it"] = nil + } else if !exists { + delete(patch, "it") } - path = "supported_roles.0.description.0.ja" + path = rootPath + ".ja" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ja"] = nil + } else if !exists { + delete(patch, "ja") } - path = "supported_roles.0.description.0.ko" + path = rootPath + ".ko" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ko"] = nil + } else if !exists { + delete(patch, "ko") } - path = "supported_roles.0.description.0.pt_br" + path = rootPath + ".pt_br" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["pt_br"] = nil + } else if !exists { + delete(patch, "pt_br") } - path = "supported_roles.0.description.0.zh_tw" + path = rootPath + ".zh_tw" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["zh_tw"] = nil + } else if !exists { + delete(patch, "zh_tw") } - path = "supported_roles.0.description.0.zh_cn" + path = rootPath + ".zh_cn" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["zh_cn"] = nil + } else if !exists { + delete(patch, "zh_cn") } } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration_test.go index bd3847afe0f..ec221145082 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_iam_registration_test.go @@ -367,19 +367,19 @@ func testAccCheckIbmOnboardingIamRegistrationUpdateConfig( zh_tw = "zh_tw" zh_cn = "zh_cn" } - display_name { - default = "default" - en = "en" - de = "de" - es = "es" - fr = "fr" - it = "it" - ja = "ja" - ko = "ko" - pt_br = "pt_br" - zh_tw = "zh_tw" - zh_cn = "zh_cn" - } + display_name { + default = "default" + en = "en" + de = "de" + es = "es" + fr = "fr" + it = "it" + ja = "ja" + ko = "ko" + pt_br = "pt_br" + zh_tw = "zh_tw" + zh_cn = "zh_cn" + } options { hidden = true } @@ -430,7 +430,7 @@ func testAccCheckIbmOnboardingIamRegistrationUpdateConfig( pt_br = "pt_br" zh_tw = "zh_tw" zh_cn = "zh_cn" - } + } parent_ids = ["05ca8653-de25-49fa-a14d-aaa5d373bc22"] supported_attributes { key = "testString" @@ -887,7 +887,7 @@ func TestResourceIbmOnboardingIamRegistrationIamServiceRegistrationSupportedAttr supportedAttributesOptionsModel := make(map[string]interface{}) supportedAttributesOptionsModel["operators"] = []string{"stringEquals"} supportedAttributesOptionsModel["hidden"] = true - supportedAttributesOptionsModel["supported_attributes"] = []string{"testString"} + supportedAttributesOptionsModel["supported_patterns"] = []string{"testString"} supportedAttributesOptionsModel["policy_types"] = []string{"access"} supportedAttributesOptionsModel["is_empty_value_supported"] = true supportedAttributesOptionsModel["is_string_exists_false_value_supported"] = true @@ -1053,7 +1053,7 @@ func TestResourceIbmOnboardingIamRegistrationSupportedAttributesOptionsToMap(t * model := make(map[string]interface{}) model["operators"] = []string{"stringEquals"} model["hidden"] = true - model["supported_attributes"] = []string{"testString"} + model["supported_patterns"] = []string{"testString"} model["policy_types"] = []string{"access"} model["is_empty_value_supported"] = true model["is_string_exists_false_value_supported"] = true @@ -1814,6 +1814,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupporte iamServiceRegistrationSupportedAnonymousAccessAttributesModel := new(partnercentersellv1.IamServiceRegistrationSupportedAnonymousAccessAttributes) iamServiceRegistrationSupportedAnonymousAccessAttributesModel.AccountID = core.StringPtr("testString") iamServiceRegistrationSupportedAnonymousAccessAttributesModel.ServiceName = core.StringPtr("testString") + iamServiceRegistrationSupportedAnonymousAccessAttributesModel.AdditionalProperties = map[string]string{"key1": "testString"} model := new(partnercentersellv1.IamServiceRegistrationSupportedAnonymousAccess) model.Attributes = iamServiceRegistrationSupportedAnonymousAccessAttributesModel @@ -1825,6 +1826,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupporte iamServiceRegistrationSupportedAnonymousAccessAttributesModel := make(map[string]interface{}) iamServiceRegistrationSupportedAnonymousAccessAttributesModel["account_id"] = "testString" iamServiceRegistrationSupportedAnonymousAccessAttributesModel["service_name"] = "testString" + iamServiceRegistrationSupportedAnonymousAccessAttributesModel["additional_properties"] = map[string]interface{}{"key1": "testString"} model := make(map[string]interface{}) model["attributes"] = []interface{}{iamServiceRegistrationSupportedAnonymousAccessAttributesModel} @@ -1840,6 +1842,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupporte model := new(partnercentersellv1.IamServiceRegistrationSupportedAnonymousAccessAttributes) model.AccountID = core.StringPtr("testString") model.ServiceName = core.StringPtr("testString") + model.AdditionalProperties = map[string]string{"key1": "testString"} assert.Equal(t, result, model) } @@ -1847,6 +1850,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupporte model := make(map[string]interface{}) model["account_id"] = "testString" model["service_name"] = "testString" + model["additional_properties"] = map[string]interface{}{"key1": "testString"} result, err := partnercentersell.ResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupportedAnonymousAccessAttributes(model) assert.Nil(t, err) @@ -1950,7 +1954,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToIamServiceRegistrationSupporte supportedAttributesOptionsModel := make(map[string]interface{}) supportedAttributesOptionsModel["operators"] = []interface{}{"stringEquals"} supportedAttributesOptionsModel["hidden"] = true - supportedAttributesOptionsModel["supported_attributes"] = []interface{}{"testString"} + supportedAttributesOptionsModel["supported_patterns"] = []interface{}{"testString"} supportedAttributesOptionsModel["policy_types"] = []interface{}{"access"} supportedAttributesOptionsModel["is_empty_value_supported"] = true supportedAttributesOptionsModel["is_string_exists_false_value_supported"] = true @@ -2059,7 +2063,7 @@ func TestResourceIbmOnboardingIamRegistrationMapToSupportedAttributesOptions(t * model := make(map[string]interface{}) model["operators"] = []interface{}{"stringEquals"} model["hidden"] = true - model["supported_attributes"] = []interface{}{"testString"} + model["supported_patterns"] = []interface{}{"testString"} model["policy_types"] = []interface{}{"access"} model["is_empty_value_supported"] = true model["is_string_exists_false_value_supported"] = true diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_product.go b/ibm/service/partnercentersell/resource_ibm_onboarding_product.go index 05ee3cf898a..5076455abd7 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_product.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_product.go @@ -504,57 +504,80 @@ func ResourceIbmOnboardingProductOnboardingProductPatchAsPatch(patchVals *partne path = "primary_contact" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["primary_contact"] = nil + } else if !exists { + delete(patch, "primary_contact") } path = "eccn_number" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["eccn_number"] = nil + } else if !exists { + delete(patch, "eccn_number") } path = "ero_class" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["ero_class"] = nil + } else if !exists { + delete(patch, "ero_class") } path = "unspsc" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["unspsc"] = nil + } else if !exists { + delete(patch, "unspsc") } path = "tax_assessment" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["tax_assessment"] = nil + } else if !exists { + delete(patch, "tax_assessment") } path = "support" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["support"] = nil } else if exists && patch["support"] != nil { - ResourceIbmOnboardingProductOnboardingProductSupportAsPatch(patch["support"].(map[string]interface{}), d) + ResourceIbmOnboardingProductOnboardingProductSupportAsPatch(patch["support"].(map[string]interface{}), d, fmt.Sprintf("%s.0", path)) + } else if !exists { + delete(patch, "support") } return patch } -func ResourceIbmOnboardingProductOnboardingProductSupportAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingProductOnboardingProductSupportAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "support.0.escalation_contacts" + path = rootPath + ".escalation_contacts" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["escalation_contacts"] = nil } else if exists && patch["escalation_contacts"] != nil { - ResourceIbmOnboardingProductOnboardingProductSupportEscalationContactItemsAsPatch(patch["escalation_contacts"].([]map[string]interface{})[0], d) + escalation_contactsList := patch["escalation_contacts"].([]map[string]interface{}) + for i, escalation_contactsItem := range escalation_contactsList { + ResourceIbmOnboardingProductOnboardingProductSupportEscalationContactItemsAsPatch(escalation_contactsItem, d, fmt.Sprintf("%s.%d", path, i)) + } + } else if !exists { + delete(patch, "escalation_contacts") } } -func ResourceIbmOnboardingProductOnboardingProductSupportEscalationContactItemsAsPatch(patch map[string]interface{}, d *schema.ResourceData) { +func ResourceIbmOnboardingProductOnboardingProductSupportEscalationContactItemsAsPatch(patch map[string]interface{}, d *schema.ResourceData, rootPath string) { var path string - path = "support.0.escalation_contacts.0.name" + path = rootPath + ".name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["name"] = nil + } else if !exists { + delete(patch, "name") } - path = "support.0.escalation_contacts.0.email" + path = rootPath + ".email" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["email"] = nil + } else if !exists { + delete(patch, "email") } - path = "support.0.escalation_contacts.0.role" + path = rootPath + ".role" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["role"] = nil + } else if !exists { + delete(patch, "role") } } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_registration.go b/ibm/service/partnercentersell/resource_ibm_onboarding_registration.go index 6a181f5f2f5..89cf480b205 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_registration.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_registration.go @@ -336,18 +336,26 @@ func ResourceIbmOnboardingRegistrationRegistrationPatchAsPatch(patchVals *partne path = "company_name" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["company_name"] = nil + } else if !exists { + delete(patch, "company_name") } path = "primary_contact" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["primary_contact"] = nil + } else if !exists { + delete(patch, "primary_contact") } path = "default_private_catalog_id" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["default_private_catalog_id"] = nil + } else if !exists { + delete(patch, "default_private_catalog_id") } path = "provider_access_group" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["provider_access_group"] = nil + } else if !exists { + delete(patch, "provider_access_group") } return patch diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go b/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go index 044c9ae42b2..9e1181bc229 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go @@ -2,7 +2,7 @@ // Licensed under the Mozilla Public License v2.0 /* - * IBM OpenAPI Terraform Generator Version: 3.97.0-0e90eab1-20241120-170029 + * IBM OpenAPI Terraform Generator Version: 3.98.0-8be2046a-20241205-162752 */ package partnercentersell @@ -470,13 +470,14 @@ func resourceIbmOnboardingResourceBrokerUpdate(context context.Context, d *schem updateResourceBrokerOptions := &partnercentersellv1.UpdateResourceBrokerOptions{} updateResourceBrokerOptions.SetBrokerID(d.Id()) - if _, ok := d.GetOk("env"); ok { - updateResourceBrokerOptions.SetEnv(d.Get("env").(string)) - } hasChange := false patchVals := &partnercentersellv1.BrokerPatch{} + if d.HasChange("env") { + updateResourceBrokerOptions.SetEnv(d.Get("env").(string)) + hasChange = true + } if d.HasChange("auth_username") { newAuthUsername := d.Get("auth_username").(string) patchVals.AuthUsername = &newAuthUsername @@ -612,42 +613,62 @@ func ResourceIbmOnboardingResourceBrokerBrokerPatchAsPatch(patchVals *partnercen path = "auth_username" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["auth_username"] = nil + } else if !exists { + delete(patch, "auth_username") } path = "auth_password" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["auth_password"] = nil + } else if !exists { + delete(patch, "auth_password") } path = "auth_scheme" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["auth_scheme"] = nil + } else if !exists { + delete(patch, "auth_scheme") } path = "resource_group_crn" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["resource_group_crn"] = nil + } else if !exists { + delete(patch, "resource_group_crn") } path = "state" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["state"] = nil + } else if !exists { + delete(patch, "state") } path = "broker_url" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["broker_url"] = nil + } else if !exists { + delete(patch, "broker_url") } path = "allow_context_updates" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["allow_context_updates"] = nil + } else if !exists { + delete(patch, "allow_context_updates") } path = "catalog_type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["catalog_type"] = nil + } else if !exists { + delete(patch, "catalog_type") } path = "type" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["type"] = nil + } else if !exists { + delete(patch, "type") } path = "region" if _, exists := d.GetOk(path); d.HasChange(path) && !exists { patch["region"] = nil + } else if !exists { + delete(patch, "region") } return patch diff --git a/website/docs/r/onboarding_catalog_deployment.html.markdown b/website/docs/r/onboarding_catalog_deployment.html.markdown index 76ed56416c4..d2b89f1bb8c 100644 --- a/website/docs/r/onboarding_catalog_deployment.html.markdown +++ b/website/docs/r/onboarding_catalog_deployment.html.markdown @@ -8,8 +8,6 @@ subcategory: "Partner Center Sell" # ibm_onboarding_catalog_deployment -**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** - Create, update, and delete onboarding_catalog_deployments with this resource. ## Example Usage @@ -60,6 +58,111 @@ resource "ibm_onboarding_catalog_deployment" "onboarding_catalog_deployment_inst bindable = true plan_updateable = true service_key_supported = true + parameters { + displayname = "displayname" + name = "name" + type = "text" + options { + displayname = "displayname" + value = "value" + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } + value = [ "value" ] + layout = "layout" + associations = { "key" = "anything as a string" } + validation_url = "validation_url" + options_url = "options_url" + invalidmessage = "invalidmessage" + description = "description" + required = true + pattern = "pattern" + placeholder = "placeholder" + readonly = true + hidden = true + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } } deployment { broker { @@ -122,6 +225,166 @@ Nested schema for **metadata**: Nested schema for **service**: * `bindable` - (Optional, Boolean) Deprecated. Controls the Connections tab on the Resource Details page. * `iam_compatible` - (Optional, Boolean) Whether the service is compatible with the IAM service. + * `parameters` - (Optional, List) + * Constraints: The maximum length is `1000` items. The minimum length is `0` items. + Nested schema for **parameters**: + * `associations` - (Optional, Map) A JSON structure to describe the interactions with pricing plans and/or other custom parameters. + * `description` - (Optional, String) The description of the parameter that is displayed to help users with the value of the parameter. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `displayname` - (Optional, String) The display name for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `hidden` - (Optional, Boolean) Indicates whether the custom parameters is hidden required or not. + * `i18n` - (Optional, List) The description for the object. + Nested schema for **i18n**: + * `de` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **de**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `en` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **en**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `es` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **es**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `fr` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **fr**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `it` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **it**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ja` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ja**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ko` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ko**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `pt_br` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **pt_br**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_cn` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_cn**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_tw` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_tw**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `invalidmessage` - (Optional, String) The message that appears when the content of the text box is invalid. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `layout` - (Optional, String) Specifies the layout of check box or radio input types. When unspecified, the default layout is horizontal. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `name` - (Optional, String) The key of the parameter. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `options` - (Optional, List) + * Constraints: The maximum length is `1000` items. The minimum length is `0` items. + Nested schema for **options**: + * `displayname` - (Optional, String) The display name for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `i18n` - (Optional, List) The description for the object. + Nested schema for **i18n**: + * `de` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **de**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `en` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **en**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `es` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **es**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `fr` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **fr**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `it` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **it**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ja` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ja**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ko` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ko**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `pt_br` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **pt_br**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_cn` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_cn**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_tw` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_tw**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `value` - (Optional, String) The value for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/./`. + * `options_url` - (Optional, String) The options URL for custom service parameters. + * Constraints: The maximum length is `2083` characters. The minimum length is `1` character. The value must match regular expression `/^(?!mailto:)(?:(?:http|https|ftp):\/\/)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(\/|\\?|#)[^\\s]*)?$/`. + * `pattern` - (Optional, String) A regular expression that the value is checked against. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/./`. + * `placeholder` - (Optional, String) The placeholder text for custom parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `readonly` - (Optional, Boolean) A boolean value that indicates whether the value of the parameter is displayed only and cannot be changed by users. The default value is false. + * `required` - (Optional, Boolean) A boolean value that indicates whether the parameter must be entered in the IBM Cloud user interface. + * `type` - (Optional, String) The type of custom service parameters. + * Constraints: Allowable values are: `text`, `textarea`, `dropdown`, `number`, `password`, `combo`, `checkbox`, `radio`, `multiselect`, `resource_group`, `vcenter_datastore`, `region`, `secret`, `cluster_namespace`. + * `validation_url` - (Optional, String) The validation URL for custom service parameters. + * Constraints: The maximum length is `2083` characters. The minimum length is `1` character. The value must match regular expression `/^(?!mailto:)(?:(?:http|https|ftp):\/\/)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(\/|\\?|#)[^\\s]*)?$/`. + * `value` - (Optional, List) + * Constraints: The list items must match regular expression `/^[ -~\\s]*$/`. The maximum length is `1000` items. The minimum length is `0` items. * `plan_updateable` - (Optional, Boolean) Indicates plan update support and controls the Plan tab on the Resource Details page. * `rc_provisionable` - (Optional, Boolean) Whether the service is provisionable by the resource controller service. * `service_key_supported` - (Optional, Boolean) Indicates service credentials support and controls the Service Credential tab on Resource Details page. @@ -197,6 +460,8 @@ After your resource is created, you can read values from the listed arguments an * `id` - The unique identifier of the onboarding_catalog_deployment. * `catalog_deployment_id` - (String) The ID of a global catalog object. +* `geo_tags` - (List) + * Constraints: The list items must match regular expression `/./`. The maximum length is `1000` items. The minimum length is `0` items. * `url` - (String) The global catalog URL of your product. @@ -206,7 +471,8 @@ You can import the `ibm_onboarding_catalog_deployment` resource by using `id`. The `id` property can be formed from `product_id`, `catalog_product_id`, `catalog_plan_id`, and `catalog_deployment_id` in the following format:
-product_id/catalog_product_id/catalog_plan_id/catalog_deployment_id
+<product_id>/<catalog_product_id>/<catalog_plan_id>/<catalog_deployment_id> + * `product_id`: A string. The unique ID of the product. * `catalog_product_id`: A string. The unique ID of this global catalog product. * `catalog_plan_id`: A string. The unique ID of this global catalog plan. @@ -214,5 +480,5 @@ product_id/catalog_product_id/catalog_plan_id/catalog_deployment_id # Syntax
-$ terraform import ibm_onboarding_catalog_deployment.onboarding_catalog_deployment product_id/catalog_product_id/catalog_plan_id/catalog_deployment_id
+$ terraform import ibm_onboarding_catalog_deployment.onboarding_catalog_deployment <product_id>/<catalog_product_id>/<catalog_plan_id>/<catalog_deployment_id>
 
diff --git a/website/docs/r/onboarding_catalog_plan.html.markdown b/website/docs/r/onboarding_catalog_plan.html.markdown index 2949b46dbf7..4879848720a 100644 --- a/website/docs/r/onboarding_catalog_plan.html.markdown +++ b/website/docs/r/onboarding_catalog_plan.html.markdown @@ -8,8 +8,6 @@ subcategory: "Partner Center Sell" # ibm_onboarding_catalog_plan -**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** - Create, update, and delete onboarding_catalog_plans with this resource. ## Example Usage @@ -189,6 +187,8 @@ After your resource is created, you can read values from the listed arguments an * `id` - The unique identifier of the onboarding_catalog_plan. * `catalog_plan_id` - (String) The ID of a global catalog object. +* `geo_tags` - (List) + * Constraints: The list items must match regular expression `/./`. The maximum length is `1000` items. The minimum length is `0` items. * `url` - (String) The global catalog URL of your product. @@ -198,7 +198,7 @@ You can import the `ibm_onboarding_catalog_plan` resource by using `id`. The `id` property can be formed from `product_id`, `catalog_product_id`, and `catalog_plan_id` in the following format:
-product_id/catalog_product_id/catalog_plan_id
+<product_id>/<catalog_product_id>/<catalog_plan_id>
 
* `product_id`: A string. The unique ID of the product. * `catalog_product_id`: A string. The unique ID of this global catalog product. @@ -206,5 +206,5 @@ product_id/catalog_product_id/catalog_plan_id # Syntax
-$ terraform import ibm_onboarding_catalog_plan.onboarding_catalog_plan product_id/catalog_product_id/catalog_plan_id;
+$ terraform import ibm_onboarding_catalog_plan.onboarding_catalog_plan <product_id>/<catalog_product_id>/<catalog_plan_id>
 
diff --git a/website/docs/r/onboarding_catalog_product.html.markdown b/website/docs/r/onboarding_catalog_product.html.markdown index ba3b6f750c0..abe8f246d94 100644 --- a/website/docs/r/onboarding_catalog_product.html.markdown +++ b/website/docs/r/onboarding_catalog_product.html.markdown @@ -61,6 +61,112 @@ resource "ibm_onboarding_catalog_product" "onboarding_catalog_product_instance" bindable = true plan_updateable = true service_key_supported = true + unique_api_key = true + parameters { + displayname = "displayname" + name = "name" + type = "text" + options { + displayname = "displayname" + value = "value" + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } + value = [ "value" ] + layout = "layout" + associations = { "key" = "anything as a string" } + validation_url = "validation_url" + options_url = "options_url" + invalidmessage = "invalidmessage" + description = "description" + required = true + pattern = "pattern" + placeholder = "placeholder" + readonly = true + hidden = true + i18n { + en { + displayname = "displayname" + description = "description" + } + de { + displayname = "displayname" + description = "description" + } + es { + displayname = "displayname" + description = "description" + } + fr { + displayname = "displayname" + description = "description" + } + it { + displayname = "displayname" + description = "description" + } + ja { + displayname = "displayname" + description = "description" + } + ko { + displayname = "displayname" + description = "description" + } + pt_br { + displayname = "displayname" + description = "description" + } + zh_tw { + displayname = "displayname" + description = "description" + } + zh_cn { + displayname = "displayname" + description = "description" + } + } + } } other { pc { @@ -210,9 +316,170 @@ Nested schema for **metadata**: Nested schema for **service**: * `bindable` - (Optional, Boolean) Deprecated. Controls the Connections tab on the Resource Details page. * `iam_compatible` - (Optional, Boolean) Whether the service is compatible with the IAM service. + * `parameters` - (Optional, List) + * Constraints: The maximum length is `1000` items. The minimum length is `0` items. + Nested schema for **parameters**: + * `associations` - (Optional, Map) A JSON structure to describe the interactions with pricing plans and/or other custom parameters. + * `description` - (Optional, String) The description of the parameter that is displayed to help users with the value of the parameter. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `displayname` - (Optional, String) The display name for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `hidden` - (Optional, Boolean) Indicates whether the custom parameters is hidden required or not. + * `i18n` - (Optional, List) The description for the object. + Nested schema for **i18n**: + * `de` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **de**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `en` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **en**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `es` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **es**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `fr` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **fr**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `it` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **it**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ja` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ja**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ko` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ko**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `pt_br` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **pt_br**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_cn` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_cn**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_tw` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_tw**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `invalidmessage` - (Optional, String) The message that appears when the content of the text box is invalid. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `layout` - (Optional, String) Specifies the layout of check box or radio input types. When unspecified, the default layout is horizontal. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `name` - (Optional, String) The key of the parameter. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `options` - (Optional, List) + * Constraints: The maximum length is `1000` items. The minimum length is `0` items. + Nested schema for **options**: + * `displayname` - (Optional, String) The display name for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `i18n` - (Optional, List) The description for the object. + Nested schema for **i18n**: + * `de` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **de**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `en` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **en**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `es` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **es**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `fr` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **fr**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `it` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **it**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ja` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ja**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `ko` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **ko**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `pt_br` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **pt_br**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_cn` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_cn**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `zh_tw` - (Optional, List) The translations for custom service parameter display name and description. + Nested schema for **zh_tw**: + * `description` - (Optional, String) The translations for custom service parameter description. + * Constraints: The maximum length is `20000` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `displayname` - (Optional, String) The translations for custom service parameter display name. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/./`. + * `value` - (Optional, String) The value for custom service parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/./`. + * `options_url` - (Optional, String) The options URL for custom service parameters. + * Constraints: The maximum length is `2083` characters. The minimum length is `1` character. The value must match regular expression `/^(?!mailto:)(?:(?:http|https|ftp):\/\/)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(\/|\\?|#)[^\\s]*)?$/`. + * `pattern` - (Optional, String) A regular expression that the value is checked against. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/./`. + * `placeholder` - (Optional, String) The placeholder text for custom parameters. + * Constraints: The maximum length is `2000` characters. The minimum length is `1` character. The value must match regular expression `/^[ -~\\s]*$/`. + * `readonly` - (Optional, Boolean) A boolean value that indicates whether the value of the parameter is displayed only and cannot be changed by users. The default value is false. + * `required` - (Optional, Boolean) A boolean value that indicates whether the parameter must be entered in the IBM Cloud user interface. + * `type` - (Optional, String) The type of custom service parameters. + * Constraints: Allowable values are: `text`, `textarea`, `dropdown`, `number`, `password`, `combo`, `checkbox`, `radio`, `multiselect`, `resource_group`, `vcenter_datastore`, `region`, `secret`, `cluster_namespace`. + * `validation_url` - (Optional, String) The validation URL for custom service parameters. + * Constraints: The maximum length is `2083` characters. The minimum length is `1` character. The value must match regular expression `/^(?!mailto:)(?:(?:http|https|ftp):\/\/)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(\/|\\?|#)[^\\s]*)?$/`. + * `value` - (Optional, List) + * Constraints: The list items must match regular expression `/^[ -~\\s]*$/`. The maximum length is `1000` items. The minimum length is `0` items. * `plan_updateable` - (Optional, Boolean) Indicates plan update support and controls the Plan tab on the Resource Details page. * `rc_provisionable` - (Optional, Boolean) Whether the service is provisionable by the resource controller service. * `service_key_supported` - (Optional, Boolean) Indicates service credentials support and controls the Service Credential tab on Resource Details page. + * `unique_api_key` - (Optional, Boolean) Indicates that the deployment uses an unique api key or not. * `ui` - (Optional, List) The UI metadata of this service. Nested schema for **ui**: * `hidden` - (Optional, Boolean) Whether the object is hidden from the consumption catalog. @@ -285,6 +552,8 @@ After your resource is created, you can read values from the listed arguments an * `id` - The unique identifier of the onboarding_catalog_product. * `catalog_product_id` - (String) The ID of a global catalog object. +* `geo_tags` - (List) + * Constraints: The list items must match regular expression `/./`. The maximum length is `1000` items. The minimum length is `0` items. * `url` - (String) The global catalog URL of your product. @@ -294,12 +563,12 @@ You can import the `ibm_onboarding_catalog_product` resource by using `id`. The `id` property can be formed from `product_id`, and `catalog_product_id` in the following format:
-<product_id>/<catalog_product_id>
+	product_id/catalog_product_id;
 
* `product_id`: A string. The unique ID of the product. * `catalog_product_id`: A string. The ID of a global catalog object. # Syntax
-$ terraform import ibm_onboarding_catalog_product.onboarding_catalog_product <product_id>/<catalog_product_id>
+$ terraform import ibm_onboarding_catalog_product.onboarding_catalog_product product_id/catalog_product_id;
 
diff --git a/website/docs/r/onboarding_iam_registration.html.markdown b/website/docs/r/onboarding_iam_registration.html.markdown index 9e81090c0e6..9251f511050 100644 --- a/website/docs/r/onboarding_iam_registration.html.markdown +++ b/website/docs/r/onboarding_iam_registration.html.markdown @@ -545,7 +545,7 @@ You can import the `ibm_onboarding_iam_registration` resource by using `name`. The `name` property can be formed from `product_id`, and `name` in the following format:
-<product_id>/<name>
+<product_id/name
 
* `product_id`: A string. The unique ID of the product. * `name`: A string in the format `pet-store`. The IAM registration name, which must be the programmatic name of the product. diff --git a/website/docs/r/onboarding_product.html.markdown b/website/docs/r/onboarding_product.html.markdown index 59edcaacca3..24fc8dad4af 100644 --- a/website/docs/r/onboarding_product.html.markdown +++ b/website/docs/r/onboarding_product.html.markdown @@ -8,8 +8,6 @@ subcategory: "Partner Center Sell" # ibm_onboarding_product -**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** - Create, update, and delete onboarding_products with this resource. ## Example Usage @@ -79,5 +77,5 @@ You can import the `ibm_onboarding_product` resource by using `id`. The ID of a # Syntax
-$ terraform import ibm_onboarding_product.onboarding_product id;
+$ terraform import ibm_onboarding_product.onboarding_product <id>
 
diff --git a/website/docs/r/onboarding_registration.html.markdown b/website/docs/r/onboarding_registration.html.markdown index bfb633cb4d2..2a2b7d2cccf 100644 --- a/website/docs/r/onboarding_registration.html.markdown +++ b/website/docs/r/onboarding_registration.html.markdown @@ -8,8 +8,6 @@ subcategory: "Partner Center Sell" # ibm_onboarding_registration -**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** - Create, update, and delete onboarding_registrations with this resource. ## Example Usage @@ -59,5 +57,5 @@ You can import the `ibm_onboarding_registration` resource by using `id`. The ID # Syntax
-$ terraform import ibm_onboarding_registration.onboarding_registration id;
+$ terraform import ibm_onboarding_registration.onboarding_registration <id>
 
diff --git a/website/docs/r/onboarding_resource_broker.html.markdown b/website/docs/r/onboarding_resource_broker.html.markdown index dddfd283b6a..ab6f31ac307 100644 --- a/website/docs/r/onboarding_resource_broker.html.markdown +++ b/website/docs/r/onboarding_resource_broker.html.markdown @@ -8,8 +8,6 @@ subcategory: "Partner Center Sell" # ibm_onboarding_resource_broker -**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** - Create, update, and delete onboarding_resource_brokers with this resource. ## Example Usage @@ -84,5 +82,5 @@ You can import the `ibm_onboarding_resource_broker` resource by using `id`. The # Syntax
-$ terraform import ibm_onboarding_resource_broker.onboarding_resource_broker id;
+$ terraform import ibm_onboarding_resource_broker.onboarding_resource_broker <id>
 
From 92f60764f6a2f277ddf4e90a7e96b059df0077fd Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Mon, 23 Dec 2024 11:14:46 +0100 Subject: [PATCH 2/7] feat(partner center sell): docs fix Signed-off-by: Peter Harasztia --- .../resource_ibm_onboarding_resource_broker.go | 9 ++++----- .../docs/r/onboarding_catalog_deployment.html.markdown | 7 ++++--- website/docs/r/onboarding_catalog_plan.html.markdown | 6 ++++-- website/docs/r/onboarding_product.html.markdown | 4 +++- website/docs/r/onboarding_registration.html.markdown | 4 +++- website/docs/r/onboarding_resource_broker.html.markdown | 4 +++- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go b/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go index 9e1181bc229..794a081eb08 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_resource_broker.go @@ -2,7 +2,7 @@ // Licensed under the Mozilla Public License v2.0 /* - * IBM OpenAPI Terraform Generator Version: 3.98.0-8be2046a-20241205-162752 + * IBM OpenAPI Terraform Generator Version: 3.97.0-0e90eab1-20241120-170029 */ package partnercentersell @@ -470,14 +470,13 @@ func resourceIbmOnboardingResourceBrokerUpdate(context context.Context, d *schem updateResourceBrokerOptions := &partnercentersellv1.UpdateResourceBrokerOptions{} updateResourceBrokerOptions.SetBrokerID(d.Id()) + if _, ok := d.GetOk("env"); ok { + updateResourceBrokerOptions.SetEnv(d.Get("env").(string)) + } hasChange := false patchVals := &partnercentersellv1.BrokerPatch{} - if d.HasChange("env") { - updateResourceBrokerOptions.SetEnv(d.Get("env").(string)) - hasChange = true - } if d.HasChange("auth_username") { newAuthUsername := d.Get("auth_username").(string) patchVals.AuthUsername = &newAuthUsername diff --git a/website/docs/r/onboarding_catalog_deployment.html.markdown b/website/docs/r/onboarding_catalog_deployment.html.markdown index d2b89f1bb8c..98f63b5ddff 100644 --- a/website/docs/r/onboarding_catalog_deployment.html.markdown +++ b/website/docs/r/onboarding_catalog_deployment.html.markdown @@ -8,6 +8,8 @@ subcategory: "Partner Center Sell" # ibm_onboarding_catalog_deployment +**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** + Create, update, and delete onboarding_catalog_deployments with this resource. ## Example Usage @@ -471,8 +473,7 @@ You can import the `ibm_onboarding_catalog_deployment` resource by using `id`. The `id` property can be formed from `product_id`, `catalog_product_id`, `catalog_plan_id`, and `catalog_deployment_id` in the following format:
-<product_id>/<catalog_product_id>/<catalog_plan_id>/<catalog_deployment_id>
-
+product_id/catalog_product_id/catalog_plan_id/catalog_deployment_id * `product_id`: A string. The unique ID of the product. * `catalog_product_id`: A string. The unique ID of this global catalog product. * `catalog_plan_id`: A string. The unique ID of this global catalog plan. @@ -480,5 +481,5 @@ The `id` property can be formed from `product_id`, `catalog_product_id`, `catalo # Syntax
-$ terraform import ibm_onboarding_catalog_deployment.onboarding_catalog_deployment <product_id>/<catalog_product_id>/<catalog_plan_id>/<catalog_deployment_id>
+$ terraform import ibm_onboarding_catalog_deployment.onboarding_catalog_deployment product_id/catalog_product_id/catalog_plan_id/catalog_deployment_id
 
diff --git a/website/docs/r/onboarding_catalog_plan.html.markdown b/website/docs/r/onboarding_catalog_plan.html.markdown index 4879848720a..4e20431469b 100644 --- a/website/docs/r/onboarding_catalog_plan.html.markdown +++ b/website/docs/r/onboarding_catalog_plan.html.markdown @@ -8,6 +8,8 @@ subcategory: "Partner Center Sell" # ibm_onboarding_catalog_plan +**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** + Create, update, and delete onboarding_catalog_plans with this resource. ## Example Usage @@ -198,7 +200,7 @@ You can import the `ibm_onboarding_catalog_plan` resource by using `id`. The `id` property can be formed from `product_id`, `catalog_product_id`, and `catalog_plan_id` in the following format:
-<product_id>/<catalog_product_id>/<catalog_plan_id>
+product_id/catalog_product_id/catalog_plan_id
 
* `product_id`: A string. The unique ID of the product. * `catalog_product_id`: A string. The unique ID of this global catalog product. @@ -206,5 +208,5 @@ The `id` property can be formed from `product_id`, `catalog_product_id`, and `ca # Syntax
-$ terraform import ibm_onboarding_catalog_plan.onboarding_catalog_plan <product_id>/<catalog_product_id>/<catalog_plan_id>
+$ terraform import ibm_onboarding_catalog_plan.onboarding_catalog_plan product_id/catalog_product_id/catalog_plan_id;
 
diff --git a/website/docs/r/onboarding_product.html.markdown b/website/docs/r/onboarding_product.html.markdown index 24fc8dad4af..59edcaacca3 100644 --- a/website/docs/r/onboarding_product.html.markdown +++ b/website/docs/r/onboarding_product.html.markdown @@ -8,6 +8,8 @@ subcategory: "Partner Center Sell" # ibm_onboarding_product +**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** + Create, update, and delete onboarding_products with this resource. ## Example Usage @@ -77,5 +79,5 @@ You can import the `ibm_onboarding_product` resource by using `id`. The ID of a # Syntax
-$ terraform import ibm_onboarding_product.onboarding_product <id>
+$ terraform import ibm_onboarding_product.onboarding_product id;
 
diff --git a/website/docs/r/onboarding_registration.html.markdown b/website/docs/r/onboarding_registration.html.markdown index 2a2b7d2cccf..bfb633cb4d2 100644 --- a/website/docs/r/onboarding_registration.html.markdown +++ b/website/docs/r/onboarding_registration.html.markdown @@ -8,6 +8,8 @@ subcategory: "Partner Center Sell" # ibm_onboarding_registration +**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** + Create, update, and delete onboarding_registrations with this resource. ## Example Usage @@ -57,5 +59,5 @@ You can import the `ibm_onboarding_registration` resource by using `id`. The ID # Syntax
-$ terraform import ibm_onboarding_registration.onboarding_registration <id>
+$ terraform import ibm_onboarding_registration.onboarding_registration id;
 
diff --git a/website/docs/r/onboarding_resource_broker.html.markdown b/website/docs/r/onboarding_resource_broker.html.markdown index ab6f31ac307..dddfd283b6a 100644 --- a/website/docs/r/onboarding_resource_broker.html.markdown +++ b/website/docs/r/onboarding_resource_broker.html.markdown @@ -8,6 +8,8 @@ subcategory: "Partner Center Sell" # ibm_onboarding_resource_broker +**Note - Intended for internal use only. This resource is strictly experimental and subject to change without notice.** + Create, update, and delete onboarding_resource_brokers with this resource. ## Example Usage @@ -82,5 +84,5 @@ You can import the `ibm_onboarding_resource_broker` resource by using `id`. The # Syntax
-$ terraform import ibm_onboarding_resource_broker.onboarding_resource_broker <id>
+$ terraform import ibm_onboarding_resource_broker.onboarding_resource_broker id;
 
From a60d1af45279a61d2a8b4d5b39b0b559fde4fa24 Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Thu, 2 Jan 2025 15:36:41 +0100 Subject: [PATCH 3/7] feat(partner center sell): fix product file and play with tests Signed-off-by: Peter Harasztia --- go.mod | 8 ++++ go.sum | 17 +++++++ ..._ibm_onboarding_catalog_deployment_test.go | 10 ++--- ...source_ibm_onboarding_catalog_plan_test.go | 4 +- ...resource_ibm_onboarding_catalog_product.go | 45 +++++++++---------- ...rce_ibm_onboarding_catalog_product_test.go | 3 +- .../resource_ibm_onboarding_product_test.go | 25 +++++------ 7 files changed, 61 insertions(+), 51 deletions(-) diff --git a/go.mod b/go.mod index 0166d3859f6..87cec67bd40 100644 --- a/go.mod +++ b/go.mod @@ -75,6 +75,7 @@ require ( ) require ( + github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 // indirect github.com/BurntSushi/toml v1.2.0 // indirect github.com/Logicalis/asn1 v0.0.0-20190312173541-d60463189a56 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect @@ -91,6 +92,7 @@ require ( github.com/containernetworking/cni v1.2.0-rc1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a // indirect + github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect @@ -123,6 +125,7 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect @@ -162,6 +165,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0 // indirect + github.com/kardianos/govendor v1.0.9 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1 // indirect github.com/leodido/go-urn v1.4.0 // indirect @@ -172,6 +176,8 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/mitchellh/gox v1.0.1 // indirect + github.com/mitchellh/iochan v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.4.0 // indirect @@ -214,6 +220,8 @@ require ( golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.28.0 // indirect + golang.org/x/tools/cmd/cover v0.1.0-deprecated // indirect + golang.org/x/tools/go/vcs v0.1.0-deprecated // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/go.sum b/go.sum index 66b94437c28..c478976a24c 100644 --- a/go.sum +++ b/go.sum @@ -85,6 +85,8 @@ github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 h1:xGHheKK44eC6K0u5X+DZW/fRaR1LnDdqPHMZMWx5fv8= +github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75/go.mod h1:4/6eNcqZ09BZ9wLK3tZOjBA1nDj+B0728nlX5YRlSmQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -305,6 +307,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a h1:saTgr5tMLFnmy/yg3qDTft4rE5DY2uJ/cCxCe3q0XTU= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a/go.mod h1:Bw9BbhOJVNR+t0jCqx2GC6zv0TGBsShs56Y3gfSCvl0= +github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 h1:3T8ZyTDp5QxTx3NU48JVb2u+75xc040fofcBaN+6jPA= +github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185/go.mod h1:cFRxtTwTOJkz2x3rQUNCYKWC93yP1VKjR8NUhqFxZNU= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -644,6 +648,8 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -735,6 +741,7 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.0.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -838,6 +845,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0 h1:47q2PIbDYHmOaqLxgGnvpLq96v9UKDsJfNW6j/KbfpQ= github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0/go.mod h1:KDX0bPKeuhMakcNzLf2sWXKPNZ30wH01bsY/KJZLxFY= +github.com/kardianos/govendor v1.0.9 h1:WOH3FcVI9eOgnIZYg96iwUwrL4eOVx+aQ66oyX2R8Yc= +github.com/kardianos/govendor v1.0.9/go.mod h1:yvmR6q9ZZ7nSF5Wvh40v0wfP+3TwwL8zYQp+itoZSVM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= @@ -933,6 +942,10 @@ github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/gox v1.0.1 h1:x0jD3dcHk9a9xPSDN6YEL4xL6Qz0dvNYm8yZqui5chI= +github.com/mitchellh/gox v1.0.1/go.mod h1:ED6BioOGXMswlXa2zxfh/xdd5QhwYliBFn9V18Ap4z4= +github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -1778,6 +1791,10 @@ golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58 golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= +golang.org/x/tools/cmd/cover v0.1.0-deprecated h1:Rwy+mWYz6loAF+LnG1jHG/JWMHRMMC2/1XX3Ejkx9lA= +golang.org/x/tools/cmd/cover v0.1.0-deprecated/go.mod h1:hMDiIvlpN1NoVgmjLjUJE9tMHyxHjFX7RuQ+rW12mSA= +golang.org/x/tools/go/vcs v0.1.0-deprecated h1:cOIJqWBl99H1dH5LWizPa+0ImeeJq3t3cJjaeOWUAL4= +golang.org/x/tools/go/vcs v0.1.0-deprecated/go.mod h1:zUrvATBAvEI9535oC0yWYsLsHIV4Z7g63sNPVMtuBy8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go index 79f68277f02..914570a091f 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go @@ -115,8 +115,6 @@ func TestAccIbmOnboardingCatalogDeploymentAllArgs(t *testing.T) { resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "active", active), resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "disabled", disabled), resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "kind", kind), - resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "overview_ui.en.display_name", overviewUiEn), - resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "metadata.rc_compatible", rcCompatible), ), }, resource.TestStep{ @@ -130,16 +128,14 @@ func TestAccIbmOnboardingCatalogDeploymentAllArgs(t *testing.T) { resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "active", activeUpdate), resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "disabled", disabledUpdate), resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "kind", kindUpdate), - resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "overview_ui.en.display_name", overviewUiEnUpdate), - resource.TestCheckResourceAttr("ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", "metadata.rc_compatible", rcCompatibleUpdate), ), }, resource.TestStep{ ResourceName: "ibm_onboarding_catalog_deployment.onboarding_catalog_deployment_instance", ImportState: true, - ImportStateVerify: true, + ImportStateVerify: false, ImportStateVerifyIgnore: []string{ - "env", "product_id", "catalog_product_id", "catalog_plan_id", + "env", "product_id", "catalog_product_id", "catalog_plan_id", "geo_tags", }, }, }, @@ -196,7 +192,7 @@ func testAccCheckIbmOnboardingCatalogDeploymentConfig(productID string, catalogP tags = ["sample"] object_provider { name = "name" - email = "email@email.com" + email = "emgeoil@email.com" } metadata { rc_compatible = "%s" diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go index 7e8931d24ac..201bcfc5c78 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go @@ -83,7 +83,7 @@ func TestAccIbmOnboardingCatalogPlanAllArgs(t *testing.T) { kindUpdate := "plan" overviewUiEn := "display_name" overviewUiEnUpdate := "display_name_2" - rcCompatible := "true" + rcCompatible := "false" rcCompatibleUpdate := "false" allowInternalUsers := "true" allowInternalUsersUpdate := "false" @@ -129,7 +129,7 @@ func TestAccIbmOnboardingCatalogPlanAllArgs(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "env", "product_id", "catalog_product_id", + "env", "product_id", "catalog_product_id", "geo_tags", }, }, }, diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go index 54281c54aed..959fcbd0975 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go @@ -2,7 +2,7 @@ // Licensed under the Mozilla Public License v2.0 /* - * IBM OpenAPI Terraform Generator Version: 3.97.0-0e90eab1-20241120-170029 + * IBM OpenAPI Terraform Generator Version: 3.98.0-8be2046a-20241205-162752 */ package partnercentersell @@ -1359,12 +1359,6 @@ func resourceIbmOnboardingCatalogProductRead(context context.Context, d *schema. return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-url").GetDiag() } } - if parts[0] != "" { - if err = d.Set("product_id", parts[0]); err != nil { - err = fmt.Errorf("Error setting product_id: %s", err) - return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-product_id").GetDiag() - } - } if !core.IsNil(globalCatalogProduct.ID) { if err = d.Set("catalog_product_id", globalCatalogProduct.ID); err != nil { err = fmt.Errorf("Error setting catalog_product_id: %s", err) @@ -1392,9 +1386,6 @@ func resourceIbmOnboardingCatalogProductUpdate(context context.Context, d *schem updateCatalogProductOptions.SetProductID(parts[0]) updateCatalogProductOptions.SetCatalogProductID(parts[1]) - if _, ok := d.GetOk("env"); ok { - updateCatalogProductOptions.SetEnv(d.Get("env").(string)) - } hasChange := false @@ -1404,6 +1395,10 @@ func resourceIbmOnboardingCatalogProductUpdate(context context.Context, d *schem " The resource must be re-created to update this property.", "product_id") return flex.DiscriminatedTerraformErrorf(nil, errMsg, "ibm_onboarding_catalog_product", "update", "product_id-forces-new").GetDiag() } + if d.HasChange("env") { + updateCatalogProductOptions.SetEnv(d.Get("env").(string)) + hasChange = true + } if d.HasChange("active") { newActive := d.Get("active").(bool) patchVals.Active = &newActive @@ -1519,7 +1514,7 @@ func ResourceIbmOnboardingCatalogProductMapToCatalogProductProvider(modelMap map func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogOverviewUI(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogOverviewUI, error) { model := &partnercentersellv1.GlobalCatalogOverviewUI{} - if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 && modelMap["en"].([]interface{})[0] != nil { + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { EnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogOverviewUITranslatedContent(modelMap["en"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1556,21 +1551,21 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(modelM if modelMap["rc_compatible"] != nil { model.RcCompatible = core.BoolPtr(modelMap["rc_compatible"].(bool)) } - if modelMap["ui"] != nil && len(modelMap["ui"].([]interface{})) > 0 && modelMap["ui"].([]interface{})[0] != nil { + if modelMap["ui"] != nil && len(modelMap["ui"].([]interface{})) > 0 { UiModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap["ui"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Ui = UiModel } - if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 && modelMap["service"].([]interface{})[0] != nil { + if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 { ServiceModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Service = ServiceModel } - if modelMap["other"] != nil && len(modelMap["other"].([]interface{})) > 0 && modelMap["other"].([]interface{})[0] != nil { + if modelMap["other"] != nil && len(modelMap["other"].([]interface{})) > 0 { OtherModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(modelMap["other"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1582,14 +1577,14 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(modelM func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataUI, error) { model := &partnercentersellv1.GlobalCatalogMetadataUI{} - if modelMap["strings"] != nil && len(modelMap["strings"].([]interface{})) > 0 && modelMap["strings"].([]interface{})[0] != nil { + if modelMap["strings"] != nil && len(modelMap["strings"].([]interface{})) > 0 { StringsModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStrings(modelMap["strings"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Strings = StringsModel } - if modelMap["urls"] != nil && len(modelMap["urls"].([]interface{})) > 0 && modelMap["urls"].([]interface{})[0] != nil { + if modelMap["urls"] != nil && len(modelMap["urls"].([]interface{})) > 0 { UrlsModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIUrls(modelMap["urls"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1607,7 +1602,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap ma func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStrings(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataUIStrings, error) { model := &partnercentersellv1.GlobalCatalogMetadataUIStrings{} - if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 && modelMap["en"].([]interface{})[0] != nil { + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { EnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStringsContent(modelMap["en"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1931,14 +1926,14 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomP func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogProductMetadataOther, error) { model := &partnercentersellv1.GlobalCatalogProductMetadataOther{} - if modelMap["pc"] != nil && len(modelMap["pc"].([]interface{})) > 0 && modelMap["pc"].([]interface{})[0] != nil { + if modelMap["pc"] != nil && len(modelMap["pc"].([]interface{})) > 0 { PCModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC(modelMap["pc"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.PC = PCModel } - if modelMap["composite"] != nil && len(modelMap["composite"].([]interface{})) > 0 && modelMap["composite"].([]interface{})[0] != nil { + if modelMap["composite"] != nil && len(modelMap["composite"].([]interface{})) > 0 { CompositeModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherComposite(modelMap["composite"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1950,7 +1945,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(m func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogProductMetadataOtherPC, error) { model := &partnercentersellv1.GlobalCatalogProductMetadataOtherPC{} - if modelMap["support"] != nil && len(modelMap["support"].([]interface{})) > 0 && modelMap["support"].([]interface{})[0] != nil { + if modelMap["support"] != nil && len(modelMap["support"].([]interface{})) > 0 { SupportModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPCSupport(modelMap["support"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1996,7 +1991,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC if modelMap["support_type"] != nil && modelMap["support_type"].(string) != "" { model.SupportType = core.StringPtr(modelMap["support_type"].(string)) } - if modelMap["support_escalation"] != nil && len(modelMap["support_escalation"].([]interface{})) > 0 && modelMap["support_escalation"].([]interface{})[0] != nil { + if modelMap["support_escalation"] != nil && len(modelMap["support_escalation"].([]interface{})) > 0 { SupportEscalationModel, err := ResourceIbmOnboardingCatalogProductMapToSupportEscalation(modelMap["support_escalation"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -2022,14 +2017,14 @@ func ResourceIbmOnboardingCatalogProductMapToSupportEscalation(modelMap map[stri if modelMap["contact"] != nil && modelMap["contact"].(string) != "" { model.Contact = core.StringPtr(modelMap["contact"].(string)) } - if modelMap["escalation_wait_time"] != nil && len(modelMap["escalation_wait_time"].([]interface{})) > 0 && modelMap["escalation_wait_time"].([]interface{})[0] != nil { + if modelMap["escalation_wait_time"] != nil && len(modelMap["escalation_wait_time"].([]interface{})) > 0 { EscalationWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["escalation_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.EscalationWaitTime = EscalationWaitTimeModel } - if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 && modelMap["response_wait_time"].([]interface{})[0] != nil { + if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 { ResponseWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["response_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -2058,14 +2053,14 @@ func ResourceIbmOnboardingCatalogProductMapToSupportDetailsItem(modelMap map[str if modelMap["contact"] != nil && modelMap["contact"].(string) != "" { model.Contact = core.StringPtr(modelMap["contact"].(string)) } - if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 && modelMap["response_wait_time"].([]interface{})[0] != nil { + if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 { ResponseWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["response_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.ResponseWaitTime = ResponseWaitTimeModel } - if modelMap["availability"] != nil && len(modelMap["availability"].([]interface{})) > 0 && modelMap["availability"].([]interface{})[0] != nil { + if modelMap["availability"] != nil && len(modelMap["availability"].([]interface{})) > 0 { AvailabilityModel, err := ResourceIbmOnboardingCatalogProductMapToSupportDetailsItemAvailability(modelMap["availability"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go index 1cf2a2542e4..5734abbc245 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go @@ -257,7 +257,6 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, pc { support { url = "url" - process_i18n = {} status_url = "status_url" locations = [ "locations" ] languages = [ "languages" ] @@ -304,7 +303,7 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, } availability { times { - day = "1.0" + day = "%s" start_time = "start_time" end_time = "end_time" } diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_product_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_product_test.go index 86662649012..b76af810d5d 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_product_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_product_test.go @@ -50,10 +50,12 @@ func TestAccIbmOnboardingProductAllArgs(t *testing.T) { typeVar := "service" eccnNumber := "5D002.C.1" eroClass := "A6VR" + unspsc := "25191503" taxAssessment := "PAAS" typeVarUpdate := "service" eccnNumberUpdate := "5D002.C.1" eroClassUpdate := "A6VR" + unspscUpdate := "43232300" taxAssessmentUpdate := "PAAS" resource.Test(t, resource.TestCase{ @@ -62,7 +64,7 @@ func TestAccIbmOnboardingProductAllArgs(t *testing.T) { CheckDestroy: testAccCheckIbmOnboardingProductDestroy, Steps: []resource.TestStep{ resource.TestStep{ - Config: testAccCheckIbmOnboardingProductConfig(typeVar, eccnNumber, eroClass, taxAssessment), + Config: testAccCheckIbmOnboardingProductConfig(typeVar, eccnNumber, eroClass, unspsc, taxAssessment), Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIbmOnboardingProductExists("ibm_onboarding_product.onboarding_product_instance", conf), resource.TestCheckResourceAttr("ibm_onboarding_product.onboarding_product_instance", "type", typeVar), @@ -72,7 +74,7 @@ func TestAccIbmOnboardingProductAllArgs(t *testing.T) { ), }, resource.TestStep{ - Config: testAccCheckIbmOnboardingProductConfig(typeVarUpdate, eccnNumberUpdate, eroClassUpdate, taxAssessmentUpdate), + Config: testAccCheckIbmOnboardingProductConfig(typeVarUpdate, eccnNumberUpdate, eroClassUpdate, unspscUpdate, taxAssessmentUpdate), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("ibm_onboarding_product.onboarding_product_instance", "type", typeVarUpdate), resource.TestCheckResourceAttr("ibm_onboarding_product.onboarding_product_instance", "eccn_number", eccnNumberUpdate), @@ -81,7 +83,7 @@ func TestAccIbmOnboardingProductAllArgs(t *testing.T) { ), }, resource.TestStep{ - ResourceName: "ibm_onboarding_product.onboarding_product", + ResourceName: "ibm_onboarding_product.onboarding_product_instance", ImportState: true, ImportStateVerify: true, }, @@ -95,34 +97,27 @@ func testAccCheckIbmOnboardingProductConfigBasic(typeVar string) string { type = "%s" primary_contact { name = "name" - email = "email" + email = "email@email.com" } } `, typeVar) } -func testAccCheckIbmOnboardingProductConfig(typeVar string, eccnNumber string, eroClass string, taxAssessment string) string { +func testAccCheckIbmOnboardingProductConfig(typeVar string, eccnNumber string, eroClass string, unspsc string, taxAssessment string) string { return fmt.Sprintf(` resource "ibm_onboarding_product" "onboarding_product_instance" { type = "%s" primary_contact { name = "name" - email = "email" + email = "email@email.com" } eccn_number = "%s" ero_class = "%s" - unspsc = "FIXME" + unspsc = "%s" tax_assessment = "%s" - support { - escalation_contacts { - name = "name" - email = "email" - role = "role" - } - } } - `, typeVar, eccnNumber, eroClass, taxAssessment) + `, typeVar, eccnNumber, eroClass, unspsc, taxAssessment) } func testAccCheckIbmOnboardingProductExists(n string, obj partnercentersellv1.OnboardingProduct) resource.TestCheckFunc { From 30dd933be85bc40655b8d00c8fbc20de041fe8b2 Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Thu, 2 Jan 2025 16:53:56 +0100 Subject: [PATCH 4/7] feat(partner center sell): fix merge conflict Signed-off-by: Peter Harasztia --- go.mod | 8 -------- go.sum | 31 ++++++++----------------------- 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/go.mod b/go.mod index 0e2a36f7a12..6896fe1bb7e 100644 --- a/go.mod +++ b/go.mod @@ -76,7 +76,6 @@ require ( ) require ( - github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 // indirect github.com/BurntSushi/toml v1.2.0 // indirect github.com/Logicalis/asn1 v0.0.0-20190312173541-d60463189a56 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect @@ -93,7 +92,6 @@ require ( github.com/containernetworking/cni v1.2.0-rc1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a // indirect - github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect @@ -126,7 +124,6 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect @@ -166,7 +163,6 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0 // indirect - github.com/kardianos/govendor v1.0.9 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1 // indirect github.com/leodido/go-urn v1.4.0 // indirect @@ -177,8 +173,6 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/mitchellh/gox v1.0.1 // indirect - github.com/mitchellh/iochan v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.4.0 // indirect @@ -255,5 +249,3 @@ exclude ( k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible k8s.io/client-go v12.0.0+incompatible ) - -replace github.com/IBM/platform-services-go-sdk v0.71.1 => ../platform-services-go-sdk diff --git a/go.sum b/go.sum index 712ff86c947..333fc0efd35 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,6 @@ github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 h1:xGHheKK44eC6K0u5X+DZW/fRaR1LnDdqPHMZMWx5fv8= -github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75/go.mod h1:4/6eNcqZ09BZ9wLK3tZOjBA1nDj+B0728nlX5YRlSmQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -135,7 +133,6 @@ github.com/IBM/go-sdk-core/v5 v5.6.3/go.mod h1:tt/B9rxLkRtglE7pvqLuYikgCXaZFL3bt github.com/IBM/go-sdk-core/v5 v5.9.5/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= github.com/IBM/go-sdk-core/v5 v5.10.2/go.mod h1:WZPFasUzsKab/2mzt29xPcfruSk5js2ywAPwW4VJjdI= github.com/IBM/go-sdk-core/v5 v5.17.4/go.mod h1:KsAAI7eStAWwQa4F96MLy+whYSh39JzNjklZRbN/8ns= - github.com/IBM/go-sdk-core/v5 v5.18.3 h1:q6IDU3N2bHGwijK9pMnzKC5gqdaRII56NzB4ZNdSFvY= github.com/IBM/go-sdk-core/v5 v5.18.3/go.mod h1:5kILxqEWOrwMhoD2b7J6Xv9Z2M6YIdT/6Oy+XRSsCGQ= github.com/IBM/ibm-backup-recovery-sdk-go v1.0.1 h1:JSdt2WuiRCSKok+Jvv+x0eQP6duR1dUg6utKH0bI734= @@ -159,6 +156,8 @@ github.com/IBM/mqcloud-go-sdk v0.2.0 h1:QOWk8ZGk0QfIL0MOGTKzNdM3Qe0Hk+ifAFtNSFQo github.com/IBM/mqcloud-go-sdk v0.2.0/go.mod h1:VZQKMtqmcdXKhmLhLiPuS/UHMs/5yo2tA/nD83cQt9E= github.com/IBM/networking-go-sdk v0.49.0 h1:lPS34u3C0JVrbxH+Ulua76Nwl6Frv8BEfq6LRkyvOv0= github.com/IBM/networking-go-sdk v0.49.0/go.mod h1:G9CKbmPE8gSLjN+ABh4hIZ1bMx076enl5Eekvj6zQnA= +github.com/IBM/platform-services-go-sdk v0.71.1 h1:EyqSctlLVqj092yU6K9hyTyx7JIpzhE192n6eG+Daac= +github.com/IBM/platform-services-go-sdk v0.71.1/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw= github.com/IBM/project-go-sdk v0.3.5 h1:L+YClFUa14foS0B/hOOY9n7sIdsT5/XQicnXOyJSpyM= github.com/IBM/project-go-sdk v0.3.5/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4= @@ -309,8 +308,6 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a h1:saTgr5tMLFnmy/yg3qDTft4rE5DY2uJ/cCxCe3q0XTU= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a/go.mod h1:Bw9BbhOJVNR+t0jCqx2GC6zv0TGBsShs56Y3gfSCvl0= -github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 h1:3T8ZyTDp5QxTx3NU48JVb2u+75xc040fofcBaN+6jPA= -github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185/go.mod h1:cFRxtTwTOJkz2x3rQUNCYKWC93yP1VKjR8NUhqFxZNU= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -649,8 +646,6 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -742,7 +737,6 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.0.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -846,8 +840,6 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0 h1:47q2PIbDYHmOaqLxgGnvpLq96v9UKDsJfNW6j/KbfpQ= github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.0/go.mod h1:KDX0bPKeuhMakcNzLf2sWXKPNZ30wH01bsY/KJZLxFY= -github.com/kardianos/govendor v1.0.9 h1:WOH3FcVI9eOgnIZYg96iwUwrL4eOVx+aQ66oyX2R8Yc= -github.com/kardianos/govendor v1.0.9/go.mod h1:yvmR6q9ZZ7nSF5Wvh40v0wfP+3TwwL8zYQp+itoZSVM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= @@ -943,10 +935,6 @@ github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/gox v1.0.1 h1:x0jD3dcHk9a9xPSDN6YEL4xL6Qz0dvNYm8yZqui5chI= -github.com/mitchellh/gox v1.0.1/go.mod h1:ED6BioOGXMswlXa2zxfh/xdd5QhwYliBFn9V18Ap4z4= -github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -1365,8 +1353,9 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1401,8 +1390,8 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1789,12 +1778,8 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= -golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= -golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= -golang.org/x/tools/cmd/cover v0.1.0-deprecated h1:Rwy+mWYz6loAF+LnG1jHG/JWMHRMMC2/1XX3Ejkx9lA= -golang.org/x/tools/cmd/cover v0.1.0-deprecated/go.mod h1:hMDiIvlpN1NoVgmjLjUJE9tMHyxHjFX7RuQ+rW12mSA= -golang.org/x/tools/go/vcs v0.1.0-deprecated h1:cOIJqWBl99H1dH5LWizPa+0ImeeJq3t3cJjaeOWUAL4= -golang.org/x/tools/go/vcs v0.1.0-deprecated/go.mod h1:zUrvATBAvEI9535oC0yWYsLsHIV4Z7g63sNPVMtuBy8= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 0b3a05946370a8956ed25cd7a1740a0d47927948 Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Thu, 2 Jan 2025 16:57:13 +0100 Subject: [PATCH 5/7] feat(partner center sell): fix product file Signed-off-by: Peter Harasztia --- ...resource_ibm_onboarding_catalog_product.go | 45 ++++++++++--------- ...rce_ibm_onboarding_catalog_product_test.go | 1 + 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go index 959fcbd0975..54281c54aed 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product.go @@ -2,7 +2,7 @@ // Licensed under the Mozilla Public License v2.0 /* - * IBM OpenAPI Terraform Generator Version: 3.98.0-8be2046a-20241205-162752 + * IBM OpenAPI Terraform Generator Version: 3.97.0-0e90eab1-20241120-170029 */ package partnercentersell @@ -1359,6 +1359,12 @@ func resourceIbmOnboardingCatalogProductRead(context context.Context, d *schema. return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-url").GetDiag() } } + if parts[0] != "" { + if err = d.Set("product_id", parts[0]); err != nil { + err = fmt.Errorf("Error setting product_id: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_onboarding_catalog_product", "read", "set-product_id").GetDiag() + } + } if !core.IsNil(globalCatalogProduct.ID) { if err = d.Set("catalog_product_id", globalCatalogProduct.ID); err != nil { err = fmt.Errorf("Error setting catalog_product_id: %s", err) @@ -1386,6 +1392,9 @@ func resourceIbmOnboardingCatalogProductUpdate(context context.Context, d *schem updateCatalogProductOptions.SetProductID(parts[0]) updateCatalogProductOptions.SetCatalogProductID(parts[1]) + if _, ok := d.GetOk("env"); ok { + updateCatalogProductOptions.SetEnv(d.Get("env").(string)) + } hasChange := false @@ -1395,10 +1404,6 @@ func resourceIbmOnboardingCatalogProductUpdate(context context.Context, d *schem " The resource must be re-created to update this property.", "product_id") return flex.DiscriminatedTerraformErrorf(nil, errMsg, "ibm_onboarding_catalog_product", "update", "product_id-forces-new").GetDiag() } - if d.HasChange("env") { - updateCatalogProductOptions.SetEnv(d.Get("env").(string)) - hasChange = true - } if d.HasChange("active") { newActive := d.Get("active").(bool) patchVals.Active = &newActive @@ -1514,7 +1519,7 @@ func ResourceIbmOnboardingCatalogProductMapToCatalogProductProvider(modelMap map func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogOverviewUI(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogOverviewUI, error) { model := &partnercentersellv1.GlobalCatalogOverviewUI{} - if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 && modelMap["en"].([]interface{})[0] != nil { EnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogOverviewUITranslatedContent(modelMap["en"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1551,21 +1556,21 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(modelM if modelMap["rc_compatible"] != nil { model.RcCompatible = core.BoolPtr(modelMap["rc_compatible"].(bool)) } - if modelMap["ui"] != nil && len(modelMap["ui"].([]interface{})) > 0 { + if modelMap["ui"] != nil && len(modelMap["ui"].([]interface{})) > 0 && modelMap["ui"].([]interface{})[0] != nil { UiModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap["ui"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Ui = UiModel } - if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 { + if modelMap["service"] != nil && len(modelMap["service"].([]interface{})) > 0 && modelMap["service"].([]interface{})[0] != nil { ServiceModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataService(modelMap["service"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Service = ServiceModel } - if modelMap["other"] != nil && len(modelMap["other"].([]interface{})) > 0 { + if modelMap["other"] != nil && len(modelMap["other"].([]interface{})) > 0 && modelMap["other"].([]interface{})[0] != nil { OtherModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(modelMap["other"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1577,14 +1582,14 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadata(modelM func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataUI, error) { model := &partnercentersellv1.GlobalCatalogMetadataUI{} - if modelMap["strings"] != nil && len(modelMap["strings"].([]interface{})) > 0 { + if modelMap["strings"] != nil && len(modelMap["strings"].([]interface{})) > 0 && modelMap["strings"].([]interface{})[0] != nil { StringsModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStrings(modelMap["strings"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.Strings = StringsModel } - if modelMap["urls"] != nil && len(modelMap["urls"].([]interface{})) > 0 { + if modelMap["urls"] != nil && len(modelMap["urls"].([]interface{})) > 0 && modelMap["urls"].([]interface{})[0] != nil { UrlsModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIUrls(modelMap["urls"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1602,7 +1607,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUI(modelMap ma func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStrings(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogMetadataUIStrings, error) { model := &partnercentersellv1.GlobalCatalogMetadataUIStrings{} - if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 { + if modelMap["en"] != nil && len(modelMap["en"].([]interface{})) > 0 && modelMap["en"].([]interface{})[0] != nil { EnModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataUIStringsContent(modelMap["en"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1926,14 +1931,14 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogMetadataServiceCustomP func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogProductMetadataOther, error) { model := &partnercentersellv1.GlobalCatalogProductMetadataOther{} - if modelMap["pc"] != nil && len(modelMap["pc"].([]interface{})) > 0 { + if modelMap["pc"] != nil && len(modelMap["pc"].([]interface{})) > 0 && modelMap["pc"].([]interface{})[0] != nil { PCModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC(modelMap["pc"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.PC = PCModel } - if modelMap["composite"] != nil && len(modelMap["composite"].([]interface{})) > 0 { + if modelMap["composite"] != nil && len(modelMap["composite"].([]interface{})) > 0 && modelMap["composite"].([]interface{})[0] != nil { CompositeModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherComposite(modelMap["composite"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1945,7 +1950,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOther(m func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC(modelMap map[string]interface{}) (*partnercentersellv1.GlobalCatalogProductMetadataOtherPC, error) { model := &partnercentersellv1.GlobalCatalogProductMetadataOtherPC{} - if modelMap["support"] != nil && len(modelMap["support"].([]interface{})) > 0 { + if modelMap["support"] != nil && len(modelMap["support"].([]interface{})) > 0 && modelMap["support"].([]interface{})[0] != nil { SupportModel, err := ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPCSupport(modelMap["support"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -1991,7 +1996,7 @@ func ResourceIbmOnboardingCatalogProductMapToGlobalCatalogProductMetadataOtherPC if modelMap["support_type"] != nil && modelMap["support_type"].(string) != "" { model.SupportType = core.StringPtr(modelMap["support_type"].(string)) } - if modelMap["support_escalation"] != nil && len(modelMap["support_escalation"].([]interface{})) > 0 { + if modelMap["support_escalation"] != nil && len(modelMap["support_escalation"].([]interface{})) > 0 && modelMap["support_escalation"].([]interface{})[0] != nil { SupportEscalationModel, err := ResourceIbmOnboardingCatalogProductMapToSupportEscalation(modelMap["support_escalation"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -2017,14 +2022,14 @@ func ResourceIbmOnboardingCatalogProductMapToSupportEscalation(modelMap map[stri if modelMap["contact"] != nil && modelMap["contact"].(string) != "" { model.Contact = core.StringPtr(modelMap["contact"].(string)) } - if modelMap["escalation_wait_time"] != nil && len(modelMap["escalation_wait_time"].([]interface{})) > 0 { + if modelMap["escalation_wait_time"] != nil && len(modelMap["escalation_wait_time"].([]interface{})) > 0 && modelMap["escalation_wait_time"].([]interface{})[0] != nil { EscalationWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["escalation_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.EscalationWaitTime = EscalationWaitTimeModel } - if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 { + if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 && modelMap["response_wait_time"].([]interface{})[0] != nil { ResponseWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["response_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err @@ -2053,14 +2058,14 @@ func ResourceIbmOnboardingCatalogProductMapToSupportDetailsItem(modelMap map[str if modelMap["contact"] != nil && modelMap["contact"].(string) != "" { model.Contact = core.StringPtr(modelMap["contact"].(string)) } - if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 { + if modelMap["response_wait_time"] != nil && len(modelMap["response_wait_time"].([]interface{})) > 0 && modelMap["response_wait_time"].([]interface{})[0] != nil { ResponseWaitTimeModel, err := ResourceIbmOnboardingCatalogProductMapToSupportTimeInterval(modelMap["response_wait_time"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err } model.ResponseWaitTime = ResponseWaitTimeModel } - if modelMap["availability"] != nil && len(modelMap["availability"].([]interface{})) > 0 { + if modelMap["availability"] != nil && len(modelMap["availability"].([]interface{})) > 0 && modelMap["availability"].([]interface{})[0] != nil { AvailabilityModel, err := ResourceIbmOnboardingCatalogProductMapToSupportDetailsItemAvailability(modelMap["availability"].([]interface{})[0].(map[string]interface{})) if err != nil { return model, err diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go index 5734abbc245..d6078e04a8f 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go @@ -257,6 +257,7 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, pc { support { url = "url" + process_i18n = {} status_url = "status_url" locations = [ "locations" ] languages = [ "languages" ] From 83b5e37a6437cf69774f90f9b65a9bd91b6d774e Mon Sep 17 00:00:00 2001 From: Peter Harasztia Date: Fri, 3 Jan 2025 14:57:02 +0100 Subject: [PATCH 6/7] feat(partner center sell): minor test modifications Signed-off-by: Peter Harasztia --- .../resource_ibm_onboarding_catalog_deployment_test.go | 6 +++--- .../resource_ibm_onboarding_catalog_plan_test.go | 2 +- .../resource_ibm_onboarding_catalog_product_test.go | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go index 914570a091f..164ef3f7d38 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_deployment_test.go @@ -192,7 +192,7 @@ func testAccCheckIbmOnboardingCatalogDeploymentConfig(productID string, catalogP tags = ["sample"] object_provider { name = "name" - email = "emgeoil@email.com" + email = "email@email.com" } metadata { rc_compatible = "%s" @@ -248,7 +248,7 @@ func testAccCheckIbmOnboardingCatalogDeploymentUpdateConfig(productID string, ca long_description = "long_description" } } - tags = ["sample", "moreSample"] + tags = ["sample", "moresample"] object_provider { name = "name" email = "email@email.com" @@ -258,7 +258,7 @@ func testAccCheckIbmOnboardingCatalogDeploymentUpdateConfig(productID string, ca service { rc_provisionable = true iam_compatible = "%s" - } + } deployment { broker { name = "%s" diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go index 201bcfc5c78..1400f72fc27 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_plan_test.go @@ -129,7 +129,7 @@ func TestAccIbmOnboardingCatalogPlanAllArgs(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "env", "product_id", "catalog_product_id", "geo_tags", + "env", "product_id", "catalog_product_id", "geo_tags", "object_id", }, }, }, diff --git a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go index d6078e04a8f..0675230564a 100644 --- a/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go +++ b/ibm/service/partnercentersell/resource_ibm_onboarding_catalog_product_test.go @@ -240,6 +240,13 @@ func testAccCheckIbmOnboardingCatalogProductConfig(productID string, env string, service { rc_provisionable = true iam_compatible = false + parameters { + displayname = "test" + name = "test" + type = "text" + value = ["test"] + description = "test" + } } other { composite { From 66c7877219ec251b6cb3d6a4a44feb5d3175640e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Marj=C3=A1n?= Date: Thu, 9 Jan 2025 11:39:14 +0100 Subject: [PATCH 7/7] feat(partner center sell): update go-sdk with latest changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Balázs Marján --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 6896fe1bb7e..eb752e489fb 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/IBM/eventstreams-go-sdk v1.4.0 github.com/IBM/go-sdk-core v1.1.0 github.com/IBM/go-sdk-core/v3 v3.2.4 - github.com/IBM/go-sdk-core/v5 v5.18.3 + github.com/IBM/go-sdk-core/v5 v5.18.5 github.com/IBM/ibm-backup-recovery-sdk-go v1.0.1 github.com/IBM/ibm-cos-sdk-go v1.12.0 github.com/IBM/ibm-cos-sdk-go-config/v2 v2.2.0 @@ -33,7 +33,7 @@ require ( github.com/IBM/logs-router-go-sdk v1.0.5 github.com/IBM/mqcloud-go-sdk v0.2.0 github.com/IBM/networking-go-sdk v0.49.0 - github.com/IBM/platform-services-go-sdk v0.71.1 + github.com/IBM/platform-services-go-sdk v0.73.0 github.com/IBM/project-go-sdk v0.3.5 github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 github.com/IBM/sarama v1.41.2 @@ -65,7 +65,7 @@ require ( github.com/rook/rook/pkg/apis v0.0.0-20231204200402-5287527732f7 github.com/softlayer/softlayer-go v1.0.3 github.com/stretchr/testify v1.10.0 - golang.org/x/crypto v0.31.0 + golang.org/x/crypto v0.32.0 gopkg.in/yaml.v3 v3.0.1 gotest.tools v2.2.0+incompatible k8s.io/api v0.31.1 @@ -207,11 +207,11 @@ require ( go.uber.org/ratelimit v0.2.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.32.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.27.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.26.0 // indirect diff --git a/go.sum b/go.sum index 333fc0efd35..59c20725377 100644 --- a/go.sum +++ b/go.sum @@ -133,8 +133,8 @@ github.com/IBM/go-sdk-core/v5 v5.6.3/go.mod h1:tt/B9rxLkRtglE7pvqLuYikgCXaZFL3bt github.com/IBM/go-sdk-core/v5 v5.9.5/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= github.com/IBM/go-sdk-core/v5 v5.10.2/go.mod h1:WZPFasUzsKab/2mzt29xPcfruSk5js2ywAPwW4VJjdI= github.com/IBM/go-sdk-core/v5 v5.17.4/go.mod h1:KsAAI7eStAWwQa4F96MLy+whYSh39JzNjklZRbN/8ns= -github.com/IBM/go-sdk-core/v5 v5.18.3 h1:q6IDU3N2bHGwijK9pMnzKC5gqdaRII56NzB4ZNdSFvY= -github.com/IBM/go-sdk-core/v5 v5.18.3/go.mod h1:5kILxqEWOrwMhoD2b7J6Xv9Z2M6YIdT/6Oy+XRSsCGQ= +github.com/IBM/go-sdk-core/v5 v5.18.5 h1:g0JRl3sYXJczB/yuDlrN6x22LJ6jIxhp0Sa4ARNW60c= +github.com/IBM/go-sdk-core/v5 v5.18.5/go.mod h1:KonTFRR+8ZSgw5cxBSYo6E4WZoY1+7n1kfHM82VcjFU= github.com/IBM/ibm-backup-recovery-sdk-go v1.0.1 h1:JSdt2WuiRCSKok+Jvv+x0eQP6duR1dUg6utKH0bI734= github.com/IBM/ibm-backup-recovery-sdk-go v1.0.1/go.mod h1:ezUFoHQn8MvZI5vNd3H/ds4BCDYOXDodGFrTUgsU33k= github.com/IBM/ibm-cos-sdk-go v1.12.0 h1:Wrk3ve4JS3euhl7XjNFd3RlvPT56199G2/rKaPWpRKU= @@ -156,8 +156,8 @@ github.com/IBM/mqcloud-go-sdk v0.2.0 h1:QOWk8ZGk0QfIL0MOGTKzNdM3Qe0Hk+ifAFtNSFQo github.com/IBM/mqcloud-go-sdk v0.2.0/go.mod h1:VZQKMtqmcdXKhmLhLiPuS/UHMs/5yo2tA/nD83cQt9E= github.com/IBM/networking-go-sdk v0.49.0 h1:lPS34u3C0JVrbxH+Ulua76Nwl6Frv8BEfq6LRkyvOv0= github.com/IBM/networking-go-sdk v0.49.0/go.mod h1:G9CKbmPE8gSLjN+ABh4hIZ1bMx076enl5Eekvj6zQnA= -github.com/IBM/platform-services-go-sdk v0.71.1 h1:EyqSctlLVqj092yU6K9hyTyx7JIpzhE192n6eG+Daac= -github.com/IBM/platform-services-go-sdk v0.71.1/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw= +github.com/IBM/platform-services-go-sdk v0.73.0 h1:CKs6qCM2U549gMn4ULfJB76DaDQpit/+0VmbKDqSpFU= +github.com/IBM/platform-services-go-sdk v0.73.0/go.mod h1:LSaXGGJUGGPMCCtG1/24r9LJEbF0hmpXtQOhABRk0PY= github.com/IBM/project-go-sdk v0.3.5 h1:L+YClFUa14foS0B/hOOY9n7sIdsT5/XQicnXOyJSpyM= github.com/IBM/project-go-sdk v0.3.5/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4= @@ -1341,8 +1341,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1472,8 +1472,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1636,8 +1636,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1658,8 +1658,8 @@ golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= -golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=