diff --git a/content/master/concepts/patch-and-transform.md b/content/master/concepts/patch-and-transform.md index b859a8160..c531cf599 100644 --- a/content/master/concepts/patch-and-transform.md +++ b/content/master/concepts/patch-and-transform.md @@ -1098,6 +1098,8 @@ Supported `toType` values: | `int` | A 32-bit integer value. | | `int64` | A 64-bit integer value. | | `string` | A string value. | +| `object` | An object. | +| `array` | An array. | {{< /table >}} #### Converting strings to booleans @@ -1146,6 +1148,55 @@ suffix support. format: quantity ``` +#### Converting strings to objects + +Crossplane converts JSON strings to objects. + +Add {{}}format: json{{}} to the +{{}}convert{{}} object which is +the only supported string format for this conversion. + +```yaml {label="format",copy-lines="all"} +- type: convert + convert: + toType: object + format: json +``` + +This conversion is useful for patching keys in an object. The following example +adds a tag to a resource with a customized key: + +```yaml {label="format",copy-lines="all"} + - type: FromCompositeFieldPath + fromFieldPath: spec.clusterName + toFieldPath: spec.forProvider.tags + transforms: + - type: string + string: + type: Format + fmt: '{"kubernetes.io/cluster/%s": "true"}' + - type: convert + convert: + toType: object + format: json +``` + + +#### Converting strings to arrays + +Crossplane converts JSON strings to arrays. + +Add {{}}format: json{{}} to the +{{}}convert{{}} object which is +the only supported string format for this conversion. + +```yaml {label="format",copy-lines="all"} +- type: convert + convert: + toType: array + format: json +``` + ### Map transforms The {{}}map{{}} transform type _maps_ an input value to an output value. @@ -1505,7 +1556,6 @@ converts the input based on one of the following conversion types: * `ToBase64` - Create a new base64 string from the input. * `FromBase64` - Create a new text string from a base64 input. * `ToJson` - Convert the input string to valid JSON. -* `FromJson` - Convert the input JSON string to an object. * `ToSha1` - Create a SHA-1 hash of the input string. * `ToSha256` - Create a SHA-256 hash of the input string. * `ToSha512` - Create a SHA-512 hash of the input string.