public CognitoContext(
			ICredentialsProvider credentialsProvider,
			ICognitoOptions<T> options
		) {
			if( credentialsProvider is null ) {
				throw new ArgumentException( $"{nameof( credentialsProvider )} must not be null.", nameof( credentialsProvider ) );
			}

			if( options is null ) {
				throw new ArgumentException( $"{nameof( options )} must not be null.", nameof( options ) );
			}

			Provider = CreateCognitoProvider( credentialsProvider, options );
		}
		private static IAmazonCognitoIdentityProvider CreateCognitoProvider(
			ICredentialsProvider credentialsProvider,
			ICognitoOptions<T> options
		) {
			AWSCredentials credentials = credentialsProvider.GetCredentials( options.CredentialsProfile );
			if( !string.IsNullOrWhiteSpace( options.Role ) ) {
				credentials = credentialsProvider.AssumeRole(
								credentials,
								options.Role
							);
			}

			if( !string.IsNullOrWhiteSpace( options.RegionEndpoint ) ) {
				AmazonCognitoIdentityProviderConfig config = new AmazonCognitoIdentityProviderConfig {
					RegionEndpoint = RegionEndpoint.GetBySystemName( options.RegionEndpoint )
				};
				return new AmazonCognitoIdentityProviderClient( credentials, config );
			}

			return new AmazonCognitoIdentityProviderClient( credentials );
		}