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

# CSharp: ComplexObject

> CDKTN Core API Reference for ComplexObject in CSharp.

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

```csharp theme={null}
using Io.Cdktn;

new ComplexObject(IInterpolatingParent TerraformResource, string TerraformAttribute, bool ComplexObjectIsFromSet, string|double ComplexObjectIndex = null);
```

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

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

```csharp theme={null}
private string ComputeFqn()
```

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

```csharp theme={null}
private System.Collections.Generic.IDictionary<string, object> GetAnyMapAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private IResolvable GetBooleanAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private System.Collections.Generic.IDictionary<string, bool> GetBooleanMapAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private string[] GetListAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private double GetNumberAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private double[] GetNumberListAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private System.Collections.Generic.IDictionary<string, double> GetNumberMapAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private string GetStringAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private System.Collections.Generic.IDictionary<string, string> GetStringMapAttribute(string TerraformAttribute)
```

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

* *Type:* string

***

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

```csharp theme={null}
private IResolvable InterpolationForAttribute(string Property)
```

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

* *Type:* string

***

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

```csharp theme={null}
private object Resolve(IResolveContext Context)
```

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

```csharp theme={null}
private string ToString()
```

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

```csharp theme={null}
public string[] CreationStack { get; }
```

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

```csharp theme={null}
public string Fqn { get; }
```

* *Type:* string

***
