Show / Hide Table of Contents

Namespace Pulumi.Cloud.Sdk

Classes

ApiClient

HTTP engine for the generated Pulumi Cloud SDK, built on HttpClient. Generated *Api methods build an ApiRequest and hand it to Call<T>(ApiRequest); this class substitutes path parameters, encodes the query string, applies authentication and headers, serializes the body, performs the request, and deserializes the 2xx response into the requested type. Non-2xx responses and transport/serialization failures surface as ApiException.

The public API is synchronous, mirroring the Java SDK; requests are dispatched through the async HttpClient and awaited.

ApiClientConfiguration

Connection settings shared by every generated *Api class.

Host is the API origin (no /api suffix — the generated resource paths already start with /api/...). AccessToken supplies the Pulumi access token sent as Authorization: token <token>; it is a delegate so a rotating token can be re-read per request. Return null for unauthenticated requests.

ApiException

Thrown for a non-2xx HTTP response, a transport failure, or a serialization/deserialization error.

ApiRequest

Mutable carrier populated fluently by a generated *Api method before it hands the request to ApiClient. Holds the HTTP verb, the templated resource path (/api/.../{param}), the categorized parameters, the request body, and the negotiated media types.

Json

Shared, pre-configured Newtonsoft.Json settings for the generated SDK.

Newtonsoft.Json.NullValueHandling.Ignore drops unset properties on serialization (matching the Python/TypeScript reference clients, which omit unset values on the wire). DateParseHandling.None leaves untyped JSON (JToken fields) exactly as received — typed DateTimeOffset properties are still parsed from ISO-8601 by their declared type. Polymorphic (discriminated-union) models resolve through the per-type PolymorphicConverter attached by the generator, not through Newtonsoft's $type metadata, which is therefore disabled.

JsonDiscriminatorAttribute

Names the discriminator property of a discriminated-union hierarchy. Emitted by the generator on the ROOT of the hierarchy and inherited by every subtype — the C# analog of Jackson's @JsonTypeInfo(property = "…").

JsonSubTypeAttribute

Registers a candidate concrete subtype on a polymorphic base — the C# analog of a single @JsonSubTypes.Type entry. The generator emits one per concrete type in the base's subtree; the wire value for each comes from that type's JsonSubTypeNameAttribute.

JsonSubTypeNameAttribute

The discriminator wire value for a concrete type — the C# analog of Jackson's @JsonTypeName. Read on deserialization to resolve the type and written on serialization to emit the discriminator.

JsonSubTypeUnknownAttribute

Registers the synthetic fallback subtype for a polymorphic base marked wildcardSubtype = true in the IDL. Emitted by the generator on the root of the hierarchy. When the wire discriminator value does not match any registered JsonSubTypeAttribute, PolymorphicConverter constructs this subtype instead of failing to deserialize.

PolymorphicConverter

Newtonsoft converter that resolves a discriminated union by reading its discriminator property (at any position in the object) and mapping the value to the concrete type registered via JsonSubTypeAttribute / JsonSubTypeNameAttribute. On write it emits the discriminator for the runtime type. It is attached to a hierarchy's root by the generator and inherited by every subtype.

Recursion is broken with the canonical per-thread CanRead / CanWrite toggle: after resolving the concrete type, the converter suppresses itself for exactly the one nested (de)serialization of that type, so its own members are handled by the default contract while any polymorphic fields WITHIN it (including recursive references back to the same union) are still routed through the converter.

ResponseWithHeaders<R, H>

Pairs a deserialized response body with typed response headers, mirroring apitype.ResponseWithHeaders[R, H] (Go) / ResponseWithHeaders<R, H> (TypeScript) / ResponseWithHeaders[R, H] (Python). Returned by generated *Api methods for operations whose response declares response headers. Declared in the top-level Pulumi.Cloud.Sdk namespace (alongside ApiClient) so generated code in Pulumi.Cloud.Sdk.Api resolves it via enclosing-namespace lookup, the same way it already resolves ApiClient and ApiRequest with no extra using.

Interfaces

IJsonWildcardSubtype

Implemented by a generated "Unknown" fallback subtype (wildcardSubtype = true in the IDL). Populated directly by PolymorphicConverter when no JsonSubTypeAttribute / JsonSubTypeNameAttribute matches the wire discriminator value.

Version 2026.10.9

Back to top Copyright 2016-2026, Pulumi Corporation.