// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 package aws.proserve.bcs.dr.dto; import org.immutables.value.Value; import javax.annotation.Nullable; @Value.Immutable public interface Response { Response SUCCESS = ImmutableResponse.builder().isSuccessful(true).isKnownIssue(true).build(); static Response fail(String cause) { return response(cause, false); } static Response unsuccessful(String cause) { return response(cause, true); } static Response response(String cause, boolean known) { return ImmutableResponse.builder() .isSuccessful(false) .isKnownIssue(known) .cause(cause).build(); } boolean isSuccessful(); boolean isKnownIssue(); @Nullable @Value.Default default String getCause() { return null; } }