diff --git a/atlan/assets/auth_policy_client.go b/atlan/assets/auth_policy_client.go index bca38e4..0ee6d1b 100644 --- a/atlan/assets/auth_policy_client.go +++ b/atlan/assets/auth_policy_client.go @@ -41,7 +41,7 @@ func (a *AuthPolicy) UnmarshalJSON(data []byte) error { PolicyResourceCategory *string `json:"policyResourceCategory,omitempty"` PolicyPriority *int `json:"policyPriority,omitempty"` IsPolicyEnabled *bool `json:"isPolicyEnabled,omitempty"` - PolicyMaskType *string `json:"policyMaskType,omitempty"` + PolicyMaskType *atlan.DataMaskingType `json:"policyMaskType,omitempty"` PolicyValiditySchedule *[]atlan.AuthPolicyValiditySchedule `json:"policyValiditySchedule,omitempty"` PolicyResourceSignature *string `json:"policyResourceSignature,omitempty"` PolicyDelegateAdmin *bool `json:"policyDelegateAdmin,omitempty"` @@ -156,6 +156,10 @@ func (a *AuthPolicy) MarshalJSON() ([]byte, error) { attributes["policyUsers"] = *a.PolicyUsers } + if a.PolicyMaskType != nil { + attributes["policyMaskType"] = *a.PolicyMaskType + } + // Handle nested AccessControl field if a.AccessControl != nil { accessControl := map[string]interface{}{} diff --git a/atlan/enums.go b/atlan/enums.go index 716e1b7..7643baf 100644 --- a/atlan/enums.go +++ b/atlan/enums.go @@ -3200,3 +3200,51 @@ func (c *AssetFilterGroup) UnmarshalJSON(data []byte) error { } return nil } + +type DataMaskingType struct { + Name string +} + +func (d DataMaskingType) String() string { + return d.Name +} + +var ( + DataMaskingTypeSHOWFIRST4 = DataMaskingType{"MASK_SHOW_FIRST_4"} + DataMaskingTypeSHOWLAST4 = DataMaskingType{"MASK_SHOW_LAST_4"} + DataMaskingTypeHASH = DataMaskingType{"MASK_HASH"} + DataMaskingTypeNULLIFY = DataMaskingType{"MASK_NULL"} + DataMaskingTypeREDACT = DataMaskingType{"MASK_REDACT"} +) + +// UnmarshalJSON customizes the unmarshalling of a DataMaskingType from JSON. +func (d *DataMaskingType) UnmarshalJSON(data []byte) error { + var name string + if err := json.Unmarshal(data, &name); err != nil { + return err + } + + switch name { + case "MASK_SHOW_FIRST_4": + *d = DataMaskingTypeSHOWFIRST4 + + case "MASK_SHOW_LAST_4": + *d = DataMaskingTypeSHOWLAST4 + + case "MASK_HASH": + *d = DataMaskingTypeHASH + case "MASK_NULL": + *d = DataMaskingTypeNULLIFY + case "MASK_REDACT": + *d = DataMaskingTypeREDACT + default: + *d = DataMaskingType{Name: name} + } + + return nil +} + +// MarshalJSON customizes the marshalling of a DataMaskingType to JSON. +func (d DataMaskingType) MarshalJSON() ([]byte, error) { + return json.Marshal(d.Name) +} diff --git a/atlan/model/search.go b/atlan/model/search.go index 567e5f4..3e7bb53 100644 --- a/atlan/model/search.go +++ b/atlan/model/search.go @@ -645,7 +645,7 @@ type SearchAttributes struct { PolicyResourceCategory *string `json:"policyResourceCategory,omitempty"` PolicyPriority *int `json:"policyPriority,omitempty"` IsPolicyEnabled *bool `json:"isPolicyEnabled,omitempty"` - PolicyMaskType *string `json:"policyMaskType,omitempty"` + PolicyMaskType *atlan.DataMaskingType `json:"policyMaskType,omitempty"` PolicyValiditySchedule *[]atlan.AuthPolicyValiditySchedule `json:"policyValiditySchedule,omitempty"` PolicyResourceSignature *string `json:"policyResourceSignature,omitempty"` PolicyDelegateAdmin *bool `json:"policyDelegateAdmin,omitempty"` diff --git a/atlan/model/structs/access_control.go b/atlan/model/structs/access_control.go index 9b040f3..8ee1546 100644 --- a/atlan/model/structs/access_control.go +++ b/atlan/model/structs/access_control.go @@ -40,7 +40,7 @@ type AuthPolicy struct { PolicyResourceCategory *string `json:"policyResourceCategory,omitempty"` PolicyPriority *int `json:"policyPriority,omitempty"` IsPolicyEnabled *bool `json:"isPolicyEnabled,omitempty"` - PolicyMaskType *string `json:"policyMaskType,omitempty"` + PolicyMaskType *atlan.DataMaskingType `json:"policyMaskType,omitempty"` PolicyValiditySchedule *[]atlan.AuthPolicyValiditySchedule `json:"policyValiditySchedule,omitempty"` PolicyResourceSignature *string `json:"policyResourceSignature,omitempty"` PolicyDelegateAdmin *bool `json:"policyDelegateAdmin,omitempty"`