Skip to content

Fulfillment

External fulfillment benefit schema and validated constructor; no callbacks run during construction or replay.

const Fulfillment: Schema.Union<readonly [Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"external_fulfillment">;
binding: Schema.Struct<{
key: Schema.brand<Schema.String, "FulfillmentBindingKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>]> & {
discriminants: readonly ["external_fulfillment"];
cases: {
external_fulfillment: Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"external_fulfillment">;
binding: Schema.Struct<{
key: Schema.brand<Schema.String, "FulfillmentBindingKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
};
isAnyOf: <Keys>(keys) => (value) => value is Extract<{ entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { key: string & any; revision: number & any } }, { type: Keys }>;
guards: {
external_fulfillment: (u) => u is { entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { 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;
};
} & {
external: (input) => Effect.Effect<typeof FulfillmentBenefit.Type, Schema.SchemaError>;
};
readonly discriminants: readonly ["external_fulfillment"];
readonly cases: {
external_fulfillment: Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"external_fulfillment">;
binding: Schema.Struct<{
key: Schema.brand<Schema.String, "FulfillmentBindingKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
};
external_fulfillment: Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"external_fulfillment">;
binding: Schema.Struct<{
key: Schema.brand<Schema.String, "FulfillmentBindingKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
}>;
}>;
readonly isAnyOf: <Keys>(keys) => (value) => value is Extract<{ entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { key: string & any; revision: number & any } }, { type: Keys }>;

Keys

readonly Keys[]

(value) => value is Extract<{ entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { key: string & any; revision: number & any } }, { type: Keys }>

readonly guards: {
external_fulfillment: (u) => u is { entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { key: string & any; revision: number & any } };
};
external_fulfillment: (u) => u is { entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { key: string & any; revision: number & any } };

unknown

u is { entitlement: string & any; validity: "while_entitled"; type: "external_fulfillment"; binding: { 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; }

string & any

"while_entitled"

"external_fulfillment"

{ 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

external: (input) => Effect.Effect<typeof FulfillmentBenefit.Type, Schema.SchemaError>;

Parses desired external fulfillment associated with a same-purchase entitlement.

Omit<typeof FulfillmentBenefit.Encoded, "type" | "validity">

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