| All Verbs | /stripe-session/{Id} |
|---|
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class StripeEntity implements IStripeEntity, JsonSerializable
{
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
return empty($o) ? new class(){} : $o;
}
}
/**
* @template T
*/
class StripeEntity1 extends StripeEntity implements JsonSerializable
{
public array $genericArgs = [];
public static function create(array $genericArgs=[]): StripeEntity1 {
$to = new StripeEntity1();
$to->genericArgs = $genericArgs;
return $to;
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionAfterExpirationRecovery
*/
class SessionAfterExpirationRecovery extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $AllowPromotionCodes=null,
/** @var bool|null */
public ?bool $Enabled=null,
/** @var DateTime|null */
public ?DateTime $ExpiresAt=null,
/** @var string|null */
public ?string $Url=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AllowPromotionCodes'])) $this->AllowPromotionCodes = $o['AllowPromotionCodes'];
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
if (isset($o['ExpiresAt'])) $this->ExpiresAt = JsonConverters::from('DateTime', $o['ExpiresAt']);
if (isset($o['Url'])) $this->Url = $o['Url'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AllowPromotionCodes)) $o['AllowPromotionCodes'] = $this->AllowPromotionCodes;
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
if (isset($this->ExpiresAt)) $o['ExpiresAt'] = JsonConverters::to('DateTime', $this->ExpiresAt);
if (isset($this->Url)) $o['Url'] = $this->Url;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionAfterExpiration
*/
class SessionAfterExpiration extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionAfterExpirationRecovery|null */
public ?SessionAfterExpirationRecovery $Recovery=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Recovery'])) $this->Recovery = JsonConverters::from('SessionAfterExpirationRecovery', $o['Recovery']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Recovery)) $o['Recovery'] = JsonConverters::to('SessionAfterExpirationRecovery', $this->Recovery);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionAutomaticTax
*/
class SessionAutomaticTax extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Enabled=null,
/** @var string|null */
public ?string $Status=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
if (isset($o['Status'])) $this->Status = $o['Status'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
if (isset($this->Status)) $o['Status'] = $this->Status;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionConsent
*/
class SessionConsent extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Promotions=null,
/** @var string|null */
public ?string $TermsOfService=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Promotions'])) $this->Promotions = $o['Promotions'];
if (isset($o['TermsOfService'])) $this->TermsOfService = $o['TermsOfService'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Promotions)) $o['Promotions'] = $this->Promotions;
if (isset($this->TermsOfService)) $o['TermsOfService'] = $this->TermsOfService;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionConsentCollection
*/
class SessionConsentCollection extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Promotions=null,
/** @var string|null */
public ?string $TermsOfService=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Promotions'])) $this->Promotions = $o['Promotions'];
if (isset($o['TermsOfService'])) $this->TermsOfService = $o['TermsOfService'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Promotions)) $o['Promotions'] = $this->Promotions;
if (isset($this->TermsOfService)) $o['TermsOfService'] = $this->TermsOfService;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomFieldDropdownOption
*/
class SessionCustomFieldDropdownOption extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Label=null,
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Label'])) $this->Label = $o['Label'];
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Label)) $o['Label'] = $this->Label;
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomFieldDropdown
*/
class SessionCustomFieldDropdown extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var array<SessionCustomFieldDropdownOption>|null */
public ?array $Options=null,
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Options'])) $this->Options = JsonConverters::fromArray('SessionCustomFieldDropdownOption', $o['Options']);
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Options)) $o['Options'] = JsonConverters::toArray('SessionCustomFieldDropdownOption', $this->Options);
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomFieldLabel
*/
class SessionCustomFieldLabel extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Custom=null,
/** @var string|null */
public ?string $Type=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Custom'])) $this->Custom = $o['Custom'];
if (isset($o['Type'])) $this->Type = $o['Type'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Custom)) $o['Custom'] = $this->Custom;
if (isset($this->Type)) $o['Type'] = $this->Type;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomFieldNumeric
*/
class SessionCustomFieldNumeric extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomFieldText
*/
class SessionCustomFieldText extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomField
*/
class SessionCustomField extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionCustomFieldDropdown|null */
public ?SessionCustomFieldDropdown $Dropdown=null,
/** @var string|null */
public ?string $Key=null,
/** @var SessionCustomFieldLabel|null */
public ?SessionCustomFieldLabel $Label=null,
/** @var SessionCustomFieldNumeric|null */
public ?SessionCustomFieldNumeric $Numeric=null,
/** @var bool|null */
public ?bool $Optional=null,
/** @var SessionCustomFieldText|null */
public ?SessionCustomFieldText $Text=null,
/** @var string|null */
public ?string $Type=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Dropdown'])) $this->Dropdown = JsonConverters::from('SessionCustomFieldDropdown', $o['Dropdown']);
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Label'])) $this->Label = JsonConverters::from('SessionCustomFieldLabel', $o['Label']);
if (isset($o['Numeric'])) $this->Numeric = JsonConverters::from('SessionCustomFieldNumeric', $o['Numeric']);
if (isset($o['Optional'])) $this->Optional = $o['Optional'];
if (isset($o['Text'])) $this->Text = JsonConverters::from('SessionCustomFieldText', $o['Text']);
if (isset($o['Type'])) $this->Type = $o['Type'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Dropdown)) $o['Dropdown'] = JsonConverters::to('SessionCustomFieldDropdown', $this->Dropdown);
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Label)) $o['Label'] = JsonConverters::to('SessionCustomFieldLabel', $this->Label);
if (isset($this->Numeric)) $o['Numeric'] = JsonConverters::to('SessionCustomFieldNumeric', $this->Numeric);
if (isset($this->Optional)) $o['Optional'] = $this->Optional;
if (isset($this->Text)) $o['Text'] = JsonConverters::to('SessionCustomFieldText', $this->Text);
if (isset($this->Type)) $o['Type'] = $this->Type;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomTextShippingAddress
*/
class SessionCustomTextShippingAddress extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Message=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Message'])) $this->Message = $o['Message'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Message)) $o['Message'] = $this->Message;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomTextSubmit
*/
class SessionCustomTextSubmit extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Message=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Message'])) $this->Message = $o['Message'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Message)) $o['Message'] = $this->Message;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomText
*/
class SessionCustomText extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionCustomTextShippingAddress|null */
public ?SessionCustomTextShippingAddress $ShippingAddress=null,
/** @var SessionCustomTextSubmit|null */
public ?SessionCustomTextSubmit $Submit=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ShippingAddress'])) $this->ShippingAddress = JsonConverters::from('SessionCustomTextShippingAddress', $o['ShippingAddress']);
if (isset($o['Submit'])) $this->Submit = JsonConverters::from('SessionCustomTextSubmit', $o['Submit']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ShippingAddress)) $o['ShippingAddress'] = JsonConverters::to('SessionCustomTextShippingAddress', $this->ShippingAddress);
if (isset($this->Submit)) $o['Submit'] = JsonConverters::to('SessionCustomTextSubmit', $this->Submit);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of Address
*/
class Address extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $City=null,
/** @var string|null */
public ?string $Country=null,
/** @var string|null */
public ?string $Line1=null,
/** @var string|null */
public ?string $Line2=null,
/** @var string|null */
public ?string $PostalCode=null,
/** @var string|null */
public ?string $State=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['City'])) $this->City = $o['City'];
if (isset($o['Country'])) $this->Country = $o['Country'];
if (isset($o['Line1'])) $this->Line1 = $o['Line1'];
if (isset($o['Line2'])) $this->Line2 = $o['Line2'];
if (isset($o['PostalCode'])) $this->PostalCode = $o['PostalCode'];
if (isset($o['State'])) $this->State = $o['State'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->City)) $o['City'] = $this->City;
if (isset($this->Country)) $o['Country'] = $this->Country;
if (isset($this->Line1)) $o['Line1'] = $this->Line1;
if (isset($this->Line2)) $o['Line2'] = $this->Line2;
if (isset($this->PostalCode)) $o['PostalCode'] = $this->PostalCode;
if (isset($this->State)) $o['State'] = $this->State;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomerDetailsTaxId
*/
class SessionCustomerDetailsTaxId extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Type=null,
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Type'])) $this->Type = $o['Type'];
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Type)) $o['Type'] = $this->Type;
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionCustomerDetails
*/
class SessionCustomerDetails extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var Address|null */
public ?Address $Address=null,
/** @var string|null */
public ?string $Email=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Phone=null,
/** @var string|null */
public ?string $TaxExempt=null,
/** @var array<SessionCustomerDetailsTaxId>|null */
public ?array $TaxIds=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Address'])) $this->Address = JsonConverters::from('Address', $o['Address']);
if (isset($o['Email'])) $this->Email = $o['Email'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Phone'])) $this->Phone = $o['Phone'];
if (isset($o['TaxExempt'])) $this->TaxExempt = $o['TaxExempt'];
if (isset($o['TaxIds'])) $this->TaxIds = JsonConverters::fromArray('SessionCustomerDetailsTaxId', $o['TaxIds']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Address)) $o['Address'] = JsonConverters::to('Address', $this->Address);
if (isset($this->Email)) $o['Email'] = $this->Email;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Phone)) $o['Phone'] = $this->Phone;
if (isset($this->TaxExempt)) $o['TaxExempt'] = $this->TaxExempt;
if (isset($this->TaxIds)) $o['TaxIds'] = JsonConverters::toArray('SessionCustomerDetailsTaxId', $this->TaxIds);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionInvoiceCreationInvoiceDataCustomField
*/
class SessionInvoiceCreationInvoiceDataCustomField extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionInvoiceCreationInvoiceDataRenderingOptions
*/
class SessionInvoiceCreationInvoiceDataRenderingOptions extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $AmountTaxDisplay=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AmountTaxDisplay'])) $this->AmountTaxDisplay = $o['AmountTaxDisplay'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AmountTaxDisplay)) $o['AmountTaxDisplay'] = $this->AmountTaxDisplay;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionInvoiceCreationInvoiceData
*/
class SessionInvoiceCreationInvoiceData extends StripeEntity1 implements IHasMetadata, JsonSerializable
{
public function __construct(
/** @var array<SessionInvoiceCreationInvoiceDataCustomField>|null */
public ?array $CustomFields=null,
/** @var string|null */
public ?string $Description=null,
/** @var string|null */
public ?string $Footer=null,
/** @var array<string,string>|null */
public ?array $Metadata=null,
/** @var SessionInvoiceCreationInvoiceDataRenderingOptions|null */
public ?SessionInvoiceCreationInvoiceDataRenderingOptions $RenderingOptions=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['CustomFields'])) $this->CustomFields = JsonConverters::fromArray('SessionInvoiceCreationInvoiceDataCustomField', $o['CustomFields']);
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Footer'])) $this->Footer = $o['Footer'];
if (isset($o['Metadata'])) $this->Metadata = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Metadata']);
if (isset($o['RenderingOptions'])) $this->RenderingOptions = JsonConverters::from('SessionInvoiceCreationInvoiceDataRenderingOptions', $o['RenderingOptions']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->CustomFields)) $o['CustomFields'] = JsonConverters::toArray('SessionInvoiceCreationInvoiceDataCustomField', $this->CustomFields);
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Footer)) $o['Footer'] = $this->Footer;
if (isset($this->Metadata)) $o['Metadata'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Metadata);
if (isset($this->RenderingOptions)) $o['RenderingOptions'] = JsonConverters::to('SessionInvoiceCreationInvoiceDataRenderingOptions', $this->RenderingOptions);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionInvoiceCreation
*/
class SessionInvoiceCreation extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Enabled=null,
/** @var SessionInvoiceCreationInvoiceData|null */
public ?SessionInvoiceCreationInvoiceData $InvoiceData=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
if (isset($o['InvoiceData'])) $this->InvoiceData = JsonConverters::from('SessionInvoiceCreationInvoiceData', $o['InvoiceData']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
if (isset($this->InvoiceData)) $o['InvoiceData'] = JsonConverters::to('SessionInvoiceCreationInvoiceData', $this->InvoiceData);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of CouponAppliesTo
*/
class CouponAppliesTo extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var array<string>|null */
public ?array $Products=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Products'])) $this->Products = JsonConverters::fromArray('string', $o['Products']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Products)) $o['Products'] = JsonConverters::toArray('string', $this->Products);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of CouponCurrencyOptions
*/
class CouponCurrencyOptions extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $AmountOff=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AmountOff'])) $this->AmountOff = $o['AmountOff'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AmountOff)) $o['AmountOff'] = $this->AmountOff;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of Coupon
*/
class Coupon extends StripeEntity1 implements IHasId, IHasMetadata, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var int|null */
public ?int $AmountOff=null,
/** @var CouponAppliesTo|null */
public ?CouponAppliesTo $AppliesTo=null,
/** @var DateTime */
public DateTime $Created=new DateTime(),
/** @var string|null */
public ?string $Currency=null,
/** @var array<string,CouponCurrencyOptions>|null */
public ?array $CurrencyOptions=null,
/** @var bool|null */
public ?bool $Deleted=null,
/** @var string|null */
public ?string $Duration=null,
/** @var int|null */
public ?int $DurationInMonths=null,
/** @var bool|null */
public ?bool $Livemode=null,
/** @var int|null */
public ?int $MaxRedemptions=null,
/** @var array<string,string>|null */
public ?array $Metadata=null,
/** @var string|null */
public ?string $Name=null,
/** @var float|null */
public ?float $PercentOff=null,
/** @var DateTime|null */
public ?DateTime $RedeemBy=null,
/** @var int */
public int $TimesRedeemed=0,
/** @var bool|null */
public ?bool $Valid=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['AmountOff'])) $this->AmountOff = $o['AmountOff'];
if (isset($o['AppliesTo'])) $this->AppliesTo = JsonConverters::from('CouponAppliesTo', $o['AppliesTo']);
if (isset($o['Created'])) $this->Created = JsonConverters::from('DateTime', $o['Created']);
if (isset($o['Currency'])) $this->Currency = $o['Currency'];
if (isset($o['CurrencyOptions'])) $this->CurrencyOptions = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','CouponCurrencyOptions']), $o['CurrencyOptions']);
if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
if (isset($o['Duration'])) $this->Duration = $o['Duration'];
if (isset($o['DurationInMonths'])) $this->DurationInMonths = $o['DurationInMonths'];
if (isset($o['Livemode'])) $this->Livemode = $o['Livemode'];
if (isset($o['MaxRedemptions'])) $this->MaxRedemptions = $o['MaxRedemptions'];
if (isset($o['Metadata'])) $this->Metadata = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Metadata']);
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['PercentOff'])) $this->PercentOff = $o['PercentOff'];
if (isset($o['RedeemBy'])) $this->RedeemBy = JsonConverters::from('DateTime', $o['RedeemBy']);
if (isset($o['TimesRedeemed'])) $this->TimesRedeemed = $o['TimesRedeemed'];
if (isset($o['Valid'])) $this->Valid = $o['Valid'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->AmountOff)) $o['AmountOff'] = $this->AmountOff;
if (isset($this->AppliesTo)) $o['AppliesTo'] = JsonConverters::to('CouponAppliesTo', $this->AppliesTo);
if (isset($this->Created)) $o['Created'] = JsonConverters::to('DateTime', $this->Created);
if (isset($this->Currency)) $o['Currency'] = $this->Currency;
if (isset($this->CurrencyOptions)) $o['CurrencyOptions'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','CouponCurrencyOptions']), $this->CurrencyOptions);
if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
if (isset($this->Duration)) $o['Duration'] = $this->Duration;
if (isset($this->DurationInMonths)) $o['DurationInMonths'] = $this->DurationInMonths;
if (isset($this->Livemode)) $o['Livemode'] = $this->Livemode;
if (isset($this->MaxRedemptions)) $o['MaxRedemptions'] = $this->MaxRedemptions;
if (isset($this->Metadata)) $o['Metadata'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Metadata);
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->PercentOff)) $o['PercentOff'] = $this->PercentOff;
if (isset($this->RedeemBy)) $o['RedeemBy'] = JsonConverters::to('DateTime', $this->RedeemBy);
if (isset($this->TimesRedeemed)) $o['TimesRedeemed'] = $this->TimesRedeemed;
if (isset($this->Valid)) $o['Valid'] = $this->Valid;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of Discount
*/
class Discount extends StripeEntity1 implements IHasId, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var string|null */
public ?string $CheckoutSession=null,
/** @var Coupon|null */
public ?Coupon $Coupon=null,
/** @var bool|null */
public ?bool $Deleted=null,
/** @var DateTime|null */
public ?DateTime $End=null,
/** @var string|null */
public ?string $Invoice=null,
/** @var string|null */
public ?string $InvoiceItem=null,
/** @var DateTime|null */
public ?DateTime $Start=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['CheckoutSession'])) $this->CheckoutSession = $o['CheckoutSession'];
if (isset($o['Coupon'])) $this->Coupon = JsonConverters::from('Coupon', $o['Coupon']);
if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
if (isset($o['End'])) $this->End = JsonConverters::from('DateTime', $o['End']);
if (isset($o['Invoice'])) $this->Invoice = $o['Invoice'];
if (isset($o['InvoiceItem'])) $this->InvoiceItem = $o['InvoiceItem'];
if (isset($o['Start'])) $this->Start = JsonConverters::from('DateTime', $o['Start']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->CheckoutSession)) $o['CheckoutSession'] = $this->CheckoutSession;
if (isset($this->Coupon)) $o['Coupon'] = JsonConverters::to('Coupon', $this->Coupon);
if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
if (isset($this->End)) $o['End'] = JsonConverters::to('DateTime', $this->End);
if (isset($this->Invoice)) $o['Invoice'] = $this->Invoice;
if (isset($this->InvoiceItem)) $o['InvoiceItem'] = $this->InvoiceItem;
if (isset($this->Start)) $o['Start'] = JsonConverters::to('DateTime', $this->Start);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of LineItemDiscount
*/
class LineItemDiscount extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Amount=0,
/** @var Discount|null */
public ?Discount $Discount=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Amount'])) $this->Amount = $o['Amount'];
if (isset($o['Discount'])) $this->Discount = JsonConverters::from('Discount', $o['Discount']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Amount)) $o['Amount'] = $this->Amount;
if (isset($this->Discount)) $o['Discount'] = JsonConverters::to('Discount', $this->Discount);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceCurrencyOptionsCustomUnitAmount
*/
class PriceCurrencyOptionsCustomUnitAmount extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $Maximum=null,
/** @var int|null */
public ?int $Minimum=null,
/** @var int|null */
public ?int $Preset=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Maximum'])) $this->Maximum = $o['Maximum'];
if (isset($o['Minimum'])) $this->Minimum = $o['Minimum'];
if (isset($o['Preset'])) $this->Preset = $o['Preset'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Maximum)) $o['Maximum'] = $this->Maximum;
if (isset($this->Minimum)) $o['Minimum'] = $this->Minimum;
if (isset($this->Preset)) $o['Preset'] = $this->Preset;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceCurrencyOptionsTier
*/
class PriceCurrencyOptionsTier extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $FlatAmount=null,
/** @var float|null */
public ?float $FlatAmountDecimal=null,
/** @var int|null */
public ?int $UnitAmount=null,
/** @var float|null */
public ?float $UnitAmountDecimal=null,
/** @var int|null */
public ?int $UpTo=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['FlatAmount'])) $this->FlatAmount = $o['FlatAmount'];
if (isset($o['FlatAmountDecimal'])) $this->FlatAmountDecimal = $o['FlatAmountDecimal'];
if (isset($o['UnitAmount'])) $this->UnitAmount = $o['UnitAmount'];
if (isset($o['UnitAmountDecimal'])) $this->UnitAmountDecimal = $o['UnitAmountDecimal'];
if (isset($o['UpTo'])) $this->UpTo = $o['UpTo'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->FlatAmount)) $o['FlatAmount'] = $this->FlatAmount;
if (isset($this->FlatAmountDecimal)) $o['FlatAmountDecimal'] = $this->FlatAmountDecimal;
if (isset($this->UnitAmount)) $o['UnitAmount'] = $this->UnitAmount;
if (isset($this->UnitAmountDecimal)) $o['UnitAmountDecimal'] = $this->UnitAmountDecimal;
if (isset($this->UpTo)) $o['UpTo'] = $this->UpTo;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceCurrencyOptions
*/
class PriceCurrencyOptions extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var PriceCurrencyOptionsCustomUnitAmount|null */
public ?PriceCurrencyOptionsCustomUnitAmount $CustomUnitAmount=null,
/** @var string|null */
public ?string $TaxBehavior=null,
/** @var array<PriceCurrencyOptionsTier>|null */
public ?array $Tiers=null,
/** @var int|null */
public ?int $UnitAmount=null,
/** @var float|null */
public ?float $UnitAmountDecimal=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['CustomUnitAmount'])) $this->CustomUnitAmount = JsonConverters::from('PriceCurrencyOptionsCustomUnitAmount', $o['CustomUnitAmount']);
if (isset($o['TaxBehavior'])) $this->TaxBehavior = $o['TaxBehavior'];
if (isset($o['Tiers'])) $this->Tiers = JsonConverters::fromArray('PriceCurrencyOptionsTier', $o['Tiers']);
if (isset($o['UnitAmount'])) $this->UnitAmount = $o['UnitAmount'];
if (isset($o['UnitAmountDecimal'])) $this->UnitAmountDecimal = $o['UnitAmountDecimal'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->CustomUnitAmount)) $o['CustomUnitAmount'] = JsonConverters::to('PriceCurrencyOptionsCustomUnitAmount', $this->CustomUnitAmount);
if (isset($this->TaxBehavior)) $o['TaxBehavior'] = $this->TaxBehavior;
if (isset($this->Tiers)) $o['Tiers'] = JsonConverters::toArray('PriceCurrencyOptionsTier', $this->Tiers);
if (isset($this->UnitAmount)) $o['UnitAmount'] = $this->UnitAmount;
if (isset($this->UnitAmountDecimal)) $o['UnitAmountDecimal'] = $this->UnitAmountDecimal;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceCustomUnitAmount
*/
class PriceCustomUnitAmount extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $Maximum=null,
/** @var int|null */
public ?int $Minimum=null,
/** @var int|null */
public ?int $Preset=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Maximum'])) $this->Maximum = $o['Maximum'];
if (isset($o['Minimum'])) $this->Minimum = $o['Minimum'];
if (isset($o['Preset'])) $this->Preset = $o['Preset'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Maximum)) $o['Maximum'] = $this->Maximum;
if (isset($this->Minimum)) $o['Minimum'] = $this->Minimum;
if (isset($this->Preset)) $o['Preset'] = $this->Preset;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceRecurring
*/
class PriceRecurring extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $AggregateUsage=null,
/** @var string|null */
public ?string $Interval=null,
/** @var int */
public int $IntervalCount=0,
/** @var int|null */
public ?int $TrialPeriodDays=null,
/** @var string|null */
public ?string $UsageType=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AggregateUsage'])) $this->AggregateUsage = $o['AggregateUsage'];
if (isset($o['Interval'])) $this->Interval = $o['Interval'];
if (isset($o['IntervalCount'])) $this->IntervalCount = $o['IntervalCount'];
if (isset($o['TrialPeriodDays'])) $this->TrialPeriodDays = $o['TrialPeriodDays'];
if (isset($o['UsageType'])) $this->UsageType = $o['UsageType'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AggregateUsage)) $o['AggregateUsage'] = $this->AggregateUsage;
if (isset($this->Interval)) $o['Interval'] = $this->Interval;
if (isset($this->IntervalCount)) $o['IntervalCount'] = $this->IntervalCount;
if (isset($this->TrialPeriodDays)) $o['TrialPeriodDays'] = $this->TrialPeriodDays;
if (isset($this->UsageType)) $o['UsageType'] = $this->UsageType;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceTier
*/
class PriceTier extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $FlatAmount=null,
/** @var float|null */
public ?float $FlatAmountDecimal=null,
/** @var int|null */
public ?int $UnitAmount=null,
/** @var float|null */
public ?float $UnitAmountDecimal=null,
/** @var int|null */
public ?int $UpTo=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['FlatAmount'])) $this->FlatAmount = $o['FlatAmount'];
if (isset($o['FlatAmountDecimal'])) $this->FlatAmountDecimal = $o['FlatAmountDecimal'];
if (isset($o['UnitAmount'])) $this->UnitAmount = $o['UnitAmount'];
if (isset($o['UnitAmountDecimal'])) $this->UnitAmountDecimal = $o['UnitAmountDecimal'];
if (isset($o['UpTo'])) $this->UpTo = $o['UpTo'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->FlatAmount)) $o['FlatAmount'] = $this->FlatAmount;
if (isset($this->FlatAmountDecimal)) $o['FlatAmountDecimal'] = $this->FlatAmountDecimal;
if (isset($this->UnitAmount)) $o['UnitAmount'] = $this->UnitAmount;
if (isset($this->UnitAmountDecimal)) $o['UnitAmountDecimal'] = $this->UnitAmountDecimal;
if (isset($this->UpTo)) $o['UpTo'] = $this->UpTo;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of PriceTransformQuantity
*/
class PriceTransformQuantity extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $DivideBy=0,
/** @var string|null */
public ?string $Round=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['DivideBy'])) $this->DivideBy = $o['DivideBy'];
if (isset($o['Round'])) $this->Round = $o['Round'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->DivideBy)) $o['DivideBy'] = $this->DivideBy;
if (isset($this->Round)) $o['Round'] = $this->Round;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of Price
*/
class Price extends StripeEntity1 implements IHasId, IHasMetadata, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var bool|null */
public ?bool $Active=null,
/** @var string|null */
public ?string $BillingScheme=null,
/** @var DateTime */
public DateTime $Created=new DateTime(),
/** @var string|null */
public ?string $Currency=null,
/** @var array<string,PriceCurrencyOptions>|null */
public ?array $CurrencyOptions=null,
/** @var PriceCustomUnitAmount|null */
public ?PriceCustomUnitAmount $CustomUnitAmount=null,
/** @var bool|null */
public ?bool $Deleted=null,
/** @var bool|null */
public ?bool $Livemode=null,
/** @var string|null */
public ?string $LookupKey=null,
/** @var array<string,string>|null */
public ?array $Metadata=null,
/** @var string|null */
public ?string $Nickname=null,
/** @var PriceRecurring|null */
public ?PriceRecurring $Recurring=null,
/** @var string|null */
public ?string $TaxBehavior=null,
/** @var array<PriceTier>|null */
public ?array $Tiers=null,
/** @var string|null */
public ?string $TiersMode=null,
/** @var PriceTransformQuantity|null */
public ?PriceTransformQuantity $TransformQuantity=null,
/** @var string|null */
public ?string $Type=null,
/** @var int|null */
public ?int $UnitAmount=null,
/** @var float|null */
public ?float $UnitAmountDecimal=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['Active'])) $this->Active = $o['Active'];
if (isset($o['BillingScheme'])) $this->BillingScheme = $o['BillingScheme'];
if (isset($o['Created'])) $this->Created = JsonConverters::from('DateTime', $o['Created']);
if (isset($o['Currency'])) $this->Currency = $o['Currency'];
if (isset($o['CurrencyOptions'])) $this->CurrencyOptions = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','PriceCurrencyOptions']), $o['CurrencyOptions']);
if (isset($o['CustomUnitAmount'])) $this->CustomUnitAmount = JsonConverters::from('PriceCustomUnitAmount', $o['CustomUnitAmount']);
if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
if (isset($o['Livemode'])) $this->Livemode = $o['Livemode'];
if (isset($o['LookupKey'])) $this->LookupKey = $o['LookupKey'];
if (isset($o['Metadata'])) $this->Metadata = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Metadata']);
if (isset($o['Nickname'])) $this->Nickname = $o['Nickname'];
if (isset($o['Recurring'])) $this->Recurring = JsonConverters::from('PriceRecurring', $o['Recurring']);
if (isset($o['TaxBehavior'])) $this->TaxBehavior = $o['TaxBehavior'];
if (isset($o['Tiers'])) $this->Tiers = JsonConverters::fromArray('PriceTier', $o['Tiers']);
if (isset($o['TiersMode'])) $this->TiersMode = $o['TiersMode'];
if (isset($o['TransformQuantity'])) $this->TransformQuantity = JsonConverters::from('PriceTransformQuantity', $o['TransformQuantity']);
if (isset($o['Type'])) $this->Type = $o['Type'];
if (isset($o['UnitAmount'])) $this->UnitAmount = $o['UnitAmount'];
if (isset($o['UnitAmountDecimal'])) $this->UnitAmountDecimal = $o['UnitAmountDecimal'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->Active)) $o['Active'] = $this->Active;
if (isset($this->BillingScheme)) $o['BillingScheme'] = $this->BillingScheme;
if (isset($this->Created)) $o['Created'] = JsonConverters::to('DateTime', $this->Created);
if (isset($this->Currency)) $o['Currency'] = $this->Currency;
if (isset($this->CurrencyOptions)) $o['CurrencyOptions'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','PriceCurrencyOptions']), $this->CurrencyOptions);
if (isset($this->CustomUnitAmount)) $o['CustomUnitAmount'] = JsonConverters::to('PriceCustomUnitAmount', $this->CustomUnitAmount);
if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
if (isset($this->Livemode)) $o['Livemode'] = $this->Livemode;
if (isset($this->LookupKey)) $o['LookupKey'] = $this->LookupKey;
if (isset($this->Metadata)) $o['Metadata'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Metadata);
if (isset($this->Nickname)) $o['Nickname'] = $this->Nickname;
if (isset($this->Recurring)) $o['Recurring'] = JsonConverters::to('PriceRecurring', $this->Recurring);
if (isset($this->TaxBehavior)) $o['TaxBehavior'] = $this->TaxBehavior;
if (isset($this->Tiers)) $o['Tiers'] = JsonConverters::toArray('PriceTier', $this->Tiers);
if (isset($this->TiersMode)) $o['TiersMode'] = $this->TiersMode;
if (isset($this->TransformQuantity)) $o['TransformQuantity'] = JsonConverters::to('PriceTransformQuantity', $this->TransformQuantity);
if (isset($this->Type)) $o['Type'] = $this->Type;
if (isset($this->UnitAmount)) $o['UnitAmount'] = $this->UnitAmount;
if (isset($this->UnitAmountDecimal)) $o['UnitAmountDecimal'] = $this->UnitAmountDecimal;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of TaxRate
*/
class TaxRate extends StripeEntity1 implements IHasId, IHasMetadata, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var bool|null */
public ?bool $Active=null,
/** @var string|null */
public ?string $Country=null,
/** @var DateTime */
public DateTime $Created=new DateTime(),
/** @var string|null */
public ?string $Description=null,
/** @var string|null */
public ?string $DisplayName=null,
/** @var bool|null */
public ?bool $Inclusive=null,
/** @var string|null */
public ?string $Jurisdiction=null,
/** @var bool|null */
public ?bool $Livemode=null,
/** @var array<string,string>|null */
public ?array $Metadata=null,
/** @var float */
public float $Percentage=0.0,
/** @var string|null */
public ?string $State=null,
/** @var string|null */
public ?string $TaxType=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['Active'])) $this->Active = $o['Active'];
if (isset($o['Country'])) $this->Country = $o['Country'];
if (isset($o['Created'])) $this->Created = JsonConverters::from('DateTime', $o['Created']);
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['DisplayName'])) $this->DisplayName = $o['DisplayName'];
if (isset($o['Inclusive'])) $this->Inclusive = $o['Inclusive'];
if (isset($o['Jurisdiction'])) $this->Jurisdiction = $o['Jurisdiction'];
if (isset($o['Livemode'])) $this->Livemode = $o['Livemode'];
if (isset($o['Metadata'])) $this->Metadata = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Metadata']);
if (isset($o['Percentage'])) $this->Percentage = $o['Percentage'];
if (isset($o['State'])) $this->State = $o['State'];
if (isset($o['TaxType'])) $this->TaxType = $o['TaxType'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->Active)) $o['Active'] = $this->Active;
if (isset($this->Country)) $o['Country'] = $this->Country;
if (isset($this->Created)) $o['Created'] = JsonConverters::to('DateTime', $this->Created);
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->DisplayName)) $o['DisplayName'] = $this->DisplayName;
if (isset($this->Inclusive)) $o['Inclusive'] = $this->Inclusive;
if (isset($this->Jurisdiction)) $o['Jurisdiction'] = $this->Jurisdiction;
if (isset($this->Livemode)) $o['Livemode'] = $this->Livemode;
if (isset($this->Metadata)) $o['Metadata'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Metadata);
if (isset($this->Percentage)) $o['Percentage'] = $this->Percentage;
if (isset($this->State)) $o['State'] = $this->State;
if (isset($this->TaxType)) $o['TaxType'] = $this->TaxType;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of LineItemTax
*/
class LineItemTax extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Amount=0,
/** @var TaxRate|null */
public ?TaxRate $Rate=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Amount'])) $this->Amount = $o['Amount'];
if (isset($o['Rate'])) $this->Rate = JsonConverters::from('TaxRate', $o['Rate']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Amount)) $o['Amount'] = $this->Amount;
if (isset($this->Rate)) $o['Rate'] = JsonConverters::to('TaxRate', $this->Rate);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of LineItem
*/
class LineItem extends StripeEntity1 implements IHasId, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var int */
public int $AmountDiscount=0,
/** @var int */
public int $AmountSubtotal=0,
/** @var int */
public int $AmountTax=0,
/** @var int */
public int $AmountTotal=0,
/** @var string|null */
public ?string $Currency=null,
/** @var bool|null */
public ?bool $Deleted=null,
/** @var string|null */
public ?string $Description=null,
/** @var array<LineItemDiscount>|null */
public ?array $Discounts=null,
/** @var Price|null */
public ?Price $Price=null,
/** @var int|null */
public ?int $Quantity=null,
/** @var array<LineItemTax>|null */
public ?array $Taxes=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['AmountDiscount'])) $this->AmountDiscount = $o['AmountDiscount'];
if (isset($o['AmountSubtotal'])) $this->AmountSubtotal = $o['AmountSubtotal'];
if (isset($o['AmountTax'])) $this->AmountTax = $o['AmountTax'];
if (isset($o['AmountTotal'])) $this->AmountTotal = $o['AmountTotal'];
if (isset($o['Currency'])) $this->Currency = $o['Currency'];
if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Discounts'])) $this->Discounts = JsonConverters::fromArray('LineItemDiscount', $o['Discounts']);
if (isset($o['Price'])) $this->Price = JsonConverters::from('Price', $o['Price']);
if (isset($o['Quantity'])) $this->Quantity = $o['Quantity'];
if (isset($o['Taxes'])) $this->Taxes = JsonConverters::fromArray('LineItemTax', $o['Taxes']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->AmountDiscount)) $o['AmountDiscount'] = $this->AmountDiscount;
if (isset($this->AmountSubtotal)) $o['AmountSubtotal'] = $this->AmountSubtotal;
if (isset($this->AmountTax)) $o['AmountTax'] = $this->AmountTax;
if (isset($this->AmountTotal)) $o['AmountTotal'] = $this->AmountTotal;
if (isset($this->Currency)) $o['Currency'] = $this->Currency;
if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Discounts)) $o['Discounts'] = JsonConverters::toArray('LineItemDiscount', $this->Discounts);
if (isset($this->Price)) $o['Price'] = JsonConverters::to('Price', $this->Price);
if (isset($this->Quantity)) $o['Quantity'] = $this->Quantity;
if (isset($this->Taxes)) $o['Taxes'] = JsonConverters::toArray('LineItemTax', $this->Taxes);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAcssDebitMandateOptions
*/
class SessionPaymentMethodOptionsAcssDebitMandateOptions extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $CustomMandateUrl=null,
/** @var array<string>|null */
public ?array $DefaultFor=null,
/** @var string|null */
public ?string $IntervalDescription=null,
/** @var string|null */
public ?string $PaymentSchedule=null,
/** @var string|null */
public ?string $TransactionType=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['CustomMandateUrl'])) $this->CustomMandateUrl = $o['CustomMandateUrl'];
if (isset($o['DefaultFor'])) $this->DefaultFor = JsonConverters::fromArray('string', $o['DefaultFor']);
if (isset($o['IntervalDescription'])) $this->IntervalDescription = $o['IntervalDescription'];
if (isset($o['PaymentSchedule'])) $this->PaymentSchedule = $o['PaymentSchedule'];
if (isset($o['TransactionType'])) $this->TransactionType = $o['TransactionType'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->CustomMandateUrl)) $o['CustomMandateUrl'] = $this->CustomMandateUrl;
if (isset($this->DefaultFor)) $o['DefaultFor'] = JsonConverters::toArray('string', $this->DefaultFor);
if (isset($this->IntervalDescription)) $o['IntervalDescription'] = $this->IntervalDescription;
if (isset($this->PaymentSchedule)) $o['PaymentSchedule'] = $this->PaymentSchedule;
if (isset($this->TransactionType)) $o['TransactionType'] = $this->TransactionType;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAcssDebit
*/
class SessionPaymentMethodOptionsAcssDebit extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Currency=null,
/** @var SessionPaymentMethodOptionsAcssDebitMandateOptions|null */
public ?SessionPaymentMethodOptionsAcssDebitMandateOptions $MandateOptions=null,
/** @var string|null */
public ?string $SetupFutureUsage=null,
/** @var string|null */
public ?string $VerificationMethod=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Currency'])) $this->Currency = $o['Currency'];
if (isset($o['MandateOptions'])) $this->MandateOptions = JsonConverters::from('SessionPaymentMethodOptionsAcssDebitMandateOptions', $o['MandateOptions']);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
if (isset($o['VerificationMethod'])) $this->VerificationMethod = $o['VerificationMethod'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Currency)) $o['Currency'] = $this->Currency;
if (isset($this->MandateOptions)) $o['MandateOptions'] = JsonConverters::to('SessionPaymentMethodOptionsAcssDebitMandateOptions', $this->MandateOptions);
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
if (isset($this->VerificationMethod)) $o['VerificationMethod'] = $this->VerificationMethod;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAffirm
*/
class SessionPaymentMethodOptionsAffirm extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAfterpayClearpay
*/
class SessionPaymentMethodOptionsAfterpayClearpay extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAlipay
*/
class SessionPaymentMethodOptionsAlipay extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsAuBecsDebit
*/
class SessionPaymentMethodOptionsAuBecsDebit extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsBacsDebit
*/
class SessionPaymentMethodOptionsBacsDebit extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsBancontact
*/
class SessionPaymentMethodOptionsBancontact extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsBoleto
*/
class SessionPaymentMethodOptionsBoleto extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ExpiresAfterDays=0,
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ExpiresAfterDays'])) $this->ExpiresAfterDays = $o['ExpiresAfterDays'];
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ExpiresAfterDays)) $o['ExpiresAfterDays'] = $this->ExpiresAfterDays;
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsCardInstallments
*/
class SessionPaymentMethodOptionsCardInstallments extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Enabled=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsCard
*/
class SessionPaymentMethodOptionsCard extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionPaymentMethodOptionsCardInstallments|null */
public ?SessionPaymentMethodOptionsCardInstallments $Installments=null,
/** @var string|null */
public ?string $SetupFutureUsage=null,
/** @var string|null */
public ?string $StatementDescriptorSuffixKana=null,
/** @var string|null */
public ?string $StatementDescriptorSuffixKanji=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Installments'])) $this->Installments = JsonConverters::from('SessionPaymentMethodOptionsCardInstallments', $o['Installments']);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
if (isset($o['StatementDescriptorSuffixKana'])) $this->StatementDescriptorSuffixKana = $o['StatementDescriptorSuffixKana'];
if (isset($o['StatementDescriptorSuffixKanji'])) $this->StatementDescriptorSuffixKanji = $o['StatementDescriptorSuffixKanji'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Installments)) $o['Installments'] = JsonConverters::to('SessionPaymentMethodOptionsCardInstallments', $this->Installments);
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
if (isset($this->StatementDescriptorSuffixKana)) $o['StatementDescriptorSuffixKana'] = $this->StatementDescriptorSuffixKana;
if (isset($this->StatementDescriptorSuffixKanji)) $o['StatementDescriptorSuffixKanji'] = $this->StatementDescriptorSuffixKanji;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer
*/
class SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Country=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Country'])) $this->Country = $o['Country'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Country)) $o['Country'] = $this->Country;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsCustomerBalanceBankTransfer
*/
class SessionPaymentMethodOptionsCustomerBalanceBankTransfer extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer|null */
public ?SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer $EuBankTransfer=null,
/** @var array<string>|null */
public ?array $RequestedAddressTypes=null,
/** @var string|null */
public ?string $Type=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['EuBankTransfer'])) $this->EuBankTransfer = JsonConverters::from('SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer', $o['EuBankTransfer']);
if (isset($o['RequestedAddressTypes'])) $this->RequestedAddressTypes = JsonConverters::fromArray('string', $o['RequestedAddressTypes']);
if (isset($o['Type'])) $this->Type = $o['Type'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->EuBankTransfer)) $o['EuBankTransfer'] = JsonConverters::to('SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer', $this->EuBankTransfer);
if (isset($this->RequestedAddressTypes)) $o['RequestedAddressTypes'] = JsonConverters::toArray('string', $this->RequestedAddressTypes);
if (isset($this->Type)) $o['Type'] = $this->Type;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsCustomerBalance
*/
class SessionPaymentMethodOptionsCustomerBalance extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionPaymentMethodOptionsCustomerBalanceBankTransfer|null */
public ?SessionPaymentMethodOptionsCustomerBalanceBankTransfer $BankTransfer=null,
/** @var string|null */
public ?string $FundingType=null,
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['BankTransfer'])) $this->BankTransfer = JsonConverters::from('SessionPaymentMethodOptionsCustomerBalanceBankTransfer', $o['BankTransfer']);
if (isset($o['FundingType'])) $this->FundingType = $o['FundingType'];
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->BankTransfer)) $o['BankTransfer'] = JsonConverters::to('SessionPaymentMethodOptionsCustomerBalanceBankTransfer', $this->BankTransfer);
if (isset($this->FundingType)) $o['FundingType'] = $this->FundingType;
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsEps
*/
class SessionPaymentMethodOptionsEps extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsFpx
*/
class SessionPaymentMethodOptionsFpx extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsGiropay
*/
class SessionPaymentMethodOptionsGiropay extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsGrabpay
*/
class SessionPaymentMethodOptionsGrabpay extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsIdeal
*/
class SessionPaymentMethodOptionsIdeal extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsKlarna
*/
class SessionPaymentMethodOptionsKlarna extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsKonbini
*/
class SessionPaymentMethodOptionsKonbini extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ExpiresAfterDays=null,
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ExpiresAfterDays'])) $this->ExpiresAfterDays = $o['ExpiresAfterDays'];
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ExpiresAfterDays)) $o['ExpiresAfterDays'] = $this->ExpiresAfterDays;
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsOxxo
*/
class SessionPaymentMethodOptionsOxxo extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ExpiresAfterDays=0,
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ExpiresAfterDays'])) $this->ExpiresAfterDays = $o['ExpiresAfterDays'];
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ExpiresAfterDays)) $o['ExpiresAfterDays'] = $this->ExpiresAfterDays;
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsP24
*/
class SessionPaymentMethodOptionsP24 extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsPaynow
*/
class SessionPaymentMethodOptionsPaynow extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsPix
*/
class SessionPaymentMethodOptionsPix extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ExpiresAfterSeconds=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ExpiresAfterSeconds'])) $this->ExpiresAfterSeconds = $o['ExpiresAfterSeconds'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ExpiresAfterSeconds)) $o['ExpiresAfterSeconds'] = $this->ExpiresAfterSeconds;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsSepaDebit
*/
class SessionPaymentMethodOptionsSepaDebit extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsSofort
*/
class SessionPaymentMethodOptionsSofort extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $SetupFutureUsage=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsUsBankAccountFinancialConnections
*/
class SessionPaymentMethodOptionsUsBankAccountFinancialConnections extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var array<string>|null */
public ?array $Permissions=null,
/** @var string|null */
public ?string $ReturnUrl=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Permissions'])) $this->Permissions = JsonConverters::fromArray('string', $o['Permissions']);
if (isset($o['ReturnUrl'])) $this->ReturnUrl = $o['ReturnUrl'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Permissions)) $o['Permissions'] = JsonConverters::toArray('string', $this->Permissions);
if (isset($this->ReturnUrl)) $o['ReturnUrl'] = $this->ReturnUrl;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptionsUsBankAccount
*/
class SessionPaymentMethodOptionsUsBankAccount extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionPaymentMethodOptionsUsBankAccountFinancialConnections|null */
public ?SessionPaymentMethodOptionsUsBankAccountFinancialConnections $FinancialConnections=null,
/** @var string|null */
public ?string $SetupFutureUsage=null,
/** @var string|null */
public ?string $VerificationMethod=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['FinancialConnections'])) $this->FinancialConnections = JsonConverters::from('SessionPaymentMethodOptionsUsBankAccountFinancialConnections', $o['FinancialConnections']);
if (isset($o['SetupFutureUsage'])) $this->SetupFutureUsage = $o['SetupFutureUsage'];
if (isset($o['VerificationMethod'])) $this->VerificationMethod = $o['VerificationMethod'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->FinancialConnections)) $o['FinancialConnections'] = JsonConverters::to('SessionPaymentMethodOptionsUsBankAccountFinancialConnections', $this->FinancialConnections);
if (isset($this->SetupFutureUsage)) $o['SetupFutureUsage'] = $this->SetupFutureUsage;
if (isset($this->VerificationMethod)) $o['VerificationMethod'] = $this->VerificationMethod;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPaymentMethodOptions
*/
class SessionPaymentMethodOptions extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var SessionPaymentMethodOptionsAcssDebit|null */
public ?SessionPaymentMethodOptionsAcssDebit $AcssDebit=null,
/** @var SessionPaymentMethodOptionsAffirm|null */
public ?SessionPaymentMethodOptionsAffirm $Affirm=null,
/** @var SessionPaymentMethodOptionsAfterpayClearpay|null */
public ?SessionPaymentMethodOptionsAfterpayClearpay $AfterpayClearpay=null,
/** @var SessionPaymentMethodOptionsAlipay|null */
public ?SessionPaymentMethodOptionsAlipay $Alipay=null,
/** @var SessionPaymentMethodOptionsAuBecsDebit|null */
public ?SessionPaymentMethodOptionsAuBecsDebit $AuBecsDebit=null,
/** @var SessionPaymentMethodOptionsBacsDebit|null */
public ?SessionPaymentMethodOptionsBacsDebit $BacsDebit=null,
/** @var SessionPaymentMethodOptionsBancontact|null */
public ?SessionPaymentMethodOptionsBancontact $Bancontact=null,
/** @var SessionPaymentMethodOptionsBoleto|null */
public ?SessionPaymentMethodOptionsBoleto $Boleto=null,
/** @var SessionPaymentMethodOptionsCard|null */
public ?SessionPaymentMethodOptionsCard $Card=null,
/** @var SessionPaymentMethodOptionsCustomerBalance|null */
public ?SessionPaymentMethodOptionsCustomerBalance $CustomerBalance=null,
/** @var SessionPaymentMethodOptionsEps|null */
public ?SessionPaymentMethodOptionsEps $Eps=null,
/** @var SessionPaymentMethodOptionsFpx|null */
public ?SessionPaymentMethodOptionsFpx $Fpx=null,
/** @var SessionPaymentMethodOptionsGiropay|null */
public ?SessionPaymentMethodOptionsGiropay $Giropay=null,
/** @var SessionPaymentMethodOptionsGrabpay|null */
public ?SessionPaymentMethodOptionsGrabpay $Grabpay=null,
/** @var SessionPaymentMethodOptionsIdeal|null */
public ?SessionPaymentMethodOptionsIdeal $Ideal=null,
/** @var SessionPaymentMethodOptionsKlarna|null */
public ?SessionPaymentMethodOptionsKlarna $Klarna=null,
/** @var SessionPaymentMethodOptionsKonbini|null */
public ?SessionPaymentMethodOptionsKonbini $Konbini=null,
/** @var SessionPaymentMethodOptionsOxxo|null */
public ?SessionPaymentMethodOptionsOxxo $Oxxo=null,
/** @var SessionPaymentMethodOptionsP24|null */
public ?SessionPaymentMethodOptionsP24 $P24=null,
/** @var SessionPaymentMethodOptionsPaynow|null */
public ?SessionPaymentMethodOptionsPaynow $Paynow=null,
/** @var SessionPaymentMethodOptionsPix|null */
public ?SessionPaymentMethodOptionsPix $Pix=null,
/** @var SessionPaymentMethodOptionsSepaDebit|null */
public ?SessionPaymentMethodOptionsSepaDebit $SepaDebit=null,
/** @var SessionPaymentMethodOptionsSofort|null */
public ?SessionPaymentMethodOptionsSofort $Sofort=null,
/** @var SessionPaymentMethodOptionsUsBankAccount|null */
public ?SessionPaymentMethodOptionsUsBankAccount $UsBankAccount=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AcssDebit'])) $this->AcssDebit = JsonConverters::from('SessionPaymentMethodOptionsAcssDebit', $o['AcssDebit']);
if (isset($o['Affirm'])) $this->Affirm = JsonConverters::from('SessionPaymentMethodOptionsAffirm', $o['Affirm']);
if (isset($o['AfterpayClearpay'])) $this->AfterpayClearpay = JsonConverters::from('SessionPaymentMethodOptionsAfterpayClearpay', $o['AfterpayClearpay']);
if (isset($o['Alipay'])) $this->Alipay = JsonConverters::from('SessionPaymentMethodOptionsAlipay', $o['Alipay']);
if (isset($o['AuBecsDebit'])) $this->AuBecsDebit = JsonConverters::from('SessionPaymentMethodOptionsAuBecsDebit', $o['AuBecsDebit']);
if (isset($o['BacsDebit'])) $this->BacsDebit = JsonConverters::from('SessionPaymentMethodOptionsBacsDebit', $o['BacsDebit']);
if (isset($o['Bancontact'])) $this->Bancontact = JsonConverters::from('SessionPaymentMethodOptionsBancontact', $o['Bancontact']);
if (isset($o['Boleto'])) $this->Boleto = JsonConverters::from('SessionPaymentMethodOptionsBoleto', $o['Boleto']);
if (isset($o['Card'])) $this->Card = JsonConverters::from('SessionPaymentMethodOptionsCard', $o['Card']);
if (isset($o['CustomerBalance'])) $this->CustomerBalance = JsonConverters::from('SessionPaymentMethodOptionsCustomerBalance', $o['CustomerBalance']);
if (isset($o['Eps'])) $this->Eps = JsonConverters::from('SessionPaymentMethodOptionsEps', $o['Eps']);
if (isset($o['Fpx'])) $this->Fpx = JsonConverters::from('SessionPaymentMethodOptionsFpx', $o['Fpx']);
if (isset($o['Giropay'])) $this->Giropay = JsonConverters::from('SessionPaymentMethodOptionsGiropay', $o['Giropay']);
if (isset($o['Grabpay'])) $this->Grabpay = JsonConverters::from('SessionPaymentMethodOptionsGrabpay', $o['Grabpay']);
if (isset($o['Ideal'])) $this->Ideal = JsonConverters::from('SessionPaymentMethodOptionsIdeal', $o['Ideal']);
if (isset($o['Klarna'])) $this->Klarna = JsonConverters::from('SessionPaymentMethodOptionsKlarna', $o['Klarna']);
if (isset($o['Konbini'])) $this->Konbini = JsonConverters::from('SessionPaymentMethodOptionsKonbini', $o['Konbini']);
if (isset($o['Oxxo'])) $this->Oxxo = JsonConverters::from('SessionPaymentMethodOptionsOxxo', $o['Oxxo']);
if (isset($o['P24'])) $this->P24 = JsonConverters::from('SessionPaymentMethodOptionsP24', $o['P24']);
if (isset($o['Paynow'])) $this->Paynow = JsonConverters::from('SessionPaymentMethodOptionsPaynow', $o['Paynow']);
if (isset($o['Pix'])) $this->Pix = JsonConverters::from('SessionPaymentMethodOptionsPix', $o['Pix']);
if (isset($o['SepaDebit'])) $this->SepaDebit = JsonConverters::from('SessionPaymentMethodOptionsSepaDebit', $o['SepaDebit']);
if (isset($o['Sofort'])) $this->Sofort = JsonConverters::from('SessionPaymentMethodOptionsSofort', $o['Sofort']);
if (isset($o['UsBankAccount'])) $this->UsBankAccount = JsonConverters::from('SessionPaymentMethodOptionsUsBankAccount', $o['UsBankAccount']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AcssDebit)) $o['AcssDebit'] = JsonConverters::to('SessionPaymentMethodOptionsAcssDebit', $this->AcssDebit);
if (isset($this->Affirm)) $o['Affirm'] = JsonConverters::to('SessionPaymentMethodOptionsAffirm', $this->Affirm);
if (isset($this->AfterpayClearpay)) $o['AfterpayClearpay'] = JsonConverters::to('SessionPaymentMethodOptionsAfterpayClearpay', $this->AfterpayClearpay);
if (isset($this->Alipay)) $o['Alipay'] = JsonConverters::to('SessionPaymentMethodOptionsAlipay', $this->Alipay);
if (isset($this->AuBecsDebit)) $o['AuBecsDebit'] = JsonConverters::to('SessionPaymentMethodOptionsAuBecsDebit', $this->AuBecsDebit);
if (isset($this->BacsDebit)) $o['BacsDebit'] = JsonConverters::to('SessionPaymentMethodOptionsBacsDebit', $this->BacsDebit);
if (isset($this->Bancontact)) $o['Bancontact'] = JsonConverters::to('SessionPaymentMethodOptionsBancontact', $this->Bancontact);
if (isset($this->Boleto)) $o['Boleto'] = JsonConverters::to('SessionPaymentMethodOptionsBoleto', $this->Boleto);
if (isset($this->Card)) $o['Card'] = JsonConverters::to('SessionPaymentMethodOptionsCard', $this->Card);
if (isset($this->CustomerBalance)) $o['CustomerBalance'] = JsonConverters::to('SessionPaymentMethodOptionsCustomerBalance', $this->CustomerBalance);
if (isset($this->Eps)) $o['Eps'] = JsonConverters::to('SessionPaymentMethodOptionsEps', $this->Eps);
if (isset($this->Fpx)) $o['Fpx'] = JsonConverters::to('SessionPaymentMethodOptionsFpx', $this->Fpx);
if (isset($this->Giropay)) $o['Giropay'] = JsonConverters::to('SessionPaymentMethodOptionsGiropay', $this->Giropay);
if (isset($this->Grabpay)) $o['Grabpay'] = JsonConverters::to('SessionPaymentMethodOptionsGrabpay', $this->Grabpay);
if (isset($this->Ideal)) $o['Ideal'] = JsonConverters::to('SessionPaymentMethodOptionsIdeal', $this->Ideal);
if (isset($this->Klarna)) $o['Klarna'] = JsonConverters::to('SessionPaymentMethodOptionsKlarna', $this->Klarna);
if (isset($this->Konbini)) $o['Konbini'] = JsonConverters::to('SessionPaymentMethodOptionsKonbini', $this->Konbini);
if (isset($this->Oxxo)) $o['Oxxo'] = JsonConverters::to('SessionPaymentMethodOptionsOxxo', $this->Oxxo);
if (isset($this->P24)) $o['P24'] = JsonConverters::to('SessionPaymentMethodOptionsP24', $this->P24);
if (isset($this->Paynow)) $o['Paynow'] = JsonConverters::to('SessionPaymentMethodOptionsPaynow', $this->Paynow);
if (isset($this->Pix)) $o['Pix'] = JsonConverters::to('SessionPaymentMethodOptionsPix', $this->Pix);
if (isset($this->SepaDebit)) $o['SepaDebit'] = JsonConverters::to('SessionPaymentMethodOptionsSepaDebit', $this->SepaDebit);
if (isset($this->Sofort)) $o['Sofort'] = JsonConverters::to('SessionPaymentMethodOptionsSofort', $this->Sofort);
if (isset($this->UsBankAccount)) $o['UsBankAccount'] = JsonConverters::to('SessionPaymentMethodOptionsUsBankAccount', $this->UsBankAccount);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionPhoneNumberCollection
*/
class SessionPhoneNumberCollection extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Enabled=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionShippingAddressCollection
*/
class SessionShippingAddressCollection extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var array<string>|null */
public ?array $AllowedCountries=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AllowedCountries'])) $this->AllowedCountries = JsonConverters::fromArray('string', $o['AllowedCountries']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AllowedCountries)) $o['AllowedCountries'] = JsonConverters::toArray('string', $this->AllowedCountries);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionShippingCostTax
*/
class SessionShippingCostTax extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Amount=0,
/** @var TaxRate|null */
public ?TaxRate $Rate=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Amount'])) $this->Amount = $o['Amount'];
if (isset($o['Rate'])) $this->Rate = JsonConverters::from('TaxRate', $o['Rate']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Amount)) $o['Amount'] = $this->Amount;
if (isset($this->Rate)) $o['Rate'] = JsonConverters::to('TaxRate', $this->Rate);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionShippingCost
*/
class SessionShippingCost extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $AmountSubtotal=0,
/** @var int */
public int $AmountTax=0,
/** @var int */
public int $AmountTotal=0,
/** @var array<SessionShippingCostTax>|null */
public ?array $Taxes=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AmountSubtotal'])) $this->AmountSubtotal = $o['AmountSubtotal'];
if (isset($o['AmountTax'])) $this->AmountTax = $o['AmountTax'];
if (isset($o['AmountTotal'])) $this->AmountTotal = $o['AmountTotal'];
if (isset($o['Taxes'])) $this->Taxes = JsonConverters::fromArray('SessionShippingCostTax', $o['Taxes']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AmountSubtotal)) $o['AmountSubtotal'] = $this->AmountSubtotal;
if (isset($this->AmountTax)) $o['AmountTax'] = $this->AmountTax;
if (isset($this->AmountTotal)) $o['AmountTotal'] = $this->AmountTotal;
if (isset($this->Taxes)) $o['Taxes'] = JsonConverters::toArray('SessionShippingCostTax', $this->Taxes);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionShippingDetails
*/
class SessionShippingDetails extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var Address|null */
public ?Address $Address=null,
/** @var string|null */
public ?string $Carrier=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Phone=null,
/** @var string|null */
public ?string $TrackingNumber=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Address'])) $this->Address = JsonConverters::from('Address', $o['Address']);
if (isset($o['Carrier'])) $this->Carrier = $o['Carrier'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Phone'])) $this->Phone = $o['Phone'];
if (isset($o['TrackingNumber'])) $this->TrackingNumber = $o['TrackingNumber'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Address)) $o['Address'] = JsonConverters::to('Address', $this->Address);
if (isset($this->Carrier)) $o['Carrier'] = $this->Carrier;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Phone)) $o['Phone'] = $this->Phone;
if (isset($this->TrackingNumber)) $o['TrackingNumber'] = $this->TrackingNumber;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionShippingOption
*/
class SessionShippingOption extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ShippingAmount=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ShippingAmount'])) $this->ShippingAmount = $o['ShippingAmount'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ShippingAmount)) $o['ShippingAmount'] = $this->ShippingAmount;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionTaxIdCollection
*/
class SessionTaxIdCollection extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Enabled=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionTotalDetailsBreakdownDiscount
*/
class SessionTotalDetailsBreakdownDiscount extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Amount=0,
/** @var Discount|null */
public ?Discount $Discount=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Amount'])) $this->Amount = $o['Amount'];
if (isset($o['Discount'])) $this->Discount = JsonConverters::from('Discount', $o['Discount']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Amount)) $o['Amount'] = $this->Amount;
if (isset($this->Discount)) $o['Discount'] = JsonConverters::to('Discount', $this->Discount);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionTotalDetailsBreakdownTax
*/
class SessionTotalDetailsBreakdownTax extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Amount=0,
/** @var TaxRate|null */
public ?TaxRate $Rate=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Amount'])) $this->Amount = $o['Amount'];
if (isset($o['Rate'])) $this->Rate = JsonConverters::from('TaxRate', $o['Rate']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Amount)) $o['Amount'] = $this->Amount;
if (isset($this->Rate)) $o['Rate'] = JsonConverters::to('TaxRate', $this->Rate);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionTotalDetailsBreakdown
*/
class SessionTotalDetailsBreakdown extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var array<SessionTotalDetailsBreakdownDiscount>|null */
public ?array $Discounts=null,
/** @var array<SessionTotalDetailsBreakdownTax>|null */
public ?array $Taxes=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Discounts'])) $this->Discounts = JsonConverters::fromArray('SessionTotalDetailsBreakdownDiscount', $o['Discounts']);
if (isset($o['Taxes'])) $this->Taxes = JsonConverters::fromArray('SessionTotalDetailsBreakdownTax', $o['Taxes']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Discounts)) $o['Discounts'] = JsonConverters::toArray('SessionTotalDetailsBreakdownDiscount', $this->Discounts);
if (isset($this->Taxes)) $o['Taxes'] = JsonConverters::toArray('SessionTotalDetailsBreakdownTax', $this->Taxes);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of SessionTotalDetails
*/
class SessionTotalDetails extends StripeEntity1 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $AmountDiscount=0,
/** @var int|null */
public ?int $AmountShipping=null,
/** @var int */
public int $AmountTax=0,
/** @var SessionTotalDetailsBreakdown|null */
public ?SessionTotalDetailsBreakdown $Breakdown=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['AmountDiscount'])) $this->AmountDiscount = $o['AmountDiscount'];
if (isset($o['AmountShipping'])) $this->AmountShipping = $o['AmountShipping'];
if (isset($o['AmountTax'])) $this->AmountTax = $o['AmountTax'];
if (isset($o['Breakdown'])) $this->Breakdown = JsonConverters::from('SessionTotalDetailsBreakdown', $o['Breakdown']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->AmountDiscount)) $o['AmountDiscount'] = $this->AmountDiscount;
if (isset($this->AmountShipping)) $o['AmountShipping'] = $this->AmountShipping;
if (isset($this->AmountTax)) $o['AmountTax'] = $this->AmountTax;
if (isset($this->Breakdown)) $o['Breakdown'] = JsonConverters::to('SessionTotalDetailsBreakdown', $this->Breakdown);
return empty($o) ? new class(){} : $o;
}
}
/**
* @template StripeEntity1 of Session
*/
class Session extends StripeEntity1 implements IHasId, IHasMetadata, IHasObject, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Object=null,
/** @var SessionAfterExpiration|null */
public ?SessionAfterExpiration $AfterExpiration=null,
/** @var bool|null */
public ?bool $AllowPromotionCodes=null,
/** @var int|null */
public ?int $AmountSubtotal=null,
/** @var int|null */
public ?int $AmountTotal=null,
/** @var SessionAutomaticTax|null */
public ?SessionAutomaticTax $AutomaticTax=null,
/** @var string|null */
public ?string $BillingAddressCollection=null,
/** @var string|null */
public ?string $CancelUrl=null,
/** @var string|null */
public ?string $ClientReferenceId=null,
/** @var SessionConsent|null */
public ?SessionConsent $Consent=null,
/** @var SessionConsentCollection|null */
public ?SessionConsentCollection $ConsentCollection=null,
/** @var DateTime */
public DateTime $Created=new DateTime(),
/** @var string|null */
public ?string $Currency=null,
/** @var array<SessionCustomField>|null */
public ?array $CustomFields=null,
/** @var SessionCustomText|null */
public ?SessionCustomText $CustomText=null,
/** @var string|null */
public ?string $CustomerCreation=null,
/** @var SessionCustomerDetails|null */
public ?SessionCustomerDetails $CustomerDetails=null,
/** @var string|null */
public ?string $CustomerEmail=null,
/** @var DateTime */
public DateTime $ExpiresAt=new DateTime(),
/** @var SessionInvoiceCreation|null */
public ?SessionInvoiceCreation $InvoiceCreation=null,
/** @var StripeList<LineItem>|null */
public ?StripeList $LineItems=null,
/** @var bool|null */
public ?bool $Livemode=null,
/** @var string|null */
public ?string $Locale=null,
/** @var array<string,string>|null */
public ?array $Metadata=null,
/** @var string|null */
public ?string $Mode=null,
/** @var string|null */
public ?string $PaymentMethodCollection=null,
/** @var SessionPaymentMethodOptions|null */
public ?SessionPaymentMethodOptions $PaymentMethodOptions=null,
/** @var array<string>|null */
public ?array $PaymentMethodTypes=null,
/** @var string|null */
public ?string $PaymentStatus=null,
/** @var SessionPhoneNumberCollection|null */
public ?SessionPhoneNumberCollection $PhoneNumberCollection=null,
/** @var string|null */
public ?string $RecoveredFrom=null,
/** @var SessionShippingAddressCollection|null */
public ?SessionShippingAddressCollection $ShippingAddressCollection=null,
/** @var SessionShippingCost|null */
public ?SessionShippingCost $ShippingCost=null,
/** @var SessionShippingDetails|null */
public ?SessionShippingDetails $ShippingDetails=null,
/** @var array<SessionShippingOption>|null */
public ?array $ShippingOptions=null,
/** @var string|null */
public ?string $Status=null,
/** @var string|null */
public ?string $SubmitType=null,
/** @var string|null */
public ?string $SuccessUrl=null,
/** @var SessionTaxIdCollection|null */
public ?SessionTaxIdCollection $TaxIdCollection=null,
/** @var SessionTotalDetails|null */
public ?SessionTotalDetails $TotalDetails=null,
/** @var string|null */
public ?string $Url=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Object'])) $this->Object = $o['Object'];
if (isset($o['AfterExpiration'])) $this->AfterExpiration = JsonConverters::from('SessionAfterExpiration', $o['AfterExpiration']);
if (isset($o['AllowPromotionCodes'])) $this->AllowPromotionCodes = $o['AllowPromotionCodes'];
if (isset($o['AmountSubtotal'])) $this->AmountSubtotal = $o['AmountSubtotal'];
if (isset($o['AmountTotal'])) $this->AmountTotal = $o['AmountTotal'];
if (isset($o['AutomaticTax'])) $this->AutomaticTax = JsonConverters::from('SessionAutomaticTax', $o['AutomaticTax']);
if (isset($o['BillingAddressCollection'])) $this->BillingAddressCollection = $o['BillingAddressCollection'];
if (isset($o['CancelUrl'])) $this->CancelUrl = $o['CancelUrl'];
if (isset($o['ClientReferenceId'])) $this->ClientReferenceId = $o['ClientReferenceId'];
if (isset($o['Consent'])) $this->Consent = JsonConverters::from('SessionConsent', $o['Consent']);
if (isset($o['ConsentCollection'])) $this->ConsentCollection = JsonConverters::from('SessionConsentCollection', $o['ConsentCollection']);
if (isset($o['Created'])) $this->Created = JsonConverters::from('DateTime', $o['Created']);
if (isset($o['Currency'])) $this->Currency = $o['Currency'];
if (isset($o['CustomFields'])) $this->CustomFields = JsonConverters::fromArray('SessionCustomField', $o['CustomFields']);
if (isset($o['CustomText'])) $this->CustomText = JsonConverters::from('SessionCustomText', $o['CustomText']);
if (isset($o['CustomerCreation'])) $this->CustomerCreation = $o['CustomerCreation'];
if (isset($o['CustomerDetails'])) $this->CustomerDetails = JsonConverters::from('SessionCustomerDetails', $o['CustomerDetails']);
if (isset($o['CustomerEmail'])) $this->CustomerEmail = $o['CustomerEmail'];
if (isset($o['ExpiresAt'])) $this->ExpiresAt = JsonConverters::from('DateTime', $o['ExpiresAt']);
if (isset($o['InvoiceCreation'])) $this->InvoiceCreation = JsonConverters::from('SessionInvoiceCreation', $o['InvoiceCreation']);
if (isset($o['LineItems'])) $this->LineItems = JsonConverters::from(JsonConverters::context('StripeList',genericArgs:['LineItem']), $o['LineItems']);
if (isset($o['Livemode'])) $this->Livemode = $o['Livemode'];
if (isset($o['Locale'])) $this->Locale = $o['Locale'];
if (isset($o['Metadata'])) $this->Metadata = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Metadata']);
if (isset($o['Mode'])) $this->Mode = $o['Mode'];
if (isset($o['PaymentMethodCollection'])) $this->PaymentMethodCollection = $o['PaymentMethodCollection'];
if (isset($o['PaymentMethodOptions'])) $this->PaymentMethodOptions = JsonConverters::from('SessionPaymentMethodOptions', $o['PaymentMethodOptions']);
if (isset($o['PaymentMethodTypes'])) $this->PaymentMethodTypes = JsonConverters::fromArray('string', $o['PaymentMethodTypes']);
if (isset($o['PaymentStatus'])) $this->PaymentStatus = $o['PaymentStatus'];
if (isset($o['PhoneNumberCollection'])) $this->PhoneNumberCollection = JsonConverters::from('SessionPhoneNumberCollection', $o['PhoneNumberCollection']);
if (isset($o['RecoveredFrom'])) $this->RecoveredFrom = $o['RecoveredFrom'];
if (isset($o['ShippingAddressCollection'])) $this->ShippingAddressCollection = JsonConverters::from('SessionShippingAddressCollection', $o['ShippingAddressCollection']);
if (isset($o['ShippingCost'])) $this->ShippingCost = JsonConverters::from('SessionShippingCost', $o['ShippingCost']);
if (isset($o['ShippingDetails'])) $this->ShippingDetails = JsonConverters::from('SessionShippingDetails', $o['ShippingDetails']);
if (isset($o['ShippingOptions'])) $this->ShippingOptions = JsonConverters::fromArray('SessionShippingOption', $o['ShippingOptions']);
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['SubmitType'])) $this->SubmitType = $o['SubmitType'];
if (isset($o['SuccessUrl'])) $this->SuccessUrl = $o['SuccessUrl'];
if (isset($o['TaxIdCollection'])) $this->TaxIdCollection = JsonConverters::from('SessionTaxIdCollection', $o['TaxIdCollection']);
if (isset($o['TotalDetails'])) $this->TotalDetails = JsonConverters::from('SessionTotalDetails', $o['TotalDetails']);
if (isset($o['Url'])) $this->Url = $o['Url'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Object)) $o['Object'] = $this->Object;
if (isset($this->AfterExpiration)) $o['AfterExpiration'] = JsonConverters::to('SessionAfterExpiration', $this->AfterExpiration);
if (isset($this->AllowPromotionCodes)) $o['AllowPromotionCodes'] = $this->AllowPromotionCodes;
if (isset($this->AmountSubtotal)) $o['AmountSubtotal'] = $this->AmountSubtotal;
if (isset($this->AmountTotal)) $o['AmountTotal'] = $this->AmountTotal;
if (isset($this->AutomaticTax)) $o['AutomaticTax'] = JsonConverters::to('SessionAutomaticTax', $this->AutomaticTax);
if (isset($this->BillingAddressCollection)) $o['BillingAddressCollection'] = $this->BillingAddressCollection;
if (isset($this->CancelUrl)) $o['CancelUrl'] = $this->CancelUrl;
if (isset($this->ClientReferenceId)) $o['ClientReferenceId'] = $this->ClientReferenceId;
if (isset($this->Consent)) $o['Consent'] = JsonConverters::to('SessionConsent', $this->Consent);
if (isset($this->ConsentCollection)) $o['ConsentCollection'] = JsonConverters::to('SessionConsentCollection', $this->ConsentCollection);
if (isset($this->Created)) $o['Created'] = JsonConverters::to('DateTime', $this->Created);
if (isset($this->Currency)) $o['Currency'] = $this->Currency;
if (isset($this->CustomFields)) $o['CustomFields'] = JsonConverters::toArray('SessionCustomField', $this->CustomFields);
if (isset($this->CustomText)) $o['CustomText'] = JsonConverters::to('SessionCustomText', $this->CustomText);
if (isset($this->CustomerCreation)) $o['CustomerCreation'] = $this->CustomerCreation;
if (isset($this->CustomerDetails)) $o['CustomerDetails'] = JsonConverters::to('SessionCustomerDetails', $this->CustomerDetails);
if (isset($this->CustomerEmail)) $o['CustomerEmail'] = $this->CustomerEmail;
if (isset($this->ExpiresAt)) $o['ExpiresAt'] = JsonConverters::to('DateTime', $this->ExpiresAt);
if (isset($this->InvoiceCreation)) $o['InvoiceCreation'] = JsonConverters::to('SessionInvoiceCreation', $this->InvoiceCreation);
if (isset($this->LineItems)) $o['LineItems'] = JsonConverters::to(JsonConverters::context('StripeList',genericArgs:['LineItem']), $this->LineItems);
if (isset($this->Livemode)) $o['Livemode'] = $this->Livemode;
if (isset($this->Locale)) $o['Locale'] = $this->Locale;
if (isset($this->Metadata)) $o['Metadata'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Metadata);
if (isset($this->Mode)) $o['Mode'] = $this->Mode;
if (isset($this->PaymentMethodCollection)) $o['PaymentMethodCollection'] = $this->PaymentMethodCollection;
if (isset($this->PaymentMethodOptions)) $o['PaymentMethodOptions'] = JsonConverters::to('SessionPaymentMethodOptions', $this->PaymentMethodOptions);
if (isset($this->PaymentMethodTypes)) $o['PaymentMethodTypes'] = JsonConverters::toArray('string', $this->PaymentMethodTypes);
if (isset($this->PaymentStatus)) $o['PaymentStatus'] = $this->PaymentStatus;
if (isset($this->PhoneNumberCollection)) $o['PhoneNumberCollection'] = JsonConverters::to('SessionPhoneNumberCollection', $this->PhoneNumberCollection);
if (isset($this->RecoveredFrom)) $o['RecoveredFrom'] = $this->RecoveredFrom;
if (isset($this->ShippingAddressCollection)) $o['ShippingAddressCollection'] = JsonConverters::to('SessionShippingAddressCollection', $this->ShippingAddressCollection);
if (isset($this->ShippingCost)) $o['ShippingCost'] = JsonConverters::to('SessionShippingCost', $this->ShippingCost);
if (isset($this->ShippingDetails)) $o['ShippingDetails'] = JsonConverters::to('SessionShippingDetails', $this->ShippingDetails);
if (isset($this->ShippingOptions)) $o['ShippingOptions'] = JsonConverters::toArray('SessionShippingOption', $this->ShippingOptions);
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->SubmitType)) $o['SubmitType'] = $this->SubmitType;
if (isset($this->SuccessUrl)) $o['SuccessUrl'] = $this->SuccessUrl;
if (isset($this->TaxIdCollection)) $o['TaxIdCollection'] = JsonConverters::to('SessionTaxIdCollection', $this->TaxIdCollection);
if (isset($this->TotalDetails)) $o['TotalDetails'] = JsonConverters::to('SessionTotalDetails', $this->TotalDetails);
if (isset($this->Url)) $o['Url'] = $this->Url;
return empty($o) ? new class(){} : $o;
}
}
class GetStripeSession implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
return empty($o) ? new class(){} : $o;
}
}
/**
* @template T
* @template StripeEntity1 of StripeList<T>
*/
class StripeList extends StripeEntity1 implements IHasObject, JsonSerializable
{
public array $genericArgs = [];
public static function create(array $genericArgs=[]): StripeList {
$to = new StripeList();
$to->genericArgs = $genericArgs;
return $to;
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
return empty($o) ? new class(){} : $o;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /stripe-session/{Id} HTTP/1.1
Host: duengageapi.uat.scadsoftware.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Id":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{Unable to show example output for type 'Session' using the custom 'other' filter}Exception has been thrown by the target of an invocation.