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

# PostModelSwitchHookInput

> Represents the input received by a PostModelSwitch hook, which runs after the session switches models.

## Definition

**Assembly:** CloudNimble.ClaudeEssentials.dll

**Namespace:** CloudNimble.ClaudeEssentials.Hooks.Inputs

**Inheritance:** CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase

## Syntax

```csharp theme={"dark"}
CloudNimble.ClaudeEssentials.Hooks.Inputs.PostModelSwitchHookInput
```

## Summary

Represents the input received by a PostModelSwitch hook, which runs after the session switches models.

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={"dark"}
public PostModelSwitchHookInput()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

#### Syntax

```csharp theme={"dark"}
protected ModelSwitchHookInputBase()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

#### Syntax

```csharp theme={"dark"}
protected HookInputBase()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public Object()
```

## Properties

### &#x20;AgentId Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the subagent identifier. Present only when the hook fires from within a subagent.

#### Syntax

```csharp theme={"dark"}
public string AgentId { get; set; }
```

#### Property Value

Type: `string?`

### &#x20;AgentType Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the agent type name, present within a subagent or on the main thread of a session started with `--agent`.

#### Syntax

```csharp theme={"dark"}
public string AgentType { get; set; }
```

#### Property Value

Type: `string?`

### &#x20;CacheTtl Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets the prompt cache time to live.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.ClaudeEssentials.Hooks.PromptCacheTtl CacheTtl { get; set; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.PromptCacheTtl`

### &#x20;ContextTokens Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets the prompt tokens the next request re-sends.

#### Syntax

```csharp theme={"dark"}
public long ContextTokens { get; set; }
```

#### Property Value

Type: `long`

### &#x20;CurrentWorkingDirectory Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the current working directory where Claude Code is running.

#### Syntax

```csharp theme={"dark"}
public string CurrentWorkingDirectory { get; set; }
```

#### Property Value

Type: `string`

### &#x20;Effort Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the reasoning effort applied to the current turn.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.ClaudeEssentials.Hooks.Inputs.HookEffortInfo Effort { get; set; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookEffortInfo?`

### &#x20;EstimatedCacheWriteUsd Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets the estimated cost of re-caching the context on the target model, excluding the response.

#### Syntax

```csharp theme={"dark"}
public double EstimatedCacheWriteUsd { get; set; }
```

#### Property Value

Type: `double`

### &#x20;FromModel Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets the resolved model ID the session was running before the switch.

#### Syntax

```csharp theme={"dark"}
public string FromModel { get; set; }
```

#### Property Value

Type: `string`

### &#x20;HookEventName Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the name of the hook event that triggered this input.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.ClaudeEssentials.Hooks.HookEventName HookEventName { get; set; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.HookEventName?`

### &#x20;PermissionMode Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the permission mode under which Claude Code is operating.

#### Syntax

```csharp theme={"dark"}
public System.Nullable<CloudNimble.ClaudeEssentials.Hooks.PermissionMode> PermissionMode { get; set; }
```

#### Property Value

Type: `System.Nullable<CloudNimble.ClaudeEssentials.Hooks.PermissionMode?>?`

### &#x20;Pricing Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets where the cost estimate came from.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.ClaudeEssentials.Hooks.ModelSwitchPricing Pricing { get; set; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.ModelSwitchPricing`

### &#x20;PromptCacheWarm Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets a value indicating whether the current model's prompt cache is likely still warm.

#### Syntax

```csharp theme={"dark"}
public bool PromptCacheWarm { get; set; }
```

#### Property Value

Type: `bool`

### &#x20;PromptId Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the UUID correlating a user prompt with all subsequent events until the next prompt.

#### Syntax

```csharp theme={"dark"}
public string PromptId { get; set; }
```

#### Property Value

Type: `string?`

### &#x20;RequestedModel Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets what was asked for, such as an alias or full ID, or null for the default.

#### Syntax

```csharp theme={"dark"}
public string RequestedModel { get; set; }
```

#### Property Value

Type: `string?`

### &#x20;SessionId Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the unique identifier for the current Claude Code session.

#### Syntax

```csharp theme={"dark"}
public string SessionId { get; set; }
```

#### Property Value

Type: `string`

### &#x20;Source Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets what initiated the switch.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.ClaudeEssentials.Hooks.ModelSwitchSource Source { get; set; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.ModelSwitchSource`

### &#x20;ToModel Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.ModelSwitchHookInputBase`

Gets or sets the resolved model ID the session runs after the switch.

#### Syntax

```csharp theme={"dark"}
public string ToModel { get; set; }
```

#### Property Value

Type: `string`

### &#x20;TranscriptPath Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Inputs.HookInputBase`

Gets or sets the file path to the transcript JSONL file for the current session.
This file contains the full conversation history.

#### Syntax

```csharp theme={"dark"}
public string TranscriptPath { get; set; }
```

#### Property Value

Type: `string`

## Methods

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual string ToString()
```

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.