/// <summary>
 /// Initializes a new instance of the <see cref="WebHookRequest" /> class.
 /// </summary>
 /// <param name="PaymentLog">PaymentLog.</param>
 /// <param name="SavedCard">SavedCard.</param>
 /// <param name="Subscriber">Subscriber.</param>
 /// <param name="Subscription">Subscription.</param>
 /// <param name="TxId">TxId.</param>
 public WebHookRequest(ChargingLog PaymentLog = default(ChargingLog), SavedCard SavedCard = default(SavedCard), Subscriber Subscriber = default(Subscriber), Subsription Subscription = default(Subsription), string TxId = default(string))
 {
     this.PaymentLog   = PaymentLog;
     this.SavedCard    = SavedCard;
     this.Subscriber   = Subscriber;
     this.Subscription = Subscription;
     this.TxId         = TxId;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Subsription" /> class.
 /// </summary>
 /// <param name="AppliedCoupon">AppliedCoupon.</param>
 /// <param name="CancelDate">CancelDate.</param>
 /// <param name="Card">Card.</param>
 /// <param name="Company">Company (required).</param>
 /// <param name="EndDate">EndDate.</param>
 /// <param name="Id">Id.</param>
 /// <param name="LastEvent">LastEvent.</param>
 /// <param name="Offer">Offer (required).</param>
 /// <param name="PaymentMethod">PaymentMethod.</param>
 /// <param name="Services">Services.</param>
 /// <param name="StartDate">StartDate.</param>
 /// <param name="Status">Status.</param>
 /// <param name="Subscriber">Subscriber.</param>
 /// <param name="SubscriberSecureId">SubscriberSecureId.</param>
 /// <param name="TermEndDate">TermEndDate.</param>
 /// <param name="TermStartDate">TermStartDate.</param>
 /// <param name="TrialEndDate">TrialEndDate.</param>
 public Subsription(Coupon AppliedCoupon = default(Coupon), DateTime?CancelDate = default(DateTime?), SavedCard Card = default(SavedCard), Company Company = default(Company), DateTime?EndDate = default(DateTime?), long?Id = default(long?), LastEventEnum?LastEvent = default(LastEventEnum?), Offer Offer = default(Offer), PaymentMethodEnum?PaymentMethod = default(PaymentMethodEnum?), List <ServiceInstance> Services = default(List <ServiceInstance>), DateTime?StartDate = default(DateTime?), StatusEnum?Status = default(StatusEnum?), Subscriber Subscriber = default(Subscriber), string SubscriberSecureId = default(string), DateTime?TermEndDate = default(DateTime?), DateTime?TermStartDate = default(DateTime?), DateTime?TrialEndDate = default(DateTime?))
 {
     // to ensure "Company" is required (not null)
     if (Company == null)
     {
         throw new InvalidDataException("Company is a required property for Subsription and cannot be null");
     }
     else
     {
         this.Company = Company;
     }
     // to ensure "Offer" is required (not null)
     if (Offer == null)
     {
         throw new InvalidDataException("Offer is a required property for Subsription and cannot be null");
     }
     else
     {
         this.Offer = Offer;
     }
     this.AppliedCoupon      = AppliedCoupon;
     this.CancelDate         = CancelDate;
     this.Card               = Card;
     this.EndDate            = EndDate;
     this.Id                 = Id;
     this.LastEvent          = LastEvent;
     this.PaymentMethod      = PaymentMethod;
     this.Services           = Services;
     this.StartDate          = StartDate;
     this.Status             = Status;
     this.Subscriber         = Subscriber;
     this.SubscriberSecureId = SubscriberSecureId;
     this.TermEndDate        = TermEndDate;
     this.TermStartDate      = TermStartDate;
     this.TrialEndDate       = TrialEndDate;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ChargingLog" /> class.
 /// </summary>
 /// <param name="AppliedCoupon">AppliedCoupon.</param>
 /// <param name="AuthCode">AuthCode.</param>
 /// <param name="CompanyId">CompanyId.</param>
 /// <param name="CreateDate">CreateDate.</param>
 /// <param name="Currency">Currency.</param>
 /// <param name="ErrorCode">ErrorCode.</param>
 /// <param name="ErrorText">ErrorText.</param>
 /// <param name="Id">Id.</param>
 /// <param name="InvoiceId">InvoiceId.</param>
 /// <param name="JobId">JobId.</param>
 /// <param name="OfferId">OfferId.</param>
 /// <param name="ParentId">ParentId.</param>
 /// <param name="PaymentGateway">PaymentGateway.</param>
 /// <param name="PaymentId">PaymentId.</param>
 /// <param name="Price">Price.</param>
 /// <param name="Reason">Reason.</param>
 /// <param name="RefundDate">RefundDate.</param>
 /// <param name="SavedCard">SavedCard.</param>
 /// <param name="SavedCardId">SavedCardId.</param>
 /// <param name="ServiceInstanceId">ServiceInstanceId.</param>
 /// <param name="Status">Status.</param>
 /// <param name="SubscriberId">SubscriberId.</param>
 /// <param name="SubscriberSecureId">SubscriberSecureId.</param>
 /// <param name="SubscriptionId">SubscriptionId.</param>
 /// <param name="Threeds">Threeds.</param>
 /// <param name="TransactionId">TransactionId.</param>
 public ChargingLog(long?AppliedCoupon = default(long?), string AuthCode = default(string), long?CompanyId = default(long?), DateTime?CreateDate = default(DateTime?), string Currency = default(string), string ErrorCode = default(string), string ErrorText = default(string), long?Id = default(long?), long?InvoiceId = default(long?), long?JobId = default(long?), long?OfferId = default(long?), long?ParentId = default(long?), PaymentGatewayEnum?PaymentGateway = default(PaymentGatewayEnum?), string PaymentId = default(string), decimal?Price = default(decimal?), ReasonEnum?Reason = default(ReasonEnum?), DateTime?RefundDate = default(DateTime?), SavedCard SavedCard = default(SavedCard), long?SavedCardId = default(long?), long?ServiceInstanceId = default(long?), StatusEnum?Status = default(StatusEnum?), long?SubscriberId = default(long?), string SubscriberSecureId = default(string), long?SubscriptionId = default(long?), bool?Threeds = default(bool?), string TransactionId = default(string))
 {
     this.AppliedCoupon      = AppliedCoupon;
     this.AuthCode           = AuthCode;
     this.CompanyId          = CompanyId;
     this.CreateDate         = CreateDate;
     this.Currency           = Currency;
     this.ErrorCode          = ErrorCode;
     this.ErrorText          = ErrorText;
     this.Id                 = Id;
     this.InvoiceId          = InvoiceId;
     this.JobId              = JobId;
     this.OfferId            = OfferId;
     this.ParentId           = ParentId;
     this.PaymentGateway     = PaymentGateway;
     this.PaymentId          = PaymentId;
     this.Price              = Price;
     this.Reason             = Reason;
     this.RefundDate         = RefundDate;
     this.SavedCard          = SavedCard;
     this.SavedCardId        = SavedCardId;
     this.ServiceInstanceId  = ServiceInstanceId;
     this.Status             = Status;
     this.SubscriberId       = SubscriberId;
     this.SubscriberSecureId = SubscriberSecureId;
     this.SubscriptionId     = SubscriptionId;
     this.Threeds            = Threeds;
     this.TransactionId      = TransactionId;
 }