#[non_exhaustive]pub enum RestoreFromClusterSnapshotError {
Show 34 variants
AccessToSnapshotDeniedFault(AccessToSnapshotDeniedFault),
ClusterAlreadyExistsFault(ClusterAlreadyExistsFault),
ClusterParameterGroupNotFoundFault(ClusterParameterGroupNotFoundFault),
ClusterQuotaExceededFault(ClusterQuotaExceededFault),
ClusterSecurityGroupNotFoundFault(ClusterSecurityGroupNotFoundFault),
ClusterSnapshotNotFoundFault(ClusterSnapshotNotFoundFault),
ClusterSubnetGroupNotFoundFault(ClusterSubnetGroupNotFoundFault),
DependentServiceRequestThrottlingFault(DependentServiceRequestThrottlingFault),
DependentServiceUnavailableFault(DependentServiceUnavailableFault),
HsmClientCertificateNotFoundFault(HsmClientCertificateNotFoundFault),
HsmConfigurationNotFoundFault(HsmConfigurationNotFoundFault),
InsufficientClusterCapacityFault(InsufficientClusterCapacityFault),
InvalidClusterSnapshotStateFault(InvalidClusterSnapshotStateFault),
InvalidClusterSubnetGroupStateFault(InvalidClusterSubnetGroupStateFault),
InvalidClusterTrackFault(InvalidClusterTrackFault),
InvalidElasticIpFault(InvalidElasticIpFault),
InvalidReservedNodeStateFault(InvalidReservedNodeStateFault),
InvalidRestoreFault(InvalidRestoreFault),
InvalidSubnet(InvalidSubnet),
InvalidTagFault(InvalidTagFault),
InvalidVpcNetworkStateFault(InvalidVpcNetworkStateFault),
Ipv6CidrBlockNotFoundFault(Ipv6CidrBlockNotFoundFault),
LimitExceededFault(LimitExceededFault),
NumberOfNodesPerClusterLimitExceededFault(NumberOfNodesPerClusterLimitExceededFault),
NumberOfNodesQuotaExceededFault(NumberOfNodesQuotaExceededFault),
ReservedNodeAlreadyExistsFault(ReservedNodeAlreadyExistsFault),
ReservedNodeAlreadyMigratedFault(ReservedNodeAlreadyMigratedFault),
ReservedNodeNotFoundFault(ReservedNodeNotFoundFault),
ReservedNodeOfferingNotFoundFault(ReservedNodeOfferingNotFoundFault),
SnapshotScheduleNotFoundFault(SnapshotScheduleNotFoundFault),
TagLimitExceededFault(TagLimitExceededFault),
UnauthorizedOperation(UnauthorizedOperation),
UnsupportedOperationFault(UnsupportedOperationFault),
Unhandled(Unhandled),
}
Expand description
Error type for the RestoreFromClusterSnapshotError
operation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
AccessToSnapshotDeniedFault(AccessToSnapshotDeniedFault)
The owner of the specified snapshot has not authorized your account to access the snapshot.
ClusterAlreadyExistsFault(ClusterAlreadyExistsFault)
The account already has a cluster with the given identifier.
ClusterParameterGroupNotFoundFault(ClusterParameterGroupNotFoundFault)
The parameter group name does not refer to an existing parameter group.
ClusterQuotaExceededFault(ClusterQuotaExceededFault)
The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.
ClusterSecurityGroupNotFoundFault(ClusterSecurityGroupNotFoundFault)
The cluster security group name does not refer to an existing cluster security group.
ClusterSnapshotNotFoundFault(ClusterSnapshotNotFoundFault)
The snapshot identifier does not refer to an existing cluster snapshot.
ClusterSubnetGroupNotFoundFault(ClusterSubnetGroupNotFoundFault)
The cluster subnet group name does not refer to an existing cluster subnet group.
DependentServiceRequestThrottlingFault(DependentServiceRequestThrottlingFault)
The request cannot be completed because a dependent service is throttling requests made by Amazon Redshift on your behalf. Wait and retry the request.
Your request cannot be completed because a dependent internal service is temporarily unavailable. Wait 30 to 60 seconds and try again.
HsmClientCertificateNotFoundFault(HsmClientCertificateNotFoundFault)
There is no Amazon Redshift HSM client certificate with the specified identifier.
HsmConfigurationNotFoundFault(HsmConfigurationNotFoundFault)
There is no Amazon Redshift HSM configuration with the specified identifier.
InsufficientClusterCapacityFault(InsufficientClusterCapacityFault)
The number of nodes specified exceeds the allotted capacity of the cluster.
InvalidClusterSnapshotStateFault(InvalidClusterSnapshotStateFault)
The specified cluster snapshot is not in the available
state, or other accounts are authorized to access the snapshot.
InvalidClusterSubnetGroupStateFault(InvalidClusterSubnetGroupStateFault)
The cluster subnet group cannot be deleted because it is in use.
InvalidClusterTrackFault(InvalidClusterTrackFault)
The provided cluster track name is not valid.
InvalidElasticIpFault(InvalidElasticIpFault)
The Elastic IP (EIP) is invalid or cannot be found.
InvalidReservedNodeStateFault(InvalidReservedNodeStateFault)
Indicates that the Reserved Node being exchanged is not in an active state.
InvalidRestoreFault(InvalidRestoreFault)
The restore is invalid.
InvalidSubnet(InvalidSubnet)
The requested subnet is not valid, or not all of the subnets are in the same VPC.
InvalidTagFault(InvalidTagFault)
The tag is invalid.
InvalidVpcNetworkStateFault(InvalidVpcNetworkStateFault)
The cluster subnet group does not cover all Availability Zones.
Ipv6CidrBlockNotFoundFault(Ipv6CidrBlockNotFoundFault)
There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode, associate an IPv6 CIDR block with each subnet in your VPC.
LimitExceededFault(LimitExceededFault)
The encryption key has exceeded its grant limit in Amazon Web Services KMS.
NumberOfNodesPerClusterLimitExceededFault(NumberOfNodesPerClusterLimitExceededFault)
The operation would exceed the number of nodes allowed for a cluster.
NumberOfNodesQuotaExceededFault(NumberOfNodesQuotaExceededFault)
The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.
ReservedNodeAlreadyExistsFault(ReservedNodeAlreadyExistsFault)
User already has a reservation with the given identifier.
ReservedNodeAlreadyMigratedFault(ReservedNodeAlreadyMigratedFault)
Indicates that the reserved node has already been exchanged.
ReservedNodeNotFoundFault(ReservedNodeNotFoundFault)
The specified reserved compute node not found.
ReservedNodeOfferingNotFoundFault(ReservedNodeOfferingNotFoundFault)
Specified offering does not exist.
SnapshotScheduleNotFoundFault(SnapshotScheduleNotFoundFault)
We could not find the specified snapshot schedule.
TagLimitExceededFault(TagLimitExceededFault)
You have exceeded the number of tags allowed.
Your account is not authorized to perform the requested operation.
UnsupportedOperationFault(UnsupportedOperationFault)
The requested operation isn't supported.
Unhandled(Unhandled)
Unhandled
directly is not forwards compatible. Instead, match using a variable wildcard pattern and check .code()
:
err if err.code() == Some("SpecificExceptionCode") => { /* handle the error */ }
See ProvideErrorMetadata
for what information is available for the error.An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
Implementations§
Source§impl RestoreFromClusterSnapshotError
impl RestoreFromClusterSnapshotError
Sourcepub fn unhandled(err: impl Into<Box<dyn Error + Send + Sync + 'static>>) -> Self
pub fn unhandled(err: impl Into<Box<dyn Error + Send + Sync + 'static>>) -> Self
Creates the RestoreFromClusterSnapshotError::Unhandled
variant from any error type.
Sourcepub fn generic(err: ErrorMetadata) -> Self
pub fn generic(err: ErrorMetadata) -> Self
Creates the RestoreFromClusterSnapshotError::Unhandled
variant from an ErrorMetadata
.
Sourcepub fn meta(&self) -> &ErrorMetadata
pub fn meta(&self) -> &ErrorMetadata
Returns error metadata, which includes the error code, message, request ID, and potentially additional information.
Sourcepub fn is_access_to_snapshot_denied_fault(&self) -> bool
pub fn is_access_to_snapshot_denied_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::AccessToSnapshotDeniedFault
.
Sourcepub fn is_cluster_already_exists_fault(&self) -> bool
pub fn is_cluster_already_exists_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterAlreadyExistsFault
.
Sourcepub fn is_cluster_parameter_group_not_found_fault(&self) -> bool
pub fn is_cluster_parameter_group_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterParameterGroupNotFoundFault
.
Sourcepub fn is_cluster_quota_exceeded_fault(&self) -> bool
pub fn is_cluster_quota_exceeded_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterQuotaExceededFault
.
Sourcepub fn is_cluster_security_group_not_found_fault(&self) -> bool
pub fn is_cluster_security_group_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterSecurityGroupNotFoundFault
.
Sourcepub fn is_cluster_snapshot_not_found_fault(&self) -> bool
pub fn is_cluster_snapshot_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterSnapshotNotFoundFault
.
Sourcepub fn is_cluster_subnet_group_not_found_fault(&self) -> bool
pub fn is_cluster_subnet_group_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ClusterSubnetGroupNotFoundFault
.
Sourcepub fn is_dependent_service_request_throttling_fault(&self) -> bool
pub fn is_dependent_service_request_throttling_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::DependentServiceRequestThrottlingFault
.
Returns true
if the error kind is RestoreFromClusterSnapshotError::DependentServiceUnavailableFault
.
Sourcepub fn is_hsm_client_certificate_not_found_fault(&self) -> bool
pub fn is_hsm_client_certificate_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::HsmClientCertificateNotFoundFault
.
Sourcepub fn is_hsm_configuration_not_found_fault(&self) -> bool
pub fn is_hsm_configuration_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::HsmConfigurationNotFoundFault
.
Sourcepub fn is_insufficient_cluster_capacity_fault(&self) -> bool
pub fn is_insufficient_cluster_capacity_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InsufficientClusterCapacityFault
.
Sourcepub fn is_invalid_cluster_snapshot_state_fault(&self) -> bool
pub fn is_invalid_cluster_snapshot_state_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidClusterSnapshotStateFault
.
Sourcepub fn is_invalid_cluster_subnet_group_state_fault(&self) -> bool
pub fn is_invalid_cluster_subnet_group_state_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidClusterSubnetGroupStateFault
.
Sourcepub fn is_invalid_cluster_track_fault(&self) -> bool
pub fn is_invalid_cluster_track_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidClusterTrackFault
.
Sourcepub fn is_invalid_elastic_ip_fault(&self) -> bool
pub fn is_invalid_elastic_ip_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidElasticIpFault
.
Sourcepub fn is_invalid_reserved_node_state_fault(&self) -> bool
pub fn is_invalid_reserved_node_state_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidReservedNodeStateFault
.
Sourcepub fn is_invalid_restore_fault(&self) -> bool
pub fn is_invalid_restore_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidRestoreFault
.
Sourcepub fn is_invalid_subnet(&self) -> bool
pub fn is_invalid_subnet(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidSubnet
.
Sourcepub fn is_invalid_tag_fault(&self) -> bool
pub fn is_invalid_tag_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidTagFault
.
Sourcepub fn is_invalid_vpc_network_state_fault(&self) -> bool
pub fn is_invalid_vpc_network_state_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::InvalidVpcNetworkStateFault
.
Sourcepub fn is_ipv6_cidr_block_not_found_fault(&self) -> bool
pub fn is_ipv6_cidr_block_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::Ipv6CidrBlockNotFoundFault
.
Sourcepub fn is_limit_exceeded_fault(&self) -> bool
pub fn is_limit_exceeded_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::LimitExceededFault
.
Sourcepub fn is_number_of_nodes_per_cluster_limit_exceeded_fault(&self) -> bool
pub fn is_number_of_nodes_per_cluster_limit_exceeded_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::NumberOfNodesPerClusterLimitExceededFault
.
Sourcepub fn is_number_of_nodes_quota_exceeded_fault(&self) -> bool
pub fn is_number_of_nodes_quota_exceeded_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::NumberOfNodesQuotaExceededFault
.
Sourcepub fn is_reserved_node_already_exists_fault(&self) -> bool
pub fn is_reserved_node_already_exists_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ReservedNodeAlreadyExistsFault
.
Sourcepub fn is_reserved_node_already_migrated_fault(&self) -> bool
pub fn is_reserved_node_already_migrated_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ReservedNodeAlreadyMigratedFault
.
Sourcepub fn is_reserved_node_not_found_fault(&self) -> bool
pub fn is_reserved_node_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ReservedNodeNotFoundFault
.
Sourcepub fn is_reserved_node_offering_not_found_fault(&self) -> bool
pub fn is_reserved_node_offering_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::ReservedNodeOfferingNotFoundFault
.
Sourcepub fn is_snapshot_schedule_not_found_fault(&self) -> bool
pub fn is_snapshot_schedule_not_found_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::SnapshotScheduleNotFoundFault
.
Sourcepub fn is_tag_limit_exceeded_fault(&self) -> bool
pub fn is_tag_limit_exceeded_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::TagLimitExceededFault
.
Returns true
if the error kind is RestoreFromClusterSnapshotError::UnauthorizedOperation
.
Sourcepub fn is_unsupported_operation_fault(&self) -> bool
pub fn is_unsupported_operation_fault(&self) -> bool
Returns true
if the error kind is RestoreFromClusterSnapshotError::UnsupportedOperationFault
.
Trait Implementations§
Source§impl CreateUnhandledError for RestoreFromClusterSnapshotError
impl CreateUnhandledError for RestoreFromClusterSnapshotError
Source§fn create_unhandled_error(
source: Box<dyn Error + Send + Sync + 'static>,
meta: Option<ErrorMetadata>,
) -> Self
fn create_unhandled_error( source: Box<dyn Error + Send + Sync + 'static>, meta: Option<ErrorMetadata>, ) -> Self
source
and error metadata.Source§impl Error for RestoreFromClusterSnapshotError
impl Error for RestoreFromClusterSnapshotError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<RestoreFromClusterSnapshotError> for Error
impl From<RestoreFromClusterSnapshotError> for Error
Source§fn from(err: RestoreFromClusterSnapshotError) -> Self
fn from(err: RestoreFromClusterSnapshotError) -> Self
Source§impl ProvideErrorMetadata for RestoreFromClusterSnapshotError
impl ProvideErrorMetadata for RestoreFromClusterSnapshotError
Source§fn meta(&self) -> &ErrorMetadata
fn meta(&self) -> &ErrorMetadata
Source§impl RequestId for RestoreFromClusterSnapshotError
impl RequestId for RestoreFromClusterSnapshotError
Source§fn request_id(&self) -> Option<&str>
fn request_id(&self) -> Option<&str>
None
if the service could not be reached.Auto Trait Implementations§
impl Freeze for RestoreFromClusterSnapshotError
impl !RefUnwindSafe for RestoreFromClusterSnapshotError
impl Send for RestoreFromClusterSnapshotError
impl Sync for RestoreFromClusterSnapshotError
impl Unpin for RestoreFromClusterSnapshotError
impl !UnwindSafe for RestoreFromClusterSnapshotError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);