Documentation
¶
Overview ¶
Package deployerrors holds the typed CompositeError implementations produced by component deploy (plan + apply) flows. It lives next to the installs domain that consumes it rather than in a central error catalog: each domain owns the custom errors it knows how to produce and parse.
Index ¶
Constants ¶
const AWSPermissionErrorType compositeerrors.Type = "terraform.aws_permission"
AWSPermissionErrorType is the discriminator for AWS IAM permission failures surfaced from a terraform plan/apply during a component deploy.
Variables ¶
This section is empty.
Functions ¶
func Parse ¶
func Parse(raw string) compositeerrors.CompositeError
Parse inspects raw terraform plan/apply error output and returns a typed AWSPermissionError when it recognises an AWS IAM permission failure. It returns nil when there is no confident match, so callers fall back to the existing plain-string status description.
Types ¶
type AWSPermissionError ¶
type AWSPermissionError struct {
// Action is the IAM action the caller lacked, e.g. "ec2:CreateVpc",
// "s3:CreateBucket".
Action string `json:"action"`
// Resource is the ARN (or wildcard) the call targeted, when known.
Resource string `json:"resource,omitempty"`
// Principal is the IAM principal ARN the call was made as, when known.
Principal string `json:"principal,omitempty"`
// AWSErrorCode is the API error code we matched on (AccessDenied,
// UnauthorizedOperation, AccessDeniedException, AuthorizationError).
AWSErrorCode string `json:"aws_error_code,omitempty"`
// RawMessage is the AWS-emitted error line we extracted the fields from.
RawMessage string `json:"raw_message,omitempty"`
}
AWSPermissionError is the typed payload for an AWS API call that failed with AccessDenied / UnauthorizedOperation because the deploy's IAM principal is missing a permission. It implements compositeerrors.CompositeError so it can be returned like any error and frozen onto the owning deploy row.
func (*AWSPermissionError) Error ¶
func (e *AWSPermissionError) Error() string
Error returns the one-line headline shown to users.
func (*AWSPermissionError) Sections ¶
func (e *AWSPermissionError) Sections() []compositeerrors.Section
Sections returns the structured detail rendered in the dashboard: what AWS said, the principal/resource context, and a copy-pasteable IAM policy statement granting the missing action.
func (*AWSPermissionError) Severity ¶
func (e *AWSPermissionError) Severity() compositeerrors.Severity
func (*AWSPermissionError) Type ¶
func (e *AWSPermissionError) Type() compositeerrors.Type