Skip to content

DownloadEmails

Download email benefit schema and validated constructor; construction sends no message.

const DownloadEmails: Schema.Union<readonly [Schema.Struct<{
recipient: Schema.Literal<"customer">;
trigger: Schema.Literal<"eligible_settlement">;
type: Schema.tag<"download_email">;
asset: Schema.Struct<{
key: Schema.brand<Schema.String, "DownloadAssetKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>]> & {
discriminants: readonly ["download_email"];
cases: {
download_email: Schema.Struct<{
recipient: Schema.Literal<"customer">;
trigger: Schema.Literal<"eligible_settlement">;
type: Schema.tag<"download_email">;
asset: Schema.Struct<{
key: Schema.brand<Schema.String, "DownloadAssetKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
};
isAnyOf: <Keys>(keys) => (value) => value is Extract<{ recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } }, { type: Keys }>;
guards: {
download_email: (u) => u is { recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } };
};
match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
} & {
customer: (input) => Effect.Effect<typeof DownloadEmailBenefit.Type, Schema.SchemaError>;
};
readonly discriminants: readonly ["download_email"];
readonly cases: {
download_email: Schema.Struct<{
recipient: Schema.Literal<"customer">;
trigger: Schema.Literal<"eligible_settlement">;
type: Schema.tag<"download_email">;
asset: Schema.Struct<{
key: Schema.brand<Schema.String, "DownloadAssetKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
};
download_email: Schema.Struct<{
recipient: Schema.Literal<"customer">;
trigger: Schema.Literal<"eligible_settlement">;
type: Schema.tag<"download_email">;
asset: Schema.Struct<{
key: Schema.brand<Schema.String, "DownloadAssetKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
readonly isAnyOf: <Keys>(keys) => (value) => value is Extract<{ recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } }, { type: Keys }>;

Keys

readonly Keys[]

(value) => value is Extract<{ recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } }, { type: Keys }>

readonly guards: {
download_email: (u) => u is { recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } };
};
download_email: (u) => u is { recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } };

unknown

u is { recipient: "customer"; trigger: "eligible_settlement"; type: "download_email"; asset: { key: string & any; revision: number & any } }

readonly match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
<Cases>(value, cases): Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

"customer"

"eligible_settlement"

"download_email"

{ key: string & any; revision: number & any; }

string & any

number & any

Cases

Cases[keyof Cases] extends (value) => R ? any : never

<Cases>(cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

Cases

(value) => Cases[keyof Cases] extends (value) => R ? any : never

customer: (input) => Effect.Effect<typeof DownloadEmailBenefit.Type, Schema.SchemaError>;

Parses customer download email delivery with its fixed recipient and trigger.

Omit<typeof DownloadEmailBenefit.Encoded, "type" | "recipient" | "trigger">

Effect.Effect<typeof DownloadEmailBenefit.Type, Schema.SchemaError>