services/google/identitytoolkit/alpha/config_internal.go (7,762 lines of code) (raw):
// Copyright 2025 Google LLC. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package alpha
import (
"bytes"
"context"
"encoding/json"
"fmt"
"io/ioutil"
"github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl"
)
func (r *Config) validate() error {
if err := dcl.RequiredParameter(r.Project, "Project"); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(r.SignIn) {
if err := r.SignIn.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Notification) {
if err := r.Notification.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Quota) {
if err := r.Quota.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Monitoring) {
if err := r.Monitoring.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.MultiTenant) {
if err := r.MultiTenant.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Client) {
if err := r.Client.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Mfa) {
if err := r.Mfa.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.BlockingFunctions) {
if err := r.BlockingFunctions.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigSignIn) validate() error {
if !dcl.IsEmptyValueIndirect(r.Email) {
if err := r.Email.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.PhoneNumber) {
if err := r.PhoneNumber.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.Anonymous) {
if err := r.Anonymous.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.HashConfig) {
if err := r.HashConfig.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigSignInEmail) validate() error {
if !dcl.IsEmptyValueIndirect(r.HashConfig) {
if err := r.HashConfig.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigSignInEmailHashConfig) validate() error {
return nil
}
func (r *ConfigSignInPhoneNumber) validate() error {
return nil
}
func (r *ConfigSignInAnonymous) validate() error {
return nil
}
func (r *ConfigSignInHashConfig) validate() error {
return nil
}
func (r *ConfigNotification) validate() error {
if !dcl.IsEmptyValueIndirect(r.SendEmail) {
if err := r.SendEmail.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.SendSms) {
if err := r.SendSms.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigNotificationSendEmail) validate() error {
if !dcl.IsEmptyValueIndirect(r.Smtp) {
if err := r.Smtp.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.ResetPasswordTemplate) {
if err := r.ResetPasswordTemplate.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.VerifyEmailTemplate) {
if err := r.VerifyEmailTemplate.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.ChangeEmailTemplate) {
if err := r.ChangeEmailTemplate.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.DnsInfo) {
if err := r.DnsInfo.validate(); err != nil {
return err
}
}
if !dcl.IsEmptyValueIndirect(r.RevertSecondFactorAdditionTemplate) {
if err := r.RevertSecondFactorAdditionTemplate.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigNotificationSendEmailSmtp) validate() error {
return nil
}
func (r *ConfigNotificationSendEmailResetPasswordTemplate) validate() error {
return nil
}
func (r *ConfigNotificationSendEmailVerifyEmailTemplate) validate() error {
return nil
}
func (r *ConfigNotificationSendEmailChangeEmailTemplate) validate() error {
return nil
}
func (r *ConfigNotificationSendEmailDnsInfo) validate() error {
return nil
}
func (r *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) validate() error {
return nil
}
func (r *ConfigNotificationSendSms) validate() error {
if !dcl.IsEmptyValueIndirect(r.SmsTemplate) {
if err := r.SmsTemplate.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigNotificationSendSmsSmsTemplate) validate() error {
return nil
}
func (r *ConfigQuota) validate() error {
if !dcl.IsEmptyValueIndirect(r.SignUpQuotaConfig) {
if err := r.SignUpQuotaConfig.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigQuotaSignUpQuotaConfig) validate() error {
return nil
}
func (r *ConfigMonitoring) validate() error {
if !dcl.IsEmptyValueIndirect(r.RequestLogging) {
if err := r.RequestLogging.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigMonitoringRequestLogging) validate() error {
return nil
}
func (r *ConfigMultiTenant) validate() error {
return nil
}
func (r *ConfigClient) validate() error {
if !dcl.IsEmptyValueIndirect(r.Permissions) {
if err := r.Permissions.validate(); err != nil {
return err
}
}
return nil
}
func (r *ConfigClientPermissions) validate() error {
return nil
}
func (r *ConfigMfa) validate() error {
return nil
}
func (r *ConfigBlockingFunctions) validate() error {
return nil
}
func (r *ConfigBlockingFunctionsTriggers) validate() error {
return nil
}
func (r *Config) basePath() string {
params := map[string]interface{}{}
return dcl.Nprintf("https://identitytoolkit.googleapis.com/admin/v2", params)
}
func (r *Config) getURL(userBasePath string) (string, error) {
nr := r.urlNormalized()
params := map[string]interface{}{
"project": dcl.ValueOrEmptyString(nr.Project),
}
return dcl.URL("projects/{{project}}/config", nr.basePath(), userBasePath, params), nil
}
// configApiOperation represents a mutable operation in the underlying REST
// API such as Create, Update, or Delete.
type configApiOperation interface {
do(context.Context, *Config, *Client) error
}
// newUpdateConfigUpdateProjectConfigRequest creates a request for an
// Config resource's UpdateProjectConfig update type by filling in the update
// fields based on the intended state of the resource.
func newUpdateConfigUpdateProjectConfigRequest(ctx context.Context, f *Config, c *Client) (map[string]interface{}, error) {
req := map[string]interface{}{}
res := f
_ = res
if v, err := expandConfigSignIn(c, f.SignIn, res); err != nil {
return nil, fmt.Errorf("error expanding SignIn into signIn: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["signIn"] = v
}
if v, err := expandConfigNotification(c, f.Notification, res); err != nil {
return nil, fmt.Errorf("error expanding Notification into notification: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["notification"] = v
}
if v, err := expandConfigQuota(c, f.Quota, res); err != nil {
return nil, fmt.Errorf("error expanding Quota into quota: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["quota"] = v
}
if v, err := expandConfigMonitoring(c, f.Monitoring, res); err != nil {
return nil, fmt.Errorf("error expanding Monitoring into monitoring: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["monitoring"] = v
}
if v, err := expandConfigMultiTenant(c, f.MultiTenant, res); err != nil {
return nil, fmt.Errorf("error expanding MultiTenant into multiTenant: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["multiTenant"] = v
}
if v := f.AuthorizedDomains; v != nil {
req["authorizedDomains"] = v
}
if v, err := expandConfigClient(c, f.Client, res); err != nil {
return nil, fmt.Errorf("error expanding Client into client: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["client"] = v
}
if v, err := expandConfigMfa(c, f.Mfa, res); err != nil {
return nil, fmt.Errorf("error expanding Mfa into mfa: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["mfa"] = v
}
if v, err := expandConfigBlockingFunctions(c, f.BlockingFunctions, res); err != nil {
return nil, fmt.Errorf("error expanding BlockingFunctions into blockingFunctions: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
req["blockingFunctions"] = v
}
return req, nil
}
// marshalUpdateConfigUpdateProjectConfigRequest converts the update into
// the final JSON request body.
func marshalUpdateConfigUpdateProjectConfigRequest(c *Client, m map[string]interface{}) ([]byte, error) {
return json.Marshal(m)
}
type updateConfigUpdateProjectConfigOperation struct {
// If the update operation has the REQUIRES_APPLY_OPTIONS trait, this will be populated.
// Usually it will be nil - this is to prevent us from accidentally depending on apply
// options, which should usually be unnecessary.
ApplyOptions []dcl.ApplyOption
FieldDiffs []*dcl.FieldDiff
}
// do creates a request and sends it to the appropriate URL. In most operations,
// do will transcribe a subset of the resource into a request object and send a
// PUT request to a single URL.
func (op *updateConfigUpdateProjectConfigOperation) do(ctx context.Context, r *Config, c *Client) error {
_, err := c.GetConfig(ctx, r)
if err != nil {
return err
}
u, err := r.updateURL(c.Config.BasePath, "UpdateProjectConfig")
if err != nil {
return err
}
mask := dcl.UpdateMask(op.FieldDiffs)
u, err = dcl.AddQueryParams(u, map[string]string{"updateMask": mask})
if err != nil {
return err
}
req, err := newUpdateConfigUpdateProjectConfigRequest(ctx, r, c)
if err != nil {
return err
}
c.Config.Logger.InfoWithContextf(ctx, "Created update: %#v", req)
body, err := marshalUpdateConfigUpdateProjectConfigRequest(c, req)
if err != nil {
return err
}
_, err = dcl.SendRequest(ctx, c.Config, "PATCH", u, bytes.NewBuffer(body), c.Config.RetryProvider)
if err != nil {
return err
}
return nil
}
// Create operations are similar to Update operations, although they do not have
// specific request objects. The Create request object is the json encoding of
// the resource, which is modified by res.marshal to form the base request body.
type createConfigOperation struct {
response map[string]interface{}
}
func (op *createConfigOperation) FirstResponse() (map[string]interface{}, bool) {
return op.response, len(op.response) > 0
}
func (c *Client) getConfigRaw(ctx context.Context, r *Config) ([]byte, error) {
u, err := r.getURL(c.Config.BasePath)
if err != nil {
return nil, err
}
resp, err := dcl.SendRequest(ctx, c.Config, "GET", u, &bytes.Buffer{}, c.Config.RetryProvider)
if err != nil {
return nil, err
}
defer resp.Response.Body.Close()
b, err := ioutil.ReadAll(resp.Response.Body)
if err != nil {
return nil, err
}
return b, nil
}
func (c *Client) configDiffsForRawDesired(ctx context.Context, rawDesired *Config, opts ...dcl.ApplyOption) (initial, desired *Config, diffs []*dcl.FieldDiff, err error) {
c.Config.Logger.InfoWithContext(ctx, "Fetching initial state...")
// First, let us see if the user provided a state hint. If they did, we will start fetching based on that.
var fetchState *Config
if sh := dcl.FetchStateHint(opts); sh != nil {
if r, ok := sh.(*Config); !ok {
c.Config.Logger.WarningWithContextf(ctx, "Initial state hint was of the wrong type; expected Config, got %T", sh)
} else {
fetchState = r
}
}
if fetchState == nil {
fetchState = rawDesired
}
// 1.2: Retrieval of raw initial state from API
rawInitial, err := c.GetConfig(ctx, fetchState)
if rawInitial == nil {
if !dcl.IsNotFound(err) {
c.Config.Logger.WarningWithContextf(ctx, "Failed to retrieve whether a Config resource already exists: %s", err)
return nil, nil, nil, fmt.Errorf("failed to retrieve Config resource: %v", err)
}
c.Config.Logger.InfoWithContext(ctx, "Found that Config resource did not exist.")
// Perform canonicalization to pick up defaults.
desired, err = canonicalizeConfigDesiredState(rawDesired, rawInitial)
return nil, desired, nil, err
}
c.Config.Logger.InfoWithContextf(ctx, "Found initial state for Config: %v", rawInitial)
c.Config.Logger.InfoWithContextf(ctx, "Initial desired state for Config: %v", rawDesired)
// The Get call applies postReadExtract and so the result may contain fields that are not part of API version.
if err := extractConfigFields(rawInitial); err != nil {
return nil, nil, nil, err
}
// 1.3: Canonicalize raw initial state into initial state.
initial, err = canonicalizeConfigInitialState(rawInitial, rawDesired)
if err != nil {
return nil, nil, nil, err
}
c.Config.Logger.InfoWithContextf(ctx, "Canonicalized initial state for Config: %v", initial)
// 1.4: Canonicalize raw desired state into desired state.
desired, err = canonicalizeConfigDesiredState(rawDesired, rawInitial, opts...)
if err != nil {
return nil, nil, nil, err
}
c.Config.Logger.InfoWithContextf(ctx, "Canonicalized desired state for Config: %v", desired)
// 2.1: Comparison of initial and desired state.
diffs, err = diffConfig(c, desired, initial, opts...)
return initial, desired, diffs, err
}
func canonicalizeConfigInitialState(rawInitial, rawDesired *Config) (*Config, error) {
// TODO(magic-modules-eng): write canonicalizer once relevant traits are added.
return rawInitial, nil
}
/*
* Canonicalizers
*
* These are responsible for converting either a user-specified config or a
* GCP API response to a standard format that can be used for difference checking.
* */
func canonicalizeConfigDesiredState(rawDesired, rawInitial *Config, opts ...dcl.ApplyOption) (*Config, error) {
if rawInitial == nil {
// Since the initial state is empty, the desired state is all we have.
// We canonicalize the remaining nested objects with nil to pick up defaults.
rawDesired.SignIn = canonicalizeConfigSignIn(rawDesired.SignIn, nil, opts...)
rawDesired.Notification = canonicalizeConfigNotification(rawDesired.Notification, nil, opts...)
rawDesired.Quota = canonicalizeConfigQuota(rawDesired.Quota, nil, opts...)
rawDesired.Monitoring = canonicalizeConfigMonitoring(rawDesired.Monitoring, nil, opts...)
rawDesired.MultiTenant = canonicalizeConfigMultiTenant(rawDesired.MultiTenant, nil, opts...)
rawDesired.Client = canonicalizeConfigClient(rawDesired.Client, nil, opts...)
rawDesired.Mfa = canonicalizeConfigMfa(rawDesired.Mfa, nil, opts...)
rawDesired.BlockingFunctions = canonicalizeConfigBlockingFunctions(rawDesired.BlockingFunctions, nil, opts...)
return rawDesired, nil
}
canonicalDesired := &Config{}
canonicalDesired.SignIn = canonicalizeConfigSignIn(rawDesired.SignIn, rawInitial.SignIn, opts...)
canonicalDesired.Notification = canonicalizeConfigNotification(rawDesired.Notification, rawInitial.Notification, opts...)
canonicalDesired.Quota = canonicalizeConfigQuota(rawDesired.Quota, rawInitial.Quota, opts...)
canonicalDesired.Monitoring = canonicalizeConfigMonitoring(rawDesired.Monitoring, rawInitial.Monitoring, opts...)
canonicalDesired.MultiTenant = canonicalizeConfigMultiTenant(rawDesired.MultiTenant, rawInitial.MultiTenant, opts...)
if dcl.StringArrayCanonicalize(rawDesired.AuthorizedDomains, rawInitial.AuthorizedDomains) {
canonicalDesired.AuthorizedDomains = rawInitial.AuthorizedDomains
} else {
canonicalDesired.AuthorizedDomains = rawDesired.AuthorizedDomains
}
canonicalDesired.Client = canonicalizeConfigClient(rawDesired.Client, rawInitial.Client, opts...)
canonicalDesired.Mfa = canonicalizeConfigMfa(rawDesired.Mfa, rawInitial.Mfa, opts...)
canonicalDesired.BlockingFunctions = canonicalizeConfigBlockingFunctions(rawDesired.BlockingFunctions, rawInitial.BlockingFunctions, opts...)
if dcl.NameToSelfLink(rawDesired.Project, rawInitial.Project) {
canonicalDesired.Project = rawInitial.Project
} else {
canonicalDesired.Project = rawDesired.Project
}
return canonicalDesired, nil
}
func canonicalizeConfigNewState(c *Client, rawNew, rawDesired *Config) (*Config, error) {
if dcl.IsEmptyValueIndirect(rawNew.SignIn) && dcl.IsEmptyValueIndirect(rawDesired.SignIn) {
rawNew.SignIn = rawDesired.SignIn
} else {
rawNew.SignIn = canonicalizeNewConfigSignIn(c, rawDesired.SignIn, rawNew.SignIn)
}
if dcl.IsEmptyValueIndirect(rawNew.Notification) && dcl.IsEmptyValueIndirect(rawDesired.Notification) {
rawNew.Notification = rawDesired.Notification
} else {
rawNew.Notification = canonicalizeNewConfigNotification(c, rawDesired.Notification, rawNew.Notification)
}
if dcl.IsEmptyValueIndirect(rawNew.Quota) && dcl.IsEmptyValueIndirect(rawDesired.Quota) {
rawNew.Quota = rawDesired.Quota
} else {
rawNew.Quota = canonicalizeNewConfigQuota(c, rawDesired.Quota, rawNew.Quota)
}
if dcl.IsEmptyValueIndirect(rawNew.Monitoring) && dcl.IsEmptyValueIndirect(rawDesired.Monitoring) {
rawNew.Monitoring = rawDesired.Monitoring
} else {
rawNew.Monitoring = canonicalizeNewConfigMonitoring(c, rawDesired.Monitoring, rawNew.Monitoring)
}
if dcl.IsEmptyValueIndirect(rawNew.MultiTenant) && dcl.IsEmptyValueIndirect(rawDesired.MultiTenant) {
rawNew.MultiTenant = rawDesired.MultiTenant
} else {
rawNew.MultiTenant = canonicalizeNewConfigMultiTenant(c, rawDesired.MultiTenant, rawNew.MultiTenant)
}
if dcl.IsEmptyValueIndirect(rawNew.AuthorizedDomains) && dcl.IsEmptyValueIndirect(rawDesired.AuthorizedDomains) {
rawNew.AuthorizedDomains = rawDesired.AuthorizedDomains
} else {
if dcl.StringArrayCanonicalize(rawDesired.AuthorizedDomains, rawNew.AuthorizedDomains) {
rawNew.AuthorizedDomains = rawDesired.AuthorizedDomains
}
}
if dcl.IsEmptyValueIndirect(rawNew.Subtype) && dcl.IsEmptyValueIndirect(rawDesired.Subtype) {
rawNew.Subtype = rawDesired.Subtype
} else {
}
if dcl.IsEmptyValueIndirect(rawNew.Client) && dcl.IsEmptyValueIndirect(rawDesired.Client) {
rawNew.Client = rawDesired.Client
} else {
rawNew.Client = canonicalizeNewConfigClient(c, rawDesired.Client, rawNew.Client)
}
if dcl.IsEmptyValueIndirect(rawNew.Mfa) && dcl.IsEmptyValueIndirect(rawDesired.Mfa) {
rawNew.Mfa = rawDesired.Mfa
} else {
rawNew.Mfa = canonicalizeNewConfigMfa(c, rawDesired.Mfa, rawNew.Mfa)
}
if dcl.IsEmptyValueIndirect(rawNew.BlockingFunctions) && dcl.IsEmptyValueIndirect(rawDesired.BlockingFunctions) {
rawNew.BlockingFunctions = rawDesired.BlockingFunctions
} else {
rawNew.BlockingFunctions = canonicalizeNewConfigBlockingFunctions(c, rawDesired.BlockingFunctions, rawNew.BlockingFunctions)
}
rawNew.Project = rawDesired.Project
return rawNew, nil
}
func canonicalizeConfigSignIn(des, initial *ConfigSignIn, opts ...dcl.ApplyOption) *ConfigSignIn {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignIn{}
cDes.Email = canonicalizeConfigSignInEmail(des.Email, initial.Email, opts...)
cDes.PhoneNumber = canonicalizeConfigSignInPhoneNumber(des.PhoneNumber, initial.PhoneNumber, opts...)
cDes.Anonymous = canonicalizeConfigSignInAnonymous(des.Anonymous, initial.Anonymous, opts...)
if dcl.BoolCanonicalize(des.AllowDuplicateEmails, initial.AllowDuplicateEmails) || dcl.IsZeroValue(des.AllowDuplicateEmails) {
cDes.AllowDuplicateEmails = initial.AllowDuplicateEmails
} else {
cDes.AllowDuplicateEmails = des.AllowDuplicateEmails
}
return cDes
}
func canonicalizeConfigSignInSlice(des, initial []ConfigSignIn, opts ...dcl.ApplyOption) []ConfigSignIn {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignIn, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignIn(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignIn, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignIn(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignIn(c *Client, des, nw *ConfigSignIn) *ConfigSignIn {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignIn while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
nw.Email = canonicalizeNewConfigSignInEmail(c, des.Email, nw.Email)
nw.PhoneNumber = canonicalizeNewConfigSignInPhoneNumber(c, des.PhoneNumber, nw.PhoneNumber)
nw.Anonymous = canonicalizeNewConfigSignInAnonymous(c, des.Anonymous, nw.Anonymous)
if dcl.BoolCanonicalize(des.AllowDuplicateEmails, nw.AllowDuplicateEmails) {
nw.AllowDuplicateEmails = des.AllowDuplicateEmails
}
nw.HashConfig = canonicalizeNewConfigSignInHashConfig(c, des.HashConfig, nw.HashConfig)
return nw
}
func canonicalizeNewConfigSignInSet(c *Client, des, nw []ConfigSignIn) []ConfigSignIn {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignIn
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignIn(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInSlice(c *Client, des, nw []ConfigSignIn) []ConfigSignIn {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignIn
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignIn(c, &d, &n))
}
return items
}
func canonicalizeConfigSignInEmail(des, initial *ConfigSignInEmail, opts ...dcl.ApplyOption) *ConfigSignInEmail {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignInEmail{}
if dcl.BoolCanonicalize(des.Enabled, initial.Enabled) || dcl.IsZeroValue(des.Enabled) {
cDes.Enabled = initial.Enabled
} else {
cDes.Enabled = des.Enabled
}
if dcl.BoolCanonicalize(des.PasswordRequired, initial.PasswordRequired) || dcl.IsZeroValue(des.PasswordRequired) {
cDes.PasswordRequired = initial.PasswordRequired
} else {
cDes.PasswordRequired = des.PasswordRequired
}
return cDes
}
func canonicalizeConfigSignInEmailSlice(des, initial []ConfigSignInEmail, opts ...dcl.ApplyOption) []ConfigSignInEmail {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignInEmail, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignInEmail(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignInEmail, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignInEmail(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignInEmail(c *Client, des, nw *ConfigSignInEmail) *ConfigSignInEmail {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignInEmail while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.Enabled, nw.Enabled) {
nw.Enabled = des.Enabled
}
if dcl.BoolCanonicalize(des.PasswordRequired, nw.PasswordRequired) {
nw.PasswordRequired = des.PasswordRequired
}
nw.HashConfig = canonicalizeNewConfigSignInEmailHashConfig(c, des.HashConfig, nw.HashConfig)
return nw
}
func canonicalizeNewConfigSignInEmailSet(c *Client, des, nw []ConfigSignInEmail) []ConfigSignInEmail {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignInEmail
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInEmailNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignInEmail(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInEmailSlice(c *Client, des, nw []ConfigSignInEmail) []ConfigSignInEmail {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignInEmail
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignInEmail(c, &d, &n))
}
return items
}
func canonicalizeConfigSignInEmailHashConfig(des, initial *ConfigSignInEmailHashConfig, opts ...dcl.ApplyOption) *ConfigSignInEmailHashConfig {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignInEmailHashConfig{}
return cDes
}
func canonicalizeConfigSignInEmailHashConfigSlice(des, initial []ConfigSignInEmailHashConfig, opts ...dcl.ApplyOption) []ConfigSignInEmailHashConfig {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignInEmailHashConfig, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignInEmailHashConfig(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignInEmailHashConfig, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignInEmailHashConfig(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignInEmailHashConfig(c *Client, des, nw *ConfigSignInEmailHashConfig) *ConfigSignInEmailHashConfig {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignInEmailHashConfig while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SignerKey, nw.SignerKey) {
nw.SignerKey = des.SignerKey
}
if dcl.StringCanonicalize(des.SaltSeparator, nw.SaltSeparator) {
nw.SaltSeparator = des.SaltSeparator
}
return nw
}
func canonicalizeNewConfigSignInEmailHashConfigSet(c *Client, des, nw []ConfigSignInEmailHashConfig) []ConfigSignInEmailHashConfig {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignInEmailHashConfig
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInEmailHashConfigNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignInEmailHashConfig(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInEmailHashConfigSlice(c *Client, des, nw []ConfigSignInEmailHashConfig) []ConfigSignInEmailHashConfig {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignInEmailHashConfig
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignInEmailHashConfig(c, &d, &n))
}
return items
}
func canonicalizeConfigSignInPhoneNumber(des, initial *ConfigSignInPhoneNumber, opts ...dcl.ApplyOption) *ConfigSignInPhoneNumber {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignInPhoneNumber{}
if dcl.BoolCanonicalize(des.Enabled, initial.Enabled) || dcl.IsZeroValue(des.Enabled) {
cDes.Enabled = initial.Enabled
} else {
cDes.Enabled = des.Enabled
}
if canonicalizeConfigTestPhoneNumbers(des.TestPhoneNumbers, initial.TestPhoneNumbers) || dcl.IsZeroValue(des.TestPhoneNumbers) {
cDes.TestPhoneNumbers = initial.TestPhoneNumbers
} else {
cDes.TestPhoneNumbers = des.TestPhoneNumbers
}
return cDes
}
func canonicalizeConfigSignInPhoneNumberSlice(des, initial []ConfigSignInPhoneNumber, opts ...dcl.ApplyOption) []ConfigSignInPhoneNumber {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignInPhoneNumber, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignInPhoneNumber(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignInPhoneNumber, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignInPhoneNumber(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignInPhoneNumber(c *Client, des, nw *ConfigSignInPhoneNumber) *ConfigSignInPhoneNumber {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignInPhoneNumber while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.Enabled, nw.Enabled) {
nw.Enabled = des.Enabled
}
if canonicalizeConfigTestPhoneNumbers(des.TestPhoneNumbers, nw.TestPhoneNumbers) {
nw.TestPhoneNumbers = des.TestPhoneNumbers
}
return nw
}
func canonicalizeNewConfigSignInPhoneNumberSet(c *Client, des, nw []ConfigSignInPhoneNumber) []ConfigSignInPhoneNumber {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignInPhoneNumber
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInPhoneNumberNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignInPhoneNumber(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInPhoneNumberSlice(c *Client, des, nw []ConfigSignInPhoneNumber) []ConfigSignInPhoneNumber {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignInPhoneNumber
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignInPhoneNumber(c, &d, &n))
}
return items
}
func canonicalizeConfigSignInAnonymous(des, initial *ConfigSignInAnonymous, opts ...dcl.ApplyOption) *ConfigSignInAnonymous {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignInAnonymous{}
if dcl.BoolCanonicalize(des.Enabled, initial.Enabled) || dcl.IsZeroValue(des.Enabled) {
cDes.Enabled = initial.Enabled
} else {
cDes.Enabled = des.Enabled
}
return cDes
}
func canonicalizeConfigSignInAnonymousSlice(des, initial []ConfigSignInAnonymous, opts ...dcl.ApplyOption) []ConfigSignInAnonymous {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignInAnonymous, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignInAnonymous(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignInAnonymous, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignInAnonymous(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignInAnonymous(c *Client, des, nw *ConfigSignInAnonymous) *ConfigSignInAnonymous {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignInAnonymous while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.Enabled, nw.Enabled) {
nw.Enabled = des.Enabled
}
return nw
}
func canonicalizeNewConfigSignInAnonymousSet(c *Client, des, nw []ConfigSignInAnonymous) []ConfigSignInAnonymous {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignInAnonymous
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInAnonymousNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignInAnonymous(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInAnonymousSlice(c *Client, des, nw []ConfigSignInAnonymous) []ConfigSignInAnonymous {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignInAnonymous
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignInAnonymous(c, &d, &n))
}
return items
}
func canonicalizeConfigSignInHashConfig(des, initial *ConfigSignInHashConfig, opts ...dcl.ApplyOption) *ConfigSignInHashConfig {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigSignInHashConfig{}
return cDes
}
func canonicalizeConfigSignInHashConfigSlice(des, initial []ConfigSignInHashConfig, opts ...dcl.ApplyOption) []ConfigSignInHashConfig {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigSignInHashConfig, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigSignInHashConfig(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigSignInHashConfig, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigSignInHashConfig(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigSignInHashConfig(c *Client, des, nw *ConfigSignInHashConfig) *ConfigSignInHashConfig {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigSignInHashConfig while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SignerKey, nw.SignerKey) {
nw.SignerKey = des.SignerKey
}
if dcl.StringCanonicalize(des.SaltSeparator, nw.SaltSeparator) {
nw.SaltSeparator = des.SaltSeparator
}
return nw
}
func canonicalizeNewConfigSignInHashConfigSet(c *Client, des, nw []ConfigSignInHashConfig) []ConfigSignInHashConfig {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigSignInHashConfig
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigSignInHashConfigNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigSignInHashConfig(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigSignInHashConfigSlice(c *Client, des, nw []ConfigSignInHashConfig) []ConfigSignInHashConfig {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigSignInHashConfig
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigSignInHashConfig(c, &d, &n))
}
return items
}
func canonicalizeConfigNotification(des, initial *ConfigNotification, opts ...dcl.ApplyOption) *ConfigNotification {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotification{}
cDes.SendEmail = canonicalizeConfigNotificationSendEmail(des.SendEmail, initial.SendEmail, opts...)
cDes.SendSms = canonicalizeConfigNotificationSendSms(des.SendSms, initial.SendSms, opts...)
if dcl.StringCanonicalize(des.DefaultLocale, initial.DefaultLocale) || dcl.IsZeroValue(des.DefaultLocale) {
cDes.DefaultLocale = initial.DefaultLocale
} else {
cDes.DefaultLocale = des.DefaultLocale
}
return cDes
}
func canonicalizeConfigNotificationSlice(des, initial []ConfigNotification, opts ...dcl.ApplyOption) []ConfigNotification {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotification, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotification(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotification, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotification(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotification(c *Client, des, nw *ConfigNotification) *ConfigNotification {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotification while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
nw.SendEmail = canonicalizeNewConfigNotificationSendEmail(c, des.SendEmail, nw.SendEmail)
nw.SendSms = canonicalizeNewConfigNotificationSendSms(c, des.SendSms, nw.SendSms)
if dcl.StringCanonicalize(des.DefaultLocale, nw.DefaultLocale) {
nw.DefaultLocale = des.DefaultLocale
}
return nw
}
func canonicalizeNewConfigNotificationSet(c *Client, des, nw []ConfigNotification) []ConfigNotification {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotification
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotification(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSlice(c *Client, des, nw []ConfigNotification) []ConfigNotification {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotification
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotification(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmail(des, initial *ConfigNotificationSendEmail, opts ...dcl.ApplyOption) *ConfigNotificationSendEmail {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmail{}
if dcl.IsZeroValue(des.Method) || (dcl.IsEmptyValueIndirect(des.Method) && dcl.IsEmptyValueIndirect(initial.Method)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.Method = initial.Method
} else {
cDes.Method = des.Method
}
cDes.Smtp = canonicalizeConfigNotificationSendEmailSmtp(des.Smtp, initial.Smtp, opts...)
cDes.ResetPasswordTemplate = canonicalizeConfigNotificationSendEmailResetPasswordTemplate(des.ResetPasswordTemplate, initial.ResetPasswordTemplate, opts...)
cDes.VerifyEmailTemplate = canonicalizeConfigNotificationSendEmailVerifyEmailTemplate(des.VerifyEmailTemplate, initial.VerifyEmailTemplate, opts...)
cDes.ChangeEmailTemplate = canonicalizeConfigNotificationSendEmailChangeEmailTemplate(des.ChangeEmailTemplate, initial.ChangeEmailTemplate, opts...)
if dcl.StringCanonicalize(des.CallbackUri, initial.CallbackUri) || dcl.IsZeroValue(des.CallbackUri) {
cDes.CallbackUri = initial.CallbackUri
} else {
cDes.CallbackUri = des.CallbackUri
}
cDes.DnsInfo = canonicalizeConfigNotificationSendEmailDnsInfo(des.DnsInfo, initial.DnsInfo, opts...)
cDes.RevertSecondFactorAdditionTemplate = canonicalizeConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(des.RevertSecondFactorAdditionTemplate, initial.RevertSecondFactorAdditionTemplate, opts...)
return cDes
}
func canonicalizeConfigNotificationSendEmailSlice(des, initial []ConfigNotificationSendEmail, opts ...dcl.ApplyOption) []ConfigNotificationSendEmail {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmail, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmail(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmail, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmail(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmail(c *Client, des, nw *ConfigNotificationSendEmail) *ConfigNotificationSendEmail {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmail while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
nw.Smtp = canonicalizeNewConfigNotificationSendEmailSmtp(c, des.Smtp, nw.Smtp)
nw.ResetPasswordTemplate = canonicalizeNewConfigNotificationSendEmailResetPasswordTemplate(c, des.ResetPasswordTemplate, nw.ResetPasswordTemplate)
nw.VerifyEmailTemplate = canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplate(c, des.VerifyEmailTemplate, nw.VerifyEmailTemplate)
nw.ChangeEmailTemplate = canonicalizeNewConfigNotificationSendEmailChangeEmailTemplate(c, des.ChangeEmailTemplate, nw.ChangeEmailTemplate)
if dcl.StringCanonicalize(des.CallbackUri, nw.CallbackUri) {
nw.CallbackUri = des.CallbackUri
}
nw.DnsInfo = canonicalizeNewConfigNotificationSendEmailDnsInfo(c, des.DnsInfo, nw.DnsInfo)
nw.RevertSecondFactorAdditionTemplate = canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, des.RevertSecondFactorAdditionTemplate, nw.RevertSecondFactorAdditionTemplate)
return nw
}
func canonicalizeNewConfigNotificationSendEmailSet(c *Client, des, nw []ConfigNotificationSendEmail) []ConfigNotificationSendEmail {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmail
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmail(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailSlice(c *Client, des, nw []ConfigNotificationSendEmail) []ConfigNotificationSendEmail {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmail
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmail(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailSmtp(des, initial *ConfigNotificationSendEmailSmtp, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailSmtp {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailSmtp{}
if dcl.StringCanonicalize(des.SenderEmail, initial.SenderEmail) || dcl.IsZeroValue(des.SenderEmail) {
cDes.SenderEmail = initial.SenderEmail
} else {
cDes.SenderEmail = des.SenderEmail
}
if dcl.StringCanonicalize(des.Host, initial.Host) || dcl.IsZeroValue(des.Host) {
cDes.Host = initial.Host
} else {
cDes.Host = des.Host
}
if dcl.IsZeroValue(des.Port) || (dcl.IsEmptyValueIndirect(des.Port) && dcl.IsEmptyValueIndirect(initial.Port)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.Port = initial.Port
} else {
cDes.Port = des.Port
}
if dcl.StringCanonicalize(des.Username, initial.Username) || dcl.IsZeroValue(des.Username) {
cDes.Username = initial.Username
} else {
cDes.Username = des.Username
}
if dcl.StringCanonicalize(des.Password, initial.Password) || dcl.IsZeroValue(des.Password) {
cDes.Password = initial.Password
} else {
cDes.Password = des.Password
}
if dcl.IsZeroValue(des.SecurityMode) || (dcl.IsEmptyValueIndirect(des.SecurityMode) && dcl.IsEmptyValueIndirect(initial.SecurityMode)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.SecurityMode = initial.SecurityMode
} else {
cDes.SecurityMode = des.SecurityMode
}
return cDes
}
func canonicalizeConfigNotificationSendEmailSmtpSlice(des, initial []ConfigNotificationSendEmailSmtp, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailSmtp {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailSmtp, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailSmtp(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailSmtp, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailSmtp(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailSmtp(c *Client, des, nw *ConfigNotificationSendEmailSmtp) *ConfigNotificationSendEmailSmtp {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailSmtp while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SenderEmail, nw.SenderEmail) {
nw.SenderEmail = des.SenderEmail
}
if dcl.StringCanonicalize(des.Host, nw.Host) {
nw.Host = des.Host
}
if dcl.StringCanonicalize(des.Username, nw.Username) {
nw.Username = des.Username
}
nw.Password = des.Password
return nw
}
func canonicalizeNewConfigNotificationSendEmailSmtpSet(c *Client, des, nw []ConfigNotificationSendEmailSmtp) []ConfigNotificationSendEmailSmtp {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailSmtp
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailSmtpNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailSmtp(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailSmtpSlice(c *Client, des, nw []ConfigNotificationSendEmailSmtp) []ConfigNotificationSendEmailSmtp {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailSmtp
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailSmtp(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailResetPasswordTemplate(des, initial *ConfigNotificationSendEmailResetPasswordTemplate, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailResetPasswordTemplate {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailResetPasswordTemplate{}
if dcl.StringCanonicalize(des.SenderLocalPart, initial.SenderLocalPart) || dcl.IsZeroValue(des.SenderLocalPart) {
cDes.SenderLocalPart = initial.SenderLocalPart
} else {
cDes.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, initial.Subject) || dcl.IsZeroValue(des.Subject) {
cDes.Subject = initial.Subject
} else {
cDes.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, initial.SenderDisplayName) || dcl.IsZeroValue(des.SenderDisplayName) {
cDes.SenderDisplayName = initial.SenderDisplayName
} else {
cDes.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, initial.Body) || dcl.IsZeroValue(des.Body) {
cDes.Body = initial.Body
} else {
cDes.Body = des.Body
}
if dcl.IsZeroValue(des.BodyFormat) || (dcl.IsEmptyValueIndirect(des.BodyFormat) && dcl.IsEmptyValueIndirect(initial.BodyFormat)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.BodyFormat = initial.BodyFormat
} else {
cDes.BodyFormat = des.BodyFormat
}
if dcl.StringCanonicalize(des.ReplyTo, initial.ReplyTo) || dcl.IsZeroValue(des.ReplyTo) {
cDes.ReplyTo = initial.ReplyTo
} else {
cDes.ReplyTo = des.ReplyTo
}
return cDes
}
func canonicalizeConfigNotificationSendEmailResetPasswordTemplateSlice(des, initial []ConfigNotificationSendEmailResetPasswordTemplate, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailResetPasswordTemplate {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailResetPasswordTemplate, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailResetPasswordTemplate(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailResetPasswordTemplate, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailResetPasswordTemplate(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailResetPasswordTemplate(c *Client, des, nw *ConfigNotificationSendEmailResetPasswordTemplate) *ConfigNotificationSendEmailResetPasswordTemplate {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailResetPasswordTemplate while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SenderLocalPart, nw.SenderLocalPart) {
nw.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, nw.Subject) {
nw.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, nw.SenderDisplayName) {
nw.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, nw.Body) {
nw.Body = des.Body
}
if dcl.StringCanonicalize(des.ReplyTo, nw.ReplyTo) {
nw.ReplyTo = des.ReplyTo
}
if dcl.BoolCanonicalize(des.Customized, nw.Customized) {
nw.Customized = des.Customized
}
return nw
}
func canonicalizeNewConfigNotificationSendEmailResetPasswordTemplateSet(c *Client, des, nw []ConfigNotificationSendEmailResetPasswordTemplate) []ConfigNotificationSendEmailResetPasswordTemplate {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailResetPasswordTemplate
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailResetPasswordTemplateNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailResetPasswordTemplate(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailResetPasswordTemplateSlice(c *Client, des, nw []ConfigNotificationSendEmailResetPasswordTemplate) []ConfigNotificationSendEmailResetPasswordTemplate {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailResetPasswordTemplate
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailResetPasswordTemplate(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailVerifyEmailTemplate(des, initial *ConfigNotificationSendEmailVerifyEmailTemplate, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailVerifyEmailTemplate {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailVerifyEmailTemplate{}
if dcl.StringCanonicalize(des.SenderLocalPart, initial.SenderLocalPart) || dcl.IsZeroValue(des.SenderLocalPart) {
cDes.SenderLocalPart = initial.SenderLocalPart
} else {
cDes.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, initial.Subject) || dcl.IsZeroValue(des.Subject) {
cDes.Subject = initial.Subject
} else {
cDes.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, initial.SenderDisplayName) || dcl.IsZeroValue(des.SenderDisplayName) {
cDes.SenderDisplayName = initial.SenderDisplayName
} else {
cDes.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, initial.Body) || dcl.IsZeroValue(des.Body) {
cDes.Body = initial.Body
} else {
cDes.Body = des.Body
}
if dcl.IsZeroValue(des.BodyFormat) || (dcl.IsEmptyValueIndirect(des.BodyFormat) && dcl.IsEmptyValueIndirect(initial.BodyFormat)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.BodyFormat = initial.BodyFormat
} else {
cDes.BodyFormat = des.BodyFormat
}
if dcl.StringCanonicalize(des.ReplyTo, initial.ReplyTo) || dcl.IsZeroValue(des.ReplyTo) {
cDes.ReplyTo = initial.ReplyTo
} else {
cDes.ReplyTo = des.ReplyTo
}
return cDes
}
func canonicalizeConfigNotificationSendEmailVerifyEmailTemplateSlice(des, initial []ConfigNotificationSendEmailVerifyEmailTemplate, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailVerifyEmailTemplate {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailVerifyEmailTemplate, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailVerifyEmailTemplate(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailVerifyEmailTemplate, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailVerifyEmailTemplate(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplate(c *Client, des, nw *ConfigNotificationSendEmailVerifyEmailTemplate) *ConfigNotificationSendEmailVerifyEmailTemplate {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailVerifyEmailTemplate while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SenderLocalPart, nw.SenderLocalPart) {
nw.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, nw.Subject) {
nw.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, nw.SenderDisplayName) {
nw.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, nw.Body) {
nw.Body = des.Body
}
if dcl.StringCanonicalize(des.ReplyTo, nw.ReplyTo) {
nw.ReplyTo = des.ReplyTo
}
if dcl.BoolCanonicalize(des.Customized, nw.Customized) {
nw.Customized = des.Customized
}
return nw
}
func canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplateSet(c *Client, des, nw []ConfigNotificationSendEmailVerifyEmailTemplate) []ConfigNotificationSendEmailVerifyEmailTemplate {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailVerifyEmailTemplate
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailVerifyEmailTemplateNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplate(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplateSlice(c *Client, des, nw []ConfigNotificationSendEmailVerifyEmailTemplate) []ConfigNotificationSendEmailVerifyEmailTemplate {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailVerifyEmailTemplate
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailVerifyEmailTemplate(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailChangeEmailTemplate(des, initial *ConfigNotificationSendEmailChangeEmailTemplate, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailChangeEmailTemplate {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailChangeEmailTemplate{}
if dcl.StringCanonicalize(des.SenderLocalPart, initial.SenderLocalPart) || dcl.IsZeroValue(des.SenderLocalPart) {
cDes.SenderLocalPart = initial.SenderLocalPart
} else {
cDes.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, initial.Subject) || dcl.IsZeroValue(des.Subject) {
cDes.Subject = initial.Subject
} else {
cDes.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, initial.SenderDisplayName) || dcl.IsZeroValue(des.SenderDisplayName) {
cDes.SenderDisplayName = initial.SenderDisplayName
} else {
cDes.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, initial.Body) || dcl.IsZeroValue(des.Body) {
cDes.Body = initial.Body
} else {
cDes.Body = des.Body
}
if dcl.IsZeroValue(des.BodyFormat) || (dcl.IsEmptyValueIndirect(des.BodyFormat) && dcl.IsEmptyValueIndirect(initial.BodyFormat)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.BodyFormat = initial.BodyFormat
} else {
cDes.BodyFormat = des.BodyFormat
}
if dcl.StringCanonicalize(des.ReplyTo, initial.ReplyTo) || dcl.IsZeroValue(des.ReplyTo) {
cDes.ReplyTo = initial.ReplyTo
} else {
cDes.ReplyTo = des.ReplyTo
}
return cDes
}
func canonicalizeConfigNotificationSendEmailChangeEmailTemplateSlice(des, initial []ConfigNotificationSendEmailChangeEmailTemplate, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailChangeEmailTemplate {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailChangeEmailTemplate, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailChangeEmailTemplate(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailChangeEmailTemplate, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailChangeEmailTemplate(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailChangeEmailTemplate(c *Client, des, nw *ConfigNotificationSendEmailChangeEmailTemplate) *ConfigNotificationSendEmailChangeEmailTemplate {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailChangeEmailTemplate while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SenderLocalPart, nw.SenderLocalPart) {
nw.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, nw.Subject) {
nw.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, nw.SenderDisplayName) {
nw.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, nw.Body) {
nw.Body = des.Body
}
if dcl.StringCanonicalize(des.ReplyTo, nw.ReplyTo) {
nw.ReplyTo = des.ReplyTo
}
if dcl.BoolCanonicalize(des.Customized, nw.Customized) {
nw.Customized = des.Customized
}
return nw
}
func canonicalizeNewConfigNotificationSendEmailChangeEmailTemplateSet(c *Client, des, nw []ConfigNotificationSendEmailChangeEmailTemplate) []ConfigNotificationSendEmailChangeEmailTemplate {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailChangeEmailTemplate
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailChangeEmailTemplateNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailChangeEmailTemplate(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailChangeEmailTemplateSlice(c *Client, des, nw []ConfigNotificationSendEmailChangeEmailTemplate) []ConfigNotificationSendEmailChangeEmailTemplate {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailChangeEmailTemplate
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailChangeEmailTemplate(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailDnsInfo(des, initial *ConfigNotificationSendEmailDnsInfo, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailDnsInfo {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailDnsInfo{}
if dcl.BoolCanonicalize(des.UseCustomDomain, initial.UseCustomDomain) || dcl.IsZeroValue(des.UseCustomDomain) {
cDes.UseCustomDomain = initial.UseCustomDomain
} else {
cDes.UseCustomDomain = des.UseCustomDomain
}
return cDes
}
func canonicalizeConfigNotificationSendEmailDnsInfoSlice(des, initial []ConfigNotificationSendEmailDnsInfo, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailDnsInfo {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailDnsInfo, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailDnsInfo(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailDnsInfo, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailDnsInfo(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailDnsInfo(c *Client, des, nw *ConfigNotificationSendEmailDnsInfo) *ConfigNotificationSendEmailDnsInfo {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailDnsInfo while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.CustomDomain, nw.CustomDomain) {
nw.CustomDomain = des.CustomDomain
}
if dcl.BoolCanonicalize(des.UseCustomDomain, nw.UseCustomDomain) {
nw.UseCustomDomain = des.UseCustomDomain
}
if dcl.StringCanonicalize(des.PendingCustomDomain, nw.PendingCustomDomain) {
nw.PendingCustomDomain = des.PendingCustomDomain
}
return nw
}
func canonicalizeNewConfigNotificationSendEmailDnsInfoSet(c *Client, des, nw []ConfigNotificationSendEmailDnsInfo) []ConfigNotificationSendEmailDnsInfo {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailDnsInfo
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailDnsInfoNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailDnsInfo(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailDnsInfoSlice(c *Client, des, nw []ConfigNotificationSendEmailDnsInfo) []ConfigNotificationSendEmailDnsInfo {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailDnsInfo
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailDnsInfo(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(des, initial *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, opts ...dcl.ApplyOption) *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
if dcl.StringCanonicalize(des.SenderLocalPart, initial.SenderLocalPart) || dcl.IsZeroValue(des.SenderLocalPart) {
cDes.SenderLocalPart = initial.SenderLocalPart
} else {
cDes.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, initial.Subject) || dcl.IsZeroValue(des.Subject) {
cDes.Subject = initial.Subject
} else {
cDes.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, initial.SenderDisplayName) || dcl.IsZeroValue(des.SenderDisplayName) {
cDes.SenderDisplayName = initial.SenderDisplayName
} else {
cDes.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, initial.Body) || dcl.IsZeroValue(des.Body) {
cDes.Body = initial.Body
} else {
cDes.Body = des.Body
}
if dcl.IsZeroValue(des.BodyFormat) || (dcl.IsEmptyValueIndirect(des.BodyFormat) && dcl.IsEmptyValueIndirect(initial.BodyFormat)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.BodyFormat = initial.BodyFormat
} else {
cDes.BodyFormat = des.BodyFormat
}
if dcl.StringCanonicalize(des.ReplyTo, initial.ReplyTo) || dcl.IsZeroValue(des.ReplyTo) {
cDes.ReplyTo = initial.ReplyTo
} else {
cDes.ReplyTo = des.ReplyTo
}
return cDes
}
func canonicalizeConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice(des, initial []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, opts ...dcl.ApplyOption) []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c *Client, des, nw *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.SenderLocalPart, nw.SenderLocalPart) {
nw.SenderLocalPart = des.SenderLocalPart
}
if dcl.StringCanonicalize(des.Subject, nw.Subject) {
nw.Subject = des.Subject
}
if dcl.StringCanonicalize(des.SenderDisplayName, nw.SenderDisplayName) {
nw.SenderDisplayName = des.SenderDisplayName
}
if dcl.StringCanonicalize(des.Body, nw.Body) {
nw.Body = des.Body
}
if dcl.StringCanonicalize(des.ReplyTo, nw.ReplyTo) {
nw.ReplyTo = des.ReplyTo
}
if dcl.BoolCanonicalize(des.Customized, nw.Customized) {
nw.Customized = des.Customized
}
return nw
}
func canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSet(c *Client, des, nw []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendEmailRevertSecondFactorAdditionTemplateNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice(c *Client, des, nw []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendSms(des, initial *ConfigNotificationSendSms, opts ...dcl.ApplyOption) *ConfigNotificationSendSms {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendSms{}
if dcl.BoolCanonicalize(des.UseDeviceLocale, initial.UseDeviceLocale) || dcl.IsZeroValue(des.UseDeviceLocale) {
cDes.UseDeviceLocale = initial.UseDeviceLocale
} else {
cDes.UseDeviceLocale = des.UseDeviceLocale
}
return cDes
}
func canonicalizeConfigNotificationSendSmsSlice(des, initial []ConfigNotificationSendSms, opts ...dcl.ApplyOption) []ConfigNotificationSendSms {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendSms, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendSms(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendSms, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendSms(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendSms(c *Client, des, nw *ConfigNotificationSendSms) *ConfigNotificationSendSms {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendSms while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.UseDeviceLocale, nw.UseDeviceLocale) {
nw.UseDeviceLocale = des.UseDeviceLocale
}
nw.SmsTemplate = canonicalizeNewConfigNotificationSendSmsSmsTemplate(c, des.SmsTemplate, nw.SmsTemplate)
return nw
}
func canonicalizeNewConfigNotificationSendSmsSet(c *Client, des, nw []ConfigNotificationSendSms) []ConfigNotificationSendSms {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendSms
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendSmsNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendSms(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendSmsSlice(c *Client, des, nw []ConfigNotificationSendSms) []ConfigNotificationSendSms {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendSms
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendSms(c, &d, &n))
}
return items
}
func canonicalizeConfigNotificationSendSmsSmsTemplate(des, initial *ConfigNotificationSendSmsSmsTemplate, opts ...dcl.ApplyOption) *ConfigNotificationSendSmsSmsTemplate {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigNotificationSendSmsSmsTemplate{}
return cDes
}
func canonicalizeConfigNotificationSendSmsSmsTemplateSlice(des, initial []ConfigNotificationSendSmsSmsTemplate, opts ...dcl.ApplyOption) []ConfigNotificationSendSmsSmsTemplate {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigNotificationSendSmsSmsTemplate, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigNotificationSendSmsSmsTemplate(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigNotificationSendSmsSmsTemplate, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigNotificationSendSmsSmsTemplate(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigNotificationSendSmsSmsTemplate(c *Client, des, nw *ConfigNotificationSendSmsSmsTemplate) *ConfigNotificationSendSmsSmsTemplate {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigNotificationSendSmsSmsTemplate while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.Content, nw.Content) {
nw.Content = des.Content
}
return nw
}
func canonicalizeNewConfigNotificationSendSmsSmsTemplateSet(c *Client, des, nw []ConfigNotificationSendSmsSmsTemplate) []ConfigNotificationSendSmsSmsTemplate {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigNotificationSendSmsSmsTemplate
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigNotificationSendSmsSmsTemplateNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigNotificationSendSmsSmsTemplate(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigNotificationSendSmsSmsTemplateSlice(c *Client, des, nw []ConfigNotificationSendSmsSmsTemplate) []ConfigNotificationSendSmsSmsTemplate {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigNotificationSendSmsSmsTemplate
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigNotificationSendSmsSmsTemplate(c, &d, &n))
}
return items
}
func canonicalizeConfigQuota(des, initial *ConfigQuota, opts ...dcl.ApplyOption) *ConfigQuota {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigQuota{}
cDes.SignUpQuotaConfig = canonicalizeConfigQuotaSignUpQuotaConfig(des.SignUpQuotaConfig, initial.SignUpQuotaConfig, opts...)
return cDes
}
func canonicalizeConfigQuotaSlice(des, initial []ConfigQuota, opts ...dcl.ApplyOption) []ConfigQuota {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigQuota, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigQuota(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigQuota, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigQuota(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigQuota(c *Client, des, nw *ConfigQuota) *ConfigQuota {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigQuota while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
nw.SignUpQuotaConfig = canonicalizeNewConfigQuotaSignUpQuotaConfig(c, des.SignUpQuotaConfig, nw.SignUpQuotaConfig)
return nw
}
func canonicalizeNewConfigQuotaSet(c *Client, des, nw []ConfigQuota) []ConfigQuota {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigQuota
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigQuotaNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigQuota(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigQuotaSlice(c *Client, des, nw []ConfigQuota) []ConfigQuota {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigQuota
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigQuota(c, &d, &n))
}
return items
}
func canonicalizeConfigQuotaSignUpQuotaConfig(des, initial *ConfigQuotaSignUpQuotaConfig, opts ...dcl.ApplyOption) *ConfigQuotaSignUpQuotaConfig {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigQuotaSignUpQuotaConfig{}
if dcl.IsZeroValue(des.Quota) || (dcl.IsEmptyValueIndirect(des.Quota) && dcl.IsEmptyValueIndirect(initial.Quota)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.Quota = initial.Quota
} else {
cDes.Quota = des.Quota
}
if dcl.IsZeroValue(des.StartTime) || (dcl.IsEmptyValueIndirect(des.StartTime) && dcl.IsEmptyValueIndirect(initial.StartTime)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.StartTime = initial.StartTime
} else {
cDes.StartTime = des.StartTime
}
if dcl.StringCanonicalize(des.QuotaDuration, initial.QuotaDuration) || dcl.IsZeroValue(des.QuotaDuration) {
cDes.QuotaDuration = initial.QuotaDuration
} else {
cDes.QuotaDuration = des.QuotaDuration
}
return cDes
}
func canonicalizeConfigQuotaSignUpQuotaConfigSlice(des, initial []ConfigQuotaSignUpQuotaConfig, opts ...dcl.ApplyOption) []ConfigQuotaSignUpQuotaConfig {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigQuotaSignUpQuotaConfig, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigQuotaSignUpQuotaConfig(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigQuotaSignUpQuotaConfig, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigQuotaSignUpQuotaConfig(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigQuotaSignUpQuotaConfig(c *Client, des, nw *ConfigQuotaSignUpQuotaConfig) *ConfigQuotaSignUpQuotaConfig {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigQuotaSignUpQuotaConfig while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.QuotaDuration, nw.QuotaDuration) {
nw.QuotaDuration = des.QuotaDuration
}
return nw
}
func canonicalizeNewConfigQuotaSignUpQuotaConfigSet(c *Client, des, nw []ConfigQuotaSignUpQuotaConfig) []ConfigQuotaSignUpQuotaConfig {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigQuotaSignUpQuotaConfig
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigQuotaSignUpQuotaConfigNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigQuotaSignUpQuotaConfig(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigQuotaSignUpQuotaConfigSlice(c *Client, des, nw []ConfigQuotaSignUpQuotaConfig) []ConfigQuotaSignUpQuotaConfig {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigQuotaSignUpQuotaConfig
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigQuotaSignUpQuotaConfig(c, &d, &n))
}
return items
}
func canonicalizeConfigMonitoring(des, initial *ConfigMonitoring, opts ...dcl.ApplyOption) *ConfigMonitoring {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigMonitoring{}
cDes.RequestLogging = canonicalizeConfigMonitoringRequestLogging(des.RequestLogging, initial.RequestLogging, opts...)
return cDes
}
func canonicalizeConfigMonitoringSlice(des, initial []ConfigMonitoring, opts ...dcl.ApplyOption) []ConfigMonitoring {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigMonitoring, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigMonitoring(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigMonitoring, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigMonitoring(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigMonitoring(c *Client, des, nw *ConfigMonitoring) *ConfigMonitoring {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigMonitoring while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
nw.RequestLogging = canonicalizeNewConfigMonitoringRequestLogging(c, des.RequestLogging, nw.RequestLogging)
return nw
}
func canonicalizeNewConfigMonitoringSet(c *Client, des, nw []ConfigMonitoring) []ConfigMonitoring {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigMonitoring
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigMonitoringNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigMonitoring(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigMonitoringSlice(c *Client, des, nw []ConfigMonitoring) []ConfigMonitoring {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigMonitoring
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigMonitoring(c, &d, &n))
}
return items
}
func canonicalizeConfigMonitoringRequestLogging(des, initial *ConfigMonitoringRequestLogging, opts ...dcl.ApplyOption) *ConfigMonitoringRequestLogging {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigMonitoringRequestLogging{}
if dcl.BoolCanonicalize(des.Enabled, initial.Enabled) || dcl.IsZeroValue(des.Enabled) {
cDes.Enabled = initial.Enabled
} else {
cDes.Enabled = des.Enabled
}
return cDes
}
func canonicalizeConfigMonitoringRequestLoggingSlice(des, initial []ConfigMonitoringRequestLogging, opts ...dcl.ApplyOption) []ConfigMonitoringRequestLogging {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigMonitoringRequestLogging, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigMonitoringRequestLogging(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigMonitoringRequestLogging, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigMonitoringRequestLogging(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigMonitoringRequestLogging(c *Client, des, nw *ConfigMonitoringRequestLogging) *ConfigMonitoringRequestLogging {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigMonitoringRequestLogging while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.Enabled, nw.Enabled) {
nw.Enabled = des.Enabled
}
return nw
}
func canonicalizeNewConfigMonitoringRequestLoggingSet(c *Client, des, nw []ConfigMonitoringRequestLogging) []ConfigMonitoringRequestLogging {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigMonitoringRequestLogging
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigMonitoringRequestLoggingNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigMonitoringRequestLogging(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigMonitoringRequestLoggingSlice(c *Client, des, nw []ConfigMonitoringRequestLogging) []ConfigMonitoringRequestLogging {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigMonitoringRequestLogging
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigMonitoringRequestLogging(c, &d, &n))
}
return items
}
func canonicalizeConfigMultiTenant(des, initial *ConfigMultiTenant, opts ...dcl.ApplyOption) *ConfigMultiTenant {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigMultiTenant{}
if dcl.BoolCanonicalize(des.AllowTenants, initial.AllowTenants) || dcl.IsZeroValue(des.AllowTenants) {
cDes.AllowTenants = initial.AllowTenants
} else {
cDes.AllowTenants = des.AllowTenants
}
if dcl.IsZeroValue(des.DefaultTenantLocation) || (dcl.IsEmptyValueIndirect(des.DefaultTenantLocation) && dcl.IsEmptyValueIndirect(initial.DefaultTenantLocation)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.DefaultTenantLocation = initial.DefaultTenantLocation
} else {
cDes.DefaultTenantLocation = des.DefaultTenantLocation
}
return cDes
}
func canonicalizeConfigMultiTenantSlice(des, initial []ConfigMultiTenant, opts ...dcl.ApplyOption) []ConfigMultiTenant {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigMultiTenant, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigMultiTenant(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigMultiTenant, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigMultiTenant(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigMultiTenant(c *Client, des, nw *ConfigMultiTenant) *ConfigMultiTenant {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigMultiTenant while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.AllowTenants, nw.AllowTenants) {
nw.AllowTenants = des.AllowTenants
}
return nw
}
func canonicalizeNewConfigMultiTenantSet(c *Client, des, nw []ConfigMultiTenant) []ConfigMultiTenant {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigMultiTenant
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigMultiTenantNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigMultiTenant(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigMultiTenantSlice(c *Client, des, nw []ConfigMultiTenant) []ConfigMultiTenant {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigMultiTenant
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigMultiTenant(c, &d, &n))
}
return items
}
func canonicalizeConfigClient(des, initial *ConfigClient, opts ...dcl.ApplyOption) *ConfigClient {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigClient{}
cDes.Permissions = canonicalizeConfigClientPermissions(des.Permissions, initial.Permissions, opts...)
return cDes
}
func canonicalizeConfigClientSlice(des, initial []ConfigClient, opts ...dcl.ApplyOption) []ConfigClient {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigClient, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigClient(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigClient, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigClient(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigClient(c *Client, des, nw *ConfigClient) *ConfigClient {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigClient while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.StringCanonicalize(des.ApiKey, nw.ApiKey) {
nw.ApiKey = des.ApiKey
}
nw.Permissions = canonicalizeNewConfigClientPermissions(c, des.Permissions, nw.Permissions)
if dcl.StringCanonicalize(des.FirebaseSubdomain, nw.FirebaseSubdomain) {
nw.FirebaseSubdomain = des.FirebaseSubdomain
}
return nw
}
func canonicalizeNewConfigClientSet(c *Client, des, nw []ConfigClient) []ConfigClient {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigClient
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigClientNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigClient(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigClientSlice(c *Client, des, nw []ConfigClient) []ConfigClient {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigClient
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigClient(c, &d, &n))
}
return items
}
func canonicalizeConfigClientPermissions(des, initial *ConfigClientPermissions, opts ...dcl.ApplyOption) *ConfigClientPermissions {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigClientPermissions{}
if dcl.BoolCanonicalize(des.DisabledUserSignup, initial.DisabledUserSignup) || dcl.IsZeroValue(des.DisabledUserSignup) {
cDes.DisabledUserSignup = initial.DisabledUserSignup
} else {
cDes.DisabledUserSignup = des.DisabledUserSignup
}
if dcl.BoolCanonicalize(des.DisabledUserDeletion, initial.DisabledUserDeletion) || dcl.IsZeroValue(des.DisabledUserDeletion) {
cDes.DisabledUserDeletion = initial.DisabledUserDeletion
} else {
cDes.DisabledUserDeletion = des.DisabledUserDeletion
}
return cDes
}
func canonicalizeConfigClientPermissionsSlice(des, initial []ConfigClientPermissions, opts ...dcl.ApplyOption) []ConfigClientPermissions {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigClientPermissions, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigClientPermissions(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigClientPermissions, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigClientPermissions(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigClientPermissions(c *Client, des, nw *ConfigClientPermissions) *ConfigClientPermissions {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigClientPermissions while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
if dcl.BoolCanonicalize(des.DisabledUserSignup, nw.DisabledUserSignup) {
nw.DisabledUserSignup = des.DisabledUserSignup
}
if dcl.BoolCanonicalize(des.DisabledUserDeletion, nw.DisabledUserDeletion) {
nw.DisabledUserDeletion = des.DisabledUserDeletion
}
return nw
}
func canonicalizeNewConfigClientPermissionsSet(c *Client, des, nw []ConfigClientPermissions) []ConfigClientPermissions {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigClientPermissions
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigClientPermissionsNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigClientPermissions(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigClientPermissionsSlice(c *Client, des, nw []ConfigClientPermissions) []ConfigClientPermissions {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigClientPermissions
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigClientPermissions(c, &d, &n))
}
return items
}
func canonicalizeConfigMfa(des, initial *ConfigMfa, opts ...dcl.ApplyOption) *ConfigMfa {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigMfa{}
if dcl.IsZeroValue(des.State) || (dcl.IsEmptyValueIndirect(des.State) && dcl.IsEmptyValueIndirect(initial.State)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.State = initial.State
} else {
cDes.State = des.State
}
return cDes
}
func canonicalizeConfigMfaSlice(des, initial []ConfigMfa, opts ...dcl.ApplyOption) []ConfigMfa {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigMfa, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigMfa(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigMfa, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigMfa(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigMfa(c *Client, des, nw *ConfigMfa) *ConfigMfa {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigMfa while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
return nw
}
func canonicalizeNewConfigMfaSet(c *Client, des, nw []ConfigMfa) []ConfigMfa {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigMfa
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigMfaNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigMfa(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigMfaSlice(c *Client, des, nw []ConfigMfa) []ConfigMfa {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigMfa
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigMfa(c, &d, &n))
}
return items
}
func canonicalizeConfigBlockingFunctions(des, initial *ConfigBlockingFunctions, opts ...dcl.ApplyOption) *ConfigBlockingFunctions {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigBlockingFunctions{}
if dcl.IsZeroValue(des.Triggers) || (dcl.IsEmptyValueIndirect(des.Triggers) && dcl.IsEmptyValueIndirect(initial.Triggers)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.Triggers = initial.Triggers
} else {
cDes.Triggers = des.Triggers
}
return cDes
}
func canonicalizeConfigBlockingFunctionsSlice(des, initial []ConfigBlockingFunctions, opts ...dcl.ApplyOption) []ConfigBlockingFunctions {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigBlockingFunctions, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigBlockingFunctions(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigBlockingFunctions, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigBlockingFunctions(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigBlockingFunctions(c *Client, des, nw *ConfigBlockingFunctions) *ConfigBlockingFunctions {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigBlockingFunctions while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
return nw
}
func canonicalizeNewConfigBlockingFunctionsSet(c *Client, des, nw []ConfigBlockingFunctions) []ConfigBlockingFunctions {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigBlockingFunctions
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigBlockingFunctionsNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigBlockingFunctions(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigBlockingFunctionsSlice(c *Client, des, nw []ConfigBlockingFunctions) []ConfigBlockingFunctions {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigBlockingFunctions
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigBlockingFunctions(c, &d, &n))
}
return items
}
func canonicalizeConfigBlockingFunctionsTriggers(des, initial *ConfigBlockingFunctionsTriggers, opts ...dcl.ApplyOption) *ConfigBlockingFunctionsTriggers {
if des == nil {
return initial
}
if des.empty {
return des
}
if initial == nil {
return des
}
cDes := &ConfigBlockingFunctionsTriggers{}
if dcl.IsZeroValue(des.FunctionUri) || (dcl.IsEmptyValueIndirect(des.FunctionUri) && dcl.IsEmptyValueIndirect(initial.FunctionUri)) {
// Desired and initial values are equivalent, so set canonical desired value to initial value.
cDes.FunctionUri = initial.FunctionUri
} else {
cDes.FunctionUri = des.FunctionUri
}
return cDes
}
func canonicalizeConfigBlockingFunctionsTriggersSlice(des, initial []ConfigBlockingFunctionsTriggers, opts ...dcl.ApplyOption) []ConfigBlockingFunctionsTriggers {
if dcl.IsEmptyValueIndirect(des) {
return initial
}
if len(des) != len(initial) {
items := make([]ConfigBlockingFunctionsTriggers, 0, len(des))
for _, d := range des {
cd := canonicalizeConfigBlockingFunctionsTriggers(&d, nil, opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
items := make([]ConfigBlockingFunctionsTriggers, 0, len(des))
for i, d := range des {
cd := canonicalizeConfigBlockingFunctionsTriggers(&d, &initial[i], opts...)
if cd != nil {
items = append(items, *cd)
}
}
return items
}
func canonicalizeNewConfigBlockingFunctionsTriggers(c *Client, des, nw *ConfigBlockingFunctionsTriggers) *ConfigBlockingFunctionsTriggers {
if des == nil {
return nw
}
if nw == nil {
if dcl.IsEmptyValueIndirect(des) {
c.Config.Logger.Info("Found explicitly empty value for ConfigBlockingFunctionsTriggers while comparing non-nil desired to nil actual. Returning desired object.")
return des
}
return nil
}
return nw
}
func canonicalizeNewConfigBlockingFunctionsTriggersSet(c *Client, des, nw []ConfigBlockingFunctionsTriggers) []ConfigBlockingFunctionsTriggers {
if des == nil {
return nw
}
// Find the elements in des that are also in nw and canonicalize them. Remove matched elements from nw.
var items []ConfigBlockingFunctionsTriggers
for _, d := range des {
matchedIndex := -1
for i, n := range nw {
if diffs, _ := compareConfigBlockingFunctionsTriggersNewStyle(&d, &n, dcl.FieldName{}); len(diffs) == 0 {
matchedIndex = i
break
}
}
if matchedIndex != -1 {
items = append(items, *canonicalizeNewConfigBlockingFunctionsTriggers(c, &d, &nw[matchedIndex]))
nw = append(nw[:matchedIndex], nw[matchedIndex+1:]...)
}
}
// Also include elements in nw that are not matched in des.
items = append(items, nw...)
return items
}
func canonicalizeNewConfigBlockingFunctionsTriggersSlice(c *Client, des, nw []ConfigBlockingFunctionsTriggers) []ConfigBlockingFunctionsTriggers {
if des == nil {
return nw
}
// Lengths are unequal. A diff will occur later, so we shouldn't canonicalize.
// Return the original array.
if len(des) != len(nw) {
return nw
}
var items []ConfigBlockingFunctionsTriggers
for i, d := range des {
n := nw[i]
items = append(items, *canonicalizeNewConfigBlockingFunctionsTriggers(c, &d, &n))
}
return items
}
// The differ returns a list of diffs, along with a list of operations that should be taken
// to remedy them. Right now, it does not attempt to consolidate operations - if several
// fields can be fixed with a patch update, it will perform the patch several times.
// Diffs on some fields will be ignored if the `desired` state has an empty (nil)
// value. This empty value indicates that the user does not care about the state for
// the field. Empty fields on the actual object will cause diffs.
// TODO(magic-modules-eng): for efficiency in some resources, add batching.
func diffConfig(c *Client, desired, actual *Config, opts ...dcl.ApplyOption) ([]*dcl.FieldDiff, error) {
if desired == nil || actual == nil {
return nil, fmt.Errorf("nil resource passed to diff - always a programming error: %#v, %#v", desired, actual)
}
c.Config.Logger.Infof("Diff function called with desired state: %v", desired)
c.Config.Logger.Infof("Diff function called with actual state: %v", actual)
var fn dcl.FieldName
var newDiffs []*dcl.FieldDiff
// New style diffs.
if ds, err := dcl.Diff(desired.SignIn, actual.SignIn, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigSignInNewStyle, EmptyObject: EmptyConfigSignIn, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SignIn")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Notification, actual.Notification, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigNotificationNewStyle, EmptyObject: EmptyConfigNotification, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Notification")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Quota, actual.Quota, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigQuotaNewStyle, EmptyObject: EmptyConfigQuota, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Quota")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Monitoring, actual.Monitoring, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigMonitoringNewStyle, EmptyObject: EmptyConfigMonitoring, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Monitoring")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.MultiTenant, actual.MultiTenant, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigMultiTenantNewStyle, EmptyObject: EmptyConfigMultiTenant, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("MultiTenant")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.AuthorizedDomains, actual.AuthorizedDomains, dcl.DiffInfo{ServerDefault: true, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("AuthorizedDomains")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Subtype, actual.Subtype, dcl.DiffInfo{OutputOnly: true, Type: "EnumType", OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Subtype")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Client, actual.Client, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigClientNewStyle, EmptyObject: EmptyConfigClient, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Client")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Mfa, actual.Mfa, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigMfaNewStyle, EmptyObject: EmptyConfigMfa, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Mfa")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.BlockingFunctions, actual.BlockingFunctions, dcl.DiffInfo{ServerDefault: true, ObjectFunction: compareConfigBlockingFunctionsNewStyle, EmptyObject: EmptyConfigBlockingFunctions, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("BlockingFunctions")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if ds, err := dcl.Diff(desired.Project, actual.Project, dcl.DiffInfo{Type: "ReferenceType", OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Project")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
newDiffs = append(newDiffs, ds...)
}
if len(newDiffs) > 0 {
c.Config.Logger.Infof("Diff function found diffs: %v", newDiffs)
}
return newDiffs, nil
}
func compareConfigSignInNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignIn)
if !ok {
desiredNotPointer, ok := d.(ConfigSignIn)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignIn or *ConfigSignIn", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignIn)
if !ok {
actualNotPointer, ok := a.(ConfigSignIn)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignIn", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Email, actual.Email, dcl.DiffInfo{ObjectFunction: compareConfigSignInEmailNewStyle, EmptyObject: EmptyConfigSignInEmail, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Email")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.PhoneNumber, actual.PhoneNumber, dcl.DiffInfo{ObjectFunction: compareConfigSignInPhoneNumberNewStyle, EmptyObject: EmptyConfigSignInPhoneNumber, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("PhoneNumber")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Anonymous, actual.Anonymous, dcl.DiffInfo{ObjectFunction: compareConfigSignInAnonymousNewStyle, EmptyObject: EmptyConfigSignInAnonymous, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Anonymous")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.AllowDuplicateEmails, actual.AllowDuplicateEmails, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("AllowDuplicateEmails")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.HashConfig, actual.HashConfig, dcl.DiffInfo{OutputOnly: true, ObjectFunction: compareConfigSignInHashConfigNewStyle, EmptyObject: EmptyConfigSignInHashConfig, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("HashConfig")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigSignInEmailNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignInEmail)
if !ok {
desiredNotPointer, ok := d.(ConfigSignInEmail)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInEmail or *ConfigSignInEmail", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignInEmail)
if !ok {
actualNotPointer, ok := a.(ConfigSignInEmail)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInEmail", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Enabled, actual.Enabled, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Enabled")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.PasswordRequired, actual.PasswordRequired, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("PasswordRequired")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.HashConfig, actual.HashConfig, dcl.DiffInfo{OutputOnly: true, ObjectFunction: compareConfigSignInEmailHashConfigNewStyle, EmptyObject: EmptyConfigSignInEmailHashConfig, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("HashConfig")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigSignInEmailHashConfigNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignInEmailHashConfig)
if !ok {
desiredNotPointer, ok := d.(ConfigSignInEmailHashConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInEmailHashConfig or *ConfigSignInEmailHashConfig", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignInEmailHashConfig)
if !ok {
actualNotPointer, ok := a.(ConfigSignInEmailHashConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInEmailHashConfig", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Algorithm, actual.Algorithm, dcl.DiffInfo{OutputOnly: true, Type: "EnumType", OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Algorithm")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SignerKey, actual.SignerKey, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SignerKey")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SaltSeparator, actual.SaltSeparator, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SaltSeparator")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Rounds, actual.Rounds, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Rounds")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.MemoryCost, actual.MemoryCost, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("MemoryCost")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigSignInPhoneNumberNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignInPhoneNumber)
if !ok {
desiredNotPointer, ok := d.(ConfigSignInPhoneNumber)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInPhoneNumber or *ConfigSignInPhoneNumber", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignInPhoneNumber)
if !ok {
actualNotPointer, ok := a.(ConfigSignInPhoneNumber)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInPhoneNumber", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Enabled, actual.Enabled, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Enabled")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.TestPhoneNumbers, actual.TestPhoneNumbers, dcl.DiffInfo{CustomDiff: canonicalizeConfigTestPhoneNumbers, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("TestPhoneNumbers")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigSignInAnonymousNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignInAnonymous)
if !ok {
desiredNotPointer, ok := d.(ConfigSignInAnonymous)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInAnonymous or *ConfigSignInAnonymous", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignInAnonymous)
if !ok {
actualNotPointer, ok := a.(ConfigSignInAnonymous)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInAnonymous", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Enabled, actual.Enabled, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Enabled")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigSignInHashConfigNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigSignInHashConfig)
if !ok {
desiredNotPointer, ok := d.(ConfigSignInHashConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInHashConfig or *ConfigSignInHashConfig", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigSignInHashConfig)
if !ok {
actualNotPointer, ok := a.(ConfigSignInHashConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigSignInHashConfig", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Algorithm, actual.Algorithm, dcl.DiffInfo{OutputOnly: true, Type: "EnumType", OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Algorithm")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SignerKey, actual.SignerKey, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SignerKey")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SaltSeparator, actual.SaltSeparator, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SaltSeparator")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Rounds, actual.Rounds, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Rounds")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.MemoryCost, actual.MemoryCost, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("MemoryCost")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotification)
if !ok {
desiredNotPointer, ok := d.(ConfigNotification)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotification or *ConfigNotification", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotification)
if !ok {
actualNotPointer, ok := a.(ConfigNotification)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotification", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SendEmail, actual.SendEmail, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailNewStyle, EmptyObject: EmptyConfigNotificationSendEmail, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SendEmail")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SendSms, actual.SendSms, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendSmsNewStyle, EmptyObject: EmptyConfigNotificationSendSms, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SendSms")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.DefaultLocale, actual.DefaultLocale, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("DefaultLocale")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmail)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmail)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmail or *ConfigNotificationSendEmail", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmail)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmail)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmail", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Method, actual.Method, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Method")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Smtp, actual.Smtp, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailSmtpNewStyle, EmptyObject: EmptyConfigNotificationSendEmailSmtp, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Smtp")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ResetPasswordTemplate, actual.ResetPasswordTemplate, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailResetPasswordTemplateNewStyle, EmptyObject: EmptyConfigNotificationSendEmailResetPasswordTemplate, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("ResetPasswordTemplate")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.VerifyEmailTemplate, actual.VerifyEmailTemplate, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailVerifyEmailTemplateNewStyle, EmptyObject: EmptyConfigNotificationSendEmailVerifyEmailTemplate, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("VerifyEmailTemplate")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ChangeEmailTemplate, actual.ChangeEmailTemplate, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailChangeEmailTemplateNewStyle, EmptyObject: EmptyConfigNotificationSendEmailChangeEmailTemplate, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("ChangeEmailTemplate")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.CallbackUri, actual.CallbackUri, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("CallbackUri")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.DnsInfo, actual.DnsInfo, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailDnsInfoNewStyle, EmptyObject: EmptyConfigNotificationSendEmailDnsInfo, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("DnsInfo")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.RevertSecondFactorAdditionTemplate, actual.RevertSecondFactorAdditionTemplate, dcl.DiffInfo{ObjectFunction: compareConfigNotificationSendEmailRevertSecondFactorAdditionTemplateNewStyle, EmptyObject: EmptyConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("RevertSecondFactorAdditionTemplate")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailSmtpNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailSmtp)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailSmtp)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailSmtp or *ConfigNotificationSendEmailSmtp", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailSmtp)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailSmtp)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailSmtp", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SenderEmail, actual.SenderEmail, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderEmail")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Host, actual.Host, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Host")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Port, actual.Port, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Port")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Username, actual.Username, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Username")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Password, actual.Password, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Password")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SecurityMode, actual.SecurityMode, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SecurityMode")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailResetPasswordTemplateNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailResetPasswordTemplate)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailResetPasswordTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailResetPasswordTemplate or *ConfigNotificationSendEmailResetPasswordTemplate", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailResetPasswordTemplate)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailResetPasswordTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailResetPasswordTemplate", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SenderLocalPart, actual.SenderLocalPart, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderLocalPart")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Subject, actual.Subject, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Subject")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SenderDisplayName, actual.SenderDisplayName, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderDisplayName")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Body, actual.Body, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Body")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.BodyFormat, actual.BodyFormat, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("BodyFormat")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ReplyTo, actual.ReplyTo, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("ReplyTo")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Customized, actual.Customized, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Customized")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailVerifyEmailTemplateNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailVerifyEmailTemplate)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailVerifyEmailTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailVerifyEmailTemplate or *ConfigNotificationSendEmailVerifyEmailTemplate", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailVerifyEmailTemplate)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailVerifyEmailTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailVerifyEmailTemplate", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SenderLocalPart, actual.SenderLocalPart, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderLocalPart")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Subject, actual.Subject, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Subject")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SenderDisplayName, actual.SenderDisplayName, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderDisplayName")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Body, actual.Body, dcl.DiffInfo{OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Body")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.BodyFormat, actual.BodyFormat, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("BodyFormat")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ReplyTo, actual.ReplyTo, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("ReplyTo")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Customized, actual.Customized, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Customized")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailChangeEmailTemplateNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailChangeEmailTemplate)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailChangeEmailTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailChangeEmailTemplate or *ConfigNotificationSendEmailChangeEmailTemplate", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailChangeEmailTemplate)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailChangeEmailTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailChangeEmailTemplate", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SenderLocalPart, actual.SenderLocalPart, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderLocalPart")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Subject, actual.Subject, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Subject")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SenderDisplayName, actual.SenderDisplayName, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderDisplayName")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Body, actual.Body, dcl.DiffInfo{OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Body")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.BodyFormat, actual.BodyFormat, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("BodyFormat")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ReplyTo, actual.ReplyTo, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("ReplyTo")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Customized, actual.Customized, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Customized")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailDnsInfoNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailDnsInfo)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailDnsInfo)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailDnsInfo or *ConfigNotificationSendEmailDnsInfo", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailDnsInfo)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailDnsInfo)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailDnsInfo", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.CustomDomain, actual.CustomDomain, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("CustomDomain")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.UseCustomDomain, actual.UseCustomDomain, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("UseCustomDomain")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.PendingCustomDomain, actual.PendingCustomDomain, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("PendingCustomDomain")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.CustomDomainState, actual.CustomDomainState, dcl.DiffInfo{OutputOnly: true, Type: "EnumType", OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("CustomDomainState")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.DomainVerificationRequestTime, actual.DomainVerificationRequestTime, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("DomainVerificationRequestTime")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendEmailRevertSecondFactorAdditionTemplateNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate or *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SenderLocalPart, actual.SenderLocalPart, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderLocalPart")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Subject, actual.Subject, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Subject")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SenderDisplayName, actual.SenderDisplayName, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SenderDisplayName")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Body, actual.Body, dcl.DiffInfo{OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Body")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.BodyFormat, actual.BodyFormat, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("BodyFormat")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.ReplyTo, actual.ReplyTo, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("ReplyTo")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Customized, actual.Customized, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Customized")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendSmsNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendSms)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendSms)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendSms or *ConfigNotificationSendSms", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendSms)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendSms)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendSms", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.UseDeviceLocale, actual.UseDeviceLocale, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("UseDeviceLocale")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.SmsTemplate, actual.SmsTemplate, dcl.DiffInfo{OutputOnly: true, ObjectFunction: compareConfigNotificationSendSmsSmsTemplateNewStyle, EmptyObject: EmptyConfigNotificationSendSmsSmsTemplate, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("SmsTemplate")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigNotificationSendSmsSmsTemplateNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigNotificationSendSmsSmsTemplate)
if !ok {
desiredNotPointer, ok := d.(ConfigNotificationSendSmsSmsTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendSmsSmsTemplate or *ConfigNotificationSendSmsSmsTemplate", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigNotificationSendSmsSmsTemplate)
if !ok {
actualNotPointer, ok := a.(ConfigNotificationSendSmsSmsTemplate)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigNotificationSendSmsSmsTemplate", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Content, actual.Content, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("Content")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigQuotaNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigQuota)
if !ok {
desiredNotPointer, ok := d.(ConfigQuota)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigQuota or *ConfigQuota", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigQuota)
if !ok {
actualNotPointer, ok := a.(ConfigQuota)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigQuota", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.SignUpQuotaConfig, actual.SignUpQuotaConfig, dcl.DiffInfo{ObjectFunction: compareConfigQuotaSignUpQuotaConfigNewStyle, EmptyObject: EmptyConfigQuotaSignUpQuotaConfig, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("SignUpQuotaConfig")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigQuotaSignUpQuotaConfigNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigQuotaSignUpQuotaConfig)
if !ok {
desiredNotPointer, ok := d.(ConfigQuotaSignUpQuotaConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigQuotaSignUpQuotaConfig or *ConfigQuotaSignUpQuotaConfig", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigQuotaSignUpQuotaConfig)
if !ok {
actualNotPointer, ok := a.(ConfigQuotaSignUpQuotaConfig)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigQuotaSignUpQuotaConfig", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Quota, actual.Quota, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Quota")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.StartTime, actual.StartTime, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("StartTime")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.QuotaDuration, actual.QuotaDuration, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("QuotaDuration")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigMonitoringNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigMonitoring)
if !ok {
desiredNotPointer, ok := d.(ConfigMonitoring)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMonitoring or *ConfigMonitoring", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigMonitoring)
if !ok {
actualNotPointer, ok := a.(ConfigMonitoring)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMonitoring", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.RequestLogging, actual.RequestLogging, dcl.DiffInfo{ObjectFunction: compareConfigMonitoringRequestLoggingNewStyle, EmptyObject: EmptyConfigMonitoringRequestLogging, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("RequestLogging")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigMonitoringRequestLoggingNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigMonitoringRequestLogging)
if !ok {
desiredNotPointer, ok := d.(ConfigMonitoringRequestLogging)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMonitoringRequestLogging or *ConfigMonitoringRequestLogging", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigMonitoringRequestLogging)
if !ok {
actualNotPointer, ok := a.(ConfigMonitoringRequestLogging)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMonitoringRequestLogging", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Enabled, actual.Enabled, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Enabled")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigMultiTenantNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigMultiTenant)
if !ok {
desiredNotPointer, ok := d.(ConfigMultiTenant)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMultiTenant or *ConfigMultiTenant", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigMultiTenant)
if !ok {
actualNotPointer, ok := a.(ConfigMultiTenant)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMultiTenant", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.AllowTenants, actual.AllowTenants, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("AllowTenants")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.DefaultTenantLocation, actual.DefaultTenantLocation, dcl.DiffInfo{Type: "ReferenceType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("DefaultTenantLocation")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigClientNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigClient)
if !ok {
desiredNotPointer, ok := d.(ConfigClient)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigClient or *ConfigClient", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigClient)
if !ok {
actualNotPointer, ok := a.(ConfigClient)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigClient", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.ApiKey, actual.ApiKey, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("ApiKey")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.Permissions, actual.Permissions, dcl.DiffInfo{ObjectFunction: compareConfigClientPermissionsNewStyle, EmptyObject: EmptyConfigClientPermissions, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Permissions")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.FirebaseSubdomain, actual.FirebaseSubdomain, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("FirebaseSubdomain")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigClientPermissionsNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigClientPermissions)
if !ok {
desiredNotPointer, ok := d.(ConfigClientPermissions)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigClientPermissions or *ConfigClientPermissions", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigClientPermissions)
if !ok {
actualNotPointer, ok := a.(ConfigClientPermissions)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigClientPermissions", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.DisabledUserSignup, actual.DisabledUserSignup, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("DisabledUserSignup")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.DisabledUserDeletion, actual.DisabledUserDeletion, dcl.DiffInfo{OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("DisabledUserDeletion")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigMfaNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigMfa)
if !ok {
desiredNotPointer, ok := d.(ConfigMfa)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMfa or *ConfigMfa", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigMfa)
if !ok {
actualNotPointer, ok := a.(ConfigMfa)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigMfa", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.State, actual.State, dcl.DiffInfo{Type: "EnumType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("State")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigBlockingFunctionsNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigBlockingFunctions)
if !ok {
desiredNotPointer, ok := d.(ConfigBlockingFunctions)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigBlockingFunctions or *ConfigBlockingFunctions", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigBlockingFunctions)
if !ok {
actualNotPointer, ok := a.(ConfigBlockingFunctions)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigBlockingFunctions", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.Triggers, actual.Triggers, dcl.DiffInfo{ObjectFunction: compareConfigBlockingFunctionsTriggersNewStyle, EmptyObject: EmptyConfigBlockingFunctionsTriggers, OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("Triggers")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
func compareConfigBlockingFunctionsTriggersNewStyle(d, a interface{}, fn dcl.FieldName) ([]*dcl.FieldDiff, error) {
var diffs []*dcl.FieldDiff
desired, ok := d.(*ConfigBlockingFunctionsTriggers)
if !ok {
desiredNotPointer, ok := d.(ConfigBlockingFunctionsTriggers)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigBlockingFunctionsTriggers or *ConfigBlockingFunctionsTriggers", d)
}
desired = &desiredNotPointer
}
actual, ok := a.(*ConfigBlockingFunctionsTriggers)
if !ok {
actualNotPointer, ok := a.(ConfigBlockingFunctionsTriggers)
if !ok {
return nil, fmt.Errorf("obj %v is not a ConfigBlockingFunctionsTriggers", a)
}
actual = &actualNotPointer
}
if ds, err := dcl.Diff(desired.FunctionUri, actual.FunctionUri, dcl.DiffInfo{Type: "ReferenceType", OperationSelector: dcl.TriggersOperation("updateConfigUpdateProjectConfigOperation")}, fn.AddNest("FunctionUri")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
if ds, err := dcl.Diff(desired.UpdateTime, actual.UpdateTime, dcl.DiffInfo{OutputOnly: true, OperationSelector: dcl.RequiresRecreate()}, fn.AddNest("UpdateTime")); len(ds) != 0 || err != nil {
if err != nil {
return nil, err
}
diffs = append(diffs, ds...)
}
return diffs, nil
}
// urlNormalized returns a copy of the resource struct with values normalized
// for URL substitutions. For instance, it converts long-form self-links to
// short-form so they can be substituted in.
func (r *Config) urlNormalized() *Config {
normalized := dcl.Copy(*r).(Config)
normalized.Project = dcl.SelfLinkToName(r.Project)
return &normalized
}
func (r *Config) updateURL(userBasePath, updateName string) (string, error) {
nr := r.urlNormalized()
if updateName == "UpdateProjectConfig" {
fields := map[string]interface{}{
"project": dcl.ValueOrEmptyString(nr.Project),
}
return dcl.URL("projects/{{project}}/config", nr.basePath(), userBasePath, fields), nil
}
return "", fmt.Errorf("unknown update name: %s", updateName)
}
// marshal encodes the Config resource into JSON for a Create request, and
// performs transformations from the resource schema to the API schema if
// necessary.
func (r *Config) marshal(c *Client) ([]byte, error) {
m, err := expandConfig(c, r)
if err != nil {
return nil, fmt.Errorf("error marshalling Config: %w", err)
}
return json.Marshal(m)
}
// unmarshalConfig decodes JSON responses into the Config resource schema.
func unmarshalConfig(b []byte, c *Client, res *Config) (*Config, error) {
var m map[string]interface{}
if err := json.Unmarshal(b, &m); err != nil {
return nil, err
}
return unmarshalMapConfig(m, c, res)
}
func unmarshalMapConfig(m map[string]interface{}, c *Client, res *Config) (*Config, error) {
flattened := flattenConfig(c, m, res)
if flattened == nil {
return nil, fmt.Errorf("attempted to flatten empty json object")
}
return flattened, nil
}
// expandConfig expands Config into a JSON request object.
func expandConfig(c *Client, f *Config) (map[string]interface{}, error) {
m := make(map[string]interface{})
res := f
_ = res
if v, err := expandConfigSignIn(c, f.SignIn, res); err != nil {
return nil, fmt.Errorf("error expanding SignIn into signIn: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["signIn"] = v
}
if v, err := expandConfigNotification(c, f.Notification, res); err != nil {
return nil, fmt.Errorf("error expanding Notification into notification: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["notification"] = v
}
if v, err := expandConfigQuota(c, f.Quota, res); err != nil {
return nil, fmt.Errorf("error expanding Quota into quota: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["quota"] = v
}
if v, err := expandConfigMonitoring(c, f.Monitoring, res); err != nil {
return nil, fmt.Errorf("error expanding Monitoring into monitoring: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["monitoring"] = v
}
if v, err := expandConfigMultiTenant(c, f.MultiTenant, res); err != nil {
return nil, fmt.Errorf("error expanding MultiTenant into multiTenant: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["multiTenant"] = v
}
if v := f.AuthorizedDomains; v != nil {
m["authorizedDomains"] = v
}
if v, err := expandConfigClient(c, f.Client, res); err != nil {
return nil, fmt.Errorf("error expanding Client into client: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["client"] = v
}
if v, err := expandConfigMfa(c, f.Mfa, res); err != nil {
return nil, fmt.Errorf("error expanding Mfa into mfa: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["mfa"] = v
}
if v, err := expandConfigBlockingFunctions(c, f.BlockingFunctions, res); err != nil {
return nil, fmt.Errorf("error expanding BlockingFunctions into blockingFunctions: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["blockingFunctions"] = v
}
if v, err := dcl.EmptyValue(); err != nil {
return nil, fmt.Errorf("error expanding Project into project: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["project"] = v
}
return m, nil
}
// flattenConfig flattens Config from a JSON request object into the
// Config type.
func flattenConfig(c *Client, i interface{}, res *Config) *Config {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
if len(m) == 0 {
return nil
}
resultRes := &Config{}
resultRes.SignIn = flattenConfigSignIn(c, m["signIn"], res)
resultRes.Notification = flattenConfigNotification(c, m["notification"], res)
resultRes.Quota = flattenConfigQuota(c, m["quota"], res)
resultRes.Monitoring = flattenConfigMonitoring(c, m["monitoring"], res)
resultRes.MultiTenant = flattenConfigMultiTenant(c, m["multiTenant"], res)
resultRes.AuthorizedDomains = dcl.FlattenStringSlice(m["authorizedDomains"])
resultRes.Subtype = flattenConfigSubtypeEnum(m["subtype"])
resultRes.Client = flattenConfigClient(c, m["client"], res)
resultRes.Mfa = flattenConfigMfa(c, m["mfa"], res)
resultRes.BlockingFunctions = flattenConfigBlockingFunctions(c, m["blockingFunctions"], res)
resultRes.Project = dcl.FlattenString(m["project"])
return resultRes
}
// expandConfigSignInMap expands the contents of ConfigSignIn into a JSON
// request object.
func expandConfigSignInMap(c *Client, f map[string]ConfigSignIn, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignIn(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInSlice expands the contents of ConfigSignIn into a JSON
// request object.
func expandConfigSignInSlice(c *Client, f []ConfigSignIn, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignIn(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInMap flattens the contents of ConfigSignIn from a JSON
// response object.
func flattenConfigSignInMap(c *Client, i interface{}, res *Config) map[string]ConfigSignIn {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignIn{}
}
if len(a) == 0 {
return map[string]ConfigSignIn{}
}
items := make(map[string]ConfigSignIn)
for k, item := range a {
items[k] = *flattenConfigSignIn(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInSlice flattens the contents of ConfigSignIn from a JSON
// response object.
func flattenConfigSignInSlice(c *Client, i interface{}, res *Config) []ConfigSignIn {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignIn{}
}
if len(a) == 0 {
return []ConfigSignIn{}
}
items := make([]ConfigSignIn, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignIn(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignIn expands an instance of ConfigSignIn into a JSON
// request object.
func expandConfigSignIn(c *Client, f *ConfigSignIn, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigSignInEmail(c, f.Email, res); err != nil {
return nil, fmt.Errorf("error expanding Email into email: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["email"] = v
}
if v, err := expandConfigSignInPhoneNumber(c, f.PhoneNumber, res); err != nil {
return nil, fmt.Errorf("error expanding PhoneNumber into phoneNumber: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["phoneNumber"] = v
}
if v, err := expandConfigSignInAnonymous(c, f.Anonymous, res); err != nil {
return nil, fmt.Errorf("error expanding Anonymous into anonymous: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["anonymous"] = v
}
if v := f.AllowDuplicateEmails; !dcl.IsEmptyValueIndirect(v) {
m["allowDuplicateEmails"] = v
}
return m, nil
}
// flattenConfigSignIn flattens an instance of ConfigSignIn from a JSON
// response object.
func flattenConfigSignIn(c *Client, i interface{}, res *Config) *ConfigSignIn {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignIn{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignIn
}
r.Email = flattenConfigSignInEmail(c, m["email"], res)
r.PhoneNumber = flattenConfigSignInPhoneNumber(c, m["phoneNumber"], res)
r.Anonymous = flattenConfigSignInAnonymous(c, m["anonymous"], res)
r.AllowDuplicateEmails = dcl.FlattenBool(m["allowDuplicateEmails"])
r.HashConfig = flattenConfigSignInHashConfig(c, m["hashConfig"], res)
return r
}
// expandConfigSignInEmailMap expands the contents of ConfigSignInEmail into a JSON
// request object.
func expandConfigSignInEmailMap(c *Client, f map[string]ConfigSignInEmail, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignInEmail(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInEmailSlice expands the contents of ConfigSignInEmail into a JSON
// request object.
func expandConfigSignInEmailSlice(c *Client, f []ConfigSignInEmail, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignInEmail(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInEmailMap flattens the contents of ConfigSignInEmail from a JSON
// response object.
func flattenConfigSignInEmailMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInEmail {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInEmail{}
}
if len(a) == 0 {
return map[string]ConfigSignInEmail{}
}
items := make(map[string]ConfigSignInEmail)
for k, item := range a {
items[k] = *flattenConfigSignInEmail(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInEmailSlice flattens the contents of ConfigSignInEmail from a JSON
// response object.
func flattenConfigSignInEmailSlice(c *Client, i interface{}, res *Config) []ConfigSignInEmail {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInEmail{}
}
if len(a) == 0 {
return []ConfigSignInEmail{}
}
items := make([]ConfigSignInEmail, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInEmail(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignInEmail expands an instance of ConfigSignInEmail into a JSON
// request object.
func expandConfigSignInEmail(c *Client, f *ConfigSignInEmail, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Enabled; !dcl.IsEmptyValueIndirect(v) {
m["enabled"] = v
}
if v := f.PasswordRequired; !dcl.IsEmptyValueIndirect(v) {
m["passwordRequired"] = v
}
return m, nil
}
// flattenConfigSignInEmail flattens an instance of ConfigSignInEmail from a JSON
// response object.
func flattenConfigSignInEmail(c *Client, i interface{}, res *Config) *ConfigSignInEmail {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignInEmail{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignInEmail
}
r.Enabled = dcl.FlattenBool(m["enabled"])
r.PasswordRequired = dcl.FlattenBool(m["passwordRequired"])
r.HashConfig = flattenConfigSignInEmailHashConfig(c, m["hashConfig"], res)
return r
}
// expandConfigSignInEmailHashConfigMap expands the contents of ConfigSignInEmailHashConfig into a JSON
// request object.
func expandConfigSignInEmailHashConfigMap(c *Client, f map[string]ConfigSignInEmailHashConfig, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignInEmailHashConfig(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInEmailHashConfigSlice expands the contents of ConfigSignInEmailHashConfig into a JSON
// request object.
func expandConfigSignInEmailHashConfigSlice(c *Client, f []ConfigSignInEmailHashConfig, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignInEmailHashConfig(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInEmailHashConfigMap flattens the contents of ConfigSignInEmailHashConfig from a JSON
// response object.
func flattenConfigSignInEmailHashConfigMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInEmailHashConfig {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInEmailHashConfig{}
}
if len(a) == 0 {
return map[string]ConfigSignInEmailHashConfig{}
}
items := make(map[string]ConfigSignInEmailHashConfig)
for k, item := range a {
items[k] = *flattenConfigSignInEmailHashConfig(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInEmailHashConfigSlice flattens the contents of ConfigSignInEmailHashConfig from a JSON
// response object.
func flattenConfigSignInEmailHashConfigSlice(c *Client, i interface{}, res *Config) []ConfigSignInEmailHashConfig {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInEmailHashConfig{}
}
if len(a) == 0 {
return []ConfigSignInEmailHashConfig{}
}
items := make([]ConfigSignInEmailHashConfig, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInEmailHashConfig(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignInEmailHashConfig expands an instance of ConfigSignInEmailHashConfig into a JSON
// request object.
func expandConfigSignInEmailHashConfig(c *Client, f *ConfigSignInEmailHashConfig, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
return m, nil
}
// flattenConfigSignInEmailHashConfig flattens an instance of ConfigSignInEmailHashConfig from a JSON
// response object.
func flattenConfigSignInEmailHashConfig(c *Client, i interface{}, res *Config) *ConfigSignInEmailHashConfig {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignInEmailHashConfig{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignInEmailHashConfig
}
r.Algorithm = flattenConfigSignInEmailHashConfigAlgorithmEnum(m["algorithm"])
r.SignerKey = dcl.FlattenString(m["signerKey"])
r.SaltSeparator = dcl.FlattenString(m["saltSeparator"])
r.Rounds = dcl.FlattenInteger(m["rounds"])
r.MemoryCost = dcl.FlattenInteger(m["memoryCost"])
return r
}
// expandConfigSignInPhoneNumberMap expands the contents of ConfigSignInPhoneNumber into a JSON
// request object.
func expandConfigSignInPhoneNumberMap(c *Client, f map[string]ConfigSignInPhoneNumber, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignInPhoneNumber(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInPhoneNumberSlice expands the contents of ConfigSignInPhoneNumber into a JSON
// request object.
func expandConfigSignInPhoneNumberSlice(c *Client, f []ConfigSignInPhoneNumber, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignInPhoneNumber(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInPhoneNumberMap flattens the contents of ConfigSignInPhoneNumber from a JSON
// response object.
func flattenConfigSignInPhoneNumberMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInPhoneNumber {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInPhoneNumber{}
}
if len(a) == 0 {
return map[string]ConfigSignInPhoneNumber{}
}
items := make(map[string]ConfigSignInPhoneNumber)
for k, item := range a {
items[k] = *flattenConfigSignInPhoneNumber(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInPhoneNumberSlice flattens the contents of ConfigSignInPhoneNumber from a JSON
// response object.
func flattenConfigSignInPhoneNumberSlice(c *Client, i interface{}, res *Config) []ConfigSignInPhoneNumber {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInPhoneNumber{}
}
if len(a) == 0 {
return []ConfigSignInPhoneNumber{}
}
items := make([]ConfigSignInPhoneNumber, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInPhoneNumber(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignInPhoneNumber expands an instance of ConfigSignInPhoneNumber into a JSON
// request object.
func expandConfigSignInPhoneNumber(c *Client, f *ConfigSignInPhoneNumber, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Enabled; !dcl.IsEmptyValueIndirect(v) {
m["enabled"] = v
}
if v := f.TestPhoneNumbers; !dcl.IsEmptyValueIndirect(v) {
m["testPhoneNumbers"] = v
}
return m, nil
}
// flattenConfigSignInPhoneNumber flattens an instance of ConfigSignInPhoneNumber from a JSON
// response object.
func flattenConfigSignInPhoneNumber(c *Client, i interface{}, res *Config) *ConfigSignInPhoneNumber {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignInPhoneNumber{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignInPhoneNumber
}
r.Enabled = dcl.FlattenBool(m["enabled"])
r.TestPhoneNumbers = dcl.FlattenKeyValuePairs(m["testPhoneNumbers"])
return r
}
// expandConfigSignInAnonymousMap expands the contents of ConfigSignInAnonymous into a JSON
// request object.
func expandConfigSignInAnonymousMap(c *Client, f map[string]ConfigSignInAnonymous, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignInAnonymous(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInAnonymousSlice expands the contents of ConfigSignInAnonymous into a JSON
// request object.
func expandConfigSignInAnonymousSlice(c *Client, f []ConfigSignInAnonymous, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignInAnonymous(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInAnonymousMap flattens the contents of ConfigSignInAnonymous from a JSON
// response object.
func flattenConfigSignInAnonymousMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInAnonymous {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInAnonymous{}
}
if len(a) == 0 {
return map[string]ConfigSignInAnonymous{}
}
items := make(map[string]ConfigSignInAnonymous)
for k, item := range a {
items[k] = *flattenConfigSignInAnonymous(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInAnonymousSlice flattens the contents of ConfigSignInAnonymous from a JSON
// response object.
func flattenConfigSignInAnonymousSlice(c *Client, i interface{}, res *Config) []ConfigSignInAnonymous {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInAnonymous{}
}
if len(a) == 0 {
return []ConfigSignInAnonymous{}
}
items := make([]ConfigSignInAnonymous, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInAnonymous(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignInAnonymous expands an instance of ConfigSignInAnonymous into a JSON
// request object.
func expandConfigSignInAnonymous(c *Client, f *ConfigSignInAnonymous, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Enabled; !dcl.IsEmptyValueIndirect(v) {
m["enabled"] = v
}
return m, nil
}
// flattenConfigSignInAnonymous flattens an instance of ConfigSignInAnonymous from a JSON
// response object.
func flattenConfigSignInAnonymous(c *Client, i interface{}, res *Config) *ConfigSignInAnonymous {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignInAnonymous{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignInAnonymous
}
r.Enabled = dcl.FlattenBool(m["enabled"])
return r
}
// expandConfigSignInHashConfigMap expands the contents of ConfigSignInHashConfig into a JSON
// request object.
func expandConfigSignInHashConfigMap(c *Client, f map[string]ConfigSignInHashConfig, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigSignInHashConfig(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigSignInHashConfigSlice expands the contents of ConfigSignInHashConfig into a JSON
// request object.
func expandConfigSignInHashConfigSlice(c *Client, f []ConfigSignInHashConfig, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigSignInHashConfig(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigSignInHashConfigMap flattens the contents of ConfigSignInHashConfig from a JSON
// response object.
func flattenConfigSignInHashConfigMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInHashConfig {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInHashConfig{}
}
if len(a) == 0 {
return map[string]ConfigSignInHashConfig{}
}
items := make(map[string]ConfigSignInHashConfig)
for k, item := range a {
items[k] = *flattenConfigSignInHashConfig(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigSignInHashConfigSlice flattens the contents of ConfigSignInHashConfig from a JSON
// response object.
func flattenConfigSignInHashConfigSlice(c *Client, i interface{}, res *Config) []ConfigSignInHashConfig {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInHashConfig{}
}
if len(a) == 0 {
return []ConfigSignInHashConfig{}
}
items := make([]ConfigSignInHashConfig, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInHashConfig(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigSignInHashConfig expands an instance of ConfigSignInHashConfig into a JSON
// request object.
func expandConfigSignInHashConfig(c *Client, f *ConfigSignInHashConfig, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
return m, nil
}
// flattenConfigSignInHashConfig flattens an instance of ConfigSignInHashConfig from a JSON
// response object.
func flattenConfigSignInHashConfig(c *Client, i interface{}, res *Config) *ConfigSignInHashConfig {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigSignInHashConfig{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigSignInHashConfig
}
r.Algorithm = flattenConfigSignInHashConfigAlgorithmEnum(m["algorithm"])
r.SignerKey = dcl.FlattenString(m["signerKey"])
r.SaltSeparator = dcl.FlattenString(m["saltSeparator"])
r.Rounds = dcl.FlattenInteger(m["rounds"])
r.MemoryCost = dcl.FlattenInteger(m["memoryCost"])
return r
}
// expandConfigNotificationMap expands the contents of ConfigNotification into a JSON
// request object.
func expandConfigNotificationMap(c *Client, f map[string]ConfigNotification, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotification(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSlice expands the contents of ConfigNotification into a JSON
// request object.
func expandConfigNotificationSlice(c *Client, f []ConfigNotification, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotification(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationMap flattens the contents of ConfigNotification from a JSON
// response object.
func flattenConfigNotificationMap(c *Client, i interface{}, res *Config) map[string]ConfigNotification {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotification{}
}
if len(a) == 0 {
return map[string]ConfigNotification{}
}
items := make(map[string]ConfigNotification)
for k, item := range a {
items[k] = *flattenConfigNotification(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSlice flattens the contents of ConfigNotification from a JSON
// response object.
func flattenConfigNotificationSlice(c *Client, i interface{}, res *Config) []ConfigNotification {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotification{}
}
if len(a) == 0 {
return []ConfigNotification{}
}
items := make([]ConfigNotification, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotification(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotification expands an instance of ConfigNotification into a JSON
// request object.
func expandConfigNotification(c *Client, f *ConfigNotification, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigNotificationSendEmail(c, f.SendEmail, res); err != nil {
return nil, fmt.Errorf("error expanding SendEmail into sendEmail: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["sendEmail"] = v
}
if v, err := expandConfigNotificationSendSms(c, f.SendSms, res); err != nil {
return nil, fmt.Errorf("error expanding SendSms into sendSms: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["sendSms"] = v
}
if v := f.DefaultLocale; !dcl.IsEmptyValueIndirect(v) {
m["defaultLocale"] = v
}
return m, nil
}
// flattenConfigNotification flattens an instance of ConfigNotification from a JSON
// response object.
func flattenConfigNotification(c *Client, i interface{}, res *Config) *ConfigNotification {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotification{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotification
}
r.SendEmail = flattenConfigNotificationSendEmail(c, m["sendEmail"], res)
r.SendSms = flattenConfigNotificationSendSms(c, m["sendSms"], res)
r.DefaultLocale = dcl.FlattenString(m["defaultLocale"])
return r
}
// expandConfigNotificationSendEmailMap expands the contents of ConfigNotificationSendEmail into a JSON
// request object.
func expandConfigNotificationSendEmailMap(c *Client, f map[string]ConfigNotificationSendEmail, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmail(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailSlice expands the contents of ConfigNotificationSendEmail into a JSON
// request object.
func expandConfigNotificationSendEmailSlice(c *Client, f []ConfigNotificationSendEmail, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmail(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailMap flattens the contents of ConfigNotificationSendEmail from a JSON
// response object.
func flattenConfigNotificationSendEmailMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmail {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmail{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmail{}
}
items := make(map[string]ConfigNotificationSendEmail)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmail(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailSlice flattens the contents of ConfigNotificationSendEmail from a JSON
// response object.
func flattenConfigNotificationSendEmailSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmail {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmail{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmail{}
}
items := make([]ConfigNotificationSendEmail, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmail(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmail expands an instance of ConfigNotificationSendEmail into a JSON
// request object.
func expandConfigNotificationSendEmail(c *Client, f *ConfigNotificationSendEmail, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Method; !dcl.IsEmptyValueIndirect(v) {
m["method"] = v
}
if v, err := expandConfigNotificationSendEmailSmtp(c, f.Smtp, res); err != nil {
return nil, fmt.Errorf("error expanding Smtp into smtp: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["smtp"] = v
}
if v, err := expandConfigNotificationSendEmailResetPasswordTemplate(c, f.ResetPasswordTemplate, res); err != nil {
return nil, fmt.Errorf("error expanding ResetPasswordTemplate into resetPasswordTemplate: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["resetPasswordTemplate"] = v
}
if v, err := expandConfigNotificationSendEmailVerifyEmailTemplate(c, f.VerifyEmailTemplate, res); err != nil {
return nil, fmt.Errorf("error expanding VerifyEmailTemplate into verifyEmailTemplate: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["verifyEmailTemplate"] = v
}
if v, err := expandConfigNotificationSendEmailChangeEmailTemplate(c, f.ChangeEmailTemplate, res); err != nil {
return nil, fmt.Errorf("error expanding ChangeEmailTemplate into changeEmailTemplate: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["changeEmailTemplate"] = v
}
if v := f.CallbackUri; !dcl.IsEmptyValueIndirect(v) {
m["callbackUri"] = v
}
if v, err := expandConfigNotificationSendEmailDnsInfo(c, f.DnsInfo, res); err != nil {
return nil, fmt.Errorf("error expanding DnsInfo into dnsInfo: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["dnsInfo"] = v
}
if v, err := expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, f.RevertSecondFactorAdditionTemplate, res); err != nil {
return nil, fmt.Errorf("error expanding RevertSecondFactorAdditionTemplate into revertSecondFactorAdditionTemplate: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["revertSecondFactorAdditionTemplate"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmail flattens an instance of ConfigNotificationSendEmail from a JSON
// response object.
func flattenConfigNotificationSendEmail(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmail {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmail{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmail
}
r.Method = flattenConfigNotificationSendEmailMethodEnum(m["method"])
r.Smtp = flattenConfigNotificationSendEmailSmtp(c, m["smtp"], res)
r.ResetPasswordTemplate = flattenConfigNotificationSendEmailResetPasswordTemplate(c, m["resetPasswordTemplate"], res)
r.VerifyEmailTemplate = flattenConfigNotificationSendEmailVerifyEmailTemplate(c, m["verifyEmailTemplate"], res)
r.ChangeEmailTemplate = flattenConfigNotificationSendEmailChangeEmailTemplate(c, m["changeEmailTemplate"], res)
r.CallbackUri = dcl.FlattenString(m["callbackUri"])
r.DnsInfo = flattenConfigNotificationSendEmailDnsInfo(c, m["dnsInfo"], res)
r.RevertSecondFactorAdditionTemplate = flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, m["revertSecondFactorAdditionTemplate"], res)
return r
}
// expandConfigNotificationSendEmailSmtpMap expands the contents of ConfigNotificationSendEmailSmtp into a JSON
// request object.
func expandConfigNotificationSendEmailSmtpMap(c *Client, f map[string]ConfigNotificationSendEmailSmtp, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailSmtp(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailSmtpSlice expands the contents of ConfigNotificationSendEmailSmtp into a JSON
// request object.
func expandConfigNotificationSendEmailSmtpSlice(c *Client, f []ConfigNotificationSendEmailSmtp, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailSmtp(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailSmtpMap flattens the contents of ConfigNotificationSendEmailSmtp from a JSON
// response object.
func flattenConfigNotificationSendEmailSmtpMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailSmtp {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailSmtp{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailSmtp{}
}
items := make(map[string]ConfigNotificationSendEmailSmtp)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailSmtp(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailSmtpSlice flattens the contents of ConfigNotificationSendEmailSmtp from a JSON
// response object.
func flattenConfigNotificationSendEmailSmtpSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailSmtp {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailSmtp{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailSmtp{}
}
items := make([]ConfigNotificationSendEmailSmtp, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailSmtp(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailSmtp expands an instance of ConfigNotificationSendEmailSmtp into a JSON
// request object.
func expandConfigNotificationSendEmailSmtp(c *Client, f *ConfigNotificationSendEmailSmtp, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.SenderEmail; !dcl.IsEmptyValueIndirect(v) {
m["senderEmail"] = v
}
if v := f.Host; !dcl.IsEmptyValueIndirect(v) {
m["host"] = v
}
if v := f.Port; !dcl.IsEmptyValueIndirect(v) {
m["port"] = v
}
if v := f.Username; !dcl.IsEmptyValueIndirect(v) {
m["username"] = v
}
if v := f.Password; !dcl.IsEmptyValueIndirect(v) {
m["password"] = v
}
if v := f.SecurityMode; !dcl.IsEmptyValueIndirect(v) {
m["securityMode"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailSmtp flattens an instance of ConfigNotificationSendEmailSmtp from a JSON
// response object.
func flattenConfigNotificationSendEmailSmtp(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailSmtp {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailSmtp{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailSmtp
}
r.SenderEmail = dcl.FlattenString(m["senderEmail"])
r.Host = dcl.FlattenString(m["host"])
r.Port = dcl.FlattenInteger(m["port"])
r.Username = dcl.FlattenString(m["username"])
r.Password = dcl.FlattenString(m["password"])
r.SecurityMode = flattenConfigNotificationSendEmailSmtpSecurityModeEnum(m["securityMode"])
return r
}
// expandConfigNotificationSendEmailResetPasswordTemplateMap expands the contents of ConfigNotificationSendEmailResetPasswordTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailResetPasswordTemplateMap(c *Client, f map[string]ConfigNotificationSendEmailResetPasswordTemplate, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailResetPasswordTemplate(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailResetPasswordTemplateSlice expands the contents of ConfigNotificationSendEmailResetPasswordTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailResetPasswordTemplateSlice(c *Client, f []ConfigNotificationSendEmailResetPasswordTemplate, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailResetPasswordTemplate(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailResetPasswordTemplateMap flattens the contents of ConfigNotificationSendEmailResetPasswordTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailResetPasswordTemplateMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailResetPasswordTemplate {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailResetPasswordTemplate{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailResetPasswordTemplate{}
}
items := make(map[string]ConfigNotificationSendEmailResetPasswordTemplate)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailResetPasswordTemplate(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailResetPasswordTemplateSlice flattens the contents of ConfigNotificationSendEmailResetPasswordTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailResetPasswordTemplateSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailResetPasswordTemplate {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailResetPasswordTemplate{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailResetPasswordTemplate{}
}
items := make([]ConfigNotificationSendEmailResetPasswordTemplate, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailResetPasswordTemplate(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailResetPasswordTemplate expands an instance of ConfigNotificationSendEmailResetPasswordTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailResetPasswordTemplate(c *Client, f *ConfigNotificationSendEmailResetPasswordTemplate, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.SenderLocalPart; !dcl.IsEmptyValueIndirect(v) {
m["senderLocalPart"] = v
}
if v := f.Subject; !dcl.IsEmptyValueIndirect(v) {
m["subject"] = v
}
if v := f.SenderDisplayName; !dcl.IsEmptyValueIndirect(v) {
m["senderDisplayName"] = v
}
if v := f.Body; !dcl.IsEmptyValueIndirect(v) {
m["body"] = v
}
if v := f.BodyFormat; !dcl.IsEmptyValueIndirect(v) {
m["bodyFormat"] = v
}
if v := f.ReplyTo; !dcl.IsEmptyValueIndirect(v) {
m["replyTo"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailResetPasswordTemplate flattens an instance of ConfigNotificationSendEmailResetPasswordTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailResetPasswordTemplate(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailResetPasswordTemplate {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailResetPasswordTemplate{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailResetPasswordTemplate
}
r.SenderLocalPart = dcl.FlattenString(m["senderLocalPart"])
r.Subject = dcl.FlattenString(m["subject"])
r.SenderDisplayName = dcl.FlattenString(m["senderDisplayName"])
r.Body = dcl.FlattenString(m["body"])
r.BodyFormat = flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum(m["bodyFormat"])
r.ReplyTo = dcl.FlattenString(m["replyTo"])
r.Customized = dcl.FlattenBool(m["customized"])
return r
}
// expandConfigNotificationSendEmailVerifyEmailTemplateMap expands the contents of ConfigNotificationSendEmailVerifyEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailVerifyEmailTemplateMap(c *Client, f map[string]ConfigNotificationSendEmailVerifyEmailTemplate, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailVerifyEmailTemplate(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailVerifyEmailTemplateSlice expands the contents of ConfigNotificationSendEmailVerifyEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailVerifyEmailTemplateSlice(c *Client, f []ConfigNotificationSendEmailVerifyEmailTemplate, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailVerifyEmailTemplate(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailVerifyEmailTemplateMap flattens the contents of ConfigNotificationSendEmailVerifyEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailVerifyEmailTemplateMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailVerifyEmailTemplate {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailVerifyEmailTemplate{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailVerifyEmailTemplate{}
}
items := make(map[string]ConfigNotificationSendEmailVerifyEmailTemplate)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailVerifyEmailTemplate(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailVerifyEmailTemplateSlice flattens the contents of ConfigNotificationSendEmailVerifyEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailVerifyEmailTemplateSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailVerifyEmailTemplate {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailVerifyEmailTemplate{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailVerifyEmailTemplate{}
}
items := make([]ConfigNotificationSendEmailVerifyEmailTemplate, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailVerifyEmailTemplate(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailVerifyEmailTemplate expands an instance of ConfigNotificationSendEmailVerifyEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailVerifyEmailTemplate(c *Client, f *ConfigNotificationSendEmailVerifyEmailTemplate, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.SenderLocalPart; !dcl.IsEmptyValueIndirect(v) {
m["senderLocalPart"] = v
}
if v := f.Subject; !dcl.IsEmptyValueIndirect(v) {
m["subject"] = v
}
if v := f.SenderDisplayName; !dcl.IsEmptyValueIndirect(v) {
m["senderDisplayName"] = v
}
if v := f.Body; !dcl.IsEmptyValueIndirect(v) {
m["body"] = v
}
if v := f.BodyFormat; !dcl.IsEmptyValueIndirect(v) {
m["bodyFormat"] = v
}
if v := f.ReplyTo; !dcl.IsEmptyValueIndirect(v) {
m["replyTo"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailVerifyEmailTemplate flattens an instance of ConfigNotificationSendEmailVerifyEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailVerifyEmailTemplate(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailVerifyEmailTemplate {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailVerifyEmailTemplate{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailVerifyEmailTemplate
}
r.SenderLocalPart = dcl.FlattenString(m["senderLocalPart"])
r.Subject = dcl.FlattenString(m["subject"])
r.SenderDisplayName = dcl.FlattenString(m["senderDisplayName"])
r.Body = dcl.FlattenString(m["body"])
r.BodyFormat = flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum(m["bodyFormat"])
r.ReplyTo = dcl.FlattenString(m["replyTo"])
r.Customized = dcl.FlattenBool(m["customized"])
return r
}
// expandConfigNotificationSendEmailChangeEmailTemplateMap expands the contents of ConfigNotificationSendEmailChangeEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailChangeEmailTemplateMap(c *Client, f map[string]ConfigNotificationSendEmailChangeEmailTemplate, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailChangeEmailTemplate(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailChangeEmailTemplateSlice expands the contents of ConfigNotificationSendEmailChangeEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailChangeEmailTemplateSlice(c *Client, f []ConfigNotificationSendEmailChangeEmailTemplate, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailChangeEmailTemplate(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailChangeEmailTemplateMap flattens the contents of ConfigNotificationSendEmailChangeEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailChangeEmailTemplateMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailChangeEmailTemplate {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailChangeEmailTemplate{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailChangeEmailTemplate{}
}
items := make(map[string]ConfigNotificationSendEmailChangeEmailTemplate)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailChangeEmailTemplate(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailChangeEmailTemplateSlice flattens the contents of ConfigNotificationSendEmailChangeEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailChangeEmailTemplateSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailChangeEmailTemplate {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailChangeEmailTemplate{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailChangeEmailTemplate{}
}
items := make([]ConfigNotificationSendEmailChangeEmailTemplate, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailChangeEmailTemplate(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailChangeEmailTemplate expands an instance of ConfigNotificationSendEmailChangeEmailTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailChangeEmailTemplate(c *Client, f *ConfigNotificationSendEmailChangeEmailTemplate, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.SenderLocalPart; !dcl.IsEmptyValueIndirect(v) {
m["senderLocalPart"] = v
}
if v := f.Subject; !dcl.IsEmptyValueIndirect(v) {
m["subject"] = v
}
if v := f.SenderDisplayName; !dcl.IsEmptyValueIndirect(v) {
m["senderDisplayName"] = v
}
if v := f.Body; !dcl.IsEmptyValueIndirect(v) {
m["body"] = v
}
if v := f.BodyFormat; !dcl.IsEmptyValueIndirect(v) {
m["bodyFormat"] = v
}
if v := f.ReplyTo; !dcl.IsEmptyValueIndirect(v) {
m["replyTo"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailChangeEmailTemplate flattens an instance of ConfigNotificationSendEmailChangeEmailTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailChangeEmailTemplate(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailChangeEmailTemplate {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailChangeEmailTemplate{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailChangeEmailTemplate
}
r.SenderLocalPart = dcl.FlattenString(m["senderLocalPart"])
r.Subject = dcl.FlattenString(m["subject"])
r.SenderDisplayName = dcl.FlattenString(m["senderDisplayName"])
r.Body = dcl.FlattenString(m["body"])
r.BodyFormat = flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum(m["bodyFormat"])
r.ReplyTo = dcl.FlattenString(m["replyTo"])
r.Customized = dcl.FlattenBool(m["customized"])
return r
}
// expandConfigNotificationSendEmailDnsInfoMap expands the contents of ConfigNotificationSendEmailDnsInfo into a JSON
// request object.
func expandConfigNotificationSendEmailDnsInfoMap(c *Client, f map[string]ConfigNotificationSendEmailDnsInfo, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailDnsInfo(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailDnsInfoSlice expands the contents of ConfigNotificationSendEmailDnsInfo into a JSON
// request object.
func expandConfigNotificationSendEmailDnsInfoSlice(c *Client, f []ConfigNotificationSendEmailDnsInfo, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailDnsInfo(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailDnsInfoMap flattens the contents of ConfigNotificationSendEmailDnsInfo from a JSON
// response object.
func flattenConfigNotificationSendEmailDnsInfoMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailDnsInfo {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailDnsInfo{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailDnsInfo{}
}
items := make(map[string]ConfigNotificationSendEmailDnsInfo)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailDnsInfo(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailDnsInfoSlice flattens the contents of ConfigNotificationSendEmailDnsInfo from a JSON
// response object.
func flattenConfigNotificationSendEmailDnsInfoSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailDnsInfo {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailDnsInfo{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailDnsInfo{}
}
items := make([]ConfigNotificationSendEmailDnsInfo, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailDnsInfo(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailDnsInfo expands an instance of ConfigNotificationSendEmailDnsInfo into a JSON
// request object.
func expandConfigNotificationSendEmailDnsInfo(c *Client, f *ConfigNotificationSendEmailDnsInfo, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.UseCustomDomain; !dcl.IsEmptyValueIndirect(v) {
m["useCustomDomain"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailDnsInfo flattens an instance of ConfigNotificationSendEmailDnsInfo from a JSON
// response object.
func flattenConfigNotificationSendEmailDnsInfo(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailDnsInfo {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailDnsInfo{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailDnsInfo
}
r.CustomDomain = dcl.FlattenString(m["customDomain"])
r.UseCustomDomain = dcl.FlattenBool(m["useCustomDomain"])
r.PendingCustomDomain = dcl.FlattenString(m["pendingCustomDomain"])
r.CustomDomainState = flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnum(m["customDomainState"])
r.DomainVerificationRequestTime = dcl.FlattenString(m["domainVerificationRequestTime"])
return r
}
// expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplateMap expands the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplateMap(c *Client, f map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice expands the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice(c *Client, f []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateMap flattens the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
items := make(map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice flattens the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
items := make([]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplate expands an instance of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate into a JSON
// request object.
func expandConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c *Client, f *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.SenderLocalPart; !dcl.IsEmptyValueIndirect(v) {
m["senderLocalPart"] = v
}
if v := f.Subject; !dcl.IsEmptyValueIndirect(v) {
m["subject"] = v
}
if v := f.SenderDisplayName; !dcl.IsEmptyValueIndirect(v) {
m["senderDisplayName"] = v
}
if v := f.Body; !dcl.IsEmptyValueIndirect(v) {
m["body"] = v
}
if v := f.BodyFormat; !dcl.IsEmptyValueIndirect(v) {
m["bodyFormat"] = v
}
if v := f.ReplyTo; !dcl.IsEmptyValueIndirect(v) {
m["replyTo"] = v
}
return m, nil
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplate flattens an instance of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate from a JSON
// response object.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplate(c *Client, i interface{}, res *Config) *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendEmailRevertSecondFactorAdditionTemplate
}
r.SenderLocalPart = dcl.FlattenString(m["senderLocalPart"])
r.Subject = dcl.FlattenString(m["subject"])
r.SenderDisplayName = dcl.FlattenString(m["senderDisplayName"])
r.Body = dcl.FlattenString(m["body"])
r.BodyFormat = flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum(m["bodyFormat"])
r.ReplyTo = dcl.FlattenString(m["replyTo"])
r.Customized = dcl.FlattenBool(m["customized"])
return r
}
// expandConfigNotificationSendSmsMap expands the contents of ConfigNotificationSendSms into a JSON
// request object.
func expandConfigNotificationSendSmsMap(c *Client, f map[string]ConfigNotificationSendSms, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendSms(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendSmsSlice expands the contents of ConfigNotificationSendSms into a JSON
// request object.
func expandConfigNotificationSendSmsSlice(c *Client, f []ConfigNotificationSendSms, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendSms(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendSmsMap flattens the contents of ConfigNotificationSendSms from a JSON
// response object.
func flattenConfigNotificationSendSmsMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendSms {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendSms{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendSms{}
}
items := make(map[string]ConfigNotificationSendSms)
for k, item := range a {
items[k] = *flattenConfigNotificationSendSms(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendSmsSlice flattens the contents of ConfigNotificationSendSms from a JSON
// response object.
func flattenConfigNotificationSendSmsSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendSms {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendSms{}
}
if len(a) == 0 {
return []ConfigNotificationSendSms{}
}
items := make([]ConfigNotificationSendSms, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendSms(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendSms expands an instance of ConfigNotificationSendSms into a JSON
// request object.
func expandConfigNotificationSendSms(c *Client, f *ConfigNotificationSendSms, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.UseDeviceLocale; !dcl.IsEmptyValueIndirect(v) {
m["useDeviceLocale"] = v
}
return m, nil
}
// flattenConfigNotificationSendSms flattens an instance of ConfigNotificationSendSms from a JSON
// response object.
func flattenConfigNotificationSendSms(c *Client, i interface{}, res *Config) *ConfigNotificationSendSms {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendSms{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendSms
}
r.UseDeviceLocale = dcl.FlattenBool(m["useDeviceLocale"])
r.SmsTemplate = flattenConfigNotificationSendSmsSmsTemplate(c, m["smsTemplate"], res)
return r
}
// expandConfigNotificationSendSmsSmsTemplateMap expands the contents of ConfigNotificationSendSmsSmsTemplate into a JSON
// request object.
func expandConfigNotificationSendSmsSmsTemplateMap(c *Client, f map[string]ConfigNotificationSendSmsSmsTemplate, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigNotificationSendSmsSmsTemplate(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigNotificationSendSmsSmsTemplateSlice expands the contents of ConfigNotificationSendSmsSmsTemplate into a JSON
// request object.
func expandConfigNotificationSendSmsSmsTemplateSlice(c *Client, f []ConfigNotificationSendSmsSmsTemplate, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigNotificationSendSmsSmsTemplate(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigNotificationSendSmsSmsTemplateMap flattens the contents of ConfigNotificationSendSmsSmsTemplate from a JSON
// response object.
func flattenConfigNotificationSendSmsSmsTemplateMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendSmsSmsTemplate {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendSmsSmsTemplate{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendSmsSmsTemplate{}
}
items := make(map[string]ConfigNotificationSendSmsSmsTemplate)
for k, item := range a {
items[k] = *flattenConfigNotificationSendSmsSmsTemplate(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigNotificationSendSmsSmsTemplateSlice flattens the contents of ConfigNotificationSendSmsSmsTemplate from a JSON
// response object.
func flattenConfigNotificationSendSmsSmsTemplateSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendSmsSmsTemplate {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendSmsSmsTemplate{}
}
if len(a) == 0 {
return []ConfigNotificationSendSmsSmsTemplate{}
}
items := make([]ConfigNotificationSendSmsSmsTemplate, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendSmsSmsTemplate(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigNotificationSendSmsSmsTemplate expands an instance of ConfigNotificationSendSmsSmsTemplate into a JSON
// request object.
func expandConfigNotificationSendSmsSmsTemplate(c *Client, f *ConfigNotificationSendSmsSmsTemplate, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
return m, nil
}
// flattenConfigNotificationSendSmsSmsTemplate flattens an instance of ConfigNotificationSendSmsSmsTemplate from a JSON
// response object.
func flattenConfigNotificationSendSmsSmsTemplate(c *Client, i interface{}, res *Config) *ConfigNotificationSendSmsSmsTemplate {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigNotificationSendSmsSmsTemplate{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigNotificationSendSmsSmsTemplate
}
r.Content = dcl.FlattenString(m["content"])
return r
}
// expandConfigQuotaMap expands the contents of ConfigQuota into a JSON
// request object.
func expandConfigQuotaMap(c *Client, f map[string]ConfigQuota, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigQuota(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigQuotaSlice expands the contents of ConfigQuota into a JSON
// request object.
func expandConfigQuotaSlice(c *Client, f []ConfigQuota, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigQuota(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigQuotaMap flattens the contents of ConfigQuota from a JSON
// response object.
func flattenConfigQuotaMap(c *Client, i interface{}, res *Config) map[string]ConfigQuota {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigQuota{}
}
if len(a) == 0 {
return map[string]ConfigQuota{}
}
items := make(map[string]ConfigQuota)
for k, item := range a {
items[k] = *flattenConfigQuota(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigQuotaSlice flattens the contents of ConfigQuota from a JSON
// response object.
func flattenConfigQuotaSlice(c *Client, i interface{}, res *Config) []ConfigQuota {
a, ok := i.([]interface{})
if !ok {
return []ConfigQuota{}
}
if len(a) == 0 {
return []ConfigQuota{}
}
items := make([]ConfigQuota, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigQuota(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigQuota expands an instance of ConfigQuota into a JSON
// request object.
func expandConfigQuota(c *Client, f *ConfigQuota, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigQuotaSignUpQuotaConfig(c, f.SignUpQuotaConfig, res); err != nil {
return nil, fmt.Errorf("error expanding SignUpQuotaConfig into signUpQuotaConfig: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["signUpQuotaConfig"] = v
}
return m, nil
}
// flattenConfigQuota flattens an instance of ConfigQuota from a JSON
// response object.
func flattenConfigQuota(c *Client, i interface{}, res *Config) *ConfigQuota {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigQuota{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigQuota
}
r.SignUpQuotaConfig = flattenConfigQuotaSignUpQuotaConfig(c, m["signUpQuotaConfig"], res)
return r
}
// expandConfigQuotaSignUpQuotaConfigMap expands the contents of ConfigQuotaSignUpQuotaConfig into a JSON
// request object.
func expandConfigQuotaSignUpQuotaConfigMap(c *Client, f map[string]ConfigQuotaSignUpQuotaConfig, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigQuotaSignUpQuotaConfig(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigQuotaSignUpQuotaConfigSlice expands the contents of ConfigQuotaSignUpQuotaConfig into a JSON
// request object.
func expandConfigQuotaSignUpQuotaConfigSlice(c *Client, f []ConfigQuotaSignUpQuotaConfig, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigQuotaSignUpQuotaConfig(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigQuotaSignUpQuotaConfigMap flattens the contents of ConfigQuotaSignUpQuotaConfig from a JSON
// response object.
func flattenConfigQuotaSignUpQuotaConfigMap(c *Client, i interface{}, res *Config) map[string]ConfigQuotaSignUpQuotaConfig {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigQuotaSignUpQuotaConfig{}
}
if len(a) == 0 {
return map[string]ConfigQuotaSignUpQuotaConfig{}
}
items := make(map[string]ConfigQuotaSignUpQuotaConfig)
for k, item := range a {
items[k] = *flattenConfigQuotaSignUpQuotaConfig(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigQuotaSignUpQuotaConfigSlice flattens the contents of ConfigQuotaSignUpQuotaConfig from a JSON
// response object.
func flattenConfigQuotaSignUpQuotaConfigSlice(c *Client, i interface{}, res *Config) []ConfigQuotaSignUpQuotaConfig {
a, ok := i.([]interface{})
if !ok {
return []ConfigQuotaSignUpQuotaConfig{}
}
if len(a) == 0 {
return []ConfigQuotaSignUpQuotaConfig{}
}
items := make([]ConfigQuotaSignUpQuotaConfig, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigQuotaSignUpQuotaConfig(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigQuotaSignUpQuotaConfig expands an instance of ConfigQuotaSignUpQuotaConfig into a JSON
// request object.
func expandConfigQuotaSignUpQuotaConfig(c *Client, f *ConfigQuotaSignUpQuotaConfig, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Quota; !dcl.IsEmptyValueIndirect(v) {
m["quota"] = v
}
if v := f.StartTime; !dcl.IsEmptyValueIndirect(v) {
m["startTime"] = v
}
if v := f.QuotaDuration; !dcl.IsEmptyValueIndirect(v) {
m["quotaDuration"] = v
}
return m, nil
}
// flattenConfigQuotaSignUpQuotaConfig flattens an instance of ConfigQuotaSignUpQuotaConfig from a JSON
// response object.
func flattenConfigQuotaSignUpQuotaConfig(c *Client, i interface{}, res *Config) *ConfigQuotaSignUpQuotaConfig {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigQuotaSignUpQuotaConfig{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigQuotaSignUpQuotaConfig
}
r.Quota = dcl.FlattenInteger(m["quota"])
r.StartTime = dcl.FlattenString(m["startTime"])
r.QuotaDuration = dcl.FlattenString(m["quotaDuration"])
return r
}
// expandConfigMonitoringMap expands the contents of ConfigMonitoring into a JSON
// request object.
func expandConfigMonitoringMap(c *Client, f map[string]ConfigMonitoring, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigMonitoring(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigMonitoringSlice expands the contents of ConfigMonitoring into a JSON
// request object.
func expandConfigMonitoringSlice(c *Client, f []ConfigMonitoring, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigMonitoring(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigMonitoringMap flattens the contents of ConfigMonitoring from a JSON
// response object.
func flattenConfigMonitoringMap(c *Client, i interface{}, res *Config) map[string]ConfigMonitoring {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigMonitoring{}
}
if len(a) == 0 {
return map[string]ConfigMonitoring{}
}
items := make(map[string]ConfigMonitoring)
for k, item := range a {
items[k] = *flattenConfigMonitoring(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigMonitoringSlice flattens the contents of ConfigMonitoring from a JSON
// response object.
func flattenConfigMonitoringSlice(c *Client, i interface{}, res *Config) []ConfigMonitoring {
a, ok := i.([]interface{})
if !ok {
return []ConfigMonitoring{}
}
if len(a) == 0 {
return []ConfigMonitoring{}
}
items := make([]ConfigMonitoring, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigMonitoring(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigMonitoring expands an instance of ConfigMonitoring into a JSON
// request object.
func expandConfigMonitoring(c *Client, f *ConfigMonitoring, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigMonitoringRequestLogging(c, f.RequestLogging, res); err != nil {
return nil, fmt.Errorf("error expanding RequestLogging into requestLogging: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["requestLogging"] = v
}
return m, nil
}
// flattenConfigMonitoring flattens an instance of ConfigMonitoring from a JSON
// response object.
func flattenConfigMonitoring(c *Client, i interface{}, res *Config) *ConfigMonitoring {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigMonitoring{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigMonitoring
}
r.RequestLogging = flattenConfigMonitoringRequestLogging(c, m["requestLogging"], res)
return r
}
// expandConfigMonitoringRequestLoggingMap expands the contents of ConfigMonitoringRequestLogging into a JSON
// request object.
func expandConfigMonitoringRequestLoggingMap(c *Client, f map[string]ConfigMonitoringRequestLogging, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigMonitoringRequestLogging(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigMonitoringRequestLoggingSlice expands the contents of ConfigMonitoringRequestLogging into a JSON
// request object.
func expandConfigMonitoringRequestLoggingSlice(c *Client, f []ConfigMonitoringRequestLogging, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigMonitoringRequestLogging(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigMonitoringRequestLoggingMap flattens the contents of ConfigMonitoringRequestLogging from a JSON
// response object.
func flattenConfigMonitoringRequestLoggingMap(c *Client, i interface{}, res *Config) map[string]ConfigMonitoringRequestLogging {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigMonitoringRequestLogging{}
}
if len(a) == 0 {
return map[string]ConfigMonitoringRequestLogging{}
}
items := make(map[string]ConfigMonitoringRequestLogging)
for k, item := range a {
items[k] = *flattenConfigMonitoringRequestLogging(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigMonitoringRequestLoggingSlice flattens the contents of ConfigMonitoringRequestLogging from a JSON
// response object.
func flattenConfigMonitoringRequestLoggingSlice(c *Client, i interface{}, res *Config) []ConfigMonitoringRequestLogging {
a, ok := i.([]interface{})
if !ok {
return []ConfigMonitoringRequestLogging{}
}
if len(a) == 0 {
return []ConfigMonitoringRequestLogging{}
}
items := make([]ConfigMonitoringRequestLogging, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigMonitoringRequestLogging(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigMonitoringRequestLogging expands an instance of ConfigMonitoringRequestLogging into a JSON
// request object.
func expandConfigMonitoringRequestLogging(c *Client, f *ConfigMonitoringRequestLogging, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.Enabled; !dcl.IsEmptyValueIndirect(v) {
m["enabled"] = v
}
return m, nil
}
// flattenConfigMonitoringRequestLogging flattens an instance of ConfigMonitoringRequestLogging from a JSON
// response object.
func flattenConfigMonitoringRequestLogging(c *Client, i interface{}, res *Config) *ConfigMonitoringRequestLogging {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigMonitoringRequestLogging{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigMonitoringRequestLogging
}
r.Enabled = dcl.FlattenBool(m["enabled"])
return r
}
// expandConfigMultiTenantMap expands the contents of ConfigMultiTenant into a JSON
// request object.
func expandConfigMultiTenantMap(c *Client, f map[string]ConfigMultiTenant, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigMultiTenant(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigMultiTenantSlice expands the contents of ConfigMultiTenant into a JSON
// request object.
func expandConfigMultiTenantSlice(c *Client, f []ConfigMultiTenant, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigMultiTenant(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigMultiTenantMap flattens the contents of ConfigMultiTenant from a JSON
// response object.
func flattenConfigMultiTenantMap(c *Client, i interface{}, res *Config) map[string]ConfigMultiTenant {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigMultiTenant{}
}
if len(a) == 0 {
return map[string]ConfigMultiTenant{}
}
items := make(map[string]ConfigMultiTenant)
for k, item := range a {
items[k] = *flattenConfigMultiTenant(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigMultiTenantSlice flattens the contents of ConfigMultiTenant from a JSON
// response object.
func flattenConfigMultiTenantSlice(c *Client, i interface{}, res *Config) []ConfigMultiTenant {
a, ok := i.([]interface{})
if !ok {
return []ConfigMultiTenant{}
}
if len(a) == 0 {
return []ConfigMultiTenant{}
}
items := make([]ConfigMultiTenant, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigMultiTenant(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigMultiTenant expands an instance of ConfigMultiTenant into a JSON
// request object.
func expandConfigMultiTenant(c *Client, f *ConfigMultiTenant, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.AllowTenants; !dcl.IsEmptyValueIndirect(v) {
m["allowTenants"] = v
}
if v := f.DefaultTenantLocation; !dcl.IsEmptyValueIndirect(v) {
m["defaultTenantLocation"] = v
}
return m, nil
}
// flattenConfigMultiTenant flattens an instance of ConfigMultiTenant from a JSON
// response object.
func flattenConfigMultiTenant(c *Client, i interface{}, res *Config) *ConfigMultiTenant {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigMultiTenant{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigMultiTenant
}
r.AllowTenants = dcl.FlattenBool(m["allowTenants"])
r.DefaultTenantLocation = dcl.FlattenString(m["defaultTenantLocation"])
return r
}
// expandConfigClientMap expands the contents of ConfigClient into a JSON
// request object.
func expandConfigClientMap(c *Client, f map[string]ConfigClient, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigClient(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigClientSlice expands the contents of ConfigClient into a JSON
// request object.
func expandConfigClientSlice(c *Client, f []ConfigClient, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigClient(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigClientMap flattens the contents of ConfigClient from a JSON
// response object.
func flattenConfigClientMap(c *Client, i interface{}, res *Config) map[string]ConfigClient {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigClient{}
}
if len(a) == 0 {
return map[string]ConfigClient{}
}
items := make(map[string]ConfigClient)
for k, item := range a {
items[k] = *flattenConfigClient(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigClientSlice flattens the contents of ConfigClient from a JSON
// response object.
func flattenConfigClientSlice(c *Client, i interface{}, res *Config) []ConfigClient {
a, ok := i.([]interface{})
if !ok {
return []ConfigClient{}
}
if len(a) == 0 {
return []ConfigClient{}
}
items := make([]ConfigClient, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigClient(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigClient expands an instance of ConfigClient into a JSON
// request object.
func expandConfigClient(c *Client, f *ConfigClient, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigClientPermissions(c, f.Permissions, res); err != nil {
return nil, fmt.Errorf("error expanding Permissions into permissions: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["permissions"] = v
}
return m, nil
}
// flattenConfigClient flattens an instance of ConfigClient from a JSON
// response object.
func flattenConfigClient(c *Client, i interface{}, res *Config) *ConfigClient {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigClient{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigClient
}
r.ApiKey = dcl.FlattenString(m["apiKey"])
r.Permissions = flattenConfigClientPermissions(c, m["permissions"], res)
r.FirebaseSubdomain = dcl.FlattenString(m["firebaseSubdomain"])
return r
}
// expandConfigClientPermissionsMap expands the contents of ConfigClientPermissions into a JSON
// request object.
func expandConfigClientPermissionsMap(c *Client, f map[string]ConfigClientPermissions, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigClientPermissions(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigClientPermissionsSlice expands the contents of ConfigClientPermissions into a JSON
// request object.
func expandConfigClientPermissionsSlice(c *Client, f []ConfigClientPermissions, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigClientPermissions(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigClientPermissionsMap flattens the contents of ConfigClientPermissions from a JSON
// response object.
func flattenConfigClientPermissionsMap(c *Client, i interface{}, res *Config) map[string]ConfigClientPermissions {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigClientPermissions{}
}
if len(a) == 0 {
return map[string]ConfigClientPermissions{}
}
items := make(map[string]ConfigClientPermissions)
for k, item := range a {
items[k] = *flattenConfigClientPermissions(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigClientPermissionsSlice flattens the contents of ConfigClientPermissions from a JSON
// response object.
func flattenConfigClientPermissionsSlice(c *Client, i interface{}, res *Config) []ConfigClientPermissions {
a, ok := i.([]interface{})
if !ok {
return []ConfigClientPermissions{}
}
if len(a) == 0 {
return []ConfigClientPermissions{}
}
items := make([]ConfigClientPermissions, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigClientPermissions(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigClientPermissions expands an instance of ConfigClientPermissions into a JSON
// request object.
func expandConfigClientPermissions(c *Client, f *ConfigClientPermissions, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.DisabledUserSignup; !dcl.IsEmptyValueIndirect(v) {
m["disabledUserSignup"] = v
}
if v := f.DisabledUserDeletion; !dcl.IsEmptyValueIndirect(v) {
m["disabledUserDeletion"] = v
}
return m, nil
}
// flattenConfigClientPermissions flattens an instance of ConfigClientPermissions from a JSON
// response object.
func flattenConfigClientPermissions(c *Client, i interface{}, res *Config) *ConfigClientPermissions {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigClientPermissions{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigClientPermissions
}
r.DisabledUserSignup = dcl.FlattenBool(m["disabledUserSignup"])
r.DisabledUserDeletion = dcl.FlattenBool(m["disabledUserDeletion"])
return r
}
// expandConfigMfaMap expands the contents of ConfigMfa into a JSON
// request object.
func expandConfigMfaMap(c *Client, f map[string]ConfigMfa, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigMfa(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigMfaSlice expands the contents of ConfigMfa into a JSON
// request object.
func expandConfigMfaSlice(c *Client, f []ConfigMfa, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigMfa(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigMfaMap flattens the contents of ConfigMfa from a JSON
// response object.
func flattenConfigMfaMap(c *Client, i interface{}, res *Config) map[string]ConfigMfa {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigMfa{}
}
if len(a) == 0 {
return map[string]ConfigMfa{}
}
items := make(map[string]ConfigMfa)
for k, item := range a {
items[k] = *flattenConfigMfa(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigMfaSlice flattens the contents of ConfigMfa from a JSON
// response object.
func flattenConfigMfaSlice(c *Client, i interface{}, res *Config) []ConfigMfa {
a, ok := i.([]interface{})
if !ok {
return []ConfigMfa{}
}
if len(a) == 0 {
return []ConfigMfa{}
}
items := make([]ConfigMfa, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigMfa(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigMfa expands an instance of ConfigMfa into a JSON
// request object.
func expandConfigMfa(c *Client, f *ConfigMfa, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.State; !dcl.IsEmptyValueIndirect(v) {
m["state"] = v
}
return m, nil
}
// flattenConfigMfa flattens an instance of ConfigMfa from a JSON
// response object.
func flattenConfigMfa(c *Client, i interface{}, res *Config) *ConfigMfa {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigMfa{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigMfa
}
r.State = flattenConfigMfaStateEnum(m["state"])
return r
}
// expandConfigBlockingFunctionsMap expands the contents of ConfigBlockingFunctions into a JSON
// request object.
func expandConfigBlockingFunctionsMap(c *Client, f map[string]ConfigBlockingFunctions, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigBlockingFunctions(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigBlockingFunctionsSlice expands the contents of ConfigBlockingFunctions into a JSON
// request object.
func expandConfigBlockingFunctionsSlice(c *Client, f []ConfigBlockingFunctions, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigBlockingFunctions(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigBlockingFunctionsMap flattens the contents of ConfigBlockingFunctions from a JSON
// response object.
func flattenConfigBlockingFunctionsMap(c *Client, i interface{}, res *Config) map[string]ConfigBlockingFunctions {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigBlockingFunctions{}
}
if len(a) == 0 {
return map[string]ConfigBlockingFunctions{}
}
items := make(map[string]ConfigBlockingFunctions)
for k, item := range a {
items[k] = *flattenConfigBlockingFunctions(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigBlockingFunctionsSlice flattens the contents of ConfigBlockingFunctions from a JSON
// response object.
func flattenConfigBlockingFunctionsSlice(c *Client, i interface{}, res *Config) []ConfigBlockingFunctions {
a, ok := i.([]interface{})
if !ok {
return []ConfigBlockingFunctions{}
}
if len(a) == 0 {
return []ConfigBlockingFunctions{}
}
items := make([]ConfigBlockingFunctions, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigBlockingFunctions(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigBlockingFunctions expands an instance of ConfigBlockingFunctions into a JSON
// request object.
func expandConfigBlockingFunctions(c *Client, f *ConfigBlockingFunctions, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v, err := expandConfigBlockingFunctionsTriggersMap(c, f.Triggers, res); err != nil {
return nil, fmt.Errorf("error expanding Triggers into triggers: %w", err)
} else if !dcl.IsEmptyValueIndirect(v) {
m["triggers"] = v
}
return m, nil
}
// flattenConfigBlockingFunctions flattens an instance of ConfigBlockingFunctions from a JSON
// response object.
func flattenConfigBlockingFunctions(c *Client, i interface{}, res *Config) *ConfigBlockingFunctions {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigBlockingFunctions{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigBlockingFunctions
}
r.Triggers = flattenConfigBlockingFunctionsTriggersMap(c, m["triggers"], res)
return r
}
// expandConfigBlockingFunctionsTriggersMap expands the contents of ConfigBlockingFunctionsTriggers into a JSON
// request object.
func expandConfigBlockingFunctionsTriggersMap(c *Client, f map[string]ConfigBlockingFunctionsTriggers, res *Config) (map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := make(map[string]interface{})
for k, item := range f {
i, err := expandConfigBlockingFunctionsTriggers(c, &item, res)
if err != nil {
return nil, err
}
if i != nil {
items[k] = i
}
}
return items, nil
}
// expandConfigBlockingFunctionsTriggersSlice expands the contents of ConfigBlockingFunctionsTriggers into a JSON
// request object.
func expandConfigBlockingFunctionsTriggersSlice(c *Client, f []ConfigBlockingFunctionsTriggers, res *Config) ([]map[string]interface{}, error) {
if f == nil {
return nil, nil
}
items := []map[string]interface{}{}
for _, item := range f {
i, err := expandConfigBlockingFunctionsTriggers(c, &item, res)
if err != nil {
return nil, err
}
items = append(items, i)
}
return items, nil
}
// flattenConfigBlockingFunctionsTriggersMap flattens the contents of ConfigBlockingFunctionsTriggers from a JSON
// response object.
func flattenConfigBlockingFunctionsTriggersMap(c *Client, i interface{}, res *Config) map[string]ConfigBlockingFunctionsTriggers {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigBlockingFunctionsTriggers{}
}
if len(a) == 0 {
return map[string]ConfigBlockingFunctionsTriggers{}
}
items := make(map[string]ConfigBlockingFunctionsTriggers)
for k, item := range a {
items[k] = *flattenConfigBlockingFunctionsTriggers(c, item.(map[string]interface{}), res)
}
return items
}
// flattenConfigBlockingFunctionsTriggersSlice flattens the contents of ConfigBlockingFunctionsTriggers from a JSON
// response object.
func flattenConfigBlockingFunctionsTriggersSlice(c *Client, i interface{}, res *Config) []ConfigBlockingFunctionsTriggers {
a, ok := i.([]interface{})
if !ok {
return []ConfigBlockingFunctionsTriggers{}
}
if len(a) == 0 {
return []ConfigBlockingFunctionsTriggers{}
}
items := make([]ConfigBlockingFunctionsTriggers, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigBlockingFunctionsTriggers(c, item.(map[string]interface{}), res))
}
return items
}
// expandConfigBlockingFunctionsTriggers expands an instance of ConfigBlockingFunctionsTriggers into a JSON
// request object.
func expandConfigBlockingFunctionsTriggers(c *Client, f *ConfigBlockingFunctionsTriggers, res *Config) (map[string]interface{}, error) {
if dcl.IsEmptyValueIndirect(f) {
return nil, nil
}
m := make(map[string]interface{})
if v := f.FunctionUri; !dcl.IsEmptyValueIndirect(v) {
m["functionUri"] = v
}
return m, nil
}
// flattenConfigBlockingFunctionsTriggers flattens an instance of ConfigBlockingFunctionsTriggers from a JSON
// response object.
func flattenConfigBlockingFunctionsTriggers(c *Client, i interface{}, res *Config) *ConfigBlockingFunctionsTriggers {
m, ok := i.(map[string]interface{})
if !ok {
return nil
}
r := &ConfigBlockingFunctionsTriggers{}
if dcl.IsEmptyValueIndirect(i) {
return EmptyConfigBlockingFunctionsTriggers
}
r.FunctionUri = dcl.FlattenString(m["functionUri"])
r.UpdateTime = dcl.FlattenString(m["updateTime"])
return r
}
// flattenConfigSignInEmailHashConfigAlgorithmEnumMap flattens the contents of ConfigSignInEmailHashConfigAlgorithmEnum from a JSON
// response object.
func flattenConfigSignInEmailHashConfigAlgorithmEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInEmailHashConfigAlgorithmEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInEmailHashConfigAlgorithmEnum{}
}
if len(a) == 0 {
return map[string]ConfigSignInEmailHashConfigAlgorithmEnum{}
}
items := make(map[string]ConfigSignInEmailHashConfigAlgorithmEnum)
for k, item := range a {
items[k] = *flattenConfigSignInEmailHashConfigAlgorithmEnum(item.(interface{}))
}
return items
}
// flattenConfigSignInEmailHashConfigAlgorithmEnumSlice flattens the contents of ConfigSignInEmailHashConfigAlgorithmEnum from a JSON
// response object.
func flattenConfigSignInEmailHashConfigAlgorithmEnumSlice(c *Client, i interface{}, res *Config) []ConfigSignInEmailHashConfigAlgorithmEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInEmailHashConfigAlgorithmEnum{}
}
if len(a) == 0 {
return []ConfigSignInEmailHashConfigAlgorithmEnum{}
}
items := make([]ConfigSignInEmailHashConfigAlgorithmEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInEmailHashConfigAlgorithmEnum(item.(interface{})))
}
return items
}
// flattenConfigSignInEmailHashConfigAlgorithmEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigSignInEmailHashConfigAlgorithmEnum with the same value as that string.
func flattenConfigSignInEmailHashConfigAlgorithmEnum(i interface{}) *ConfigSignInEmailHashConfigAlgorithmEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigSignInEmailHashConfigAlgorithmEnumRef(s)
}
// flattenConfigSignInHashConfigAlgorithmEnumMap flattens the contents of ConfigSignInHashConfigAlgorithmEnum from a JSON
// response object.
func flattenConfigSignInHashConfigAlgorithmEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigSignInHashConfigAlgorithmEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSignInHashConfigAlgorithmEnum{}
}
if len(a) == 0 {
return map[string]ConfigSignInHashConfigAlgorithmEnum{}
}
items := make(map[string]ConfigSignInHashConfigAlgorithmEnum)
for k, item := range a {
items[k] = *flattenConfigSignInHashConfigAlgorithmEnum(item.(interface{}))
}
return items
}
// flattenConfigSignInHashConfigAlgorithmEnumSlice flattens the contents of ConfigSignInHashConfigAlgorithmEnum from a JSON
// response object.
func flattenConfigSignInHashConfigAlgorithmEnumSlice(c *Client, i interface{}, res *Config) []ConfigSignInHashConfigAlgorithmEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigSignInHashConfigAlgorithmEnum{}
}
if len(a) == 0 {
return []ConfigSignInHashConfigAlgorithmEnum{}
}
items := make([]ConfigSignInHashConfigAlgorithmEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSignInHashConfigAlgorithmEnum(item.(interface{})))
}
return items
}
// flattenConfigSignInHashConfigAlgorithmEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigSignInHashConfigAlgorithmEnum with the same value as that string.
func flattenConfigSignInHashConfigAlgorithmEnum(i interface{}) *ConfigSignInHashConfigAlgorithmEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigSignInHashConfigAlgorithmEnumRef(s)
}
// flattenConfigNotificationSendEmailMethodEnumMap flattens the contents of ConfigNotificationSendEmailMethodEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailMethodEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailMethodEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailMethodEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailMethodEnum{}
}
items := make(map[string]ConfigNotificationSendEmailMethodEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailMethodEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailMethodEnumSlice flattens the contents of ConfigNotificationSendEmailMethodEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailMethodEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailMethodEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailMethodEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailMethodEnum{}
}
items := make([]ConfigNotificationSendEmailMethodEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailMethodEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailMethodEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailMethodEnum with the same value as that string.
func flattenConfigNotificationSendEmailMethodEnum(i interface{}) *ConfigNotificationSendEmailMethodEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailMethodEnumRef(s)
}
// flattenConfigNotificationSendEmailSmtpSecurityModeEnumMap flattens the contents of ConfigNotificationSendEmailSmtpSecurityModeEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailSmtpSecurityModeEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailSmtpSecurityModeEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailSmtpSecurityModeEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailSmtpSecurityModeEnum{}
}
items := make(map[string]ConfigNotificationSendEmailSmtpSecurityModeEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailSmtpSecurityModeEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailSmtpSecurityModeEnumSlice flattens the contents of ConfigNotificationSendEmailSmtpSecurityModeEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailSmtpSecurityModeEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailSmtpSecurityModeEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailSmtpSecurityModeEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailSmtpSecurityModeEnum{}
}
items := make([]ConfigNotificationSendEmailSmtpSecurityModeEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailSmtpSecurityModeEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailSmtpSecurityModeEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailSmtpSecurityModeEnum with the same value as that string.
func flattenConfigNotificationSendEmailSmtpSecurityModeEnum(i interface{}) *ConfigNotificationSendEmailSmtpSecurityModeEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailSmtpSecurityModeEnumRef(s)
}
// flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnumMap flattens the contents of ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum{}
}
items := make(map[string]ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnumSlice flattens the contents of ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum{}
}
items := make([]ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum with the same value as that string.
func flattenConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum(i interface{}) *ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailResetPasswordTemplateBodyFormatEnumRef(s)
}
// flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnumMap flattens the contents of ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum{}
}
items := make(map[string]ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnumSlice flattens the contents of ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum{}
}
items := make([]ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum with the same value as that string.
func flattenConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum(i interface{}) *ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailVerifyEmailTemplateBodyFormatEnumRef(s)
}
// flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnumMap flattens the contents of ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum{}
}
items := make(map[string]ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnumSlice flattens the contents of ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum{}
}
items := make([]ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum with the same value as that string.
func flattenConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum(i interface{}) *ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailChangeEmailTemplateBodyFormatEnumRef(s)
}
// flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnumMap flattens the contents of ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum{}
}
items := make(map[string]ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnumSlice flattens the contents of ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum{}
}
items := make([]ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum with the same value as that string.
func flattenConfigNotificationSendEmailDnsInfoCustomDomainStateEnum(i interface{}) *ConfigNotificationSendEmailDnsInfoCustomDomainStateEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailDnsInfoCustomDomainStateEnumRef(s)
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnumMap flattens the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum{}
}
items := make(map[string]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum)
for k, item := range a {
items[k] = *flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum(item.(interface{}))
}
return items
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnumSlice flattens the contents of ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum from a JSON
// response object.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnumSlice(c *Client, i interface{}, res *Config) []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum{}
}
if len(a) == 0 {
return []ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum{}
}
items := make([]ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum(item.(interface{})))
}
return items
}
// flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum with the same value as that string.
func flattenConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum(i interface{}) *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigNotificationSendEmailRevertSecondFactorAdditionTemplateBodyFormatEnumRef(s)
}
// flattenConfigSubtypeEnumMap flattens the contents of ConfigSubtypeEnum from a JSON
// response object.
func flattenConfigSubtypeEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigSubtypeEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigSubtypeEnum{}
}
if len(a) == 0 {
return map[string]ConfigSubtypeEnum{}
}
items := make(map[string]ConfigSubtypeEnum)
for k, item := range a {
items[k] = *flattenConfigSubtypeEnum(item.(interface{}))
}
return items
}
// flattenConfigSubtypeEnumSlice flattens the contents of ConfigSubtypeEnum from a JSON
// response object.
func flattenConfigSubtypeEnumSlice(c *Client, i interface{}, res *Config) []ConfigSubtypeEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigSubtypeEnum{}
}
if len(a) == 0 {
return []ConfigSubtypeEnum{}
}
items := make([]ConfigSubtypeEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigSubtypeEnum(item.(interface{})))
}
return items
}
// flattenConfigSubtypeEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigSubtypeEnum with the same value as that string.
func flattenConfigSubtypeEnum(i interface{}) *ConfigSubtypeEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigSubtypeEnumRef(s)
}
// flattenConfigMfaStateEnumMap flattens the contents of ConfigMfaStateEnum from a JSON
// response object.
func flattenConfigMfaStateEnumMap(c *Client, i interface{}, res *Config) map[string]ConfigMfaStateEnum {
a, ok := i.(map[string]interface{})
if !ok {
return map[string]ConfigMfaStateEnum{}
}
if len(a) == 0 {
return map[string]ConfigMfaStateEnum{}
}
items := make(map[string]ConfigMfaStateEnum)
for k, item := range a {
items[k] = *flattenConfigMfaStateEnum(item.(interface{}))
}
return items
}
// flattenConfigMfaStateEnumSlice flattens the contents of ConfigMfaStateEnum from a JSON
// response object.
func flattenConfigMfaStateEnumSlice(c *Client, i interface{}, res *Config) []ConfigMfaStateEnum {
a, ok := i.([]interface{})
if !ok {
return []ConfigMfaStateEnum{}
}
if len(a) == 0 {
return []ConfigMfaStateEnum{}
}
items := make([]ConfigMfaStateEnum, 0, len(a))
for _, item := range a {
items = append(items, *flattenConfigMfaStateEnum(item.(interface{})))
}
return items
}
// flattenConfigMfaStateEnum asserts that an interface is a string, and returns a
// pointer to a *ConfigMfaStateEnum with the same value as that string.
func flattenConfigMfaStateEnum(i interface{}) *ConfigMfaStateEnum {
s, ok := i.(string)
if !ok {
return nil
}
return ConfigMfaStateEnumRef(s)
}
// This function returns a matcher that checks whether a serialized resource matches this resource
// in its parameters (as defined by the fields in a Get, which definitionally define resource
// identity). This is useful in extracting the element from a List call.
func (r *Config) matcher(c *Client) func([]byte) bool {
return func(b []byte) bool {
cr, err := unmarshalConfig(b, c, r)
if err != nil {
c.Config.Logger.Warning("failed to unmarshal provided resource in matcher.")
return false
}
nr := r.urlNormalized()
ncr := cr.urlNormalized()
c.Config.Logger.Infof("looking for %v\nin %v", nr, ncr)
if nr.Project == nil && ncr.Project == nil {
c.Config.Logger.Info("Both Project fields null - considering equal.")
} else if nr.Project == nil || ncr.Project == nil {
c.Config.Logger.Info("Only one Project field is null - considering unequal.")
return false
} else if *nr.Project != *ncr.Project {
return false
}
return true
}
}
type configDiff struct {
// The diff should include one or the other of RequiresRecreate or UpdateOp.
RequiresRecreate bool
UpdateOp configApiOperation
FieldName string // used for error logging
}
func convertFieldDiffsToConfigDiffs(config *dcl.Config, fds []*dcl.FieldDiff, opts []dcl.ApplyOption) ([]configDiff, error) {
opNamesToFieldDiffs := make(map[string][]*dcl.FieldDiff)
// Map each operation name to the field diffs associated with it.
for _, fd := range fds {
for _, ro := range fd.ResultingOperation {
if fieldDiffs, ok := opNamesToFieldDiffs[ro]; ok {
fieldDiffs = append(fieldDiffs, fd)
opNamesToFieldDiffs[ro] = fieldDiffs
} else {
config.Logger.Infof("%s required due to diff: %v", ro, fd)
opNamesToFieldDiffs[ro] = []*dcl.FieldDiff{fd}
}
}
}
var diffs []configDiff
// For each operation name, create a configDiff which contains the operation.
for opName, fieldDiffs := range opNamesToFieldDiffs {
// Use the first field diff's field name for logging required recreate error.
diff := configDiff{FieldName: fieldDiffs[0].FieldName}
if opName == "Recreate" {
diff.RequiresRecreate = true
} else {
apiOp, err := convertOpNameToConfigApiOperation(opName, fieldDiffs, opts...)
if err != nil {
return diffs, err
}
diff.UpdateOp = apiOp
}
diffs = append(diffs, diff)
}
return diffs, nil
}
func convertOpNameToConfigApiOperation(opName string, fieldDiffs []*dcl.FieldDiff, opts ...dcl.ApplyOption) (configApiOperation, error) {
switch opName {
case "updateConfigUpdateProjectConfigOperation":
return &updateConfigUpdateProjectConfigOperation{FieldDiffs: fieldDiffs}, nil
default:
return nil, fmt.Errorf("no such operation with name: %v", opName)
}
}
func extractConfigFields(r *Config) error {
vSignIn := r.SignIn
if vSignIn == nil {
// note: explicitly not the empty object.
vSignIn = &ConfigSignIn{}
}
if err := extractConfigSignInFields(r, vSignIn); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSignIn) {
r.SignIn = vSignIn
}
vNotification := r.Notification
if vNotification == nil {
// note: explicitly not the empty object.
vNotification = &ConfigNotification{}
}
if err := extractConfigNotificationFields(r, vNotification); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vNotification) {
r.Notification = vNotification
}
vQuota := r.Quota
if vQuota == nil {
// note: explicitly not the empty object.
vQuota = &ConfigQuota{}
}
if err := extractConfigQuotaFields(r, vQuota); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vQuota) {
r.Quota = vQuota
}
vMonitoring := r.Monitoring
if vMonitoring == nil {
// note: explicitly not the empty object.
vMonitoring = &ConfigMonitoring{}
}
if err := extractConfigMonitoringFields(r, vMonitoring); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMonitoring) {
r.Monitoring = vMonitoring
}
vMultiTenant := r.MultiTenant
if vMultiTenant == nil {
// note: explicitly not the empty object.
vMultiTenant = &ConfigMultiTenant{}
}
if err := extractConfigMultiTenantFields(r, vMultiTenant); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMultiTenant) {
r.MultiTenant = vMultiTenant
}
vClient := r.Client
if vClient == nil {
// note: explicitly not the empty object.
vClient = &ConfigClient{}
}
if err := extractConfigClientFields(r, vClient); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vClient) {
r.Client = vClient
}
vMfa := r.Mfa
if vMfa == nil {
// note: explicitly not the empty object.
vMfa = &ConfigMfa{}
}
if err := extractConfigMfaFields(r, vMfa); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMfa) {
r.Mfa = vMfa
}
vBlockingFunctions := r.BlockingFunctions
if vBlockingFunctions == nil {
// note: explicitly not the empty object.
vBlockingFunctions = &ConfigBlockingFunctions{}
}
if err := extractConfigBlockingFunctionsFields(r, vBlockingFunctions); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vBlockingFunctions) {
r.BlockingFunctions = vBlockingFunctions
}
return nil
}
func extractConfigSignInFields(r *Config, o *ConfigSignIn) error {
vEmail := o.Email
if vEmail == nil {
// note: explicitly not the empty object.
vEmail = &ConfigSignInEmail{}
}
if err := extractConfigSignInEmailFields(r, vEmail); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vEmail) {
o.Email = vEmail
}
vPhoneNumber := o.PhoneNumber
if vPhoneNumber == nil {
// note: explicitly not the empty object.
vPhoneNumber = &ConfigSignInPhoneNumber{}
}
if err := extractConfigSignInPhoneNumberFields(r, vPhoneNumber); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vPhoneNumber) {
o.PhoneNumber = vPhoneNumber
}
vAnonymous := o.Anonymous
if vAnonymous == nil {
// note: explicitly not the empty object.
vAnonymous = &ConfigSignInAnonymous{}
}
if err := extractConfigSignInAnonymousFields(r, vAnonymous); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vAnonymous) {
o.Anonymous = vAnonymous
}
vHashConfig := o.HashConfig
if vHashConfig == nil {
// note: explicitly not the empty object.
vHashConfig = &ConfigSignInHashConfig{}
}
if err := extractConfigSignInHashConfigFields(r, vHashConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vHashConfig) {
o.HashConfig = vHashConfig
}
return nil
}
func extractConfigSignInEmailFields(r *Config, o *ConfigSignInEmail) error {
vHashConfig := o.HashConfig
if vHashConfig == nil {
// note: explicitly not the empty object.
vHashConfig = &ConfigSignInEmailHashConfig{}
}
if err := extractConfigSignInEmailHashConfigFields(r, vHashConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vHashConfig) {
o.HashConfig = vHashConfig
}
return nil
}
func extractConfigSignInEmailHashConfigFields(r *Config, o *ConfigSignInEmailHashConfig) error {
return nil
}
func extractConfigSignInPhoneNumberFields(r *Config, o *ConfigSignInPhoneNumber) error {
return nil
}
func extractConfigSignInAnonymousFields(r *Config, o *ConfigSignInAnonymous) error {
return nil
}
func extractConfigSignInHashConfigFields(r *Config, o *ConfigSignInHashConfig) error {
return nil
}
func extractConfigNotificationFields(r *Config, o *ConfigNotification) error {
vSendEmail := o.SendEmail
if vSendEmail == nil {
// note: explicitly not the empty object.
vSendEmail = &ConfigNotificationSendEmail{}
}
if err := extractConfigNotificationSendEmailFields(r, vSendEmail); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSendEmail) {
o.SendEmail = vSendEmail
}
vSendSms := o.SendSms
if vSendSms == nil {
// note: explicitly not the empty object.
vSendSms = &ConfigNotificationSendSms{}
}
if err := extractConfigNotificationSendSmsFields(r, vSendSms); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSendSms) {
o.SendSms = vSendSms
}
return nil
}
func extractConfigNotificationSendEmailFields(r *Config, o *ConfigNotificationSendEmail) error {
vSmtp := o.Smtp
if vSmtp == nil {
// note: explicitly not the empty object.
vSmtp = &ConfigNotificationSendEmailSmtp{}
}
if err := extractConfigNotificationSendEmailSmtpFields(r, vSmtp); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSmtp) {
o.Smtp = vSmtp
}
vResetPasswordTemplate := o.ResetPasswordTemplate
if vResetPasswordTemplate == nil {
// note: explicitly not the empty object.
vResetPasswordTemplate = &ConfigNotificationSendEmailResetPasswordTemplate{}
}
if err := extractConfigNotificationSendEmailResetPasswordTemplateFields(r, vResetPasswordTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vResetPasswordTemplate) {
o.ResetPasswordTemplate = vResetPasswordTemplate
}
vVerifyEmailTemplate := o.VerifyEmailTemplate
if vVerifyEmailTemplate == nil {
// note: explicitly not the empty object.
vVerifyEmailTemplate = &ConfigNotificationSendEmailVerifyEmailTemplate{}
}
if err := extractConfigNotificationSendEmailVerifyEmailTemplateFields(r, vVerifyEmailTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vVerifyEmailTemplate) {
o.VerifyEmailTemplate = vVerifyEmailTemplate
}
vChangeEmailTemplate := o.ChangeEmailTemplate
if vChangeEmailTemplate == nil {
// note: explicitly not the empty object.
vChangeEmailTemplate = &ConfigNotificationSendEmailChangeEmailTemplate{}
}
if err := extractConfigNotificationSendEmailChangeEmailTemplateFields(r, vChangeEmailTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vChangeEmailTemplate) {
o.ChangeEmailTemplate = vChangeEmailTemplate
}
vDnsInfo := o.DnsInfo
if vDnsInfo == nil {
// note: explicitly not the empty object.
vDnsInfo = &ConfigNotificationSendEmailDnsInfo{}
}
if err := extractConfigNotificationSendEmailDnsInfoFields(r, vDnsInfo); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vDnsInfo) {
o.DnsInfo = vDnsInfo
}
vRevertSecondFactorAdditionTemplate := o.RevertSecondFactorAdditionTemplate
if vRevertSecondFactorAdditionTemplate == nil {
// note: explicitly not the empty object.
vRevertSecondFactorAdditionTemplate = &ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
if err := extractConfigNotificationSendEmailRevertSecondFactorAdditionTemplateFields(r, vRevertSecondFactorAdditionTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vRevertSecondFactorAdditionTemplate) {
o.RevertSecondFactorAdditionTemplate = vRevertSecondFactorAdditionTemplate
}
return nil
}
func extractConfigNotificationSendEmailSmtpFields(r *Config, o *ConfigNotificationSendEmailSmtp) error {
return nil
}
func extractConfigNotificationSendEmailResetPasswordTemplateFields(r *Config, o *ConfigNotificationSendEmailResetPasswordTemplate) error {
return nil
}
func extractConfigNotificationSendEmailVerifyEmailTemplateFields(r *Config, o *ConfigNotificationSendEmailVerifyEmailTemplate) error {
return nil
}
func extractConfigNotificationSendEmailChangeEmailTemplateFields(r *Config, o *ConfigNotificationSendEmailChangeEmailTemplate) error {
return nil
}
func extractConfigNotificationSendEmailDnsInfoFields(r *Config, o *ConfigNotificationSendEmailDnsInfo) error {
return nil
}
func extractConfigNotificationSendEmailRevertSecondFactorAdditionTemplateFields(r *Config, o *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) error {
return nil
}
func extractConfigNotificationSendSmsFields(r *Config, o *ConfigNotificationSendSms) error {
vSmsTemplate := o.SmsTemplate
if vSmsTemplate == nil {
// note: explicitly not the empty object.
vSmsTemplate = &ConfigNotificationSendSmsSmsTemplate{}
}
if err := extractConfigNotificationSendSmsSmsTemplateFields(r, vSmsTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSmsTemplate) {
o.SmsTemplate = vSmsTemplate
}
return nil
}
func extractConfigNotificationSendSmsSmsTemplateFields(r *Config, o *ConfigNotificationSendSmsSmsTemplate) error {
return nil
}
func extractConfigQuotaFields(r *Config, o *ConfigQuota) error {
vSignUpQuotaConfig := o.SignUpQuotaConfig
if vSignUpQuotaConfig == nil {
// note: explicitly not the empty object.
vSignUpQuotaConfig = &ConfigQuotaSignUpQuotaConfig{}
}
if err := extractConfigQuotaSignUpQuotaConfigFields(r, vSignUpQuotaConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSignUpQuotaConfig) {
o.SignUpQuotaConfig = vSignUpQuotaConfig
}
return nil
}
func extractConfigQuotaSignUpQuotaConfigFields(r *Config, o *ConfigQuotaSignUpQuotaConfig) error {
return nil
}
func extractConfigMonitoringFields(r *Config, o *ConfigMonitoring) error {
vRequestLogging := o.RequestLogging
if vRequestLogging == nil {
// note: explicitly not the empty object.
vRequestLogging = &ConfigMonitoringRequestLogging{}
}
if err := extractConfigMonitoringRequestLoggingFields(r, vRequestLogging); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vRequestLogging) {
o.RequestLogging = vRequestLogging
}
return nil
}
func extractConfigMonitoringRequestLoggingFields(r *Config, o *ConfigMonitoringRequestLogging) error {
return nil
}
func extractConfigMultiTenantFields(r *Config, o *ConfigMultiTenant) error {
return nil
}
func extractConfigClientFields(r *Config, o *ConfigClient) error {
vPermissions := o.Permissions
if vPermissions == nil {
// note: explicitly not the empty object.
vPermissions = &ConfigClientPermissions{}
}
if err := extractConfigClientPermissionsFields(r, vPermissions); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vPermissions) {
o.Permissions = vPermissions
}
return nil
}
func extractConfigClientPermissionsFields(r *Config, o *ConfigClientPermissions) error {
return nil
}
func extractConfigMfaFields(r *Config, o *ConfigMfa) error {
return nil
}
func extractConfigBlockingFunctionsFields(r *Config, o *ConfigBlockingFunctions) error {
return nil
}
func extractConfigBlockingFunctionsTriggersFields(r *Config, o *ConfigBlockingFunctionsTriggers) error {
return nil
}
func postReadExtractConfigFields(r *Config) error {
vSignIn := r.SignIn
if vSignIn == nil {
// note: explicitly not the empty object.
vSignIn = &ConfigSignIn{}
}
if err := postReadExtractConfigSignInFields(r, vSignIn); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSignIn) {
r.SignIn = vSignIn
}
vNotification := r.Notification
if vNotification == nil {
// note: explicitly not the empty object.
vNotification = &ConfigNotification{}
}
if err := postReadExtractConfigNotificationFields(r, vNotification); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vNotification) {
r.Notification = vNotification
}
vQuota := r.Quota
if vQuota == nil {
// note: explicitly not the empty object.
vQuota = &ConfigQuota{}
}
if err := postReadExtractConfigQuotaFields(r, vQuota); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vQuota) {
r.Quota = vQuota
}
vMonitoring := r.Monitoring
if vMonitoring == nil {
// note: explicitly not the empty object.
vMonitoring = &ConfigMonitoring{}
}
if err := postReadExtractConfigMonitoringFields(r, vMonitoring); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMonitoring) {
r.Monitoring = vMonitoring
}
vMultiTenant := r.MultiTenant
if vMultiTenant == nil {
// note: explicitly not the empty object.
vMultiTenant = &ConfigMultiTenant{}
}
if err := postReadExtractConfigMultiTenantFields(r, vMultiTenant); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMultiTenant) {
r.MultiTenant = vMultiTenant
}
vClient := r.Client
if vClient == nil {
// note: explicitly not the empty object.
vClient = &ConfigClient{}
}
if err := postReadExtractConfigClientFields(r, vClient); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vClient) {
r.Client = vClient
}
vMfa := r.Mfa
if vMfa == nil {
// note: explicitly not the empty object.
vMfa = &ConfigMfa{}
}
if err := postReadExtractConfigMfaFields(r, vMfa); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vMfa) {
r.Mfa = vMfa
}
vBlockingFunctions := r.BlockingFunctions
if vBlockingFunctions == nil {
// note: explicitly not the empty object.
vBlockingFunctions = &ConfigBlockingFunctions{}
}
if err := postReadExtractConfigBlockingFunctionsFields(r, vBlockingFunctions); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vBlockingFunctions) {
r.BlockingFunctions = vBlockingFunctions
}
return nil
}
func postReadExtractConfigSignInFields(r *Config, o *ConfigSignIn) error {
vEmail := o.Email
if vEmail == nil {
// note: explicitly not the empty object.
vEmail = &ConfigSignInEmail{}
}
if err := extractConfigSignInEmailFields(r, vEmail); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vEmail) {
o.Email = vEmail
}
vPhoneNumber := o.PhoneNumber
if vPhoneNumber == nil {
// note: explicitly not the empty object.
vPhoneNumber = &ConfigSignInPhoneNumber{}
}
if err := extractConfigSignInPhoneNumberFields(r, vPhoneNumber); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vPhoneNumber) {
o.PhoneNumber = vPhoneNumber
}
vAnonymous := o.Anonymous
if vAnonymous == nil {
// note: explicitly not the empty object.
vAnonymous = &ConfigSignInAnonymous{}
}
if err := extractConfigSignInAnonymousFields(r, vAnonymous); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vAnonymous) {
o.Anonymous = vAnonymous
}
vHashConfig := o.HashConfig
if vHashConfig == nil {
// note: explicitly not the empty object.
vHashConfig = &ConfigSignInHashConfig{}
}
if err := extractConfigSignInHashConfigFields(r, vHashConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vHashConfig) {
o.HashConfig = vHashConfig
}
return nil
}
func postReadExtractConfigSignInEmailFields(r *Config, o *ConfigSignInEmail) error {
vHashConfig := o.HashConfig
if vHashConfig == nil {
// note: explicitly not the empty object.
vHashConfig = &ConfigSignInEmailHashConfig{}
}
if err := extractConfigSignInEmailHashConfigFields(r, vHashConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vHashConfig) {
o.HashConfig = vHashConfig
}
return nil
}
func postReadExtractConfigSignInEmailHashConfigFields(r *Config, o *ConfigSignInEmailHashConfig) error {
return nil
}
func postReadExtractConfigSignInPhoneNumberFields(r *Config, o *ConfigSignInPhoneNumber) error {
return nil
}
func postReadExtractConfigSignInAnonymousFields(r *Config, o *ConfigSignInAnonymous) error {
return nil
}
func postReadExtractConfigSignInHashConfigFields(r *Config, o *ConfigSignInHashConfig) error {
return nil
}
func postReadExtractConfigNotificationFields(r *Config, o *ConfigNotification) error {
vSendEmail := o.SendEmail
if vSendEmail == nil {
// note: explicitly not the empty object.
vSendEmail = &ConfigNotificationSendEmail{}
}
if err := extractConfigNotificationSendEmailFields(r, vSendEmail); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSendEmail) {
o.SendEmail = vSendEmail
}
vSendSms := o.SendSms
if vSendSms == nil {
// note: explicitly not the empty object.
vSendSms = &ConfigNotificationSendSms{}
}
if err := extractConfigNotificationSendSmsFields(r, vSendSms); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSendSms) {
o.SendSms = vSendSms
}
return nil
}
func postReadExtractConfigNotificationSendEmailFields(r *Config, o *ConfigNotificationSendEmail) error {
vSmtp := o.Smtp
if vSmtp == nil {
// note: explicitly not the empty object.
vSmtp = &ConfigNotificationSendEmailSmtp{}
}
if err := extractConfigNotificationSendEmailSmtpFields(r, vSmtp); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSmtp) {
o.Smtp = vSmtp
}
vResetPasswordTemplate := o.ResetPasswordTemplate
if vResetPasswordTemplate == nil {
// note: explicitly not the empty object.
vResetPasswordTemplate = &ConfigNotificationSendEmailResetPasswordTemplate{}
}
if err := extractConfigNotificationSendEmailResetPasswordTemplateFields(r, vResetPasswordTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vResetPasswordTemplate) {
o.ResetPasswordTemplate = vResetPasswordTemplate
}
vVerifyEmailTemplate := o.VerifyEmailTemplate
if vVerifyEmailTemplate == nil {
// note: explicitly not the empty object.
vVerifyEmailTemplate = &ConfigNotificationSendEmailVerifyEmailTemplate{}
}
if err := extractConfigNotificationSendEmailVerifyEmailTemplateFields(r, vVerifyEmailTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vVerifyEmailTemplate) {
o.VerifyEmailTemplate = vVerifyEmailTemplate
}
vChangeEmailTemplate := o.ChangeEmailTemplate
if vChangeEmailTemplate == nil {
// note: explicitly not the empty object.
vChangeEmailTemplate = &ConfigNotificationSendEmailChangeEmailTemplate{}
}
if err := extractConfigNotificationSendEmailChangeEmailTemplateFields(r, vChangeEmailTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vChangeEmailTemplate) {
o.ChangeEmailTemplate = vChangeEmailTemplate
}
vDnsInfo := o.DnsInfo
if vDnsInfo == nil {
// note: explicitly not the empty object.
vDnsInfo = &ConfigNotificationSendEmailDnsInfo{}
}
if err := extractConfigNotificationSendEmailDnsInfoFields(r, vDnsInfo); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vDnsInfo) {
o.DnsInfo = vDnsInfo
}
vRevertSecondFactorAdditionTemplate := o.RevertSecondFactorAdditionTemplate
if vRevertSecondFactorAdditionTemplate == nil {
// note: explicitly not the empty object.
vRevertSecondFactorAdditionTemplate = &ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate{}
}
if err := extractConfigNotificationSendEmailRevertSecondFactorAdditionTemplateFields(r, vRevertSecondFactorAdditionTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vRevertSecondFactorAdditionTemplate) {
o.RevertSecondFactorAdditionTemplate = vRevertSecondFactorAdditionTemplate
}
return nil
}
func postReadExtractConfigNotificationSendEmailSmtpFields(r *Config, o *ConfigNotificationSendEmailSmtp) error {
return nil
}
func postReadExtractConfigNotificationSendEmailResetPasswordTemplateFields(r *Config, o *ConfigNotificationSendEmailResetPasswordTemplate) error {
return nil
}
func postReadExtractConfigNotificationSendEmailVerifyEmailTemplateFields(r *Config, o *ConfigNotificationSendEmailVerifyEmailTemplate) error {
return nil
}
func postReadExtractConfigNotificationSendEmailChangeEmailTemplateFields(r *Config, o *ConfigNotificationSendEmailChangeEmailTemplate) error {
return nil
}
func postReadExtractConfigNotificationSendEmailDnsInfoFields(r *Config, o *ConfigNotificationSendEmailDnsInfo) error {
return nil
}
func postReadExtractConfigNotificationSendEmailRevertSecondFactorAdditionTemplateFields(r *Config, o *ConfigNotificationSendEmailRevertSecondFactorAdditionTemplate) error {
return nil
}
func postReadExtractConfigNotificationSendSmsFields(r *Config, o *ConfigNotificationSendSms) error {
vSmsTemplate := o.SmsTemplate
if vSmsTemplate == nil {
// note: explicitly not the empty object.
vSmsTemplate = &ConfigNotificationSendSmsSmsTemplate{}
}
if err := extractConfigNotificationSendSmsSmsTemplateFields(r, vSmsTemplate); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSmsTemplate) {
o.SmsTemplate = vSmsTemplate
}
return nil
}
func postReadExtractConfigNotificationSendSmsSmsTemplateFields(r *Config, o *ConfigNotificationSendSmsSmsTemplate) error {
return nil
}
func postReadExtractConfigQuotaFields(r *Config, o *ConfigQuota) error {
vSignUpQuotaConfig := o.SignUpQuotaConfig
if vSignUpQuotaConfig == nil {
// note: explicitly not the empty object.
vSignUpQuotaConfig = &ConfigQuotaSignUpQuotaConfig{}
}
if err := extractConfigQuotaSignUpQuotaConfigFields(r, vSignUpQuotaConfig); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vSignUpQuotaConfig) {
o.SignUpQuotaConfig = vSignUpQuotaConfig
}
return nil
}
func postReadExtractConfigQuotaSignUpQuotaConfigFields(r *Config, o *ConfigQuotaSignUpQuotaConfig) error {
return nil
}
func postReadExtractConfigMonitoringFields(r *Config, o *ConfigMonitoring) error {
vRequestLogging := o.RequestLogging
if vRequestLogging == nil {
// note: explicitly not the empty object.
vRequestLogging = &ConfigMonitoringRequestLogging{}
}
if err := extractConfigMonitoringRequestLoggingFields(r, vRequestLogging); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vRequestLogging) {
o.RequestLogging = vRequestLogging
}
return nil
}
func postReadExtractConfigMonitoringRequestLoggingFields(r *Config, o *ConfigMonitoringRequestLogging) error {
return nil
}
func postReadExtractConfigMultiTenantFields(r *Config, o *ConfigMultiTenant) error {
return nil
}
func postReadExtractConfigClientFields(r *Config, o *ConfigClient) error {
vPermissions := o.Permissions
if vPermissions == nil {
// note: explicitly not the empty object.
vPermissions = &ConfigClientPermissions{}
}
if err := extractConfigClientPermissionsFields(r, vPermissions); err != nil {
return err
}
if !dcl.IsEmptyValueIndirect(vPermissions) {
o.Permissions = vPermissions
}
return nil
}
func postReadExtractConfigClientPermissionsFields(r *Config, o *ConfigClientPermissions) error {
return nil
}
func postReadExtractConfigMfaFields(r *Config, o *ConfigMfa) error {
return nil
}
func postReadExtractConfigBlockingFunctionsFields(r *Config, o *ConfigBlockingFunctions) error {
return nil
}
func postReadExtractConfigBlockingFunctionsTriggersFields(r *Config, o *ConfigBlockingFunctionsTriggers) error {
return nil
}