BokaMera.API.Host

<back to all web services

RebateCodeQuery

Requires Authentication
The following routes are available for this service:
GET/rebatecodesGet RebateCode.Get RebateCode.
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 DaysOfWeekResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val DayOfWeek:String = null with get,set
        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

    [<AllowNullLiteral>]
    type RebateCodeServiceResponse() = 
        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
        member val Active:Boolean = new Boolean() with get,set

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

    [<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

    [<AllowNullLiteral>]
    type ArticleResponse() = 
        member val CompanyId:Guid = new Guid() with get,set
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        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
        member val Active:Boolean = new Boolean() with get,set
        member val Amount:Int32 = new Int32() with get,set
        member val Price:Double = new Double() with get,set
        member val CurrencyId:String = null with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Services:ResizeArray<ArticleServiceRelation> = new ResizeArray<ArticleServiceRelation>() with get,set
        member val ServiceIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val PriceSign:String = null with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeCustomerResponse() = 
        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 ImageUrl:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeTransactionQueryResponse() = 
        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
        member val RebateCodeId:Int32 = new Int32() with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RebateCodeTypeName:String = null with get,set
        member val Amount:Double = new Double() with get,set
        member val Usage:String = null with get,set
        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Service:RebateCodeServiceResponse = null with get,set
        member val Customer:RebateCodeCustomerResponse = null with get,set
        member val PriceSign:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeCompanyResponse() = 
        member val SitePath:String = null with get,set
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ValidFrom:DateTime = new DateTime() with get,set
        member val ValidTo:DateTime = new DateTime() with get,set
        ///<summary>
        ///If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
        ///</summary>
        [<ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        ///<summary>
        ///If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
        ///</summary>
        [<ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        member val CreatedBy:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val UpdatedBy:String = null with get,set
        member val Updated:DateTime = new DateTime() with get,set
        member val PersonalNote:String = null with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeValue:Int32 = new Int32() with get,set
        member val RebateCodeTypeId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val RebateCodeStatusId:Int32 = new Int32() with get,set
        member val StatusName:String = null with get,set
        member val MaxNumberOfUses:Int32 = new Int32() with get,set
        member val MaxNumberOfUsesPerCustomer:Int32 = new Int32() with get,set
        member val NumberOfUsesUsed:Int32 = new Int32() with get,set
        member val DaysOfWeek:ResizeArray<DaysOfWeekResponse> = new ResizeArray<DaysOfWeekResponse>() with get,set
        member val Services:ResizeArray<RebateCodeServiceResponse> = new ResizeArray<RebateCodeServiceResponse>() with get,set
        member val Article:ArticleResponse = null with get,set
        member val Transactions:ResizeArray<RebateCodeTransactionQueryResponse> = new ResizeArray<RebateCodeTransactionQueryResponse>() with get,set
        member val RemainingAmount:Nullable<Double> = new Nullable<Double>() with get,set
        member val RemainingUsage:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Customers:ResizeArray<RebateCodeCustomerResponse> = new ResizeArray<RebateCodeCustomerResponse>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set
        member val PaymentReceived:Boolean = new Boolean() with get,set
        member val RebateCodeCurrencySign:String = null with get,set
        member val ActiveByStatus:Boolean = new Boolean() with get,set
        member val PriceSign:String = null with get,set
        member val RebateCodeTypeName:String = null with get,set
        member val Company:RebateCodeCompanyResponse = null 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 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

    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 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 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 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 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 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 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 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 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 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

    [<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 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 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

    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 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

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type RebateCodeQuery() = 
        inherit QueryDb<RebateCode, RebateCodeResponse>()
        ///<summary>
        ///Enter the company and id you want to see the information for a rebate code, if blank company id and you are an admin, your company id will be used. If blank id, all rebate codes will be shown 
        ///</summary>
        [<ApiMember(Description="Enter the company and id you want to see the information for a rebate code, if blank company id and you are an admin, your company id will be used. If blank id, all rebate codes will be shown ", ParameterType="query")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

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

        ///<summary>
        ///
        ///</summary>
        [<ApiMember(Description="")>]
        member val Active:Nullable<Boolean> = new Nullable<Boolean>() with get,set

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

        ///<summary>
        ///1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard
        ///</summary>
        [<ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard")>]
        member val RebateCodeTypeIds:Int32[] = null with get,set

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

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

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

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

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

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

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

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

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

        ///<summary>
        ///If you want to include the payment log on the rebate code
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the payment log on the rebate code", ParameterType="query")>]
        member val IncludePaymentLog:Boolean = new Boolean() with get,set

        ///<summary>
        ///
        ///</summary>
        [<ApiMember(Description="")>]
        member val CustomerId:Nullable<Guid> = new Nullable<Guid>() 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 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

    type Currency =
        | SEK = 1
        | EUR = 2

    [<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# RebateCodeQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /rebatecodes HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"CompanyId":"00000000-0000-0000-0000-000000000000","FromTime":"00:00:00","ToTime":"00:00:00","CreatedBy":"String","UpdatedBy":"String","PersonalNote":"String","RebateCodeSign":"String","RebateCodeValue":0,"RebateCodeTypeId":0,"Name":"String","RebateCodeStatusId":0,"StatusName":"String","MaxNumberOfUses":0,"MaxNumberOfUsesPerCustomer":0,"NumberOfUsesUsed":0,"DaysOfWeek":[{"Id":0,"DayOfWeek":"String","DayOfWeekTranslation":"String","DayOfWeekActive":false,"DayOfWeekSortOrder":0}],"Services":[{"Id":0,"Name":"String","Description":"String","Active":false}],"Article":{"Id":0,"Name":"String","ArticleTypeId":0,"Description":"String","ImageUrl":"String","Active":false,"Amount":0,"Price":0,"CurrencyId":"String","Services":[{"Id":0,"ServiceId":0,"ArticleId":0}],"ServiceIds":[0],"PriceSign":"String","VAT":0},"Transactions":[{"Id":0,"Note":"String","RebateCodeId":0,"RebateCodeSign":"String","RebateCodeTypeId":0,"RebateCodeTypeName":"String","Amount":0,"Usage":"String","BookingId":0,"Service":{"Id":0,"Name":"String","Description":"String","Active":false},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"},"PriceSign":"String"}],"RemainingAmount":0,"RemainingUsage":0,"Customers":[{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"PaymentReceived":false,"RebateCodeCurrencySign":"String","ActiveByStatus":false,"PriceSign":"String","RebateCodeTypeName":"String","Company":{"SitePath":"String","PaymentProviderId":0}}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}