BokaMera.API.Host

<back to all web services

SuperAdminCompanyInvoiceQuery

Requires Authentication
Required role:superadminRequires the role:superadmin
The following routes are available for this service:
GET/superadmin/billing/company/invoicesGet all company invoices for the subscriptionGet all company invoices for the subscription you have assigned to.
namespace BokaMera.API.ServiceModel.Db

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type CompanyOwnerResponse() = 
        ///<summary>
        ///Company owner id
        ///</summary>
        [<ApiMember(Description="Company owner id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///Company owner name
        ///</summary>
        [<ApiMember(Description="Company owner name")>]
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type CompanyTypeResponse() = 
        ///<summary>
        ///Company type id
        ///</summary>
        [<ApiMember(Description="Company type id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///Company type name
        ///</summary>
        [<ApiMember(Description="Company type name")>]
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type CurrencyInfoResponse() = 
        ///<summary>
        ///The currency id
        ///</summary>
        [<ApiMember(Description="The currency id")>]
        member val Id:String = null with get,set

        ///<summary>
        ///The currency id
        ///</summary>
        [<ApiMember(Description="The currency id")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The currency id
        ///</summary>
        [<ApiMember(Description="The currency id")>]
        member val CurrencySign:String = null with get,set

    [<AllowNullLiteral>]
    type InvoiceStatusResponse() = 
        ///<summary>
        ///The status id
        ///</summary>
        [<ApiMember(Description="The status id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The status name
        ///</summary>
        [<ApiMember(Description="The status name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The status description
        ///</summary>
        [<ApiMember(Description="The status description")>]
        member val Description:String = null with get,set

    [<AllowNullLiteral>]
    type InvoiceLineResponse() = 
        ///<summary>
        ///The invoice id
        ///</summary>
        [<ApiMember(Description="The invoice id")>]
        member val InvoiceId:Int32 = new Int32() with get,set

        ///<summary>
        ///The invoice line id
        ///</summary>
        [<ApiMember(Description="The invoice line id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The invoice line period from date
        ///</summary>
        [<ApiMember(Description="The invoice line period from date")>]
        member val PeriodFrom:DateTime = new DateTime() with get,set

        ///<summary>
        ///The invoice line period to date
        ///</summary>
        [<ApiMember(Description="The invoice line period to date")>]
        member val PeriodTo:DateTime = new DateTime() with get,set

        ///<summary>
        ///The invoice line article number
        ///</summary>
        [<ApiMember(Description="The invoice line article number")>]
        member val ArticleNumber:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///The invoice line article name
        ///</summary>
        [<ApiMember(Description="The invoice line article name")>]
        member val ArticleName:String = null with get,set

        ///<summary>
        ///The invoice line article description
        ///</summary>
        [<ApiMember(Description="The invoice line article description")>]
        member val ArticleDescription:String = null with get,set

        ///<summary>
        ///The invoice line quantity
        ///</summary>
        [<ApiMember(Description="The invoice line quantity")>]
        member val Quantity:Int32 = new Int32() with get,set

        ///<summary>
        ///The invoice line unit price
        ///</summary>
        [<ApiMember(Description="The invoice line unit price")>]
        member val UnitPrice:Double = new Double() with get,set

        ///<summary>
        ///The invoice line sub total
        ///</summary>
        [<ApiMember(Description="The invoice line sub total")>]
        member val SubTotal:Double = new Double() with get,set

        ///<summary>
        ///The invoice line rebate in percent
        ///</summary>
        [<ApiMember(Description="The invoice line rebate in percent")>]
        member val Rebate:Int32 = new Int32() with get,set

        ///<summary>
        ///The invoice line updated date
        ///</summary>
        [<ApiMember(Description="The invoice line updated date")>]
        member val Updated:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The invoice line created date
        ///</summary>
        [<ApiMember(Description="The invoice line created date")>]
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type BaseModel() = 
        class end

    [<AllowNullLiteral>]
    type BillingMethodCountriesRelation() = 
        inherit BaseModel()
        [<Required>]
        member val BillingMethodId:Int32 = new Int32() with get,set

        [<Required>]
        member val CountryId:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type BillingMethod() = 
        inherit BaseModel()
        member val BillingMethodCountriesRelation:ResizeArray<BillingMethodCountriesRelation> = new ResizeArray<BillingMethodCountriesRelation>() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BillingInformationResponse() = 
        ///<summary>
        ///The company id.
        ///</summary>
        [<ApiMember(Description="The company id.")>]
        member val CompanyId:Guid = new Guid() with get,set

        ///<summary>
        ///The prefered billing method.
        ///</summary>
        [<ApiMember(Description="The prefered billing method.", IsRequired=true)>]
        member val BillingMethodId:Int32 = new Int32() with get,set

        ///<summary>
        ///The prefered billing method.
        ///</summary>
        [<ApiMember(Description="The prefered billing method.", IsRequired=true)>]
        member val LicensePlanId:Int32 = new Int32() with get,set

        ///<summary>
        ///The name that should be printed on the billing information, normally this would be your company name.
        ///</summary>
        [<ApiMember(Description="The name that should be printed on the billing information, normally this would be your company name.")>]
        member val Name:String = null with get,set

        ///<summary>
        ///If you want to add the attention to the billing address.
        ///</summary>
        [<ApiMember(Description="If you want to add the attention to the billing address.")>]
        member val Attention:String = null with get,set

        ///<summary>
        ///The street for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [<ApiMember(Description="The street for the billing adress. This is required when having postal invoice as billing method.")>]
        member val Street1:String = null with get,set

        ///<summary>
        ///The street for the billing adress.
        ///</summary>
        [<ApiMember(Description="The street for the billing adress.")>]
        member val Street2:String = null with get,set

        ///<summary>
        ///The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [<ApiMember(Description="The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.")>]
        member val ZipCode:String = null with get,set

        ///<summary>
        ///The city for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [<ApiMember(Description="The city for the billing adress. This is required when having postal invoice as billing method.")>]
        member val City:String = null with get,set

        ///<summary>
        ///The country for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [<ApiMember(Description="The country for the billing adress. This is required when having postal invoice as billing method.")>]
        member val CountryId:String = null with get,set

        ///<summary>
        ///The billing email. This is required when having email invoice as billing method.
        ///</summary>
        [<ApiMember(Description="The billing email. This is required when having email invoice as billing method.")>]
        member val Email:String = null with get,set

        ///<summary>
        ///The company global location number.
        ///</summary>
        [<ApiMember(Description="The company global location number.")>]
        member val GLN:String = null with get,set

        ///<summary>
        ///You're internal rereference.
        ///</summary>
        [<ApiMember(Description="You're internal rereference.")>]
        member val ReferenceLine1:String = null with get,set

        ///<summary>
        ///You're internal rereference.
        ///</summary>
        [<ApiMember(Description="You're internal rereference.")>]
        member val ReferenceLine2:String = null with get,set

        ///<summary>
        ///The billing payment terms in days. This is default 15 days.
        ///</summary>
        [<ApiMember(Description="The billing payment terms in days. This is default 15 days.")>]
        member val PaymentTermsDays:Int32 = new Int32() with get,set

        ///<summary>
        ///The company vat registration number.
        ///</summary>
        [<ApiMember(Description="The company vat registration number.")>]
        member val VatRegistrationNumber:String = null with get,set

        ///<summary>
        ///The billing method options to choose from
        ///</summary>
        [<ApiMember(Description="The billing method options to choose from")>]
        member val BillingMethodOptions:ResizeArray<BillingMethod> = new ResizeArray<BillingMethod>() with get,set

    [<AllowNullLiteral>]
    type ExternalReference() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

        [<Required>]
        member val OwnerId:Guid = new Guid() with get,set

        [<Required>]
        member val ReferenceType:String = null with get,set

        member val ExternalData:String = null with get,set
        member val CreatedBy:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CompanyInvoiceQueryResponse() = 
        ///<summary>
        ///The company id
        ///</summary>
        [<ApiMember(Description="The company id")>]
        member val CompanyId:Guid = new Guid() with get,set

        ///<summary>
        ///The invoice id
        ///</summary>
        [<ApiMember(Description="The invoice id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///Status of the invoice
        ///</summary>
        [<ApiMember(Description="Status of the invoice")>]
        member val StatusId:Int32 = new Int32() with get,set

        ///<summary>
        ///Date of the invoice
        ///</summary>
        [<ApiMember(Description="Date of the invoice")>]
        member val InvoiceDate:DateTime = new DateTime() with get,set

        ///<summary>
        ///Due date of the invoice
        ///</summary>
        [<ApiMember(Description="Due date of the invoice")>]
        member val DueDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///What start date of the invoice period
        ///</summary>
        [<ApiMember(Description="What start date of the invoice period")>]
        member val PeriodFrom:DateTime = new DateTime() with get,set

        ///<summary>
        ///What end date of the invoice period
        ///</summary>
        [<ApiMember(Description="What end date of the invoice period")>]
        member val PeriodTo:DateTime = new DateTime() with get,set

        ///<summary>
        ///The total amount of the invoice
        ///</summary>
        [<ApiMember(Description="The total amount of the invoice")>]
        member val TotalAmount:Double = new Double() with get,set

        ///<summary>
        ///The rounding of the total amount
        ///</summary>
        [<ApiMember(Description="The rounding of the total amount")>]
        member val Rounding:Double = new Double() with get,set

        ///<summary>
        ///The VAT
        ///</summary>
        [<ApiMember(Description="The VAT")>]
        member val VAT:Decimal = new Decimal() with get,set

        ///<summary>
        ///The VAT registration number
        ///</summary>
        [<ApiMember(Description="The VAT registration number")>]
        member val VATRegistrationNo:String = null with get,set

        ///<summary>
        ///The company registration number
        ///</summary>
        [<ApiMember(Description="The company registration number")>]
        member val RegistrationNumber:String = null with get,set

        ///<summary>
        ///The company name
        ///</summary>
        [<ApiMember(Description="The company name")>]
        member val CompanyName:String = null with get,set

        ///<summary>
        ///The company owner, used for grouping invoices per CompanyOwner
        ///</summary>
        [<ApiMember(Description="The company owner, used for grouping invoices per CompanyOwner")>]
        member val CompanyOwner:CompanyOwnerResponse = null with get,set

        ///<summary>
        ///The company type
        ///</summary>
        [<ApiMember(Description="The company type")>]
        member val CompanyType:CompanyTypeResponse = null with get,set

        ///<summary>
        ///The company contact person
        ///</summary>
        [<ApiMember(Description="The company contact person")>]
        member val ContactPerson:String = null with get,set

        ///<summary>
        ///The company street
        ///</summary>
        [<ApiMember(Description="The company street")>]
        member val Street1:String = null with get,set

        ///<summary>
        ///The company street
        ///</summary>
        [<ApiMember(Description="The company street")>]
        member val Street2:String = null with get,set

        ///<summary>
        ///The company city
        ///</summary>
        [<ApiMember(Description="The company city")>]
        member val City:String = null with get,set

        ///<summary>
        ///The company zip
        ///</summary>
        [<ApiMember(Description="The company zip")>]
        member val Zip:String = null with get,set

        ///<summary>
        ///The company country
        ///</summary>
        [<ApiMember(Description="The company country")>]
        member val CountryId:String = null with get,set

        ///<summary>
        ///The invoice currency
        ///</summary>
        [<ApiMember(Description="The invoice currency")>]
        member val CurrencyId:String = null with get,set

        ///<summary>
        ///The invoice created date
        ///</summary>
        [<ApiMember(Description="The invoice created date")>]
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The invoice updated date
        ///</summary>
        [<ApiMember(Description="The invoice updated date")>]
        member val Updated:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The reference to promikbook invoice
        ///</summary>
        [<ApiMember(Description="The reference to promikbook invoice")>]
        member val PromikBookInvoiceId:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Any invoice message
        ///</summary>
        [<ApiMember(Description="Any invoice message")>]
        member val Message:String = null with get,set

        ///<summary>
        ///The currency information
        ///</summary>
        [<ApiMember(Description="The currency information")>]
        member val CurrencyInfo:CurrencyInfoResponse = null with get,set

        ///<summary>
        ///The currency information
        ///</summary>
        [<ApiMember(Description="The currency information")>]
        member val InvoiceStatus:InvoiceStatusResponse = null with get,set

        ///<summary>
        ///The currency information
        ///</summary>
        [<ApiMember(Description="The currency information")>]
        member val InvoiceLines:ResizeArray<InvoiceLineResponse> = new ResizeArray<InvoiceLineResponse>() with get,set

        ///<summary>
        ///Billing information
        ///</summary>
        [<ApiMember(Description="Billing information")>]
        member val BillingInformation:BillingInformationResponse = null with get,set

        member val ExternalReferences:ResizeArray<ExternalReference> = new ResizeArray<ExternalReference>() with get,set

    type Currency =
        | SEK = 1
        | EUR = 2

    [<AllowNullLiteral>]
    type InvoiceStatus() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CompanyInvoiceLine() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val InvoiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val Id:Int32 = new Int32() with get,set

        [<Required>]
        member val PeriodFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val PeriodTo:DateTime = new DateTime() with get,set

        member val ArticleNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val ArticleName:String = null with get,set

        [<Required>]
        member val ArticleDescription:String = null with get,set

        [<Required>]
        member val Quantity:Int32 = new Int32() with get,set

        [<Required>]
        member val UnitPrice:Double = new Double() with get,set

        [<Required>]
        member val SubTotal:Double = new Double() with get,set

        [<Required>]
        member val Rebate:Int32 = new Int32() with get,set

        member val Updated:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type BillingInformation() = 
        inherit BaseModel()
        member val BillingMethod:BillingMethod = null with get,set
        [<Required>]
        member val BillingMethodId:Int32 = new Int32() with get,set

        [<Required>]
        member val Name:String = null with get,set

        member val Attention:String = null with get,set
        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val ZipCode:String = null with get,set
        member val City:String = null with get,set
        member val Email:String = null with get,set
        member val CreditCard:String = null with get,set
        member val CreditCardHolder:String = null with get,set
        member val CreditCardNumber:String = null with get,set
        member val ValidToYear:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val ValidToMonth:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val CSV:String = null with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val PaymentTermsDays:Int32 = new Int32() with get,set

        member val VATRegistrationNumber:String = null with get,set
        member val LicensePlanId:Int32 = new Int32() with get,set
        member val GLN:String = null with get,set
        member val ReferenceLine1:String = null with get,set
        member val ReferenceLine2:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    type CompanyStatus =
        | Registered = 1
        | AwaitingApproval = 2
        | Approved = 3
        | Inactive = 4
        | ClosedDown = 5
        | NotApproved = 6

    [<AllowNullLiteral>]
    type CustomFieldValue() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Value:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val SortOrder:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CustomField() = 
        inherit BaseModel()
        [<Required>]
        member val Table:String = null with get,set

        [<Required>]
        member val Column:String = null with get,set

        [<Required>]
        member val DataType:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RegEx() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val RegExCode:String = null with get,set

        member val ErrorMessage:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    type ScheduleType =
        | NotDefined = 0
        | RecurringSchedule = 1
        | DateSchedule = 2

    [<AllowNullLiteral>]
    type ISchedule = 
        abstract CompanyId:Guid with get,set
        abstract Resources:IList<Resource> with get,set
        abstract Type:ScheduleType with get,set
        abstract Active:Boolean with get,set
        abstract IsResourceSpecific:Boolean with get,set

    [<AllowNullLiteral>]
    type ITimeException = 
        abstract Id:Int32 with get,set
        abstract ReasonText:String with get,set
        abstract IsBlock:Boolean with get,set
        abstract ReasonTextPublic:String with get,set
        abstract IsRecurring:Boolean with get,set
        abstract ResourceIds:Int32[] with get,set

    type BookingStatusEnum =
        | Booked = 1
        | Unbooked = 2
        | Reserved = 3
        | Canceled = 4
        | AwaitingPayment = 5
        | AwaitingPaymentNoTimeLimit = 6
        | Payed = 7
        | AwaitingPaymentRequestFromAdmin = 8
        | AwaitingPaymentFromProvider = 9
        | Invoiced = 10

    [<AllowNullLiteral>]
    type BookedCustomer() = 
        member val Id:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val FacebookUserName:String = null with get,set
        member val ImageUrl:String = null with get,set
        member val CorporateIdentityNumber:String = null with get,set
        member val InvoiceAddress1:String = null with get,set
        member val InvoiceAddress2:String = null with get,set
        member val InvoiceCity:String = null with get,set
        member val InvoicePostalCode:String = null with get,set
        member val InvoiceCountryCode:String = null with get,set

    [<AllowNullLiteral>]
    type IBookedTime = 
        abstract Id:Int32 with get,set
        abstract ServiceId:Int32 with get,set
        abstract BookedSpots:Int32 with get,set
        abstract TotalSpots:Int32 with get,set
        abstract PauseAfterInMinutes:Int32 with get,set
        abstract Status:BookingStatusEnum with get,set
        abstract StatusId:Int32 with get,set
        abstract Customer:BookedCustomer with get,set

    [<AllowNullLiteral>]
    type CustomFieldDataResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Column:String = null with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val Value:String = null with get,set
        ///<summary>
        ///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        ///</summary>
        [<ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")>]
        member val DataType:String = null with get,set

    [<AllowNullLiteral>]
    type Resource() = 
        inherit BaseModel()
        [<Ignore>]
        member val Priority:Int32 = new Int32() with get,set

        [<Ignore>]
        member val Schedules:IList<ISchedule> = null with get,set

        [<Ignore>]
        member val Exceptions:IList<ITimeException> = null with get,set

        [<Ignore>]
        member val Bookings:IList<IBookedTime> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val Description:String = null with get,set
        member val ImageUrl:String = null with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val Color:String = null with get,set

        member val Email:String = null with get,set
        member val MobilePhone:String = null with get,set
        member val EmailNotification:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val SMSNotification:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        [<Required>]
        member val SendSMSReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val AccessGroup:String = null with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set

    [<AllowNullLiteral>]
    type ResourceType() = 
        inherit BaseModel()
        [<Ignore>]
        member val SelectableByUser:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Resources:ResizeArray<Resource> = new ResizeArray<Resource>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type AppliedRebateCodes() = 
        member val RebateCodeId:Int32 = new Int32() with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeValue:Int32 = new Int32() with get,set
        member val RebateAmount:Double = new Double() with get,set
        member val RebateCodeType:RebateCodeType = null with get,set

    [<AllowNullLiteral>]
    type TotalPriceInformation() = 
        member val TotalPrice:Double = new Double() with get,set
        member val TotalVATAmount:Double = new Double() with get,set
        member val TotalRebate:Double = new Double() with get,set
        member val TotalPriceBeforeRebate:Double = new Double() with get,set
        member val AppliedCodes:ResizeArray<AppliedRebateCodes> = new ResizeArray<AppliedRebateCodes>() with get,set
        member val PriceSign:String = null with get,set
        member val CurrencyId:String = null with get,set
        member val VAT:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type PriceMapping() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

        [<Required>]
        member val ServicePriceId:Int32 = new Int32() with get,set

        member val ReferenceType:String = null with get,set
        member val ExternalReference:String = null with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    type BokaMeraDayOfWeek =
        | Monday = 1
        | Tuesday = 2
        | Wednesday = 3
        | Thursday = 4
        | Friday = 5
        | Saturday = 6
        | Sunday = 7

    [<AllowNullLiteral>]
    type ServicePriceDayOfWeekRelation() = 
        inherit BaseModel()
        [<Ignore>]
        member val DayOfWeek:BokaMeraDayOfWeek = new BokaMeraDayOfWeek() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val ServicePriceId:Int32 = new Int32() with get,set

        [<Required>]
        member val DayOfWeekId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type IDbConnectionFactory = 
        interface end

    [<AllowNullLiteral>]
    type ServerData() = 
        member val HTTP_HOST:String = null with get,set
        member val HTTP_CONNECTION:String = null with get,set
        member val HTTP_CACHE_CONTROL:String = null with get,set
        member val HTTP_ACCEPT:String = null with get,set
        member val HTTP_USER_AGENT:String = null with get,set
        member val HTTP_ACCEPT_ENCODING:String = null with get,set
        member val HTTP_ACCEPT_LANGUAGE:String = null with get,set
        member val PATH:String = null with get,set
        member val SERVER_SOFTWARE:String = null with get,set
        member val SERVER_NAME:String = null with get,set
        member val SERVER_ADDR:String = null with get,set
        member val SERVER_PORT:String = null with get,set
        member val REMOTE_ADDR:String = null with get,set
        member val REMOTE_PORT:String = null with get,set
        member val GATEWAY_INTERFACE:String = null with get,set
        member val SERVER_PROTOCOL:String = null with get,set
        member val REQUEST_METHOD:String = null with get,set
        member val QUERY_STRING:String = null with get,set
        member val REQUEST_TIME:String = null with get,set

    [<AllowNullLiteral>]
    type Credentials() = 
        member val hash:String = null with get,set
        member val id:String = null with get,set
        member val version:String = null with get,set
        member val client:String = null with get,set
        member val serverdata:ServerData = null with get,set
        member val time:String = null with get,set
        member val test:String = null with get,set
        member val language:String = null with get,set

    [<AllowNullLiteral>]
    type CheckoutData() = 
        member val terms:Uri = null with get,set
        member val privacyPolicy:Uri = null with get,set
        member val redirectOnSuccess:String = null with get,set

    [<AllowNullLiteral>]
    type CheckoutPaymentData() = 
        member val currency:String = null with get,set
        member val language:String = null with get,set
        member val country:String = null with get,set
        member val autoactivate:String = null with get,set
        member val orderid:String = null with get,set
        member val returnmethod:String = null with get,set
        member val accepturl:String = null with get,set
        member val cancelurl:String = null with get,set
        member val callbackurl:Uri = null with get,set

    [<AllowNullLiteral>]
    type PaymentInfo() = 
        member val paymentdate:String = null with get,set
        member val paymentterms:String = null with get,set
        member val yourreference:String = null with get,set
        member val ourreference:String = null with get,set
        member val projectname:String = null with get,set
        member val deliverymethod:String = null with get,set
        member val deliveryterms:String = null with get,set

    [<AllowNullLiteral>]
    type CartHandling() = 
        member val withouttax:String = null with get,set
        member val taxrate:String = null with get,set

    [<AllowNullLiteral>]
    type CartTotal() = 
        member val rounding:String = null with get,set
        member val withouttax:String = null with get,set
        member val tax:String = null with get,set
        member val withtax:String = null with get,set

    [<AllowNullLiteral>]
    type Address() = 
        inherit StripeEntity<Address>()
        member val City:String = null with get,set
        member val Country:String = null with get,set
        member val Line1:String = null with get,set
        member val Line2:String = null with get,set
        member val PostalCode:String = null with get,set
        member val State:String = null with get,set

    [<AllowNullLiteral>]
    type Shipping() = 
        inherit StripeEntity<Shipping>()
        member val Address:Address = null with get,set
        member val Carrier:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val TrackingNumber:String = null with get,set

    [<AllowNullLiteral>]
    type Cart() = 
        member val Handling:CartHandling = null with get,set
        member val Total:CartTotal = null with get,set
        member val Shipping:Shipping = null with get,set

    [<AllowNullLiteral>]
    type CustomerBilling() = 
        member val firstname:String = null with get,set
        member val lastname:String = null with get,set
        member val company:String = null with get,set
        member val street:String = null with get,set
        member val street2:String = null with get,set
        member val zip:String = null with get,set
        member val city:String = null with get,set
        member val country:String = null with get,set
        member val phone:String = null with get,set
        member val email:String = null with get,set

    [<AllowNullLiteral>]
    type QvicklyCustomer() = 
        member val nr:String = null with get,set
        member val pno:String = null with get,set
        member val Billing:CustomerBilling = null with get,set

    [<AllowNullLiteral>]
    type InitCheckoutData() = 
        member val CheckoutData:CheckoutData = null with get,set
        member val PaymentData:CheckoutPaymentData = null with get,set
        member val PaymentInfo:PaymentInfo = null with get,set
        member val Articles:QvicklyArticle[] = [||] with get,set
        member val Cart:Cart = null with get,set
        member val QvicklyCustomer:QvicklyCustomer = null with get,set

    [<AllowNullLiteral>]
    type InitCheckoutRequestBody() = 
        member val credentials:Credentials = null with get,set
        member val data:InitCheckoutData = null with get,set
        member val function:String = null with get,set

    [<AllowNullLiteral>]
    type QvicklyCheckoutResponse() = 
        member val Number:Int32 = new Int32() with get,set
        member val Status:String = null with get,set
        member val OrderId:String = null with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type QvikclyPaymentData() = 
        member val method:String = null with get,set
        member val paymentplanid:String = null with get,set
        member val currency:String = null with get,set
        member val country:String = null with get,set
        member val language:String = null with get,set
        member val autoactivate:String = null with get,set
        member val orderid:String = null with get,set
        member val status:String = null with get,set
        member val paymentid_related:String = null with get,set
        member val url:String = null with get,set

    [<AllowNullLiteral>]
    type Card() = 
        member val promptname:String = null with get,set
        member val recurring:String = null with get,set
        member val recurringnr:String = null with get,set
        member val accepturl:String = null with get,set
        member val cancelurl:String = null with get,set
        member val callbackurl:String = null with get,set
        member val returnmethod:String = null with get,set

    [<AllowNullLiteral>]
    type Settlement() = 
        member val number:String = null with get,set
        member val date:String = null with get,set

    [<AllowNullLiteral>]
    type QvicklyPaymentResponse() = 
        member val PaymentData:QvikclyPaymentData = null with get,set
        member val PaymentInfo:PaymentInfo = null with get,set
        member val Card:Card = null with get,set
        member val Settlement:Settlement = null with get,set
        member val QvicklyCustomer:QvicklyCustomer = null with get,set
        member val Articles:QvicklyArticle[] = [||] with get,set
        member val Cart:Cart = null with get,set

    type Payson2CheckoutStatus =
        | None = 0
        | Created = 1
        | FormsFilled = 2
        | ReadyToPay = 3
        | ProcessingPayment = 4
        | ReadyToShip = 5
        | Shipped = 6
        | PaidToAccount = 7
        | Canceled = 8
        | Credited = 9
        | Expired = 10
        | Denied = 11

    type CustomerType =
        | Person = 0
        | Business = 1

    [<AllowNullLiteral>]
    type UserAccessKeys() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val AccessKeyTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val Value:String = null with get,set

        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        member val Description:String = null with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type CustomerComment() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val Comments:String = null with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ImageUrl:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type Customer() = 
        inherit BaseModel()
        member val IdentityId:Int32 = new Int32() with get,set
        member val Id:Guid = new Guid() with get,set
        [<Ignore>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Ignore>]
        member val AccessKeys:IList<UserAccessKeys> = null with get,set

        member val Email:String = null with get,set
        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Ignore>]
        member val Company:Company = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val Comments:IList<CustomerComment> = null with get,set

        [<Ignore>]
        member val RebateCodes:IList<RebateCode> = null with get,set

        member val Firstname:String = null with get,set
        [<Ignore>]
        member val FullName:String = null with get,set

        [<Ignore>]
        member val ImageUrl:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val FacebookUsername:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val IpAddress:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set
        member val UserId:Guid = new Guid() with get,set
        member val Lastname:String = null with get,set
        member val Phone:String = null with get,set
        member val CorporateIdentityNumber:String = null with get,set
        member val InvoiceAddress1:String = null with get,set
        member val InvoiceAddress2:String = null with get,set
        member val InvoiceCity:String = null with get,set
        member val InvoicePostalCode:String = null with get,set
        member val InvoiceCountryCode:String = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val SubscribedToNewsletter:Boolean = new Boolean() with get,set

    type ItemType =
        | Physical = 0
        | Service = 1
        | Fee = 2
        | Discount = 3

    [<AllowNullLiteral>]
    type Item() = 
        member val ItemId:Guid = new Guid() with get,set
        member val DiscountRate:Decimal = new Decimal() with get,set
        member val Ean:String = null with get,set
        member val ImageUri:Uri = null with get,set
        member val Name:String = null with get,set
        member val Quantity:Decimal = new Decimal() with get,set
        member val Reference:String = null with get,set
        member val TaxRate:Decimal = new Decimal() with get,set
        member val TotalPriceExcludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceIncludingTax:Decimal = new Decimal() with get,set
        member val TotalTaxAmount:Decimal = new Decimal() with get,set
        member val CreditedAmount:Decimal = new Decimal() with get,set
        member val Type:ItemType = new ItemType() with get,set
        member val UnitPrice:Decimal = new Decimal() with get,set
        member val Uri:Uri = null with get,set

    [<AllowNullLiteral>]
    type Order() = 
        member val Currency:Currency = new Currency() with get,set
        member val TotalFeeExcludingTax:Decimal = new Decimal() with get,set
        member val TotalFeeIncludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceExcludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceIncludingTax:Decimal = new Decimal() with get,set
        member val TotalTaxAmount:Decimal = new Decimal() with get,set
        member val TotalCreditedAmount:Decimal = new Decimal() with get,set
        member val Items:IList<Item> = null with get,set

    [<AllowNullLiteral>]
    type Merchant() = 
        member val CheckoutUri:String = null with get,set
        member val ConfirmationUri:String = null with get,set
        member val NotificationUri:Uri = null with get,set
        member val ValidationUri:Uri = null with get,set
        member val TermsUri:Uri = null with get,set
        member val Reference:String = null with get,set
        member val PartnerId:String = null with get,set

    type ColorScheme =
        | White = 0
        | Blue = 1
        | Gray = 2
        | GrayTextLogos = 3
        | BlueTextLogos = 4
        | WhiteTextLogos = 5
        | WhiteNoFooter = 6
        | GrayNoFooter = 7
        | BlueNoFooter = 8

    [<AllowNullLiteral>]
    type Gui() = 
        member val ColorScheme:ColorScheme = new ColorScheme() with get,set
        member val Locale:String = null with get,set
        member val RequestPhone:Boolean = new Boolean() with get,set
        member val PhoneOptional:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type History() = 
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ReadyToPay:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ReadyToShip:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Shipped:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val PaidToAccount:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Canceled:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Expired:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Denied:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type Payson2CheckoutResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val ExpirationTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Snippet:String = null with get,set
        member val Status:Payson2CheckoutStatus = new Payson2CheckoutStatus() with get,set
        member val Customer:Customer = null with get,set
        member val Order:Order = null with get,set
        member val Merchant:Merchant = null with get,set
        member val Gui:Gui = null with get,set
        member val History:History = null with get,set
        member val PurchaseId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type BaseOptions() = 
        member val Expand:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ExtraParams:IDictionary<String, Object> = null with get,set

    [<AllowNullLiteral>]
    type SessionAfterExpirationRecoveryOptions() = 
        member val AllowPromotionCodes:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type SessionAfterExpirationOptions() = 
        member val Recovery:SessionAfterExpirationRecoveryOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionAutomaticTaxLiabilityOptions() = 
        member val Account:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionAutomaticTaxOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Liability:SessionAutomaticTaxLiabilityOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionConsentCollectionPaymentMethodReuseAgreementOptions() = 
        member val Position:String = null with get,set

    [<AllowNullLiteral>]
    type SessionConsentCollectionOptions() = 
        member val PaymentMethodReuseAgreement:SessionConsentCollectionPaymentMethodReuseAgreementOptions = null with get,set
        member val Promotions:String = null with get,set
        member val TermsOfService:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldDropdownOptionOptions() = 
        member val Label:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldDropdownOptions() = 
        member val DefaultValue:String = null with get,set
        member val Options:ResizeArray<SessionCustomFieldDropdownOptionOptions> = new ResizeArray<SessionCustomFieldDropdownOptionOptions>() with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldLabelOptions() = 
        member val Custom:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldNumericOptions() = 
        member val DefaultValue:String = null with get,set
        member val MaximumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val MinimumLength:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldTextOptions() = 
        member val DefaultValue:String = null with get,set
        member val MaximumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val MinimumLength:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldOptions() = 
        member val Dropdown:SessionCustomFieldDropdownOptions = null with get,set
        member val Key:String = null with get,set
        member val Label:SessionCustomFieldLabelOptions = null with get,set
        member val Numeric:SessionCustomFieldNumericOptions = null with get,set
        member val Optional:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Text:SessionCustomFieldTextOptions = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextAfterSubmitOptions() = 
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextShippingAddressOptions() = 
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextSubmitOptions() = 
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextTermsOfServiceAcceptanceOptions() = 
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextOptions() = 
        member val AfterSubmit:SessionCustomTextAfterSubmitOptions = null with get,set
        member val ShippingAddress:SessionCustomTextShippingAddressOptions = null with get,set
        member val Submit:SessionCustomTextSubmitOptions = null with get,set
        member val TermsOfServiceAcceptance:SessionCustomTextTermsOfServiceAcceptanceOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomerUpdateOptions() = 
        member val Address:String = null with get,set
        member val Name:String = null with get,set
        member val Shipping:String = null with get,set

    [<AllowNullLiteral>]
    type SessionDiscountOptions() = 
        member val Coupon:String = null with get,set
        member val PromotionCode:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataCustomFieldOptions() = 
        member val Name:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataIssuerOptions() = 
        member val Account:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataRenderingOptionsOptions() = 
        member val AmountTaxDisplay:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataOptions() = 
        member val AccountTaxIds:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val CustomFields:ResizeArray<SessionInvoiceCreationInvoiceDataCustomFieldOptions> = new ResizeArray<SessionInvoiceCreationInvoiceDataCustomFieldOptions>() with get,set
        member val Description:String = null with get,set
        member val Footer:String = null with get,set
        member val Issuer:SessionInvoiceCreationInvoiceDataIssuerOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val RenderingOptions:SessionInvoiceCreationInvoiceDataRenderingOptionsOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val InvoiceData:SessionInvoiceCreationInvoiceDataOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionLineItemAdjustableQuantityOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Maximum:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Minimum:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionLineItemPriceDataProductDataOptions() = 
        member val Description:String = null with get,set
        member val Images:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Name:String = null with get,set
        member val TaxCode:String = null with get,set

    [<AllowNullLiteral>]
    type SessionLineItemPriceDataRecurringOptions() = 
        member val Interval:String = null with get,set
        member val IntervalCount:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionLineItemPriceDataOptions() = 
        member val Currency:String = null with get,set
        member val Product:String = null with get,set
        member val ProductData:SessionLineItemPriceDataProductDataOptions = null with get,set
        member val Recurring:SessionLineItemPriceDataRecurringOptions = null with get,set
        member val TaxBehavior:String = null with get,set
        member val UnitAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UnitAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type SessionLineItemOptions() = 
        member val AdjustableQuantity:SessionLineItemAdjustableQuantityOptions = null with get,set
        member val DynamicTaxRates:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Price:String = null with get,set
        member val PriceData:SessionLineItemPriceDataOptions = null with get,set
        member val Quantity:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val TaxRates:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type AddressOptions() = 
        member val City:String = null with get,set
        member val Country:String = null with get,set
        member val Line1:String = null with get,set
        member val Line2:String = null with get,set
        member val PostalCode:String = null with get,set
        member val State:String = null with get,set

    [<AllowNullLiteral>]
    type ChargeShippingOptions() = 
        member val Address:AddressOptions = null with get,set
        member val Carrier:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val TrackingNumber:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentIntentDataTransferDataOptions() = 
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Destination:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentIntentDataOptions() = 
        member val ApplicationFeeAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val CaptureMethod:String = null with get,set
        member val Description:String = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val OnBehalfOf:String = null with get,set
        member val ReceiptEmail:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val Shipping:ChargeShippingOptions = null with get,set
        member val StatementDescriptor:String = null with get,set
        member val StatementDescriptorSuffix:String = null with get,set
        member val TransferData:SessionPaymentIntentDataTransferDataOptions = null with get,set
        member val TransferGroup:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodDataOptions() = 
        member val AllowRedisplay:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAcssDebitMandateOptionsOptions() = 
        member val CustomMandateUrl:String = null with get,set
        member val DefaultFor:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val IntervalDescription:String = null with get,set
        member val PaymentSchedule:String = null with get,set
        member val TransactionType:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAcssDebitOptions() = 
        member val Currency:String = null with get,set
        member val MandateOptions:SessionPaymentMethodOptionsAcssDebitMandateOptionsOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAffirmOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAfterpayClearpayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAlipayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAmazonPayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAuBecsDebitOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBacsDebitOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBancontactOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBoletoOptions() = 
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCardInstallmentsOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCardOptions() = 
        member val Installments:SessionPaymentMethodOptionsCardInstallmentsOptions = null with get,set
        member val RequestThreeDSecure:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val StatementDescriptorSuffixKana:String = null with get,set
        member val StatementDescriptorSuffixKanji:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCashappOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions() = 
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalanceBankTransferOptions() = 
        member val EuBankTransfer:SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions = null with get,set
        member val RequestedAddressTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalanceOptions() = 
        member val BankTransfer:SessionPaymentMethodOptionsCustomerBalanceBankTransferOptions = null with get,set
        member val FundingType:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsEpsOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsFpxOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsGiropayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsGrabpayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsIdealOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsKlarnaOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsKonbiniOptions() = 
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsLinkOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsMobilepayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsMultibancoOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsOxxoOptions() = 
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsP24Options() = 
        member val SetupFutureUsage:String = null with get,set
        member val TosShownAndAccepted:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPaynowOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPaypalOptions() = 
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val Reference:String = null with get,set
        member val RiskCorrelationId:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPixOptions() = 
        member val ExpiresAfterSeconds:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsRevolutPayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSepaDebitOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSofortOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSwishOptions() = 
        member val Reference:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions() = 
        member val Permissions:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Prefetch:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsUsBankAccountOptions() = 
        member val FinancialConnections:SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsWechatPayOptions() = 
        member val AppId:String = null with get,set
        member val Client:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsOptions() = 
        member val AcssDebit:SessionPaymentMethodOptionsAcssDebitOptions = null with get,set
        member val Affirm:SessionPaymentMethodOptionsAffirmOptions = null with get,set
        member val AfterpayClearpay:SessionPaymentMethodOptionsAfterpayClearpayOptions = null with get,set
        member val Alipay:SessionPaymentMethodOptionsAlipayOptions = null with get,set
        member val AmazonPay:SessionPaymentMethodOptionsAmazonPayOptions = null with get,set
        member val AuBecsDebit:SessionPaymentMethodOptionsAuBecsDebitOptions = null with get,set
        member val BacsDebit:SessionPaymentMethodOptionsBacsDebitOptions = null with get,set
        member val Bancontact:SessionPaymentMethodOptionsBancontactOptions = null with get,set
        member val Boleto:SessionPaymentMethodOptionsBoletoOptions = null with get,set
        member val Card:SessionPaymentMethodOptionsCardOptions = null with get,set
        member val Cashapp:SessionPaymentMethodOptionsCashappOptions = null with get,set
        member val CustomerBalance:SessionPaymentMethodOptionsCustomerBalanceOptions = null with get,set
        member val Eps:SessionPaymentMethodOptionsEpsOptions = null with get,set
        member val Fpx:SessionPaymentMethodOptionsFpxOptions = null with get,set
        member val Giropay:SessionPaymentMethodOptionsGiropayOptions = null with get,set
        member val Grabpay:SessionPaymentMethodOptionsGrabpayOptions = null with get,set
        member val Ideal:SessionPaymentMethodOptionsIdealOptions = null with get,set
        member val Klarna:SessionPaymentMethodOptionsKlarnaOptions = null with get,set
        member val Konbini:SessionPaymentMethodOptionsKonbiniOptions = null with get,set
        member val Link:SessionPaymentMethodOptionsLinkOptions = null with get,set
        member val Mobilepay:SessionPaymentMethodOptionsMobilepayOptions = null with get,set
        member val Multibanco:SessionPaymentMethodOptionsMultibancoOptions = null with get,set
        member val Oxxo:SessionPaymentMethodOptionsOxxoOptions = null with get,set
        member val P24:SessionPaymentMethodOptionsP24Options = null with get,set
        member val Paynow:SessionPaymentMethodOptionsPaynowOptions = null with get,set
        member val Paypal:SessionPaymentMethodOptionsPaypalOptions = null with get,set
        member val Pix:SessionPaymentMethodOptionsPixOptions = null with get,set
        member val RevolutPay:SessionPaymentMethodOptionsRevolutPayOptions = null with get,set
        member val SepaDebit:SessionPaymentMethodOptionsSepaDebitOptions = null with get,set
        member val Sofort:SessionPaymentMethodOptionsSofortOptions = null with get,set
        member val Swish:SessionPaymentMethodOptionsSwishOptions = null with get,set
        member val UsBankAccount:SessionPaymentMethodOptionsUsBankAccountOptions = null with get,set
        member val WechatPay:SessionPaymentMethodOptionsWechatPayOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionPhoneNumberCollectionOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type SessionSavedPaymentMethodOptionsOptions() = 
        member val AllowRedisplayFilters:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val PaymentMethodSave:String = null with get,set

    [<AllowNullLiteral>]
    type SessionSetupIntentDataOptions() = 
        member val Description:String = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val OnBehalfOf:String = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingAddressCollectionOptions() = 
        member val AllowedCountries:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataDeliveryEstimateMaximumOptions() = 
        member val Unit:String = null with get,set
        member val Value:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataDeliveryEstimateMinimumOptions() = 
        member val Unit:String = null with get,set
        member val Value:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataDeliveryEstimateOptions() = 
        member val Maximum:SessionShippingOptionShippingRateDataDeliveryEstimateMaximumOptions = null with get,set
        member val Minimum:SessionShippingOptionShippingRateDataDeliveryEstimateMinimumOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions() = 
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val TaxBehavior:String = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataFixedAmountOptions() = 
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Currency:String = null with get,set
        member val CurrencyOptions:Dictionary<String, SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions> = new Dictionary<String, SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionShippingRateDataOptions() = 
        member val DeliveryEstimate:SessionShippingOptionShippingRateDataDeliveryEstimateOptions = null with get,set
        member val DisplayName:String = null with get,set
        member val FixedAmount:SessionShippingOptionShippingRateDataFixedAmountOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val TaxBehavior:String = null with get,set
        member val TaxCode:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingOptionOptions() = 
        member val ShippingRate:String = null with get,set
        member val ShippingRateData:SessionShippingOptionShippingRateDataOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataInvoiceSettingsIssuerOptions() = 
        member val Account:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataInvoiceSettingsOptions() = 
        member val Issuer:SessionSubscriptionDataInvoiceSettingsIssuerOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataTransferDataOptions() = 
        member val AmountPercent:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Destination:String = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataTrialSettingsEndBehaviorOptions() = 
        member val MissingPaymentMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataTrialSettingsOptions() = 
        member val EndBehavior:SessionSubscriptionDataTrialSettingsEndBehaviorOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionSubscriptionDataOptions() = 
        member val ApplicationFeePercent:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val BillingCycleAnchor:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val DefaultTaxRates:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Description:String = null with get,set
        member val InvoiceSettings:SessionSubscriptionDataInvoiceSettingsOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val OnBehalfOf:String = null with get,set
        member val ProrationBehavior:String = null with get,set
        member val TransferData:SessionSubscriptionDataTransferDataOptions = null with get,set
        member val TrialEnd:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val TrialPeriodDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val TrialSettings:SessionSubscriptionDataTrialSettingsOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionTaxIdCollectionOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Required:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCreateOptions() = 
        inherit BaseOptions()
        member val AfterExpiration:SessionAfterExpirationOptions = null with get,set
        member val AllowPromotionCodes:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val AutomaticTax:SessionAutomaticTaxOptions = null with get,set
        member val BillingAddressCollection:String = null with get,set
        member val CancelUrl:String = null with get,set
        member val ClientReferenceId:String = null with get,set
        member val ConsentCollection:SessionConsentCollectionOptions = null with get,set
        member val Currency:String = null with get,set
        member val CustomFields:ResizeArray<SessionCustomFieldOptions> = new ResizeArray<SessionCustomFieldOptions>() with get,set
        member val CustomText:SessionCustomTextOptions = null with get,set
        member val Customer:String = null with get,set
        member val CustomerCreation:String = null with get,set
        member val CustomerEmail:String = null with get,set
        member val CustomerUpdate:SessionCustomerUpdateOptions = null with get,set
        member val Discounts:ResizeArray<SessionDiscountOptions> = new ResizeArray<SessionDiscountOptions>() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val InvoiceCreation:SessionInvoiceCreationOptions = null with get,set
        member val LineItems:ResizeArray<SessionLineItemOptions> = new ResizeArray<SessionLineItemOptions>() with get,set
        member val Locale:String = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Mode:String = null with get,set
        member val PaymentIntentData:SessionPaymentIntentDataOptions = null with get,set
        member val PaymentMethodCollection:String = null with get,set
        member val PaymentMethodConfiguration:String = null with get,set
        member val PaymentMethodData:SessionPaymentMethodDataOptions = null with get,set
        member val PaymentMethodOptions:SessionPaymentMethodOptionsOptions = null with get,set
        member val PaymentMethodTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val PhoneNumberCollection:SessionPhoneNumberCollectionOptions = null with get,set
        member val RedirectOnCompletion:String = null with get,set
        member val ReturnUrl:String = null with get,set
        member val SavedPaymentMethodOptions:SessionSavedPaymentMethodOptionsOptions = null with get,set
        member val SetupIntentData:SessionSetupIntentDataOptions = null with get,set
        member val ShippingAddressCollection:SessionShippingAddressCollectionOptions = null with get,set
        member val ShippingOptions:ResizeArray<SessionShippingOptionOptions> = new ResizeArray<SessionShippingOptionOptions>() with get,set
        member val SubmitType:String = null with get,set
        member val SubscriptionData:SessionSubscriptionDataOptions = null with get,set
        member val SuccessUrl:String = null with get,set
        member val TaxIdCollection:SessionTaxIdCollectionOptions = null with get,set
        member val UiMode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentAutomaticPaymentMethodsOptions() = 
        member val AllowRedirects:String = null with get,set
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentMandateDataCustomerAcceptanceOfflineOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentMandateDataCustomerAcceptanceOnlineOptions() = 
        member val IpAddress:String = null with get,set
        member val UserAgent:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentMandateDataCustomerAcceptanceOptions() = 
        member val AcceptedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Offline:PaymentIntentMandateDataCustomerAcceptanceOfflineOptions = null with get,set
        member val Online:PaymentIntentMandateDataCustomerAcceptanceOnlineOptions = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentMandateDataOptions() = 
        member val CustomerAcceptance:PaymentIntentMandateDataCustomerAcceptanceOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAcssDebitOptions() = 
        member val AccountNumber:String = null with get,set
        member val InstitutionNumber:String = null with get,set
        member val TransitNumber:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAffirmOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAfterpayClearpayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAlipayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAmazonPayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataAuBecsDebitOptions() = 
        member val AccountNumber:String = null with get,set
        member val BsbNumber:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataBacsDebitOptions() = 
        member val AccountNumber:String = null with get,set
        member val SortCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataBancontactOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataBillingDetailsOptions() = 
        member val Address:AddressOptions = null with get,set
        member val Email:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataBlikOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataBoletoOptions() = 
        member val TaxId:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataCashappOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataCustomerBalanceOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataEpsOptions() = 
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataFpxOptions() = 
        member val AccountHolderType:String = null with get,set
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataGiropayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataGrabpayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataIdealOptions() = 
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataInteracPresentOptions() = 
        class end

    [<AllowNullLiteral>]
    type DobOptions() = 
        member val Day:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Month:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Year:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataKlarnaOptions() = 
        member val Dob:DobOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataKonbiniOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataLinkOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataMobilepayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataMultibancoOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataOxxoOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataP24Options() = 
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataPaynowOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataPaypalOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataPixOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataPromptpayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataRadarOptionsOptions() = 
        member val Session:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataRevolutPayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataSepaDebitOptions() = 
        member val Iban:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataSofortOptions() = 
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataSwishOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataTwintOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataUsBankAccountOptions() = 
        member val AccountHolderType:String = null with get,set
        member val AccountNumber:String = null with get,set
        member val AccountType:String = null with get,set
        member val FinancialConnectionsAccount:String = null with get,set
        member val RoutingNumber:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataWechatPayOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataZipOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodDataOptions() = 
        member val AcssDebit:PaymentIntentPaymentMethodDataAcssDebitOptions = null with get,set
        member val Affirm:PaymentIntentPaymentMethodDataAffirmOptions = null with get,set
        member val AfterpayClearpay:PaymentIntentPaymentMethodDataAfterpayClearpayOptions = null with get,set
        member val Alipay:PaymentIntentPaymentMethodDataAlipayOptions = null with get,set
        member val AllowRedisplay:String = null with get,set
        member val AmazonPay:PaymentIntentPaymentMethodDataAmazonPayOptions = null with get,set
        member val AuBecsDebit:PaymentIntentPaymentMethodDataAuBecsDebitOptions = null with get,set
        member val BacsDebit:PaymentIntentPaymentMethodDataBacsDebitOptions = null with get,set
        member val Bancontact:PaymentIntentPaymentMethodDataBancontactOptions = null with get,set
        member val BillingDetails:PaymentIntentPaymentMethodDataBillingDetailsOptions = null with get,set
        member val Blik:PaymentIntentPaymentMethodDataBlikOptions = null with get,set
        member val Boleto:PaymentIntentPaymentMethodDataBoletoOptions = null with get,set
        member val Cashapp:PaymentIntentPaymentMethodDataCashappOptions = null with get,set
        member val CustomerBalance:PaymentIntentPaymentMethodDataCustomerBalanceOptions = null with get,set
        member val Eps:PaymentIntentPaymentMethodDataEpsOptions = null with get,set
        member val Fpx:PaymentIntentPaymentMethodDataFpxOptions = null with get,set
        member val Giropay:PaymentIntentPaymentMethodDataGiropayOptions = null with get,set
        member val Grabpay:PaymentIntentPaymentMethodDataGrabpayOptions = null with get,set
        member val Ideal:PaymentIntentPaymentMethodDataIdealOptions = null with get,set
        member val InteracPresent:PaymentIntentPaymentMethodDataInteracPresentOptions = null with get,set
        member val Klarna:PaymentIntentPaymentMethodDataKlarnaOptions = null with get,set
        member val Konbini:PaymentIntentPaymentMethodDataKonbiniOptions = null with get,set
        member val Link:PaymentIntentPaymentMethodDataLinkOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Mobilepay:PaymentIntentPaymentMethodDataMobilepayOptions = null with get,set
        member val Multibanco:PaymentIntentPaymentMethodDataMultibancoOptions = null with get,set
        member val Oxxo:PaymentIntentPaymentMethodDataOxxoOptions = null with get,set
        member val P24:PaymentIntentPaymentMethodDataP24Options = null with get,set
        member val Paynow:PaymentIntentPaymentMethodDataPaynowOptions = null with get,set
        member val Paypal:PaymentIntentPaymentMethodDataPaypalOptions = null with get,set
        member val Pix:PaymentIntentPaymentMethodDataPixOptions = null with get,set
        member val Promptpay:PaymentIntentPaymentMethodDataPromptpayOptions = null with get,set
        member val RadarOptions:PaymentIntentPaymentMethodDataRadarOptionsOptions = null with get,set
        member val RevolutPay:PaymentIntentPaymentMethodDataRevolutPayOptions = null with get,set
        member val SepaDebit:PaymentIntentPaymentMethodDataSepaDebitOptions = null with get,set
        member val Sofort:PaymentIntentPaymentMethodDataSofortOptions = null with get,set
        member val Swish:PaymentIntentPaymentMethodDataSwishOptions = null with get,set
        member val Twint:PaymentIntentPaymentMethodDataTwintOptions = null with get,set
        member val Type:String = null with get,set
        member val UsBankAccount:PaymentIntentPaymentMethodDataUsBankAccountOptions = null with get,set
        member val WechatPay:PaymentIntentPaymentMethodDataWechatPayOptions = null with get,set
        member val Zip:PaymentIntentPaymentMethodDataZipOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsOptions() = 
        member val CustomMandateUrl:String = null with get,set
        member val IntervalDescription:String = null with get,set
        member val PaymentSchedule:String = null with get,set
        member val TransactionType:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAcssDebitOptions() = 
        member val MandateOptions:PaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAffirmOptions() = 
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAfterpayClearpayOptions() = 
        member val CaptureMethod:String = null with get,set
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAlipayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAmazonPayOptions() = 
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAuBecsDebitOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBacsDebitMandateOptionsOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBacsDebitOptions() = 
        member val MandateOptions:PaymentIntentPaymentMethodOptionsBacsDebitMandateOptionsOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBancontactOptions() = 
        member val PreferredLanguage:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBlikOptions() = 
        member val Code:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBoletoOptions() = 
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanOptions() = 
        member val Count:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Interval:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardInstallmentsOptions() = 
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Plan:PaymentIntentPaymentMethodOptionsCardInstallmentsPlanOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardMandateOptionsOptions() = 
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AmountType:String = null with get,set
        member val Description:String = null with get,set
        member val EndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Interval:String = null with get,set
        member val IntervalCount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Reference:String = null with get,set
        member val StartDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SupportedTypes:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesOptions() = 
        member val CbAvalgo:String = null with get,set
        member val CbExemption:String = null with get,set
        member val CbScore:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsOptions() = 
        member val CartesBancaires:PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardThreeDSecureOptions() = 
        member val AresTransStatus:String = null with get,set
        member val Cryptogram:String = null with get,set
        member val ElectronicCommerceIndicator:String = null with get,set
        member val ExemptionIndicator:String = null with get,set
        member val NetworkOptions:PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsOptions = null with get,set
        member val RequestorChallengeIndicator:String = null with get,set
        member val TransactionId:String = null with get,set
        member val Version:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardOptions() = 
        member val CaptureMethod:String = null with get,set
        member val CvcToken:String = null with get,set
        member val Installments:PaymentIntentPaymentMethodOptionsCardInstallmentsOptions = null with get,set
        member val MandateOptions:PaymentIntentPaymentMethodOptionsCardMandateOptionsOptions = null with get,set
        member val Moto:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Network:String = null with get,set
        member val RequestExtendedAuthorization:String = null with get,set
        member val RequestIncrementalAuthorization:String = null with get,set
        member val RequestMulticapture:String = null with get,set
        member val RequestOvercapture:String = null with get,set
        member val RequestThreeDSecure:String = null with get,set
        member val RequireCvcRecollection:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val SetupFutureUsage:String = null with get,set
        member val StatementDescriptorSuffixKana:String = null with get,set
        member val StatementDescriptorSuffixKanji:String = null with get,set
        member val ThreeDSecure:PaymentIntentPaymentMethodOptionsCardThreeDSecureOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardPresentRoutingOptions() = 
        member val RequestedPriority:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardPresentOptions() = 
        member val RequestExtendedAuthorization:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val RequestIncrementalAuthorizationSupport:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Routing:PaymentIntentPaymentMethodOptionsCardPresentRoutingOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCashappOptions() = 
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions() = 
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferOptions() = 
        member val EuBankTransfer:PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions = null with get,set
        member val RequestedAddressTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalanceOptions() = 
        member val BankTransfer:PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferOptions = null with get,set
        member val FundingType:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsEpsOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsFpxOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsGiropayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsGrabpayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsIdealOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsInteracPresentOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsKlarnaOptions() = 
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsKonbiniOptions() = 
        member val ConfirmationNumber:String = null with get,set
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ProductDescription:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsLinkOptions() = 
        member val CaptureMethod:String = null with get,set
        member val PersistentToken:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsMobilepayOptions() = 
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsMultibancoOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsOxxoOptions() = 
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsP24Options() = 
        member val SetupFutureUsage:String = null with get,set
        member val TosShownAndAccepted:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPaynowOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPaypalOptions() = 
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val Reference:String = null with get,set
        member val RiskCorrelationId:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPixOptions() = 
        member val ExpiresAfterSeconds:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPromptpayOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsRevolutPayOptions() = 
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptionsOptions() = 
        class end

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSepaDebitOptions() = 
        member val MandateOptions:PaymentIntentPaymentMethodOptionsSepaDebitMandateOptionsOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSofortOptions() = 
        member val PreferredLanguage:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSwishOptions() = 
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsTwintOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFiltersOptions() = 
        member val AccountSubcategories:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions() = 
        member val Filters:PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFiltersOptions = null with get,set
        member val Permissions:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Prefetch:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReturnUrl:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsOptions() = 
        member val CollectionMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountNetworksOptions() = 
        member val Requested:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountOptions() = 
        member val FinancialConnections:PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions = null with get,set
        member val MandateOptions:PaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsOptions = null with get,set
        member val Networks:PaymentIntentPaymentMethodOptionsUsBankAccountNetworksOptions = null with get,set
        member val PreferredSettlementSpeed:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsWechatPayOptions() = 
        member val AppId:String = null with get,set
        member val Client:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsZipOptions() = 
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsOptions() = 
        member val AcssDebit:PaymentIntentPaymentMethodOptionsAcssDebitOptions = null with get,set
        member val Affirm:PaymentIntentPaymentMethodOptionsAffirmOptions = null with get,set
        member val AfterpayClearpay:PaymentIntentPaymentMethodOptionsAfterpayClearpayOptions = null with get,set
        member val Alipay:PaymentIntentPaymentMethodOptionsAlipayOptions = null with get,set
        member val AmazonPay:PaymentIntentPaymentMethodOptionsAmazonPayOptions = null with get,set
        member val AuBecsDebit:PaymentIntentPaymentMethodOptionsAuBecsDebitOptions = null with get,set
        member val BacsDebit:PaymentIntentPaymentMethodOptionsBacsDebitOptions = null with get,set
        member val Bancontact:PaymentIntentPaymentMethodOptionsBancontactOptions = null with get,set
        member val Blik:PaymentIntentPaymentMethodOptionsBlikOptions = null with get,set
        member val Boleto:PaymentIntentPaymentMethodOptionsBoletoOptions = null with get,set
        member val Card:PaymentIntentPaymentMethodOptionsCardOptions = null with get,set
        member val CardPresent:PaymentIntentPaymentMethodOptionsCardPresentOptions = null with get,set
        member val Cashapp:PaymentIntentPaymentMethodOptionsCashappOptions = null with get,set
        member val CustomerBalance:PaymentIntentPaymentMethodOptionsCustomerBalanceOptions = null with get,set
        member val Eps:PaymentIntentPaymentMethodOptionsEpsOptions = null with get,set
        member val Fpx:PaymentIntentPaymentMethodOptionsFpxOptions = null with get,set
        member val Giropay:PaymentIntentPaymentMethodOptionsGiropayOptions = null with get,set
        member val Grabpay:PaymentIntentPaymentMethodOptionsGrabpayOptions = null with get,set
        member val Ideal:PaymentIntentPaymentMethodOptionsIdealOptions = null with get,set
        member val InteracPresent:PaymentIntentPaymentMethodOptionsInteracPresentOptions = null with get,set
        member val Klarna:PaymentIntentPaymentMethodOptionsKlarnaOptions = null with get,set
        member val Konbini:PaymentIntentPaymentMethodOptionsKonbiniOptions = null with get,set
        member val Link:PaymentIntentPaymentMethodOptionsLinkOptions = null with get,set
        member val Mobilepay:PaymentIntentPaymentMethodOptionsMobilepayOptions = null with get,set
        member val Multibanco:PaymentIntentPaymentMethodOptionsMultibancoOptions = null with get,set
        member val Oxxo:PaymentIntentPaymentMethodOptionsOxxoOptions = null with get,set
        member val P24:PaymentIntentPaymentMethodOptionsP24Options = null with get,set
        member val Paynow:PaymentIntentPaymentMethodOptionsPaynowOptions = null with get,set
        member val Paypal:PaymentIntentPaymentMethodOptionsPaypalOptions = null with get,set
        member val Pix:PaymentIntentPaymentMethodOptionsPixOptions = null with get,set
        member val Promptpay:PaymentIntentPaymentMethodOptionsPromptpayOptions = null with get,set
        member val RevolutPay:PaymentIntentPaymentMethodOptionsRevolutPayOptions = null with get,set
        member val SepaDebit:PaymentIntentPaymentMethodOptionsSepaDebitOptions = null with get,set
        member val Sofort:PaymentIntentPaymentMethodOptionsSofortOptions = null with get,set
        member val Swish:PaymentIntentPaymentMethodOptionsSwishOptions = null with get,set
        member val Twint:PaymentIntentPaymentMethodOptionsTwintOptions = null with get,set
        member val UsBankAccount:PaymentIntentPaymentMethodOptionsUsBankAccountOptions = null with get,set
        member val WechatPay:PaymentIntentPaymentMethodOptionsWechatPayOptions = null with get,set
        member val Zip:PaymentIntentPaymentMethodOptionsZipOptions = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentRadarOptionsOptions() = 
        member val Session:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentTransferDataOptions() = 
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Destination:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentCreateOptions() = 
        inherit BaseOptions()
        member val Amount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ApplicationFeeAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AutomaticPaymentMethods:PaymentIntentAutomaticPaymentMethodsOptions = null with get,set
        member val CaptureMethod:String = null with get,set
        member val Confirm:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val ConfirmationMethod:String = null with get,set
        member val ConfirmationToken:String = null with get,set
        member val Currency:String = null with get,set
        member val Customer:String = null with get,set
        member val Description:String = null with get,set
        member val ErrorOnRequiresAction:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Mandate:String = null with get,set
        member val MandateData:PaymentIntentMandateDataOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val OffSession:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val OnBehalfOf:String = null with get,set
        member val PaymentMethod:String = null with get,set
        member val PaymentMethodConfiguration:String = null with get,set
        member val PaymentMethodData:PaymentIntentPaymentMethodDataOptions = null with get,set
        member val PaymentMethodOptions:PaymentIntentPaymentMethodOptionsOptions = null with get,set
        member val PaymentMethodTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val RadarOptions:PaymentIntentRadarOptionsOptions = null with get,set
        member val ReceiptEmail:String = null with get,set
        member val ReturnUrl:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val Shipping:ChargeShippingOptions = null with get,set
        member val StatementDescriptor:String = null with get,set
        member val StatementDescriptorSuffix:String = null with get,set
        member val TransferData:PaymentIntentTransferDataOptions = null with get,set
        member val TransferGroup:String = null with get,set
        member val UseStripeSdk:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type CustomerCashBalanceSettingsOptions() = 
        member val ReconciliationMode:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerCashBalanceOptions() = 
        member val Settings:CustomerCashBalanceSettingsOptions = null with get,set

    [<AllowNullLiteral>]
    type CustomerInvoiceSettingsCustomFieldOptions() = 
        member val Name:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerInvoiceSettingsRenderingOptionsOptions() = 
        member val AmountTaxDisplay:String = null with get,set
        member val Template:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerInvoiceSettingsOptions() = 
        member val CustomFields:ResizeArray<CustomerInvoiceSettingsCustomFieldOptions> = new ResizeArray<CustomerInvoiceSettingsCustomFieldOptions>() with get,set
        member val DefaultPaymentMethod:String = null with get,set
        member val Footer:String = null with get,set
        member val RenderingOptions:CustomerInvoiceSettingsRenderingOptionsOptions = null with get,set

    [<AllowNullLiteral>]
    type ShippingOptions() = 
        member val Address:AddressOptions = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set

    [<AllowNullLiteral>]
    type CardCreateNestedOptions() = 
        member val AddressCity:String = null with get,set
        member val AddressCountry:String = null with get,set
        member val AddressLine1:String = null with get,set
        member val AddressLine2:String = null with get,set
        member val AddressState:String = null with get,set
        member val AddressZip:String = null with get,set
        member val Currency:String = null with get,set
        member val Cvc:String = null with get,set
        member val ExpMonth:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ExpYear:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Name:String = null with get,set
        member val Number:String = null with get,set
        member val Object:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerTaxOptions() = 
        member val IpAddress:String = null with get,set
        member val ValidateLocation:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerTaxIdDataOptions() = 
        member val Type:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerCreateOptions() = 
        inherit BaseOptions()
        member val Address:AddressOptions = null with get,set
        member val Balance:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val CashBalance:CustomerCashBalanceOptions = null with get,set
        member val Coupon:String = null with get,set
        member val Description:String = null with get,set
        member val Email:String = null with get,set
        member val InvoicePrefix:String = null with get,set
        member val InvoiceSettings:CustomerInvoiceSettingsOptions = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Name:String = null with get,set
        member val NextInvoiceSequence:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val PaymentMethod:String = null with get,set
        member val Phone:String = null with get,set
        member val Plan:String = null with get,set
        member val PreferredLocales:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val PromotionCode:String = null with get,set
        member val Shipping:ShippingOptions = null with get,set
        member val Source:AnyOf<String, CardCreateNestedOptions> = null with get,set
        member val Tax:CustomerTaxOptions = null with get,set
        member val TaxExempt:String = null with get,set
        member val TaxIdData:ResizeArray<CustomerTaxIdDataOptions> = new ResizeArray<CustomerTaxIdDataOptions>() with get,set
        member val TestClock:String = null with get,set
        member val Validate:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type StripeCreatePaymentOptions() = 
        member val SessionCreateOptions:SessionCreateOptions = null with get,set
        member val PaymentIntentCreateOptions:PaymentIntentCreateOptions = null with get,set
        member val CustomerCreateOptions:CustomerCreateOptions = null with get,set

    [<AllowNullLiteral>]
    type RequestOptions() = 
        member val ApiKey:String = null with get,set
        member val IdempotencyKey:String = null with get,set
        member val StripeAccount:String = null with get,set
        member val StripeContext:String = null with get,set

    [<AllowNullLiteral>]
    type StripeCreateCheckoutQuery() = 
        member val CheckoutData:StripeCreatePaymentOptions = null with get,set
        member val RequestOptions:RequestOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionAfterExpirationRecovery() = 
        inherit StripeEntity<SessionAfterExpirationRecovery>()
        member val AllowPromotionCodes:Boolean = new Boolean() with get,set
        member val Enabled:Boolean = new Boolean() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type SessionAfterExpiration() = 
        inherit StripeEntity<SessionAfterExpiration>()
        member val Recovery:SessionAfterExpirationRecovery = null with get,set

    [<AllowNullLiteral>]
    type SessionAutomaticTaxLiability() = 
        inherit StripeEntity<SessionAutomaticTaxLiability>()
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionAutomaticTax() = 
        inherit StripeEntity<SessionAutomaticTax>()
        member val Enabled:Boolean = new Boolean() with get,set
        member val Liability:SessionAutomaticTaxLiability = null with get,set
        member val Status:String = null with get,set

    [<AllowNullLiteral>]
    type SessionConsent() = 
        inherit StripeEntity<SessionConsent>()
        member val Promotions:String = null with get,set
        member val TermsOfService:String = null with get,set

    [<AllowNullLiteral>]
    type SessionConsentCollectionPaymentMethodReuseAgreement() = 
        inherit StripeEntity<SessionConsentCollectionPaymentMethodReuseAgreement>()
        member val Position:String = null with get,set

    [<AllowNullLiteral>]
    type SessionConsentCollection() = 
        inherit StripeEntity<SessionConsentCollection>()
        member val PaymentMethodReuseAgreement:SessionConsentCollectionPaymentMethodReuseAgreement = null with get,set
        member val Promotions:String = null with get,set
        member val TermsOfService:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCurrencyConversion() = 
        inherit StripeEntity<SessionCurrencyConversion>()
        member val AmountSubtotal:Int64 = new Int64() with get,set
        member val AmountTotal:Int64 = new Int64() with get,set
        member val FxRate:Decimal = new Decimal() with get,set
        member val SourceCurrency:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldDropdownOption() = 
        inherit StripeEntity<SessionCustomFieldDropdownOption>()
        member val Label:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldDropdown() = 
        inherit StripeEntity<SessionCustomFieldDropdown>()
        member val DefaultValue:String = null with get,set
        member val Options:ResizeArray<SessionCustomFieldDropdownOption> = new ResizeArray<SessionCustomFieldDropdownOption>() with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldLabel() = 
        inherit StripeEntity<SessionCustomFieldLabel>()
        member val Custom:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldNumeric() = 
        inherit StripeEntity<SessionCustomFieldNumeric>()
        member val DefaultValue:String = null with get,set
        member val MaximumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val MinimumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomFieldText() = 
        inherit StripeEntity<SessionCustomFieldText>()
        member val DefaultValue:String = null with get,set
        member val MaximumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val MinimumLength:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomField() = 
        inherit StripeEntity<SessionCustomField>()
        member val Dropdown:SessionCustomFieldDropdown = null with get,set
        member val Key:String = null with get,set
        member val Label:SessionCustomFieldLabel = null with get,set
        member val Numeric:SessionCustomFieldNumeric = null with get,set
        member val Optional:Boolean = new Boolean() with get,set
        member val Text:SessionCustomFieldText = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextAfterSubmit() = 
        inherit StripeEntity<SessionCustomTextAfterSubmit>()
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextShippingAddress() = 
        inherit StripeEntity<SessionCustomTextShippingAddress>()
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextSubmit() = 
        inherit StripeEntity<SessionCustomTextSubmit>()
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomTextTermsOfServiceAcceptance() = 
        inherit StripeEntity<SessionCustomTextTermsOfServiceAcceptance>()
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomText() = 
        inherit StripeEntity<SessionCustomText>()
        member val AfterSubmit:SessionCustomTextAfterSubmit = null with get,set
        member val ShippingAddress:SessionCustomTextShippingAddress = null with get,set
        member val Submit:SessionCustomTextSubmit = null with get,set
        member val TermsOfServiceAcceptance:SessionCustomTextTermsOfServiceAcceptance = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomerDetailsTaxId() = 
        inherit StripeEntity<SessionCustomerDetailsTaxId>()
        member val Type:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionCustomerDetails() = 
        inherit StripeEntity<SessionCustomerDetails>()
        member val Address:Address = null with get,set
        member val Email:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val TaxExempt:String = null with get,set
        member val TaxIds:ResizeArray<SessionCustomerDetailsTaxId> = new ResizeArray<SessionCustomerDetailsTaxId>() with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataCustomField() = 
        inherit StripeEntity<SessionInvoiceCreationInvoiceDataCustomField>()
        member val Name:String = null with get,set
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataIssuer() = 
        inherit StripeEntity<SessionInvoiceCreationInvoiceDataIssuer>()
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceDataRenderingOptions() = 
        inherit StripeEntity<SessionInvoiceCreationInvoiceDataRenderingOptions>()
        member val AmountTaxDisplay:String = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreationInvoiceData() = 
        inherit StripeEntity<SessionInvoiceCreationInvoiceData>()
        member val CustomFields:ResizeArray<SessionInvoiceCreationInvoiceDataCustomField> = new ResizeArray<SessionInvoiceCreationInvoiceDataCustomField>() with get,set
        member val Description:String = null with get,set
        member val Footer:String = null with get,set
        member val Issuer:SessionInvoiceCreationInvoiceDataIssuer = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val RenderingOptions:SessionInvoiceCreationInvoiceDataRenderingOptions = null with get,set

    [<AllowNullLiteral>]
    type SessionInvoiceCreation() = 
        inherit StripeEntity<SessionInvoiceCreation>()
        member val Enabled:Boolean = new Boolean() with get,set
        member val InvoiceData:SessionInvoiceCreationInvoiceData = null with get,set

    [<AllowNullLiteral>]
    type CouponAppliesTo() = 
        inherit StripeEntity<CouponAppliesTo>()
        member val Products:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type CouponCurrencyOptions() = 
        inherit StripeEntity<CouponCurrencyOptions>()
        member val AmountOff:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type Coupon() = 
        inherit StripeEntity<Coupon>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val AmountOff:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AppliesTo:CouponAppliesTo = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Currency:String = null with get,set
        member val CurrencyOptions:Dictionary<String, CouponCurrencyOptions> = new Dictionary<String, CouponCurrencyOptions>() with get,set
        member val Deleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Duration:String = null with get,set
        member val DurationInMonths:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val MaxRedemptions:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Name:String = null with get,set
        member val PercentOff:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val RedeemBy:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val TimesRedeemed:Int64 = new Int64() with get,set
        member val Valid:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Discount() = 
        inherit StripeEntity<Discount>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val CheckoutSession:String = null with get,set
        member val Coupon:Coupon = null with get,set
        member val Deleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val End:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Invoice:String = null with get,set
        member val InvoiceItem:String = null with get,set
        member val Start:DateTime = new DateTime() with get,set
        member val Subscription:String = null with get,set
        member val SubscriptionItem:String = null with get,set

    [<AllowNullLiteral>]
    type LineItemDiscount() = 
        inherit StripeEntity<LineItemDiscount>()
        member val Amount:Int64 = new Int64() with get,set
        member val Discount:Discount = null with get,set

    [<AllowNullLiteral>]
    type PriceCurrencyOptionsCustomUnitAmount() = 
        inherit StripeEntity<PriceCurrencyOptionsCustomUnitAmount>()
        member val Maximum:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Minimum:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Preset:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PriceCurrencyOptionsTier() = 
        inherit StripeEntity<PriceCurrencyOptionsTier>()
        member val FlatAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val FlatAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val UnitAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UnitAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val UpTo:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PriceCurrencyOptions() = 
        inherit StripeEntity<PriceCurrencyOptions>()
        member val CustomUnitAmount:PriceCurrencyOptionsCustomUnitAmount = null with get,set
        member val TaxBehavior:String = null with get,set
        member val Tiers:ResizeArray<PriceCurrencyOptionsTier> = new ResizeArray<PriceCurrencyOptionsTier>() with get,set
        member val UnitAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UnitAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type PriceCustomUnitAmount() = 
        inherit StripeEntity<PriceCustomUnitAmount>()
        member val Maximum:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Minimum:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Preset:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PriceRecurring() = 
        inherit StripeEntity<PriceRecurring>()
        member val AggregateUsage:String = null with get,set
        member val Interval:String = null with get,set
        member val IntervalCount:Int64 = new Int64() with get,set
        member val Meter:String = null with get,set
        member val TrialPeriodDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UsageType:String = null with get,set

    [<AllowNullLiteral>]
    type PriceTier() = 
        inherit StripeEntity<PriceTier>()
        member val FlatAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val FlatAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val UnitAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UnitAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val UpTo:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PriceTransformQuantity() = 
        inherit StripeEntity<PriceTransformQuantity>()
        member val DivideBy:Int64 = new Int64() with get,set
        member val Round:String = null with get,set

    [<AllowNullLiteral>]
    type Price() = 
        inherit StripeEntity<Price>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val BillingScheme:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Currency:String = null with get,set
        member val CurrencyOptions:Dictionary<String, PriceCurrencyOptions> = new Dictionary<String, PriceCurrencyOptions>() with get,set
        member val CustomUnitAmount:PriceCustomUnitAmount = null with get,set
        member val Deleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val LookupKey:String = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Nickname:String = null with get,set
        member val Recurring:PriceRecurring = null with get,set
        member val TaxBehavior:String = null with get,set
        member val Tiers:ResizeArray<PriceTier> = new ResizeArray<PriceTier>() with get,set
        member val TiersMode:String = null with get,set
        member val TransformQuantity:PriceTransformQuantity = null with get,set
        member val Type:String = null with get,set
        member val UnitAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UnitAmountDecimal:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type TaxRate() = 
        inherit StripeEntity<TaxRate>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val Country:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Description:String = null with get,set
        member val DisplayName:String = null with get,set
        member val EffectivePercentage:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Inclusive:Boolean = new Boolean() with get,set
        member val Jurisdiction:String = null with get,set
        member val JurisdictionLevel:String = null with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Percentage:Decimal = new Decimal() with get,set
        member val State:String = null with get,set
        member val TaxType:String = null with get,set

    [<AllowNullLiteral>]
    type LineItemTax() = 
        inherit StripeEntity<LineItemTax>()
        member val Amount:Int64 = new Int64() with get,set
        member val Rate:TaxRate = null with get,set
        member val TaxabilityReason:String = null with get,set
        member val TaxableAmount:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type LineItem() = 
        inherit StripeEntity<LineItem>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val AmountDiscount:Int64 = new Int64() with get,set
        member val AmountSubtotal:Int64 = new Int64() with get,set
        member val AmountTax:Int64 = new Int64() with get,set
        member val AmountTotal:Int64 = new Int64() with get,set
        member val Currency:String = null with get,set
        member val Deleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Description:String = null with get,set
        member val Discounts:ResizeArray<LineItemDiscount> = new ResizeArray<LineItemDiscount>() with get,set
        member val Price:Price = null with get,set
        member val Quantity:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Taxes:ResizeArray<LineItemTax> = new ResizeArray<LineItemTax>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodConfigurationDetails() = 
        inherit StripeEntity<SessionPaymentMethodConfigurationDetails>()
        member val Id:String = null with get,set
        member val Parent:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAcssDebitMandateOptions() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAcssDebitMandateOptions>()
        member val CustomMandateUrl:String = null with get,set
        member val DefaultFor:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val IntervalDescription:String = null with get,set
        member val PaymentSchedule:String = null with get,set
        member val TransactionType:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAcssDebit() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAcssDebit>()
        member val Currency:String = null with get,set
        member val MandateOptions:SessionPaymentMethodOptionsAcssDebitMandateOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAffirm() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAffirm>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAfterpayClearpay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAfterpayClearpay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAlipay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAlipay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAmazonPay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAmazonPay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsAuBecsDebit() = 
        inherit StripeEntity<SessionPaymentMethodOptionsAuBecsDebit>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBacsDebit() = 
        inherit StripeEntity<SessionPaymentMethodOptionsBacsDebit>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBancontact() = 
        inherit StripeEntity<SessionPaymentMethodOptionsBancontact>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsBoleto() = 
        inherit StripeEntity<SessionPaymentMethodOptionsBoleto>()
        member val ExpiresAfterDays:Int64 = new Int64() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCardInstallments() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCardInstallments>()
        member val Enabled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCard() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCard>()
        member val Installments:SessionPaymentMethodOptionsCardInstallments = null with get,set
        member val RequestThreeDSecure:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val StatementDescriptorSuffixKana:String = null with get,set
        member val StatementDescriptorSuffixKanji:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCashapp() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCashapp>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>()
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalanceBankTransfer() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCustomerBalanceBankTransfer>()
        member val EuBankTransfer:SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer = null with get,set
        member val RequestedAddressTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsCustomerBalance() = 
        inherit StripeEntity<SessionPaymentMethodOptionsCustomerBalance>()
        member val BankTransfer:SessionPaymentMethodOptionsCustomerBalanceBankTransfer = null with get,set
        member val FundingType:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsEps() = 
        inherit StripeEntity<SessionPaymentMethodOptionsEps>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsFpx() = 
        inherit StripeEntity<SessionPaymentMethodOptionsFpx>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsGiropay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsGiropay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsGrabpay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsGrabpay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsIdeal() = 
        inherit StripeEntity<SessionPaymentMethodOptionsIdeal>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsKlarna() = 
        inherit StripeEntity<SessionPaymentMethodOptionsKlarna>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsKonbini() = 
        inherit StripeEntity<SessionPaymentMethodOptionsKonbini>()
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsLink() = 
        inherit StripeEntity<SessionPaymentMethodOptionsLink>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsMobilepay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsMobilepay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsMultibanco() = 
        inherit StripeEntity<SessionPaymentMethodOptionsMultibanco>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsOxxo() = 
        inherit StripeEntity<SessionPaymentMethodOptionsOxxo>()
        member val ExpiresAfterDays:Int64 = new Int64() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsP24() = 
        inherit StripeEntity<SessionPaymentMethodOptionsP24>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPaynow() = 
        inherit StripeEntity<SessionPaymentMethodOptionsPaynow>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPaypal() = 
        inherit StripeEntity<SessionPaymentMethodOptionsPaypal>()
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsPix() = 
        inherit StripeEntity<SessionPaymentMethodOptionsPix>()
        member val ExpiresAfterSeconds:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsRevolutPay() = 
        inherit StripeEntity<SessionPaymentMethodOptionsRevolutPay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSepaDebit() = 
        inherit StripeEntity<SessionPaymentMethodOptionsSepaDebit>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSofort() = 
        inherit StripeEntity<SessionPaymentMethodOptionsSofort>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsSwish() = 
        inherit StripeEntity<SessionPaymentMethodOptionsSwish>()
        member val Reference:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters() = 
        inherit StripeEntity<SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters>()
        member val AccountSubcategories:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsUsBankAccountFinancialConnections() = 
        inherit StripeEntity<SessionPaymentMethodOptionsUsBankAccountFinancialConnections>()
        member val Filters:SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters = null with get,set
        member val Permissions:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Prefetch:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReturnUrl:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptionsUsBankAccount() = 
        inherit StripeEntity<SessionPaymentMethodOptionsUsBankAccount>()
        member val FinancialConnections:SessionPaymentMethodOptionsUsBankAccountFinancialConnections = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SessionPaymentMethodOptions() = 
        inherit StripeEntity<SessionPaymentMethodOptions>()
        member val AcssDebit:SessionPaymentMethodOptionsAcssDebit = null with get,set
        member val Affirm:SessionPaymentMethodOptionsAffirm = null with get,set
        member val AfterpayClearpay:SessionPaymentMethodOptionsAfterpayClearpay = null with get,set
        member val Alipay:SessionPaymentMethodOptionsAlipay = null with get,set
        member val AmazonPay:SessionPaymentMethodOptionsAmazonPay = null with get,set
        member val AuBecsDebit:SessionPaymentMethodOptionsAuBecsDebit = null with get,set
        member val BacsDebit:SessionPaymentMethodOptionsBacsDebit = null with get,set
        member val Bancontact:SessionPaymentMethodOptionsBancontact = null with get,set
        member val Boleto:SessionPaymentMethodOptionsBoleto = null with get,set
        member val Card:SessionPaymentMethodOptionsCard = null with get,set
        member val Cashapp:SessionPaymentMethodOptionsCashapp = null with get,set
        member val CustomerBalance:SessionPaymentMethodOptionsCustomerBalance = null with get,set
        member val Eps:SessionPaymentMethodOptionsEps = null with get,set
        member val Fpx:SessionPaymentMethodOptionsFpx = null with get,set
        member val Giropay:SessionPaymentMethodOptionsGiropay = null with get,set
        member val Grabpay:SessionPaymentMethodOptionsGrabpay = null with get,set
        member val Ideal:SessionPaymentMethodOptionsIdeal = null with get,set
        member val Klarna:SessionPaymentMethodOptionsKlarna = null with get,set
        member val Konbini:SessionPaymentMethodOptionsKonbini = null with get,set
        member val Link:SessionPaymentMethodOptionsLink = null with get,set
        member val Mobilepay:SessionPaymentMethodOptionsMobilepay = null with get,set
        member val Multibanco:SessionPaymentMethodOptionsMultibanco = null with get,set
        member val Oxxo:SessionPaymentMethodOptionsOxxo = null with get,set
        member val P24:SessionPaymentMethodOptionsP24 = null with get,set
        member val Paynow:SessionPaymentMethodOptionsPaynow = null with get,set
        member val Paypal:SessionPaymentMethodOptionsPaypal = null with get,set
        member val Pix:SessionPaymentMethodOptionsPix = null with get,set
        member val RevolutPay:SessionPaymentMethodOptionsRevolutPay = null with get,set
        member val SepaDebit:SessionPaymentMethodOptionsSepaDebit = null with get,set
        member val Sofort:SessionPaymentMethodOptionsSofort = null with get,set
        member val Swish:SessionPaymentMethodOptionsSwish = null with get,set
        member val UsBankAccount:SessionPaymentMethodOptionsUsBankAccount = null with get,set

    [<AllowNullLiteral>]
    type SessionPhoneNumberCollection() = 
        inherit StripeEntity<SessionPhoneNumberCollection>()
        member val Enabled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type SessionSavedPaymentMethodOptions() = 
        inherit StripeEntity<SessionSavedPaymentMethodOptions>()
        member val AllowRedisplayFilters:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val PaymentMethodRemove:String = null with get,set
        member val PaymentMethodSave:String = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingAddressCollection() = 
        inherit StripeEntity<SessionShippingAddressCollection>()
        member val AllowedCountries:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingCostTax() = 
        inherit StripeEntity<SessionShippingCostTax>()
        member val Amount:Int64 = new Int64() with get,set
        member val Rate:TaxRate = null with get,set
        member val TaxabilityReason:String = null with get,set
        member val TaxableAmount:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingCost() = 
        inherit StripeEntity<SessionShippingCost>()
        member val AmountSubtotal:Int64 = new Int64() with get,set
        member val AmountTax:Int64 = new Int64() with get,set
        member val AmountTotal:Int64 = new Int64() with get,set
        member val Taxes:ResizeArray<SessionShippingCostTax> = new ResizeArray<SessionShippingCostTax>() with get,set

    [<AllowNullLiteral>]
    type SessionShippingDetails() = 
        inherit StripeEntity<SessionShippingDetails>()
        member val Address:Address = null with get,set
        member val Carrier:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val TrackingNumber:String = null with get,set

    [<AllowNullLiteral>]
    type SessionShippingOption() = 
        inherit StripeEntity<SessionShippingOption>()
        member val ShippingAmount:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type SessionTaxIdCollection() = 
        inherit StripeEntity<SessionTaxIdCollection>()
        member val Enabled:Boolean = new Boolean() with get,set
        member val Required:String = null with get,set

    [<AllowNullLiteral>]
    type SessionTotalDetailsBreakdownDiscount() = 
        inherit StripeEntity<SessionTotalDetailsBreakdownDiscount>()
        member val Amount:Int64 = new Int64() with get,set
        member val Discount:Discount = null with get,set

    [<AllowNullLiteral>]
    type SessionTotalDetailsBreakdownTax() = 
        inherit StripeEntity<SessionTotalDetailsBreakdownTax>()
        member val Amount:Int64 = new Int64() with get,set
        member val Rate:TaxRate = null with get,set
        member val TaxabilityReason:String = null with get,set
        member val TaxableAmount:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type SessionTotalDetailsBreakdown() = 
        inherit StripeEntity<SessionTotalDetailsBreakdown>()
        member val Discounts:ResizeArray<SessionTotalDetailsBreakdownDiscount> = new ResizeArray<SessionTotalDetailsBreakdownDiscount>() with get,set
        member val Taxes:ResizeArray<SessionTotalDetailsBreakdownTax> = new ResizeArray<SessionTotalDetailsBreakdownTax>() with get,set

    [<AllowNullLiteral>]
    type SessionTotalDetails() = 
        inherit StripeEntity<SessionTotalDetails>()
        member val AmountDiscount:Int64 = new Int64() with get,set
        member val AmountShipping:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AmountTax:Int64 = new Int64() with get,set
        member val Breakdown:SessionTotalDetailsBreakdown = null with get,set

    [<AllowNullLiteral>]
    type Session() = 
        inherit StripeEntity<Session>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val AfterExpiration:SessionAfterExpiration = null with get,set
        member val AllowPromotionCodes:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val AmountSubtotal:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AmountTotal:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AutomaticTax:SessionAutomaticTax = null with get,set
        member val BillingAddressCollection:String = null with get,set
        member val CancelUrl:String = null with get,set
        member val ClientReferenceId:String = null with get,set
        member val ClientSecret:String = null with get,set
        member val Consent:SessionConsent = null with get,set
        member val ConsentCollection:SessionConsentCollection = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Currency:String = null with get,set
        member val CurrencyConversion:SessionCurrencyConversion = null with get,set
        member val CustomFields:ResizeArray<SessionCustomField> = new ResizeArray<SessionCustomField>() with get,set
        member val CustomText:SessionCustomText = null with get,set
        member val CustomerCreation:String = null with get,set
        member val CustomerDetails:SessionCustomerDetails = null with get,set
        member val CustomerEmail:String = null with get,set
        member val ExpiresAt:DateTime = new DateTime() with get,set
        member val InvoiceCreation:SessionInvoiceCreation = null with get,set
        member val LineItems:StripeList<LineItem> = null with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val Locale:String = null with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Mode:String = null with get,set
        member val PaymentMethodCollection:String = null with get,set
        member val PaymentMethodConfigurationDetails:SessionPaymentMethodConfigurationDetails = null with get,set
        member val PaymentMethodOptions:SessionPaymentMethodOptions = null with get,set
        member val PaymentMethodTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val PaymentStatus:String = null with get,set
        member val PhoneNumberCollection:SessionPhoneNumberCollection = null with get,set
        member val RecoveredFrom:String = null with get,set
        member val RedirectOnCompletion:String = null with get,set
        member val ReturnUrl:String = null with get,set
        member val SavedPaymentMethodOptions:SessionSavedPaymentMethodOptions = null with get,set
        member val ShippingAddressCollection:SessionShippingAddressCollection = null with get,set
        member val ShippingCost:SessionShippingCost = null with get,set
        member val ShippingDetails:SessionShippingDetails = null with get,set
        member val ShippingOptions:ResizeArray<SessionShippingOption> = new ResizeArray<SessionShippingOption>() with get,set
        member val Status:String = null with get,set
        member val SubmitType:String = null with get,set
        member val SuccessUrl:String = null with get,set
        member val TaxIdCollection:SessionTaxIdCollection = null with get,set
        member val TotalDetails:SessionTotalDetails = null with get,set
        member val UiMode:String = null with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentAmountDetailsTip() = 
        inherit StripeEntity<PaymentIntentAmountDetailsTip>()
        member val Amount:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentAmountDetails() = 
        inherit StripeEntity<PaymentIntentAmountDetails>()
        member val Tip:PaymentIntentAmountDetailsTip = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentAutomaticPaymentMethods() = 
        inherit StripeEntity<PaymentIntentAutomaticPaymentMethods>()
        member val AllowRedirects:String = null with get,set
        member val Enabled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type PaymentMethodAcssDebit() = 
        inherit StripeEntity<PaymentMethodAcssDebit>()
        member val BankName:String = null with get,set
        member val Fingerprint:String = null with get,set
        member val InstitutionNumber:String = null with get,set
        member val Last4:String = null with get,set
        member val TransitNumber:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodAffirm() = 
        inherit StripeEntity<PaymentMethodAffirm>()

    [<AllowNullLiteral>]
    type PaymentMethodAfterpayClearpay() = 
        inherit StripeEntity<PaymentMethodAfterpayClearpay>()

    [<AllowNullLiteral>]
    type PaymentMethodAlipay() = 
        inherit StripeEntity<PaymentMethodAlipay>()

    [<AllowNullLiteral>]
    type PaymentMethodAmazonPay() = 
        inherit StripeEntity<PaymentMethodAmazonPay>()

    [<AllowNullLiteral>]
    type PaymentMethodAuBecsDebit() = 
        inherit StripeEntity<PaymentMethodAuBecsDebit>()
        member val BsbNumber:String = null with get,set
        member val Fingerprint:String = null with get,set
        member val Last4:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodBacsDebit() = 
        inherit StripeEntity<PaymentMethodBacsDebit>()
        member val Fingerprint:String = null with get,set
        member val Last4:String = null with get,set
        member val SortCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodBancontact() = 
        inherit StripeEntity<PaymentMethodBancontact>()

    [<AllowNullLiteral>]
    type PaymentMethodBillingDetails() = 
        inherit StripeEntity<PaymentMethodBillingDetails>()
        member val Address:Address = null with get,set
        member val Email:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodBlik() = 
        inherit StripeEntity<PaymentMethodBlik>()

    [<AllowNullLiteral>]
    type PaymentMethodBoleto() = 
        inherit StripeEntity<PaymentMethodBoleto>()
        member val TaxId:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardChecks() = 
        inherit StripeEntity<PaymentMethodCardChecks>()
        member val AddressLine1Check:String = null with get,set
        member val AddressPostalCodeCheck:String = null with get,set
        member val CvcCheck:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentOffline() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentOffline>()
        member val StoredAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentReceipt() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentReceipt>()
        member val AccountType:String = null with get,set
        member val ApplicationCryptogram:String = null with get,set
        member val ApplicationPreferredName:String = null with get,set
        member val AuthorizationCode:String = null with get,set
        member val AuthorizationResponseCode:String = null with get,set
        member val CardholderVerificationMethod:String = null with get,set
        member val DedicatedFileName:String = null with get,set
        member val TerminalVerificationResults:String = null with get,set
        member val TransactionStatusInformation:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentWallet() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentWallet>()
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresent() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresent>()
        member val AmountAuthorized:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Brand:String = null with get,set
        member val BrandProduct:String = null with get,set
        member val CaptureBefore:DateTime = new DateTime() with get,set
        member val CardholderName:String = null with get,set
        member val Country:String = null with get,set
        member val Description:String = null with get,set
        member val EmvAuthData:String = null with get,set
        member val ExpMonth:Int64 = new Int64() with get,set
        member val ExpYear:Int64 = new Int64() with get,set
        member val Fingerprint:String = null with get,set
        member val Funding:String = null with get,set
        member val GeneratedCard:String = null with get,set
        member val Iin:String = null with get,set
        member val IncrementalAuthorizationSupported:Boolean = new Boolean() with get,set
        member val Issuer:String = null with get,set
        member val Last4:String = null with get,set
        member val Network:String = null with get,set
        member val NetworkTransactionId:String = null with get,set
        member val Offline:PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentOffline = null with get,set
        member val OvercaptureSupported:Boolean = new Boolean() with get,set
        member val PreferredLocales:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReadMethod:String = null with get,set
        member val Receipt:PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentReceipt = null with get,set
        member val Wallet:PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresentWallet = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFromPaymentMethodDetails() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFromPaymentMethodDetails>()
        member val CardPresent:PaymentMethodCardGeneratedFromPaymentMethodDetailsCardPresent = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardGeneratedFrom() = 
        inherit StripeEntity<PaymentMethodCardGeneratedFrom>()
        member val Charge:String = null with get,set
        member val PaymentMethodDetails:PaymentMethodCardGeneratedFromPaymentMethodDetails = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardNetworks() = 
        inherit StripeEntity<PaymentMethodCardNetworks>()
        member val Available:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Preferred:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardThreeDSecureUsage() = 
        inherit StripeEntity<PaymentMethodCardThreeDSecureUsage>()
        member val Supported:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletAmexExpressCheckout() = 
        inherit StripeEntity<PaymentMethodCardWalletAmexExpressCheckout>()

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletApplePay() = 
        inherit StripeEntity<PaymentMethodCardWalletApplePay>()

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletGooglePay() = 
        inherit StripeEntity<PaymentMethodCardWalletGooglePay>()

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletLink() = 
        inherit StripeEntity<PaymentMethodCardWalletLink>()

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletMasterpass() = 
        inherit StripeEntity<PaymentMethodCardWalletMasterpass>()
        member val BillingAddress:Address = null with get,set
        member val Email:String = null with get,set
        member val Name:String = null with get,set
        member val ShippingAddress:Address = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletSamsungPay() = 
        inherit StripeEntity<PaymentMethodCardWalletSamsungPay>()

    [<AllowNullLiteral>]
    type PaymentMethodCardWalletVisaCheckout() = 
        inherit StripeEntity<PaymentMethodCardWalletVisaCheckout>()
        member val BillingAddress:Address = null with get,set
        member val Email:String = null with get,set
        member val Name:String = null with get,set
        member val ShippingAddress:Address = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardWallet() = 
        inherit StripeEntity<PaymentMethodCardWallet>()
        member val AmexExpressCheckout:PaymentMethodCardWalletAmexExpressCheckout = null with get,set
        member val ApplePay:PaymentMethodCardWalletApplePay = null with get,set
        member val DynamicLast4:String = null with get,set
        member val GooglePay:PaymentMethodCardWalletGooglePay = null with get,set
        member val Link:PaymentMethodCardWalletLink = null with get,set
        member val Masterpass:PaymentMethodCardWalletMasterpass = null with get,set
        member val SamsungPay:PaymentMethodCardWalletSamsungPay = null with get,set
        member val Type:String = null with get,set
        member val VisaCheckout:PaymentMethodCardWalletVisaCheckout = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCard() = 
        inherit StripeEntity<PaymentMethodCard>()
        member val Brand:String = null with get,set
        member val Checks:PaymentMethodCardChecks = null with get,set
        member val Country:String = null with get,set
        member val Description:String = null with get,set
        member val DisplayBrand:String = null with get,set
        member val ExpMonth:Int64 = new Int64() with get,set
        member val ExpYear:Int64 = new Int64() with get,set
        member val Fingerprint:String = null with get,set
        member val Funding:String = null with get,set
        member val GeneratedFrom:PaymentMethodCardGeneratedFrom = null with get,set
        member val Iin:String = null with get,set
        member val Issuer:String = null with get,set
        member val Last4:String = null with get,set
        member val Networks:PaymentMethodCardNetworks = null with get,set
        member val ThreeDSecureUsage:PaymentMethodCardThreeDSecureUsage = null with get,set
        member val Wallet:PaymentMethodCardWallet = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardPresentNetworks() = 
        inherit StripeEntity<PaymentMethodCardPresentNetworks>()
        member val Available:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Preferred:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardPresentOffline() = 
        inherit StripeEntity<PaymentMethodCardPresentOffline>()
        member val StoredAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardPresentWallet() = 
        inherit StripeEntity<PaymentMethodCardPresentWallet>()
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCardPresent() = 
        inherit StripeEntity<PaymentMethodCardPresent>()
        member val Brand:String = null with get,set
        member val BrandProduct:String = null with get,set
        member val CardholderName:String = null with get,set
        member val Country:String = null with get,set
        member val Description:String = null with get,set
        member val ExpMonth:Int64 = new Int64() with get,set
        member val ExpYear:Int64 = new Int64() with get,set
        member val Fingerprint:String = null with get,set
        member val Funding:String = null with get,set
        member val Iin:String = null with get,set
        member val Issuer:String = null with get,set
        member val Last4:String = null with get,set
        member val Networks:PaymentMethodCardPresentNetworks = null with get,set
        member val Offline:PaymentMethodCardPresentOffline = null with get,set
        member val PreferredLocales:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReadMethod:String = null with get,set
        member val Wallet:PaymentMethodCardPresentWallet = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCashapp() = 
        inherit StripeEntity<PaymentMethodCashapp>()
        member val BuyerId:String = null with get,set
        member val Cashtag:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodCustomerBalance() = 
        inherit StripeEntity<PaymentMethodCustomerBalance>()

    [<AllowNullLiteral>]
    type PaymentMethodEps() = 
        inherit StripeEntity<PaymentMethodEps>()
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodFpx() = 
        inherit StripeEntity<PaymentMethodFpx>()
        member val AccountHolderType:String = null with get,set
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodGiropay() = 
        inherit StripeEntity<PaymentMethodGiropay>()

    [<AllowNullLiteral>]
    type PaymentMethodGrabpay() = 
        inherit StripeEntity<PaymentMethodGrabpay>()

    [<AllowNullLiteral>]
    type PaymentMethodIdeal() = 
        inherit StripeEntity<PaymentMethodIdeal>()
        member val Bank:String = null with get,set
        member val Bic:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodInteracPresentNetworks() = 
        inherit StripeEntity<PaymentMethodInteracPresentNetworks>()
        member val Available:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Preferred:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodInteracPresent() = 
        inherit StripeEntity<PaymentMethodInteracPresent>()
        member val Brand:String = null with get,set
        member val CardholderName:String = null with get,set
        member val Country:String = null with get,set
        member val Description:String = null with get,set
        member val ExpMonth:Int64 = new Int64() with get,set
        member val ExpYear:Int64 = new Int64() with get,set
        member val Fingerprint:String = null with get,set
        member val Funding:String = null with get,set
        member val Iin:String = null with get,set
        member val Issuer:String = null with get,set
        member val Last4:String = null with get,set
        member val Networks:PaymentMethodInteracPresentNetworks = null with get,set
        member val PreferredLocales:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReadMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodKlarnaDob() = 
        inherit StripeEntity<PaymentMethodKlarnaDob>()
        member val Day:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Month:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Year:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<AllowNullLiteral>]
    type PaymentMethodKlarna() = 
        inherit StripeEntity<PaymentMethodKlarna>()
        member val Dob:PaymentMethodKlarnaDob = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodKonbini() = 
        inherit StripeEntity<PaymentMethodKonbini>()

    [<AllowNullLiteral>]
    type PaymentMethodLink() = 
        inherit StripeEntity<PaymentMethodLink>()
        member val Email:String = null with get,set
        member val PersistentToken:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodMobilepay() = 
        inherit StripeEntity<PaymentMethodMobilepay>()

    [<AllowNullLiteral>]
    type PaymentMethodMultibanco() = 
        inherit StripeEntity<PaymentMethodMultibanco>()

    [<AllowNullLiteral>]
    type PaymentMethodOxxo() = 
        inherit StripeEntity<PaymentMethodOxxo>()

    [<AllowNullLiteral>]
    type PaymentMethodP24() = 
        inherit StripeEntity<PaymentMethodP24>()
        member val Bank:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodPaynow() = 
        inherit StripeEntity<PaymentMethodPaynow>()

    [<AllowNullLiteral>]
    type PaymentMethodPaypal() = 
        inherit StripeEntity<PaymentMethodPaypal>()
        member val PayerEmail:String = null with get,set
        member val PayerId:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodPix() = 
        inherit StripeEntity<PaymentMethodPix>()

    [<AllowNullLiteral>]
    type PaymentMethodPromptpay() = 
        inherit StripeEntity<PaymentMethodPromptpay>()

    [<AllowNullLiteral>]
    type PaymentMethodRadarOptions() = 
        inherit StripeEntity<PaymentMethodRadarOptions>()
        member val Session:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodRevolutPay() = 
        inherit StripeEntity<PaymentMethodRevolutPay>()

    [<AllowNullLiteral>]
    type PaymentMethodSepaDebitGeneratedFrom() = 
        inherit StripeEntity<PaymentMethodSepaDebitGeneratedFrom>()

    [<AllowNullLiteral>]
    type PaymentMethodSepaDebit() = 
        inherit StripeEntity<PaymentMethodSepaDebit>()
        member val BankCode:String = null with get,set
        member val BranchCode:String = null with get,set
        member val Country:String = null with get,set
        member val Fingerprint:String = null with get,set
        member val GeneratedFrom:PaymentMethodSepaDebitGeneratedFrom = null with get,set
        member val Last4:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodSofort() = 
        inherit StripeEntity<PaymentMethodSofort>()
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodSwish() = 
        inherit StripeEntity<PaymentMethodSwish>()

    [<AllowNullLiteral>]
    type PaymentMethodTwint() = 
        inherit StripeEntity<PaymentMethodTwint>()

    [<AllowNullLiteral>]
    type PaymentMethodUsBankAccountNetworks() = 
        inherit StripeEntity<PaymentMethodUsBankAccountNetworks>()
        member val Preferred:String = null with get,set
        member val Supported:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentMethodUsBankAccountStatusDetailsBlocked() = 
        inherit StripeEntity<PaymentMethodUsBankAccountStatusDetailsBlocked>()
        member val NetworkCode:String = null with get,set
        member val Reason:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodUsBankAccountStatusDetails() = 
        inherit StripeEntity<PaymentMethodUsBankAccountStatusDetails>()
        member val Blocked:PaymentMethodUsBankAccountStatusDetailsBlocked = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodUsBankAccount() = 
        inherit StripeEntity<PaymentMethodUsBankAccount>()
        member val AccountHolderType:String = null with get,set
        member val AccountType:String = null with get,set
        member val BankName:String = null with get,set
        member val FinancialConnectionsAccount:String = null with get,set
        member val Fingerprint:String = null with get,set
        member val Last4:String = null with get,set
        member val Networks:PaymentMethodUsBankAccountNetworks = null with get,set
        member val RoutingNumber:String = null with get,set
        member val StatusDetails:PaymentMethodUsBankAccountStatusDetails = null with get,set

    [<AllowNullLiteral>]
    type PaymentMethodWechatPay() = 
        inherit StripeEntity<PaymentMethodWechatPay>()

    [<AllowNullLiteral>]
    type PaymentMethodZip() = 
        inherit StripeEntity<PaymentMethodZip>()

    [<AllowNullLiteral>]
    type PaymentMethod() = 
        inherit StripeEntity<PaymentMethod>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val AcssDebit:PaymentMethodAcssDebit = null with get,set
        member val Affirm:PaymentMethodAffirm = null with get,set
        member val AfterpayClearpay:PaymentMethodAfterpayClearpay = null with get,set
        member val Alipay:PaymentMethodAlipay = null with get,set
        member val AllowRedisplay:String = null with get,set
        member val AmazonPay:PaymentMethodAmazonPay = null with get,set
        member val AuBecsDebit:PaymentMethodAuBecsDebit = null with get,set
        member val BacsDebit:PaymentMethodBacsDebit = null with get,set
        member val Bancontact:PaymentMethodBancontact = null with get,set
        member val BillingDetails:PaymentMethodBillingDetails = null with get,set
        member val Blik:PaymentMethodBlik = null with get,set
        member val Boleto:PaymentMethodBoleto = null with get,set
        member val Card:PaymentMethodCard = null with get,set
        member val CardPresent:PaymentMethodCardPresent = null with get,set
        member val Cashapp:PaymentMethodCashapp = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val CustomerBalance:PaymentMethodCustomerBalance = null with get,set
        member val Eps:PaymentMethodEps = null with get,set
        member val Fpx:PaymentMethodFpx = null with get,set
        member val Giropay:PaymentMethodGiropay = null with get,set
        member val Grabpay:PaymentMethodGrabpay = null with get,set
        member val Ideal:PaymentMethodIdeal = null with get,set
        member val InteracPresent:PaymentMethodInteracPresent = null with get,set
        member val Klarna:PaymentMethodKlarna = null with get,set
        member val Konbini:PaymentMethodKonbini = null with get,set
        member val Link:PaymentMethodLink = null with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val Mobilepay:PaymentMethodMobilepay = null with get,set
        member val Multibanco:PaymentMethodMultibanco = null with get,set
        member val Oxxo:PaymentMethodOxxo = null with get,set
        member val P24:PaymentMethodP24 = null with get,set
        member val Paynow:PaymentMethodPaynow = null with get,set
        member val Paypal:PaymentMethodPaypal = null with get,set
        member val Pix:PaymentMethodPix = null with get,set
        member val Promptpay:PaymentMethodPromptpay = null with get,set
        member val RadarOptions:PaymentMethodRadarOptions = null with get,set
        member val RevolutPay:PaymentMethodRevolutPay = null with get,set
        member val SepaDebit:PaymentMethodSepaDebit = null with get,set
        member val Sofort:PaymentMethodSofort = null with get,set
        member val Swish:PaymentMethodSwish = null with get,set
        member val Twint:PaymentMethodTwint = null with get,set
        member val Type:String = null with get,set
        member val UsBankAccount:PaymentMethodUsBankAccount = null with get,set
        member val WechatPay:PaymentMethodWechatPay = null with get,set
        member val Zip:PaymentMethodZip = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentAutomaticPaymentMethods() = 
        inherit StripeEntity<SetupIntentAutomaticPaymentMethods>()
        member val AllowRedirects:String = null with get,set
        member val Enabled:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type SetupIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode() = 
        inherit StripeEntity<SetupIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode>()
        member val ExpiresAt:DateTime = new DateTime() with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentNextActionCashappHandleRedirectOrDisplayQrCode() = 
        inherit StripeEntity<SetupIntentNextActionCashappHandleRedirectOrDisplayQrCode>()
        member val HostedInstructionsUrl:String = null with get,set
        member val MobileAuthUrl:String = null with get,set
        member val QrCode:SetupIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentNextActionRedirectToUrl() = 
        inherit StripeEntity<SetupIntentNextActionRedirectToUrl>()
        member val ReturnUrl:String = null with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentNextActionUseStripeSdk() = 
        inherit StripeEntity<SetupIntentNextActionUseStripeSdk>()

    [<AllowNullLiteral>]
    type SetupIntentNextActionVerifyWithMicrodeposits() = 
        inherit StripeEntity<SetupIntentNextActionVerifyWithMicrodeposits>()
        member val ArrivalDate:DateTime = new DateTime() with get,set
        member val HostedVerificationUrl:String = null with get,set
        member val MicrodepositType:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentNextAction() = 
        inherit StripeEntity<SetupIntentNextAction>()
        member val CashappHandleRedirectOrDisplayQrCode:SetupIntentNextActionCashappHandleRedirectOrDisplayQrCode = null with get,set
        member val RedirectToUrl:SetupIntentNextActionRedirectToUrl = null with get,set
        member val Type:String = null with get,set
        member val UseStripeSdk:SetupIntentNextActionUseStripeSdk = null with get,set
        member val VerifyWithMicrodeposits:SetupIntentNextActionVerifyWithMicrodeposits = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodConfigurationDetails() = 
        inherit StripeEntity<SetupIntentPaymentMethodConfigurationDetails>()
        member val Id:String = null with get,set
        member val Parent:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsAcssDebitMandateOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsAcssDebitMandateOptions>()
        member val CustomMandateUrl:String = null with get,set
        member val DefaultFor:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val IntervalDescription:String = null with get,set
        member val PaymentSchedule:String = null with get,set
        member val TransactionType:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsAcssDebit() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsAcssDebit>()
        member val Currency:String = null with get,set
        member val MandateOptions:SetupIntentPaymentMethodOptionsAcssDebitMandateOptions = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsAmazonPay() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsAmazonPay>()

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsBacsDebitMandateOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsBacsDebitMandateOptions>()

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsBacsDebit() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsBacsDebit>()
        member val MandateOptions:SetupIntentPaymentMethodOptionsBacsDebitMandateOptions = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsCardMandateOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsCardMandateOptions>()
        member val Amount:Int64 = new Int64() with get,set
        member val AmountType:String = null with get,set
        member val Currency:String = null with get,set
        member val Description:String = null with get,set
        member val EndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Interval:String = null with get,set
        member val IntervalCount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Reference:String = null with get,set
        member val StartDate:DateTime = new DateTime() with get,set
        member val SupportedTypes:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsCard() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsCard>()
        member val MandateOptions:SetupIntentPaymentMethodOptionsCardMandateOptions = null with get,set
        member val Network:String = null with get,set
        member val RequestThreeDSecure:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsCardPresent() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsCardPresent>()

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsLink() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsLink>()
        member val PersistentToken:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsPaypal() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsPaypal>()
        member val BillingAgreementId:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsSepaDebitMandateOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsSepaDebitMandateOptions>()

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsSepaDebit() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsSepaDebit>()
        member val MandateOptions:SetupIntentPaymentMethodOptionsSepaDebitMandateOptions = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters>()
        member val AccountSubcategories:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnections() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnections>()
        member val Filters:SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters = null with get,set
        member val Permissions:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Prefetch:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReturnUrl:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsUsBankAccountMandateOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsUsBankAccountMandateOptions>()
        member val CollectionMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptionsUsBankAccount() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptionsUsBankAccount>()
        member val FinancialConnections:SetupIntentPaymentMethodOptionsUsBankAccountFinancialConnections = null with get,set
        member val MandateOptions:SetupIntentPaymentMethodOptionsUsBankAccountMandateOptions = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type SetupIntentPaymentMethodOptions() = 
        inherit StripeEntity<SetupIntentPaymentMethodOptions>()
        member val AcssDebit:SetupIntentPaymentMethodOptionsAcssDebit = null with get,set
        member val AmazonPay:SetupIntentPaymentMethodOptionsAmazonPay = null with get,set
        member val BacsDebit:SetupIntentPaymentMethodOptionsBacsDebit = null with get,set
        member val Card:SetupIntentPaymentMethodOptionsCard = null with get,set
        member val CardPresent:SetupIntentPaymentMethodOptionsCardPresent = null with get,set
        member val Link:SetupIntentPaymentMethodOptionsLink = null with get,set
        member val Paypal:SetupIntentPaymentMethodOptionsPaypal = null with get,set
        member val SepaDebit:SetupIntentPaymentMethodOptionsSepaDebit = null with get,set
        member val UsBankAccount:SetupIntentPaymentMethodOptionsUsBankAccount = null with get,set

    [<AllowNullLiteral>]
    type SetupIntent() = 
        inherit StripeEntity<SetupIntent>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val AttachToSelf:Boolean = new Boolean() with get,set
        member val AutomaticPaymentMethods:SetupIntentAutomaticPaymentMethods = null with get,set
        member val CancellationReason:String = null with get,set
        member val ClientSecret:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Description:String = null with get,set
        member val FlowDirections:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val LastSetupError:StripeError = null with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val NextAction:SetupIntentNextAction = null with get,set
        member val PaymentMethodConfigurationDetails:SetupIntentPaymentMethodConfigurationDetails = null with get,set
        member val PaymentMethodOptions:SetupIntentPaymentMethodOptions = null with get,set
        member val PaymentMethodTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Status:String = null with get,set
        member val Usage:String = null with get,set

    [<AllowNullLiteral>]
    type IPaymentSource = 
        interface end

    [<AllowNullLiteral>]
    type StripeError() = 
        inherit StripeEntity<StripeError>()
        member val Charge:String = null with get,set
        member val Code:String = null with get,set
        member val DeclineCode:String = null with get,set
        member val DocUrl:String = null with get,set
        member val Message:String = null with get,set
        member val Param:String = null with get,set
        member val PaymentIntent:PaymentIntent = null with get,set
        member val PaymentMethod:PaymentMethod = null with get,set
        member val PaymentMethodType:String = null with get,set
        member val RequestLogUrl:String = null with get,set
        member val SetupIntent:SetupIntent = null with get,set
        member val Source:IPaymentSource = null with get,set
        member val Type:String = null with get,set
        member val Error:String = null with get,set
        member val ErrorDescription:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionAlipayHandleRedirect() = 
        inherit StripeEntity<PaymentIntentNextActionAlipayHandleRedirect>()
        member val NativeData:String = null with get,set
        member val NativeUrl:String = null with get,set
        member val ReturnUrl:String = null with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionBoletoDisplayDetails() = 
        inherit StripeEntity<PaymentIntentNextActionBoletoDisplayDetails>()
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val HostedVoucherUrl:String = null with get,set
        member val Number:String = null with get,set
        member val Pdf:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionCardAwaitNotification() = 
        inherit StripeEntity<PaymentIntentNextActionCardAwaitNotification>()
        member val ChargeAttemptAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CustomerApprovalRequired:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode>()
        member val ExpiresAt:DateTime = new DateTime() with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode>()
        member val HostedInstructionsUrl:String = null with get,set
        member val MobileAuthUrl:String = null with get,set
        member val QrCode:PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCodeQrCode = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressAba() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressAba>()
        member val AccountNumber:String = null with get,set
        member val BankName:String = null with get,set
        member val RoutingNumber:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIban() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIban>()
        member val AccountHolderName:String = null with get,set
        member val Bic:String = null with get,set
        member val Country:String = null with get,set
        member val Iban:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode>()
        member val AccountHolderName:String = null with get,set
        member val AccountNumber:String = null with get,set
        member val SortCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei>()
        member val BankCode:String = null with get,set
        member val BankName:String = null with get,set
        member val Clabe:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift>()
        member val AccountNumber:String = null with get,set
        member val BankName:String = null with get,set
        member val SwiftCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin>()
        member val AccountHolderName:String = null with get,set
        member val AccountNumber:String = null with get,set
        member val AccountType:String = null with get,set
        member val BankCode:String = null with get,set
        member val BankName:String = null with get,set
        member val BranchCode:String = null with get,set
        member val BranchName:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress>()
        member val Aba:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressAba = null with get,set
        member val Iban:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIban = null with get,set
        member val SortCode:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode = null with get,set
        member val Spei:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei = null with get,set
        member val SupportedNetworks:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Swift:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift = null with get,set
        member val Type:String = null with get,set
        member val Zengin:PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionDisplayBankTransferInstructions() = 
        inherit StripeEntity<PaymentIntentNextActionDisplayBankTransferInstructions>()
        member val AmountRemaining:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Currency:String = null with get,set
        member val FinancialAddresses:ResizeArray<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress> = new ResizeArray<PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress>() with get,set
        member val HostedInstructionsUrl:String = null with get,set
        member val Reference:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilymart() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilymart>()
        member val ConfirmationNumber:String = null with get,set
        member val PaymentCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson>()
        member val ConfirmationNumber:String = null with get,set
        member val PaymentCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop>()
        member val ConfirmationNumber:String = null with get,set
        member val PaymentCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart>()
        member val ConfirmationNumber:String = null with get,set
        member val PaymentCode:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetailsStores() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetailsStores>()
        member val Familymart:PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilymart = null with get,set
        member val Lawson:PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson = null with get,set
        member val Ministop:PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop = null with get,set
        member val Seicomart:PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionKonbiniDisplayDetails() = 
        inherit StripeEntity<PaymentIntentNextActionKonbiniDisplayDetails>()
        member val ExpiresAt:DateTime = new DateTime() with get,set
        member val HostedVoucherUrl:String = null with get,set
        member val Stores:PaymentIntentNextActionKonbiniDisplayDetailsStores = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionMultibancoDisplayDetails() = 
        inherit StripeEntity<PaymentIntentNextActionMultibancoDisplayDetails>()
        member val Entity:String = null with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val HostedVoucherUrl:String = null with get,set
        member val Reference:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionOxxoDisplayDetails() = 
        inherit StripeEntity<PaymentIntentNextActionOxxoDisplayDetails>()
        member val ExpiresAfter:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val HostedVoucherUrl:String = null with get,set
        member val Number:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionPaynowDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionPaynowDisplayQrCode>()
        member val Data:String = null with get,set
        member val HostedInstructionsUrl:String = null with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionPixDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionPixDisplayQrCode>()
        member val Data:String = null with get,set
        member val ExpiresAt:DateTime = new DateTime() with get,set
        member val HostedInstructionsUrl:String = null with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionPromptpayDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionPromptpayDisplayQrCode>()
        member val Data:String = null with get,set
        member val HostedInstructionsUrl:String = null with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionRedirectToUrl() = 
        inherit StripeEntity<PaymentIntentNextActionRedirectToUrl>()
        member val ReturnUrl:String = null with get,set
        member val Url:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCodeQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCodeQrCode>()
        member val Data:String = null with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode>()
        member val HostedInstructionsUrl:String = null with get,set
        member val MobileAuthUrl:String = null with get,set
        member val QrCode:PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCodeQrCode = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionUseStripeSdk() = 
        inherit StripeEntity<PaymentIntentNextActionUseStripeSdk>()

    [<AllowNullLiteral>]
    type PaymentIntentNextActionVerifyWithMicrodeposits() = 
        inherit StripeEntity<PaymentIntentNextActionVerifyWithMicrodeposits>()
        member val ArrivalDate:DateTime = new DateTime() with get,set
        member val HostedVerificationUrl:String = null with get,set
        member val MicrodepositType:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionWechatPayDisplayQrCode() = 
        inherit StripeEntity<PaymentIntentNextActionWechatPayDisplayQrCode>()
        member val Data:String = null with get,set
        member val HostedInstructionsUrl:String = null with get,set
        member val ImageDataUrl:String = null with get,set
        member val ImageUrlPng:String = null with get,set
        member val ImageUrlSvg:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionWechatPayRedirectToAndroidApp() = 
        inherit StripeEntity<PaymentIntentNextActionWechatPayRedirectToAndroidApp>()
        member val AppId:String = null with get,set
        member val NonceStr:String = null with get,set
        member val Package:String = null with get,set
        member val PartnerId:String = null with get,set
        member val PrepayId:String = null with get,set
        member val Sign:String = null with get,set
        member val Timestamp:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextActionWechatPayRedirectToIosApp() = 
        inherit StripeEntity<PaymentIntentNextActionWechatPayRedirectToIosApp>()
        member val NativeUrl:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentNextAction() = 
        inherit StripeEntity<PaymentIntentNextAction>()
        member val AlipayHandleRedirect:PaymentIntentNextActionAlipayHandleRedirect = null with get,set
        member val BoletoDisplayDetails:PaymentIntentNextActionBoletoDisplayDetails = null with get,set
        member val CardAwaitNotification:PaymentIntentNextActionCardAwaitNotification = null with get,set
        member val CashappHandleRedirectOrDisplayQrCode:PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode = null with get,set
        member val DisplayBankTransferInstructions:PaymentIntentNextActionDisplayBankTransferInstructions = null with get,set
        member val KonbiniDisplayDetails:PaymentIntentNextActionKonbiniDisplayDetails = null with get,set
        member val MultibancoDisplayDetails:PaymentIntentNextActionMultibancoDisplayDetails = null with get,set
        member val OxxoDisplayDetails:PaymentIntentNextActionOxxoDisplayDetails = null with get,set
        member val PaynowDisplayQrCode:PaymentIntentNextActionPaynowDisplayQrCode = null with get,set
        member val PixDisplayQrCode:PaymentIntentNextActionPixDisplayQrCode = null with get,set
        member val PromptpayDisplayQrCode:PaymentIntentNextActionPromptpayDisplayQrCode = null with get,set
        member val RedirectToUrl:PaymentIntentNextActionRedirectToUrl = null with get,set
        member val SwishHandleRedirectOrDisplayQrCode:PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode = null with get,set
        member val Type:String = null with get,set
        member val UseStripeSdk:PaymentIntentNextActionUseStripeSdk = null with get,set
        member val VerifyWithMicrodeposits:PaymentIntentNextActionVerifyWithMicrodeposits = null with get,set
        member val WechatPayDisplayQrCode:PaymentIntentNextActionWechatPayDisplayQrCode = null with get,set
        member val WechatPayRedirectToAndroidApp:PaymentIntentNextActionWechatPayRedirectToAndroidApp = null with get,set
        member val WechatPayRedirectToIosApp:PaymentIntentNextActionWechatPayRedirectToIosApp = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodConfigurationDetails() = 
        inherit StripeEntity<PaymentIntentPaymentMethodConfigurationDetails>()
        member val Id:String = null with get,set
        member val Parent:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAcssDebitMandateOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAcssDebitMandateOptions>()
        member val CustomMandateUrl:String = null with get,set
        member val IntervalDescription:String = null with get,set
        member val PaymentSchedule:String = null with get,set
        member val TransactionType:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAcssDebit() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAcssDebit>()
        member val MandateOptions:PaymentIntentPaymentMethodOptionsAcssDebitMandateOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAffirm() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAffirm>()
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAfterpayClearpay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAfterpayClearpay>()
        member val CaptureMethod:String = null with get,set
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAlipay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAlipay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAmazonPay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAmazonPay>()
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsAuBecsDebit() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsAuBecsDebit>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBacsDebitMandateOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsBacsDebitMandateOptions>()

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBacsDebit() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsBacsDebit>()
        member val MandateOptions:PaymentIntentPaymentMethodOptionsBacsDebitMandateOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBancontact() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsBancontact>()
        member val PreferredLanguage:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBlik() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsBlik>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsBoleto() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsBoleto>()
        member val ExpiresAfterDays:Int64 = new Int64() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardInstallmentsPlan() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCardInstallmentsPlan>()
        member val Count:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Interval:String = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardInstallments() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCardInstallments>()
        member val AvailablePlans:ResizeArray<PaymentIntentPaymentMethodOptionsCardInstallmentsPlan> = new ResizeArray<PaymentIntentPaymentMethodOptionsCardInstallmentsPlan>() with get,set
        member val Enabled:Boolean = new Boolean() with get,set
        member val Plan:PaymentIntentPaymentMethodOptionsCardInstallmentsPlan = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardMandateOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCardMandateOptions>()
        member val Amount:Int64 = new Int64() with get,set
        member val AmountType:String = null with get,set
        member val Description:String = null with get,set
        member val EndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Interval:String = null with get,set
        member val IntervalCount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val Reference:String = null with get,set
        member val StartDate:DateTime = new DateTime() with get,set
        member val SupportedTypes:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCard() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCard>()
        member val CaptureMethod:String = null with get,set
        member val Installments:PaymentIntentPaymentMethodOptionsCardInstallments = null with get,set
        member val MandateOptions:PaymentIntentPaymentMethodOptionsCardMandateOptions = null with get,set
        member val Network:String = null with get,set
        member val RequestExtendedAuthorization:String = null with get,set
        member val RequestIncrementalAuthorization:String = null with get,set
        member val RequestMulticapture:String = null with get,set
        member val RequestOvercapture:String = null with get,set
        member val RequestThreeDSecure:String = null with get,set
        member val RequireCvcRecollection:Boolean = new Boolean() with get,set
        member val SetupFutureUsage:String = null with get,set
        member val StatementDescriptorSuffixKana:String = null with get,set
        member val StatementDescriptorSuffixKanji:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardPresentRouting() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCardPresentRouting>()
        member val RequestedPriority:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCardPresent() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCardPresent>()
        member val RequestExtendedAuthorization:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val RequestIncrementalAuthorizationSupport:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Routing:PaymentIntentPaymentMethodOptionsCardPresentRouting = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCashapp() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCashapp>()
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>()
        member val Country:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer>()
        member val EuBankTransfer:PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer = null with get,set
        member val RequestedAddressTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsCustomerBalance() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsCustomerBalance>()
        member val BankTransfer:PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer = null with get,set
        member val FundingType:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsEps() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsEps>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsFpx() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsFpx>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsGiropay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsGiropay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsGrabpay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsGrabpay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsIdeal() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsIdeal>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsInteracPresent() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsInteracPresent>()

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsKlarna() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsKlarna>()
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsKonbini() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsKonbini>()
        member val ConfirmationNumber:String = null with get,set
        member val ExpiresAfterDays:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ProductDescription:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsLink() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsLink>()
        member val CaptureMethod:String = null with get,set
        member val PersistentToken:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsMobilepay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsMobilepay>()
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsMultibanco() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsMultibanco>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsOxxo() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsOxxo>()
        member val ExpiresAfterDays:Int64 = new Int64() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsP24() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsP24>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPaynow() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsPaynow>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPaypal() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsPaypal>()
        member val CaptureMethod:String = null with get,set
        member val PreferredLocale:String = null with get,set
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPix() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsPix>()
        member val ExpiresAfterSeconds:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val ExpiresAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsPromptpay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsPromptpay>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsRevolutPay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsRevolutPay>()
        member val CaptureMethod:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions>()

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSepaDebit() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsSepaDebit>()
        member val MandateOptions:PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSofort() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsSofort>()
        member val PreferredLanguage:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsSwish() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsSwish>()
        member val Reference:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsTwint() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsTwint>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters>()
        member val AccountSubcategories:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections>()
        member val Filters:PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters = null with get,set
        member val Permissions:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Prefetch:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val ReturnUrl:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions>()
        member val CollectionMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsUsBankAccount() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsUsBankAccount>()
        member val FinancialConnections:PaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections = null with get,set
        member val MandateOptions:PaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions = null with get,set
        member val PreferredSettlementSpeed:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val VerificationMethod:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsWechatPay() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsWechatPay>()
        member val AppId:String = null with get,set
        member val Client:String = null with get,set
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptionsZip() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptionsZip>()
        member val SetupFutureUsage:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentPaymentMethodOptions() = 
        inherit StripeEntity<PaymentIntentPaymentMethodOptions>()
        member val AcssDebit:PaymentIntentPaymentMethodOptionsAcssDebit = null with get,set
        member val Affirm:PaymentIntentPaymentMethodOptionsAffirm = null with get,set
        member val AfterpayClearpay:PaymentIntentPaymentMethodOptionsAfterpayClearpay = null with get,set
        member val Alipay:PaymentIntentPaymentMethodOptionsAlipay = null with get,set
        member val AmazonPay:PaymentIntentPaymentMethodOptionsAmazonPay = null with get,set
        member val AuBecsDebit:PaymentIntentPaymentMethodOptionsAuBecsDebit = null with get,set
        member val BacsDebit:PaymentIntentPaymentMethodOptionsBacsDebit = null with get,set
        member val Bancontact:PaymentIntentPaymentMethodOptionsBancontact = null with get,set
        member val Blik:PaymentIntentPaymentMethodOptionsBlik = null with get,set
        member val Boleto:PaymentIntentPaymentMethodOptionsBoleto = null with get,set
        member val Card:PaymentIntentPaymentMethodOptionsCard = null with get,set
        member val CardPresent:PaymentIntentPaymentMethodOptionsCardPresent = null with get,set
        member val Cashapp:PaymentIntentPaymentMethodOptionsCashapp = null with get,set
        member val CustomerBalance:PaymentIntentPaymentMethodOptionsCustomerBalance = null with get,set
        member val Eps:PaymentIntentPaymentMethodOptionsEps = null with get,set
        member val Fpx:PaymentIntentPaymentMethodOptionsFpx = null with get,set
        member val Giropay:PaymentIntentPaymentMethodOptionsGiropay = null with get,set
        member val Grabpay:PaymentIntentPaymentMethodOptionsGrabpay = null with get,set
        member val Ideal:PaymentIntentPaymentMethodOptionsIdeal = null with get,set
        member val InteracPresent:PaymentIntentPaymentMethodOptionsInteracPresent = null with get,set
        member val Klarna:PaymentIntentPaymentMethodOptionsKlarna = null with get,set
        member val Konbini:PaymentIntentPaymentMethodOptionsKonbini = null with get,set
        member val Link:PaymentIntentPaymentMethodOptionsLink = null with get,set
        member val Mobilepay:PaymentIntentPaymentMethodOptionsMobilepay = null with get,set
        member val Multibanco:PaymentIntentPaymentMethodOptionsMultibanco = null with get,set
        member val Oxxo:PaymentIntentPaymentMethodOptionsOxxo = null with get,set
        member val P24:PaymentIntentPaymentMethodOptionsP24 = null with get,set
        member val Paynow:PaymentIntentPaymentMethodOptionsPaynow = null with get,set
        member val Paypal:PaymentIntentPaymentMethodOptionsPaypal = null with get,set
        member val Pix:PaymentIntentPaymentMethodOptionsPix = null with get,set
        member val Promptpay:PaymentIntentPaymentMethodOptionsPromptpay = null with get,set
        member val RevolutPay:PaymentIntentPaymentMethodOptionsRevolutPay = null with get,set
        member val SepaDebit:PaymentIntentPaymentMethodOptionsSepaDebit = null with get,set
        member val Sofort:PaymentIntentPaymentMethodOptionsSofort = null with get,set
        member val Swish:PaymentIntentPaymentMethodOptionsSwish = null with get,set
        member val Twint:PaymentIntentPaymentMethodOptionsTwint = null with get,set
        member val UsBankAccount:PaymentIntentPaymentMethodOptionsUsBankAccount = null with get,set
        member val WechatPay:PaymentIntentPaymentMethodOptionsWechatPay = null with get,set
        member val Zip:PaymentIntentPaymentMethodOptionsZip = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentProcessingCardCustomerNotification() = 
        inherit StripeEntity<PaymentIntentProcessingCardCustomerNotification>()
        member val ApprovalRequested:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val CompletesAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type PaymentIntentProcessingCard() = 
        inherit StripeEntity<PaymentIntentProcessingCard>()
        member val CustomerNotification:PaymentIntentProcessingCardCustomerNotification = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentProcessing() = 
        inherit StripeEntity<PaymentIntentProcessing>()
        member val Card:PaymentIntentProcessingCard = null with get,set
        member val Type:String = null with get,set

    [<AllowNullLiteral>]
    type PaymentIntentTransferData() = 
        inherit StripeEntity<PaymentIntentTransferData>()
        member val Amount:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type PaymentIntent() = 
        inherit StripeEntity<PaymentIntent>()
        member val Id:String = null with get,set
        member val Object:String = null with get,set
        member val Amount:Int64 = new Int64() with get,set
        member val AmountCapturable:Int64 = new Int64() with get,set
        member val AmountDetails:PaymentIntentAmountDetails = null with get,set
        member val AmountReceived:Int64 = new Int64() with get,set
        member val ApplicationFeeAmount:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val AutomaticPaymentMethods:PaymentIntentAutomaticPaymentMethods = null with get,set
        member val CanceledAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CancellationReason:String = null with get,set
        member val CaptureMethod:String = null with get,set
        member val ClientSecret:String = null with get,set
        member val ConfirmationMethod:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val Currency:String = null with get,set
        member val Description:String = null with get,set
        member val LastPaymentError:StripeError = null with get,set
        member val Livemode:Boolean = new Boolean() with get,set
        member val Metadata:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val NextAction:PaymentIntentNextAction = null with get,set
        member val PaymentMethodConfigurationDetails:PaymentIntentPaymentMethodConfigurationDetails = null with get,set
        member val PaymentMethodOptions:PaymentIntentPaymentMethodOptions = null with get,set
        member val PaymentMethodTypes:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Processing:PaymentIntentProcessing = null with get,set
        member val ReceiptEmail:String = null with get,set
        member val SetupFutureUsage:String = null with get,set
        member val Shipping:Shipping = null with get,set
        member val StatementDescriptor:String = null with get,set
        member val StatementDescriptorSuffix:String = null with get,set
        member val Status:String = null with get,set
        member val TransferData:PaymentIntentTransferData = null with get,set
        member val TransferGroup:String = null with get,set

    [<AllowNullLiteral>]
    type CustomSessionData() = 
        member val Session:Session = null with get,set
        member val LineItems:ResizeArray<LineItem> = new ResizeArray<LineItem>() with get,set
        member val PaymentIntent:PaymentIntent = null with get,set

    [<AllowNullLiteral>]
    type CustomPaymentIntentData() = 
        member val PaymentIntent:PaymentIntent = null with get,set

    [<AllowNullLiteral>]
    type CustomCheckoutData() = 
        member val CustomSessionData:CustomSessionData = null with get,set
        member val CustomPaymentIntentData:CustomPaymentIntentData = null with get,set

    [<AllowNullLiteral>]
    type IPaysonPaymentCheckout1 = 
        interface end

    [<AllowNullLiteral>]
    type PaymentLog() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val InternalReferenceId:String = null with get,set

        [<Required>]
        member val ArticleTypeId:Int32 = new Int32() with get,set

        member val PaymentReferenceId:String = null with get,set
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val OrderItemReferenceId:String = null with get,set
        member val Amount:Nullable<Double> = new Nullable<Double>() with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val AmountCredited:Nullable<Double> = new Nullable<Double>() with get,set
        member val Comments:String = null with get,set
        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type PayableEntity() = 
        inherit BaseModel()
        [<Ignore>]
        member val DbFactory:IDbConnectionFactory = null with get,set

        [<Ignore>]
        member val QvicklyPaymentManager:IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> = null with get,set

        [<Ignore>]
        member val Payson2PaymentManager:IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse> = null with get,set

        [<Ignore>]
        member val StripePaymentManager:IBokameraPaymentManager<StripeCreateCheckoutQuery, CustomCheckoutData, CustomCheckoutData> = null with get,set

        [<Ignore>]
        member val PaysonPaymentCheckout1:IPaysonPaymentCheckout1 = null with get,set

        [<Ignore>]
        member val Logger:ILogger<PayableEntity> = null with get,set

        [<Ignore>]
        member val InternalReferenceId:String = null with get,set

        [<Ignore>]
        member val PaymentLog:ResizeArray<PaymentLog> = new ResizeArray<PaymentLog>() with get,set

        member val CompanyId:Guid = new Guid() with get,set
        member val PriceVat:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        [<Ignore>]
        member val Customer:Customer = null with get,set

        [<Ignore>]
        member val Customers:ResizeArray<Customer> = new ResizeArray<Customer>() with get,set

        [<Ignore>]
        member val Company:Company = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeStatus() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type ArticleServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val ArticleId:Int32 = new Int32() with get,set

    type ArticleTypeEnum =
        | ServiceArticle = 1
        | StandAloneArticle = 2
        | RebateCodePunchTicketArticle = 3
        | RebateCodeGiftCardArticle = 4
        | RebateCodeValueCardArticle = 5

    [<AllowNullLiteral>]
    type Article() = 
        inherit BaseModel()
        member val Company:Company = null with get,set
        member val CurrencyInfo:Currency = null with get,set
        member val ArticleServiceRelations:ResizeArray<ArticleServiceRelation> = new ResizeArray<ArticleServiceRelation>() with get,set
        [<Ignore>]
        member val ServiceIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val ArticleType:ArticleTypeEnum = new ArticleTypeEnum() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val ArticleTypeId:Int32 = new Int32() with get,set

        member val Description:String = null with get,set
        member val ImageUrl:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val Amount:Int32 = new Int32() with get,set

        [<Required>]
        member val Price:Double = new Double() with get,set

        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        [<Required>]
        [<StringLength(50)>]
        member val CurrencyId:String = null with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeDayOfWeekRelation() = 
        inherit BaseModel()
        [<Ignore>]
        member val DayOfWeek:BokaMeraDayOfWeek = new BokaMeraDayOfWeek() with get,set

        [<Required>]
        member val DayOfWeekId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeBookingPriceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val PriceId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeCustomerRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val RebateCodeEmailSentToCustomer:Boolean = new Boolean() with get,set
        member val MessageToReceiver:String = null with get,set
        member val Buyer:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type DaysOfWeek() = 
        inherit BaseModel()
        [<Required>]
        member val DayOfWeek:String = null with get,set

        [<Required>]
        member val DayOfWeekTranslation:String = null with get,set

        member val DayOfWeekActive:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val DayOfWeekSortOrder:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CalendarExport() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val ExceptionId:Int32 = new Int32() with get,set

        member val CalendarSync:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val CalendarId:String = null with get,set
        member val IsExceptionDeleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingLogEventType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingLog() = 
        inherit BaseModel()
        [<References(typeof<BookingLogEventType>)>]
        member val EventTypeId:Int32 = new Int32() with get,set

        member val EventType:BookingLogEventType = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val Comments:String = null with get,set
        member val UserId:String = null with get,set
        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type PaymentDetails() = 
        inherit BaseModel()
        [<Ignore>]
        member val QvicklyCheckoutSerialized:QvicklyCheckoutResponse = null with get,set

        [<Ignore>]
        member val Payson2CheckoutSerialized:Payson2CheckoutResponse = null with get,set

        [<Ignore>]
        member val StripeCheckoutSerialized:CustomCheckoutData = null with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val InternalReferenceId:String = null with get,set

        [<Required>]
        member val ArticleTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val ExternalResponseData:String = null with get,set

        [<Required>]
        member val ExternalResponseReference:String = null with get,set

        [<Required>]
        member val PaymentProviderId:Int32 = new Int32() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type BookingPrice() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val ServicePriceId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ServicePrice:ServicePrice = null with get,set
        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val PriceText:String = null with get,set

        [<Ignore>]
        member val AppliedCodes:ResizeArray<AppliedRebateCodes> = new ResizeArray<AppliedRebateCodes>() with get,set

        [<Ignore>]
        member val IsRebate:Boolean = new Boolean() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val Quantity:Int32 = new Int32() with get,set

        member val Price:Nullable<Double> = new Nullable<Double>() with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Category:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Invoiced:Boolean = new Boolean() with get,set

        [<Required>]
        member val OccupiesSpot:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingStatus() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Color:String = null with get,set

        [<Required>]
        member val Icon:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookedResource() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Color:String = null with get,set
        member val ImageUrl:Uri = null with get,set
        member val Email:String = null with get,set
        member val MobilePhone:String = null with get,set
        member val AccessGroup:String = null with get,set
        member val EmailNotification:Boolean = new Boolean() with get,set
        member val SMSNotification:Boolean = new Boolean() with get,set
        member val EmailReminder:Boolean = new Boolean() with get,set
        member val SMSReminder:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type BookedResourceType() = 
        ///<summary>
        ///The resource type id
        ///</summary>
        [<ApiMember(Description="The resource type id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The resource type name
        ///</summary>
        [<ApiMember(Description="The resource type name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The resources inside resource type
        ///</summary>
        [<ApiMember(Description="The resources inside resource type")>]
        member val Resources:ResizeArray<BookedResource> = new ResizeArray<BookedResource>() with get,set

    [<AllowNullLiteral>]
    type Booking() = 
        inherit PayableEntity()
        [<Ignore>]
        member val Service:Service = null with get,set

        [<Ignore>]
        member val CalendarExport:CalendarExport = null with get,set

        [<Ignore>]
        member val Log:ResizeArray<BookingLog> = new ResizeArray<BookingLog>() with get,set

        [<Ignore>]
        member val CheckoutLogs:ResizeArray<PaymentDetails> = new ResizeArray<PaymentDetails>() with get,set

        [<Ignore>]
        member val Prices:ResizeArray<BookingPrice> = new ResizeArray<BookingPrice>() with get,set

        [<Ignore>]
        member val Status:BookingStatusEnum = new BookingStatusEnum() with get,set

        [<Ignore>]
        member val IsReserved:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val StatusName:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        member val BookingStatus:BookingStatus = null with get,set
        [<Ignore>]
        member val TotalPrice:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val TotalSpots:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<Ignore>]
        member val Resources:IList<Resource> = null with get,set

        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Ignore>]
        member val BookedResources:IList<BookedResourceType> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val DeterministicId:Guid = new Guid() with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val LastTimeToUnBook:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<Ignore>]
        member val PriceMappings:ResizeArray<PriceMapping> = new ResizeArray<PriceMapping>() with get,set

        [<Ignore>]
        member val InternalReferenceId:String = null with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val StatusId:Int32 = new Int32() with get,set

        member val UnbookedOn:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UnbookedComments:String = null with get,set
        member val BookedComments:String = null with get,set
        [<Required>]
        member val BookedBy:String = null with get,set

        member val UnBookedBy:String = null with get,set
        [<Required>]
        member val SendSmsReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsConfirmation:Boolean = new Boolean() with get,set

        member val RebateCode:String = null with get,set
        member val Comments:String = null with get,set
        member val IpAddress:String = null with get,set
        [<Required>]
        member val NumberOfBookedSpots:Int32 = new Int32() with get,set

        member val CommentsToCustomer:String = null with get,set
        member val PaymentExpiration:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        [<Required>]
        member val SendEmailConfirmation:Boolean = new Boolean() with get,set

        member val CancellationCode:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val RatingCode:String = null with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set
        [<Required>]
        member val From:DateTime = new DateTime() with get,set

        [<Required>]
        member val To:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type RebateCodeTransaction() = 
        inherit BaseModel()
        [<Ignore>]
        member val Booking:Booking = null with get,set

        [<Ignore>]
        member val RebateCode:RebateCode = null with get,set

        [<Ignore>]
        member val Customer:Customer = null with get,set

        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Guid = new Guid() with get,set
        member val Note:String = null with get,set
        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        [<Required>]
        member val Amount:Double = new Double() with get,set

        [<Required>]
        member val Usage:Int32 = new Int32() with get,set

        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type RebateCode() = 
        inherit PayableEntity()
        [<References(typeof<RebateCodeType>)>]
        member val RebateCodeTypeId:Int32 = new Int32() with get,set

        member val RebateCodeTypeInfo:RebateCodeType = null with get,set
        [<References(typeof<RebateCodeStatus>)>]
        member val RebateCodeStatusId:Int32 = new Int32() with get,set

        member val RebateCodeStatusInfo:RebateCodeStatus = null with get,set
        [<Ignore>]
        member val Article:Article = null with get,set

        [<Ignore>]
        member val Services:ResizeArray<Service> = new ResizeArray<Service>() with get,set

        member val RebateCodeDayOfWeekRelation:ResizeArray<RebateCodeDayOfWeekRelation> = new ResizeArray<RebateCodeDayOfWeekRelation>() with get,set
        member val RebateCodeServiceRelation:ResizeArray<RebateCodeServiceRelation> = new ResizeArray<RebateCodeServiceRelation>() with get,set
        member val RebateCodeBookingPriceRelation:ResizeArray<RebateCodeBookingPriceRelation> = new ResizeArray<RebateCodeBookingPriceRelation>() with get,set
        member val RebateCodeCustomerRelation:ResizeArray<RebateCodeCustomerRelation> = new ResizeArray<RebateCodeCustomerRelation>() with get,set
        [<Ignore>]
        member val ServicesNames:String = null with get,set

        [<Ignore>]
        member val DaysOfWeek:ResizeArray<DaysOfWeek> = new ResizeArray<DaysOfWeek>() with get,set

        [<Ignore>]
        member val RebateCodeStatus:RebateCodeStatus = null with get,set

        [<Ignore>]
        member val RebateCodeType:RebateCodeType = null with get,set

        [<Ignore>]
        member val Transactions:ResizeArray<RebateCodeTransaction> = new ResizeArray<RebateCodeTransaction>() with get,set

        [<Ignore>]
        member val RemainingAmount:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val RemainingUsage:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<Ignore>]
        member val CurrentNumberOfUsesPerCustomer:Int32 = new Int32() with get,set

        [<Ignore>]
        member val IsSpecificByDayOfWeek:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val ActiveByStatus:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val RebateCodeCurrencySign:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val PaymentReceived:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val InternalReferenceId:String = null with get,set

        [<Required>]
        member val ValidFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val ValidTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val RebateCodeSign:String = null with get,set

        [<Required>]
        member val RebateCodeValue:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfUses:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfUsesPerCustomer:Int32 = new Int32() with get,set

        [<Required>]
        member val NumberOfUsesUsed:Int32 = new Int32() with get,set

        member val PersonalNote:String = null with get,set
        [<Required>]
        member val CreatedBy:String = null with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val UpdatedBy:String = null with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set
        member val ArticleId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type ServicePrice() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val Service:Service = null with get,set

        [<Ignore>]
        member val PriceMappings:ResizeArray<PriceMapping> = new ResizeArray<PriceMapping>() with get,set

        [<Ignore>]
        member val isTimeSpecific:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val isDaysOfWeekSpecific:Boolean = new Boolean() with get,set

        member val DayOfWeeks:ResizeArray<ServicePriceDayOfWeekRelation> = new ResizeArray<ServicePriceDayOfWeekRelation>() with get,set
        [<Ignore>]
        member val PriceBeforeRebate:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val RebateCodesApplied:ResizeArray<RebateCode> = new ResizeArray<RebateCode>() with get,set

        [<Ignore>]
        member val PriceText:String = null with get,set

        [<Ignore>]
        member val OverlappingPrices:ResizeArray<ServicePrice> = new ResizeArray<ServicePrice>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        member val Price:Nullable<Double> = new Nullable<Double>() with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val VAT:Decimal = new Decimal() with get,set

        member val Category:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val From:DateTime = new DateTime() with get,set

        [<Required>]
        member val To:DateTime = new DateTime() with get,set

        [<Required>]
        member val CalculationTypeId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingStatusOptions() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set

    [<AllowNullLiteral>]
    type ScheduleView() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WeekNumberSetting() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingTemplate() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val UsedByApplication:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CalendarType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type FreeSpotTexts() = 
        inherit BaseModel()
        [<Required>]
        member val TextSingular:String = null with get,set

        [<Required>]
        member val TextPlural:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingSettings() = 
        inherit BaseModel()
        [<References(typeof<FreeSpotTexts>)>]
        member val FreeSpotTextsId:Int32 = new Int32() with get,set

        [<Ignore>]
        member val SendEmailConfirmation:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val ScheduleViewOptions:ResizeArray<ScheduleView> = new ResizeArray<ScheduleView>() with get,set

        [<Ignore>]
        member val WeekNumberSettingOptions:ResizeArray<WeekNumberSetting> = new ResizeArray<WeekNumberSetting>() with get,set

        [<Ignore>]
        member val BookingTemplateOptions:ResizeArray<BookingTemplate> = new ResizeArray<BookingTemplate>() with get,set

        [<Ignore>]
        member val CalendarTypeOptions:ResizeArray<CalendarType> = new ResizeArray<CalendarType>() with get,set

        [<Ignore>]
        member val FreeSpotTextOptions:ResizeArray<FreeSpotTexts> = new ResizeArray<FreeSpotTexts>() with get,set

        [<Ignore>]
        member val BookingStatusOptions:ResizeArray<BookingStatusOptions> = new ResizeArray<BookingStatusOptions>() with get,set

        member val FreeSpotTextsInfo:FreeSpotTexts = null with get,set
        [<Ignore>]
        member val FreeSpotsTextSingular:String = null with get,set

        [<Ignore>]
        member val FreeSpotsTextPlural:String = null with get,set

        [<Required>]
        member val BookingStatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val ScheduleViewId:Int32 = new Int32() with get,set

        [<Required>]
        member val BookingTemplateId:Int32 = new Int32() with get,set

        [<Required>]
        member val CalendarTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val AllowBookingOnUnbookedTimes:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsConfirmation:Boolean = new Boolean() with get,set

        [<Required>]
        member val EmailReminderTime:Int32 = new Int32() with get,set

        [<Required>]
        member val SmsReminderTime:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxActiveBookings:Int32 = new Int32() with get,set

        [<Required>]
        member val SendNotifications:Boolean = new Boolean() with get,set

        member val SendNotificationsEmail:String = null with get,set
        [<Required>]
        member val EnableMobileApp:Boolean = new Boolean() with get,set

        member val ScheduleStartTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val ScheduleEndTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val ReceiptTemplate:String = null with get,set
        [<Required>]
        member val ScheduleTimeSlotMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val ShowFreeTimesLeft:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableICalGroupBookings:Boolean = new Boolean() with get,set

        member val AgreementTemplate:String = null with get,set
        [<Required>]
        member val ScheduleShowTimeExeptions:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableBookingsOnSameTime:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowWeekNumberSettingId:Int32 = new Int32() with get,set

        [<Required>]
        member val EnableShowBookedTimes:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableSendFollowUpMessage:Boolean = new Boolean() with get,set

        [<Required>]
        member val FollowUpMessageTime:Int32 = new Int32() with get,set

        member val MessageText:String = null with get,set
        [<Required>]
        member val ScheduleGroupResources:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookSpotUserResponseMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val IsBookSpotDirectly:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookSpotDirectlyTimeLeftMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val SendEmailNotificationQueue:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSMSNotificationQueue:Boolean = new Boolean() with get,set

        [<Required>]
        member val SchedulerDisableHorizontalScrolling:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookOnlyOnExistingCustomers:Boolean = new Boolean() with get,set

        [<Required>]
        member val AutoGenerateUniquePinCode:Boolean = new Boolean() with get,set

        [<Required>]
        member val WeightedPrices:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val AutoCreateUserProfile:Boolean = new Boolean() with get,set

        member val ShowMultipleResourcesAsOne:Boolean = new Boolean() with get,set
        member val ShowMultiDayAsTime:Boolean = new Boolean() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type AdminPaymentOptions() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type PaymentProviders() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Category:String = null with get,set

        member val Url:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type PaymentSetting() = 
        inherit BaseModel()
        member val AdminPaymentOption:AdminPaymentOptions = null with get,set
        [<Ignore>]
        member val AdminPaymentOptions:ResizeArray<AdminPaymentOptions> = new ResizeArray<AdminPaymentOptions>() with get,set

        [<Ignore>]
        member val PaymentProviderOptions:ResizeArray<PaymentProviders> = new ResizeArray<PaymentProviders>() with get,set

        [<Required>]
        member val Enabled:Boolean = new Boolean() with get,set

        [<Required>]
        member val InvoiceFee:Int32 = new Int32() with get,set

        [<Required>]
        member val AllowCreditCardPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val AllowInvoicePayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val AllowBankPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val GuaranteeOffered:Boolean = new Boolean() with get,set

        [<Required>]
        member val RefundOnCancelBooking:Boolean = new Boolean() with get,set

        member val DefaultPaymentOptionId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val PaymentProviderId:Int32 = new Int32() with get,set

        [<Required>]
        member val SendPaymentRequestDirectly:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type AverageRatingScore() = 
        member val AverageScore:Double = new Double() with get,set
        member val Score1Count:Int32 = new Int32() with get,set
        member val Score2Count:Int32 = new Int32() with get,set
        member val Score3Count:Int32 = new Int32() with get,set
        member val Score4Count:Int32 = new Int32() with get,set
        member val Score5Count:Int32 = new Int32() with get,set
        member val Count:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Review() = 
        inherit BaseModel()
        member val ReviewId:Guid = new Guid() with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Title:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Author:String = null with get,set

        [<Required>]
        member val Status:Int32 = new Int32() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val ReviewAnswer:String = null with get,set

    [<AllowNullLiteral>]
    type Rating() = 
        inherit BaseModel()
        member val ReviewId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Review:Review = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val RatingScore:Int32 = new Int32() with get,set

        [<Required>]
        member val Status:Int32 = new Int32() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type Service() = 
        inherit BaseModel()
        [<Ignore>]
        member val ResourceTypes:ResizeArray<ResourceType> = new ResizeArray<ResourceType>() with get,set

        [<Ignore>]
        member val Resources:IEnumerable<Resource> = null with get,set

        [<Ignore>]
        member val TotalPrice:TotalPriceInformation = null with get,set

        [<Ignore>]
        member val Prices:ResizeArray<ServicePrice> = new ResizeArray<ServicePrice>() with get,set

        [<Ignore>]
        member val BookingStatusOptions:ResizeArray<BookingStatusOptions> = new ResizeArray<BookingStatusOptions>() with get,set

        [<Ignore>]
        member val IsGroupBooking:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val IsMultipleResource:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Settings:BookingSettings = null with get,set

        [<Ignore>]
        member val PaymentSetting:PaymentSetting = null with get,set

        [<Ignore>]
        member val BookingCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomerCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val Schedules:IList<ISchedule> = null with get,set

        [<Ignore>]
        member val CustomerActiveBookings:IList<Booking> = null with get,set

        [<Ignore>]
        member val ScheduleType:ScheduleType = new ScheduleType() with get,set

        [<Ignore>]
        member val LastTimeToUnbookThreshold:TimeSpan = new TimeSpan() with get,set

        [<Ignore>]
        member val LastTimeToBookThreshold:TimeSpan = new TimeSpan() with get,set

        [<Ignore>]
        member val RatingScore:AverageRatingScore = null with get,set

        [<Ignore>]
        member val Ratings:ResizeArray<Rating> = new ResizeArray<Rating>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val Group:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val SortOrder:Int32 = new Int32() with get,set

        [<Required>]
        member val PauseAfterBooking:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeDays:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeHours:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeDays:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeHours:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeMinutes:Int32 = new Int32() with get,set

        member val Duration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationTypeId:Int32 = new Int32() with get,set
        member val MinDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MaxDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationInterval:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val TotalSpots:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ImageUrl:String = null with get,set
        [<Required>]
        member val ScheduleTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val OnlyVisibleByAdmin:Boolean = new Boolean() with get,set

        [<Required>]
        member val MinNumberOfSpotsPerBooking:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfSpotsPerBooking:Int32 = new Int32() with get,set

        [<Required>]
        member val MinNumberOfResourcesToBook:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfResourcesToBook:Int32 = new Int32() with get,set

        [<Required>]
        member val IsPaymentEnabled:Boolean = new Boolean() with get,set

        [<Required>]
        member val MaxPaymentTime:Int32 = new Int32() with get,set

        [<Required>]
        member val LockSpotsToBooking:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableBookingQueue:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val BookingStatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val EnableCodeLockSync:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableCustomerManualPayment:Boolean = new Boolean() with get,set

        member val PriceViewTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set

    [<AllowNullLiteral>]
    type CustomFieldServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomFieldConfigId:Int32 = new Int32() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CustomFieldConfig() = 
        inherit BaseModel()
        [<Ignore>]
        member val Values:ResizeArray<CustomFieldValue> = new ResizeArray<CustomFieldValue>() with get,set

        member val CustomField:CustomField = null with get,set
        [<Ignore>]
        member val RegEx:RegEx = null with get,set

        [<Ignore>]
        member val Services:ResizeArray<Service> = new ResizeArray<Service>() with get,set

        member val CustomFieldServiceRelation:ResizeArray<CustomFieldServiceRelation> = new ResizeArray<CustomFieldServiceRelation>() with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val GroupId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val FieldId:Int32 = new Int32() with get,set

        [<Required>]
        member val IconId:Int32 = new Int32() with get,set

        member val RegExId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Datatype:String = null with get,set

        [<Required>]
        member val MaxLength:Int32 = new Int32() with get,set

        [<Required>]
        member val IsPublic:Boolean = new Boolean() with get,set

        [<Required>]
        member val IsHidden:Boolean = new Boolean() with get,set

        [<Required>]
        member val IsMandatory:Boolean = new Boolean() with get,set

        member val DefaultValue:String = null with get,set
        member val RegExErrorMessage:String = null with get,set
        member val MandatoryErrorMessage:String = null with get,set
        member val Width:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val MultipleLineText:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CompanyType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CodeLockSystem() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Supplier:String = null with get,set

        member val LogoType:String = null with get,set
        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CodeLockSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val CodeLockSystemOptions:ResizeArray<CodeLockSystem> = new ResizeArray<CodeLockSystem>() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val CodeLockSystemsId:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidBeforeMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidAfterMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val DeleteOldBySchedule:Boolean = new Boolean() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val SendEmailNotification:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSMSNotification:Boolean = new Boolean() with get,set

        [<Required>]
        member val EmailNotificationTime:Int16 = new Int16() with get,set

        [<Required>]
        member val SMSNotificationTime:Int16 = new Int16() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type LanguageResponse() = 
        member val Id:String = null with get,set
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type CompanySetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val Languages:ResizeArray<LanguageResponse> = new ResizeArray<LanguageResponse>() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val InactiveMessage:String = null with get,set
        [<Required>]
        member val Searchable:Boolean = new Boolean() with get,set

        member val GATrackingId:String = null with get,set
        member val FacebookPixelId:String = null with get,set
        [<Required>]
        member val MultiLanguage:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableAPITranslation:Boolean = new Boolean() with get,set

        [<Required>]
        member val DefaultLanguage:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val GTMTrackingId:String = null with get,set
        [<Required>]
        member val ShowOnMarketPlace:Boolean = new Boolean() with get,set

        member val GoogleAdsConversionId:String = null with get,set
        member val LinkedinTagId:String = null with get,set
        member val GoogleAdsConversionLabel:String = null with get,set
        member val SendCustomerInformationToExternalProviders:Boolean = new Boolean() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

        member val IsWebhookFeatureEnabled:Boolean = new Boolean() with get,set
        member val SmsMessageSendLimit:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val EmailMessageSendLimit:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type WidgetServiceLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetTimeLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetBookingLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetBookingMethods() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HomepageWidgetSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val WidgetServiceLayoutOptions:ResizeArray<WidgetServiceLayouts> = new ResizeArray<WidgetServiceLayouts>() with get,set

        [<Ignore>]
        member val WidgetTimeLayoutOptions:ResizeArray<WidgetTimeLayouts> = new ResizeArray<WidgetTimeLayouts>() with get,set

        [<Ignore>]
        member val WidgetBookingLayoutOptions:ResizeArray<WidgetBookingLayouts> = new ResizeArray<WidgetBookingLayouts>() with get,set

        [<Ignore>]
        member val WidgetBookingMethodOptions:ResizeArray<WidgetBookingMethods> = new ResizeArray<WidgetBookingMethods>() with get,set

        [<Required>]
        member val ServiceLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val TimeLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val BookingLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val PrimaryColor:String = null with get,set

        [<Required>]
        member val ShowServiceImage:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowNextAvailableTime:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowEndTime:Boolean = new Boolean() with get,set

        member val BookedTimeSlotText:String = null with get,set
        [<Required>]
        member val DarkTheme:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowRebateCodeField:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val EnableCreateAccount:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableLogin:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableDirectBooking:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableFacebookLogin:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowSubscribeToNewsletter:Boolean = new Boolean() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type HomepageTemplate() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ImageUrl:Uri = null with get,set
        [<Required>]
        member val Premium:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HeroSectionStyle() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HomepageSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val HomepageTemplateOptions:ResizeArray<HomepageTemplate> = new ResizeArray<HomepageTemplate>() with get,set

        [<Ignore>]
        member val HomepageHeroSectionStyleOptions:ResizeArray<HeroSectionStyle> = new ResizeArray<HeroSectionStyle>() with get,set

        [<Ignore>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        member val WelcomePageHeading:String = null with get,set
        member val WelcomePageBody:String = null with get,set
        member val AboutUsPageHeading:String = null with get,set
        member val AboutUsPageBody:String = null with get,set
        [<Required>]
        member val HomePageTemplateId:Int32 = new Int32() with get,set

        member val ImageUrl:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val HomepageHeading:String = null with get,set
        [<Required>]
        member val HeroSectionStyleId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val ShowRating:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableHomepage:Boolean = new Boolean() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type LicenseTypeItem() = 
        inherit BaseModel()
        [<Ignore>]
        member val Name:String = null with get,set

        [<Ignore>]
        member val LicenseType:LicenseType = null with get,set

        [<Required>]
        member val LicenseTypesId:Int32 = new Int32() with get,set

        [<Required>]
        member val LicenseItemsId:Int32 = new Int32() with get,set

        [<Required>]
        member val NumberOfItems:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type Country() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Required>]
        member val Name:String = null with get,set

        member val Culture:String = null with get,set
        member val TimeZone:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type LicensePrice() = 
        inherit BaseModel()
        [<Ignore>]
        member val Country:Country = null with get,set

        [<Required>]
        member val LicenseTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val Price:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val LicensePlanId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type LicenseType() = 
        inherit BaseModel()
        [<Ignore>]
        member val LicenseItems:IList<LicenseTypeItem> = null with get,set

        [<Ignore>]
        member val Prices:IList<LicensePrice> = null with get,set

        [<Ignore>]
        member val IsFree:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val PeriodOfNoticeDays:Int32 = new Int32() with get,set

        [<Ignore>]
        member val NextLicenseOption:LicenseType = null with get,set

        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val ExtraLicenseOption:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val VossTierId:Guid = new Guid() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type License() = 
        inherit BaseModel()
        member val Type:LicenseType = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val TypeId:Int32 = new Int32() with get,set

        member val VossSubscriptionId:Guid = new Guid() with get,set
        [<Required>]
        member val ValidFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val ValidTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val MetaData:String = null with get,set

    [<AllowNullLiteral>]
    type KeyCloakRole() = 
        member val Id:Guid = new Guid() with get,set
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type CompanyUser() = 
        inherit BaseModel()
        member val Resource:Resource = null with get,set
        [<Ignore>]
        member val Roles:ResizeArray<KeyCloakRole> = new ResizeArray<KeyCloakRole>() with get,set

        [<Ignore>]
        member val Company:Company = null with get,set

        member val Email:String = null with get,set
        [<Ignore>]
        member val FullName:String = null with get,set

        member val ResourceId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val WorkerId:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val IsSuperAdmin:Boolean = new Boolean() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

        member val UserId:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Phone:String = null with get,set

    [<AllowNullLiteral>]
    type CompanyCategory() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Header:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ImageUrl:Uri = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val SortOrder:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Company() = 
        inherit BaseModel()
        [<Ignore>]
        member val Status:CompanyStatus = new CompanyStatus() with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val CustomerCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val BookingAgreements:String = null with get,set

        [<Ignore>]
        member val BookingSettings:BookingSettings = null with get,set

        [<Ignore>]
        member val CompanyType:CompanyType = null with get,set

        [<Ignore>]
        member val CodeLockSettings:CodeLockSetting = null with get,set

        [<Ignore>]
        member val PaymentSettings:PaymentSetting = null with get,set

        [<Ignore>]
        member val Settings:CompanySetting = null with get,set

        [<Ignore>]
        member val WidgetSettings:HomepageWidgetSetting = null with get,set

        [<Ignore>]
        member val HomepageSettings:HomepageSetting = null with get,set

        [<Ignore>]
        member val RatingScore:AverageRatingScore = null with get,set

        [<Ignore>]
        member val Ratings:ResizeArray<Rating> = new ResizeArray<Rating>() with get,set

        [<Ignore>]
        member val Distance:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val Licenses:ResizeArray<License> = new ResizeArray<License>() with get,set

        [<Ignore>]
        member val BillingInformation:BillingInformation = null with get,set

        [<Ignore>]
        member val CompanyUsers:ResizeArray<CompanyUser> = new ResizeArray<CompanyUser>() with get,set

        [<Ignore>]
        member val ActiveLicenses:ResizeArray<License> = new ResizeArray<License>() with get,set

        [<Ignore>]
        member val CurrentLicense:License = null with get,set

        [<Ignore>]
        member val IsFreeAccount:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val DefaultLanguage:CultureInfo = null with get,set

        member val Category:CompanyCategory = null with get,set
        [<Ignore>]
        member val Lat:Double = new Double() with get,set

        [<Ignore>]
        member val Lon:Double = new Double() with get,set

        [<Ignore>]
        member val IsFavorite:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Required>]
        member val OrganisationNumber:String = null with get,set

        [<Required>]
        member val StatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val CategoryId:Int32 = new Int32() with get,set

        [<Required>]
        member val SitePath:String = null with get,set

        [<Required>]
        member val Name:String = null with get,set

        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val ZipCode:String = null with get,set
        member val City:String = null with get,set
        member val OpeningHours:String = null with get,set
        member val FaxNumber:String = null with get,set
        [<Required>]
        member val Email:String = null with get,set

        member val Phone:String = null with get,set
        member val Details:String = null with get,set
        member val LogoType:String = null with get,set
        [<Required>]
        member val ApprovedByAdmin:Boolean = new Boolean() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val IpAddress:String = null with get,set
        member val Homepage:String = null with get,set
        member val DomainName:String = null with get,set
        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val CompanyOwnerId:Int32 = new Int32() with get,set

        member val TypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

        member val DeletionNotificationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type CompanyInvoice() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        member val InvoiceStatus:InvoiceStatus = null with get,set
        [<Ignore>]
        member val InvoiceLines:ResizeArray<CompanyInvoiceLine> = new ResizeArray<CompanyInvoiceLine>() with get,set

        [<Ignore>]
        member val BillingInformation:BillingInformation = null with get,set

        [<Ignore>]
        member val ExternalReferences:ResizeArray<ExternalReference> = new ResizeArray<ExternalReference>() with get,set

        [<Ignore>]
        member val Company:Company = null with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val StatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val InvoiceDate:DateTime = new DateTime() with get,set

        member val DueDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        [<Required>]
        member val PeriodFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val PeriodTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val TotalAmount:Double = new Double() with get,set

        [<Required>]
        member val Rounding:Double = new Double() with get,set

        [<Required>]
        member val VAT:Decimal = new Decimal() with get,set

        [<Required>]
        member val VATRegistrationNo:String = null with get,set

        [<Required>]
        member val RegistrationNumber:String = null with get,set

        [<Required>]
        member val CompanyName:String = null with get,set

        member val ContactPerson:String = null with get,set
        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val City:String = null with get,set
        member val Zip:String = null with get,set
        member val Country:String = null with get,set
        member val PaymentMethod:String = null with get,set
        member val ViewedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ViewedBy:String = null with get,set
        member val Message:String = null with get,set
        member val Updated:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val PromikBookInvoiceId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type SuperAdminCompanyInvoiceQuery() = 
        inherit QueryDb<CompanyInvoice, CompanyInvoiceQueryResponse>()
        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Id of the invoice
        ///</summary>
        [<ApiMember(Description="Id of the invoice")>]
        member val Id:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Id of the invoice
        ///</summary>
        [<ApiMember(Description="Id of the invoice")>]
        member val StatusId:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///If you want to include the invoice lines
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the invoice lines", ParameterType="query")>]
        member val IncludeInvoiceLines:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the currency information
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the currency information", ParameterType="query")>]
        member val IncludeCurrencyInformation:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the invoice status information
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the invoice status information", ParameterType="query")>]
        member val IncludeInvoiceStatusInformation:Boolean = new Boolean() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryBase() = 
        ///<summary>
        ///Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code>
        ///</summary>
        [<DataMember(Order=1)>]
        member val Skip:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code>
        ///</summary>
        [<DataMember(Order=2)>]
        member val Take:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code>
        ///</summary>
        [<DataMember(Order=3)>]
        member val OrderBy:String = null with get,set

        ///<summary>
        ///Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code>
        ///</summary>
        [<DataMember(Order=4)>]
        member val OrderByDesc:String = null with get,set

        ///<summary>
        ///Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code>
        ///</summary>
        [<DataMember(Order=5)>]
        member val Include:String = null with get,set

        [<DataMember(Order=6)>]
        member val Fields:String = null with get,set

        [<DataMember(Order=7)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<AllowNullLiteral>]
    type QueryDb<From, Into>() = 
        inherit QueryBase()

    [<AllowNullLiteral>]
    type Currency() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val CurrencySign:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type IBokameraPaymentManager<TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse> = 
        interface end

    [<AllowNullLiteral>]
    type QvicklyArticle() = 
        member val artnr:String = null with get,set
        member val title:String = null with get,set
        member val quantity:Int32 = new Int32() with get,set
        member val aprice:Int32 = new Int32() with get,set
        member val tax:Int32 = new Int32() with get,set
        member val discount:Int32 = new Int32() with get,set
        member val withouttax:Int32 = new Int32() with get,set
        member val taxrate:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Shipping() = 
        member val firstname:String = null with get,set
        member val lastname:String = null with get,set
        member val company:String = null with get,set
        member val street:String = null with get,set
        member val street2:String = null with get,set
        member val zip:String = null with get,set
        member val city:String = null with get,set
        member val country:String = null with get,set
        member val phone:String = null with get,set
        member val withouttax:String = null with get,set
        member val taxrate:String = null with get,set

    [<AllowNullLiteral>]
    type Customer() = 
        member val City:String = null with get,set
        member val CountryCode:String = null with get,set
        member val IdentityNumber:String = null with get,set
        member val Email:String = null with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val Phone:String = null with get,set
        member val PostalCode:String = null with get,set
        member val Street:String = null with get,set
        member val Reference:String = null with get,set
        member val Type:CustomerType = new CustomerType() with get,set

    [<AllowNullLiteral>]
    type AnyOf() = 
        member val Value:Object = null with get,set
        member val Type:Type = null with get,set

    [<AllowNullLiteral>]
    type AnyOf<T1, T2>() = 
        inherit AnyOf()
        member val Value:Object = null with get,set
        member val Type:Type = null with get,set

    [<AllowNullLiteral>]
    type StripeEntity() = 
        class end

    [<AllowNullLiteral>]
    type StripeEntity<T>() = 
        inherit StripeEntity()

    [<AllowNullLiteral>]
    type StripeList<T>() = 
        inherit StripeEntity<StripeList<T>>()

    [<AllowNullLiteral>]
    type ILogger<TCategoryName> = 
        interface end

    [<AllowNullLiteral>]
    type AccessKeyTypeResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val KeyType:String = null with get,set
        member val Description:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryResponse<AccessKeyTypeResponse>() = 
        [<DataMember(Order=1)>]
        member val Offset:Int32 = new Int32() with get,set

        [<DataMember(Order=2)>]
        member val Total:Int32 = new Int32() with get,set

        [<DataMember(Order=3)>]
        member val Results:ResizeArray<AccessKeyTypeResponse> = new ResizeArray<AccessKeyTypeResponse>() with get,set

        [<DataMember(Order=4)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

        [<DataMember(Order=5)>]
        member val ResponseStatus:ResponseStatus = null with get,set

F# SuperAdminCompanyInvoiceQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /superadmin/billing/company/invoices HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"StatusId":0,"DueDate":"0001-01-01T00:00:00","TotalAmount":0,"Rounding":0,"VAT":0,"VATRegistrationNo":"String","RegistrationNumber":"String","CompanyName":"String","CompanyOwner":{"Id":0,"Name":"String"},"CompanyType":{"Id":0,"Name":"String"},"ContactPerson":"String","Street1":"String","Street2":"String","City":"String","Zip":"String","CountryId":"String","CurrencyId":"String","Created":"0001-01-01T00:00:00","Updated":"0001-01-01T00:00:00","PromikBookInvoiceId":0,"Message":"String","CurrencyInfo":{"Id":"String","Name":"String","CurrencySign":"String"},"InvoiceStatus":{"Id":0,"Name":"String","Description":"String"},"InvoiceLines":[{"InvoiceId":0,"Id":0,"ArticleNumber":0,"ArticleName":"String","ArticleDescription":"String","Quantity":0,"UnitPrice":0,"SubTotal":0,"Rebate":0,"Updated":"0001-01-01T00:00:00","Created":"0001-01-01T00:00:00"}],"BillingInformation":{"BillingMethodId":0,"LicensePlanId":0,"Name":"String","Attention":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Email":"String","GLN":"String","ReferenceLine1":"String","ReferenceLine2":"String","PaymentTermsDays":0,"VatRegistrationNumber":"String","BillingMethodOptions":[{"BillingMethodCountriesRelation":[{"BillingMethodId":0,"CountryId":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}],"Name":"String","Description":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":0}]},"ExternalReferences":[{"ReferenceType":"String","ExternalData":"String","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}]}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}