> ## Documentation Index
> Fetch the complete documentation index at: https://cdktn.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Go: ComplexObject

> CDKTN Core API Reference for ComplexObject in Go.

* *Implements:* <a href="#cdktn.IInterpolatingParent">IInterpolatingParent</a>, <a href="#cdktn.IResolvable">IResolvable</a>, <a href="#cdktn.ITerraformAddressable">ITerraformAddressable</a>

## Initializers <a name="Initializers" id="cdktn.ComplexObject.Initializer" />

```go theme={null}
import "github.com/open-constructs/cdk-terrain-go/cdktn"

cdktn.NewComplexObject(terraformResource IInterpolatingParent, terraformAttribute *string, complexObjectIsFromSet *bool, complexObjectIndex interface{}) ComplexObject
```

| **Name**                                                                                                            | **Type**                                                                    | **Description**                                                                                                     |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| <code><a href="#cdktn.ComplexObject.Initializer.parameter.terraformResource">terraformResource</a></code>           | <code><a href="#cdktn.IInterpolatingParent">IInterpolatingParent</a></code> | *No description.*                                                                                                   |
| <code><a href="#cdktn.ComplexObject.Initializer.parameter.terraformAttribute">terraformAttribute</a></code>         | <code>\*string</code>                                                       | *No description.*                                                                                                   |
| <code><a href="#cdktn.ComplexObject.Initializer.parameter.complexObjectIsFromSet">complexObjectIsFromSet</a></code> | <code>\*bool</code>                                                         | set to true if this item is from inside a set and needs tolist() for accessing it set to "0" for single list items. |
| <code><a href="#cdktn.ComplexObject.Initializer.parameter.complexObjectIndex">complexObjectIndex</a></code>         | <code>interface\{}</code>                                                   | the index of the complex object in a list.                                                                          |

***

### `terraformResource`<sup>Required</sup> <a name="terraformResource" id="cdktn.ComplexObject.Initializer.parameter.terraformResource" />

* *Type:* <a href="#cdktn.IInterpolatingParent">IInterpolatingParent</a>

***

### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.Initializer.parameter.terraformAttribute" />

* *Type:* \*string

***

### `complexObjectIsFromSet`<sup>Required</sup> <a name="complexObjectIsFromSet" id="cdktn.ComplexObject.Initializer.parameter.complexObjectIsFromSet" />

* *Type:* \*bool

set to true if this item is from inside a set and needs tolist() for accessing it set to "0" for single list items.

***

### `complexObjectIndex`<sup>Optional</sup> <a name="complexObjectIndex" id="cdktn.ComplexObject.Initializer.parameter.complexObjectIndex" />

* *Type:* interface\{}

the index of the complex object in a list.

***

## Methods <a name="Methods" id="Methods" />

| **Name**                                                                                            | **Description**                                           |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| <code><a href="#cdktn.ComplexObject.computeFqn">ComputeFqn</a></code>                               | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getAnyMapAttribute">GetAnyMapAttribute</a></code>               | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getBooleanAttribute">GetBooleanAttribute</a></code>             | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getBooleanMapAttribute">GetBooleanMapAttribute</a></code>       | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getListAttribute">GetListAttribute</a></code>                   | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getNumberAttribute">GetNumberAttribute</a></code>               | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getNumberListAttribute">GetNumberListAttribute</a></code>       | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getNumberMapAttribute">GetNumberMapAttribute</a></code>         | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getStringAttribute">GetStringAttribute</a></code>               | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.getStringMapAttribute">GetStringMapAttribute</a></code>         | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.interpolationForAttribute">InterpolationForAttribute</a></code> | *No description.*                                         |
| <code><a href="#cdktn.ComplexObject.resolve">Resolve</a></code>                                     | Produce the Token's value at resolution time.             |
| <code><a href="#cdktn.ComplexObject.toString">ToString</a></code>                                   | Return a string representation of this resolvable object. |

***

### `ComputeFqn` <a name="ComputeFqn" id="cdktn.ComplexObject.computeFqn" />

```go theme={null}
func ComputeFqn() *string
```

### `GetAnyMapAttribute` <a name="GetAnyMapAttribute" id="cdktn.ComplexObject.getAnyMapAttribute" />

```go theme={null}
func GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getAnyMapAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetBooleanAttribute` <a name="GetBooleanAttribute" id="cdktn.ComplexObject.getBooleanAttribute" />

```go theme={null}
func GetBooleanAttribute(terraformAttribute *string) IResolvable
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getBooleanAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetBooleanMapAttribute` <a name="GetBooleanMapAttribute" id="cdktn.ComplexObject.getBooleanMapAttribute" />

```go theme={null}
func GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getBooleanMapAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetListAttribute` <a name="GetListAttribute" id="cdktn.ComplexObject.getListAttribute" />

```go theme={null}
func GetListAttribute(terraformAttribute *string) *[]*string
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getListAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetNumberAttribute` <a name="GetNumberAttribute" id="cdktn.ComplexObject.getNumberAttribute" />

```go theme={null}
func GetNumberAttribute(terraformAttribute *string) *f64
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getNumberAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetNumberListAttribute` <a name="GetNumberListAttribute" id="cdktn.ComplexObject.getNumberListAttribute" />

```go theme={null}
func GetNumberListAttribute(terraformAttribute *string) *[]*f64
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getNumberListAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetNumberMapAttribute` <a name="GetNumberMapAttribute" id="cdktn.ComplexObject.getNumberMapAttribute" />

```go theme={null}
func GetNumberMapAttribute(terraformAttribute *string) *map[string]*f64
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getNumberMapAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetStringAttribute` <a name="GetStringAttribute" id="cdktn.ComplexObject.getStringAttribute" />

```go theme={null}
func GetStringAttribute(terraformAttribute *string) *string
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getStringAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `GetStringMapAttribute` <a name="GetStringMapAttribute" id="cdktn.ComplexObject.getStringMapAttribute" />

```go theme={null}
func GetStringMapAttribute(terraformAttribute *string) *map[string]*string
```

#### `terraformAttribute`<sup>Required</sup> <a name="terraformAttribute" id="cdktn.ComplexObject.getStringMapAttribute.parameter.terraformAttribute" />

* *Type:* \*string

***

### `InterpolationForAttribute` <a name="InterpolationForAttribute" id="cdktn.ComplexObject.interpolationForAttribute" />

```go theme={null}
func InterpolationForAttribute(property *string) IResolvable
```

#### `property`<sup>Required</sup> <a name="property" id="cdktn.ComplexObject.interpolationForAttribute.parameter.property" />

* *Type:* \*string

***

### `Resolve` <a name="Resolve" id="cdktn.ComplexObject.resolve" />

```go theme={null}
func Resolve(_context IResolveContext) interface{}
```

Produce the Token's value at resolution time.

#### `_context`<sup>Required</sup> <a name="_context" id="cdktn.ComplexObject.resolve.parameter._context" />

* *Type:* <a href="#cdktn.IResolveContext">IResolveContext</a>

***

### `ToString` <a name="ToString" id="cdktn.ComplexObject.toString" />

```go theme={null}
func ToString() *string
```

Return a string representation of this resolvable object.

Returns a reversible string representation.

## Properties <a name="Properties" id="Properties" />

| **Name**                                                                             | **Type**                   | **Description**                                                                                  |
| ------------------------------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------ |
| <code><a href="#cdktn.ComplexObject.property.creationStack">CreationStack</a></code> | <code>\*\[]\*string</code> | The creation stack of this resolvable which will be appended to errors thrown during resolution. |
| <code><a href="#cdktn.ComplexObject.property.fqn">Fqn</a></code>                     | <code>\*string</code>      | *No description.*                                                                                |

***

### `CreationStack`<sup>Required</sup> <a name="CreationStack" id="cdktn.ComplexObject.property.creationStack" />

```go theme={null}
func CreationStack() *[]*string
```

* *Type:* \*\[]\*string

The creation stack of this resolvable which will be appended to errors thrown during resolution.

If this returns an empty array the stack will not be attached.

***

### `Fqn`<sup>Required</sup> <a name="Fqn" id="cdktn.ComplexObject.property.fqn" />

```go theme={null}
func Fqn() *string
```

* *Type:* \*string

***
