or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

change-sets.mdclient-configuration.mddrift-detection.mdgenerated-templates.mdindex.mdpagination-waiters.mdresource-type-registry.mdstack-information.mdstack-management.mdstack-refactoring.mdstack-sets.mdtemplate-operations.md
tile.json

client-configuration.mddocs/

Client Configuration

CloudFormation client setup and configuration for authentication, regions, endpoints, and customization options.

Capabilities

CloudFormation Client

Main service client class for CloudFormation operations with comprehensive configuration support.

/**
 * Main CloudFormation client class extending AWS SDK base client
 * Handles authentication, region configuration, and request processing
 */
class CloudFormationClient {
  constructor(configuration: CloudFormationClientConfig);
  
  /**
   * Send a command to CloudFormation service
   * @param command - CloudFormation command to execute
   * @returns Promise resolving to command output
   */
  send<InputType, OutputType>(
    command: Command<InputType, OutputType>
  ): Promise<OutputType>;
  
  /** Destroy client and clean up resources */
  destroy(): void;
  
  /** Resolved client configuration */
  readonly config: CloudFormationClientResolvedConfig;
}

Usage Examples:

import { CloudFormationClient } from "@aws-sdk/client-cloudformation";

// Basic client with default configuration
const client = new CloudFormationClient({ region: "us-east-1" });

// Client with custom credentials
const client = new CloudFormationClient({
  region: "us-west-2",
  credentials: {
    accessKeyId: "AKIAIOSFODNN7EXAMPLE",
    secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  }
});

// Client with endpoint override for testing
const client = new CloudFormationClient({
  region: "us-east-1",
  endpoint: "http://localhost:4566" // LocalStack
});

Client Configuration Interface

Configuration interface for CloudFormation client initialization.

interface CloudFormationClientConfig {
  /** AWS region for API calls */
  region?: string;
  
  /** AWS credentials provider */
  credentials?: AwsCredentialIdentityProvider;
  
  /** Custom endpoint URL */
  endpoint?: string | EndpointV2 | Provider<EndpointV2>;
  
  /** Maximum number of retry attempts */
  maxAttempts?: number | Provider<number>;
  
  /** Retry mode configuration */
  retryMode?: string | Provider<string>;
  
  /** Logger for debugging */
  logger?: Logger;
  
  /** User agent configuration */
  customUserAgent?: string;
  
  /** HTTP handler configuration */
  requestHandler?: HttpHandler<any> | HttpHandlerUserInput;
  
  /** SHA256 constructor for request signing */
  sha256?: ChecksumConstructor | HashConstructor;
  
  /** URL parser */
  urlParser?: UrlParser;
  
  /** Base64 encoder/decoder */
  base64Decoder?: Decoder;
  base64Encoder?: Encoder;
  
  /** UTF-8 encoder/decoder */
  utf8Decoder?: Decoder;
  utf8Encoder?: Encoder;
  
  /** Request timeout in milliseconds */
  requestTimeout?: number;
  
  /** Disable host prefix injection */
  disableHostPrefix?: boolean;
  
  /** Service defaults mode */
  defaultsMode?: DefaultsMode | Provider<DefaultsMode>;
}

Credential Providers

Common credential provider patterns for CloudFormation client authentication.

interface AwsCredentialIdentityProvider {
  (): Promise<AwsCredentialIdentity>;
}

interface AwsCredentialIdentity {
  accessKeyId: string;
  secretAccessKey: string;
  sessionToken?: string;
  expiration?: Date;
}

Usage Examples:

import { 
  CloudFormationClient,
  fromEnv,
  fromIni,
  fromInstanceMetadata
} from "@aws-sdk/client-cloudformation";

// Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
const client = new CloudFormationClient({
  region: "us-east-1",
  credentials: fromEnv()
});

// AWS credentials file
const client = new CloudFormationClient({
  region: "us-east-1", 
  credentials: fromIni({ profile: "production" })
});

// EC2 instance metadata (for resources running in AWS)
const client = new CloudFormationClient({
  region: "us-east-1",
  credentials: fromInstanceMetadata()
});

// Static credentials (not recommended for production)
const client = new CloudFormationClient({
  region: "us-east-1",
  credentials: {
    accessKeyId: "AKIAIOSFODNN7EXAMPLE",
    secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  }
});

Runtime Configuration

Environment-specific configuration for different JavaScript environments.

interface RuntimeExtension {
  configure(extensionConfiguration: CloudFormationExtensionConfiguration): void;
}

interface CloudFormationExtensionConfiguration {
  runtimeConfig: CloudFormationClientResolvedConfig;
}

Service Exceptions

Base exception class for CloudFormation service errors.

/**
 * Base service exception class for all CloudFormation errors
 */
class CloudFormationServiceException extends Error {
  readonly name: string;
  readonly message: string;
  readonly stack?: string;
  readonly $fault: "client" | "server";
  readonly $service: "CloudFormation";
  readonly $retryable?: RetryableTrait;
}

Common CloudFormation exceptions include:

  • ValidationError - Invalid input parameters
  • AlreadyExistsException - Resource already exists
  • LimitExceededException - Service limits exceeded
  • InsufficientCapabilitiesException - Missing required capabilities
  • TokenAlreadyExistsException - Client token already used
  • StackSetNotFoundException - StackSet not found
  • InvalidOperationException - Invalid operation for current state