> ## 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.

# Typescript: ComplexObject

> CDKTN Core API Reference for ComplexObject in Typescript.

* *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" />

```typescript theme={null}
import { ComplexObject } from 'cdktn'

new ComplexObject(terraformResource: IInterpolatingParent, terraformAttribute: string, complexObjectIsFromSet: boolean, complexObjectIndex?: string | number)
```

| **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>boolean</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>string \| number</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:* boolean

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:* string | number

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" />

```typescript theme={null}
public computeFqn(): string
```

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

```typescript theme={null}
public getAnyMapAttribute(terraformAttribute: string): {[ key: string ]: any}
```

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

* *Type:* string

***

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

```typescript theme={null}
public 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" />

```typescript theme={null}
public getBooleanMapAttribute(terraformAttribute: string): {[ key: string ]: boolean}
```

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

* *Type:* string

***

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

```typescript theme={null}
public 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" />

```typescript theme={null}
public getNumberAttribute(terraformAttribute: string): number
```

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

* *Type:* string

***

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

```typescript theme={null}
public getNumberListAttribute(terraformAttribute: string): number[]
```

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

* *Type:* string

***

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

```typescript theme={null}
public getNumberMapAttribute(terraformAttribute: string): {[ key: string ]: number}
```

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

* *Type:* string

***

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

```typescript theme={null}
public 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" />

```typescript theme={null}
public getStringMapAttribute(terraformAttribute: string): {[ key: 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" />

```typescript theme={null}
public 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" />

```typescript theme={null}
public resolve(_context: IResolveContext): any
```

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" />

```typescript theme={null}
public 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" />

```typescript theme={null}
public readonly 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" />

```typescript theme={null}
public readonly fqn: string;
```

* *Type:* string

***
