// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

package shared

import (
	"github.com/airbytehq/terraform-provider-airbyte/internal/sdk/internal/utils"
	"time"
)

type SourceDingConnectUpdate struct {
	// Optional header to correlate HTTP requests between a client and server.
	XCorrelationID *string `json:"X-Correlation-Id,omitempty"`
	// Your API key for authenticating with the DingConnect API. You can generate this key by navigating to the Developer tab in the Account Settings section of your DingConnect account.
	APIKey    string    `json:"api_key"`
	StartDate time.Time `json:"start_date"`
}

func (s SourceDingConnectUpdate) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(s, "", false)
}

func (s *SourceDingConnectUpdate) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &s, "", false, false); err != nil {
		return err
	}
	return nil
}

func (o *SourceDingConnectUpdate) GetXCorrelationID() *string {
	if o == nil {
		return nil
	}
	return o.XCorrelationID
}

func (o *SourceDingConnectUpdate) GetAPIKey() string {
	if o == nil {
		return ""
	}
	return o.APIKey
}

func (o *SourceDingConnectUpdate) GetStartDate() time.Time {
	if o == nil {
		return time.Time{}
	}
	return o.StartDate
}
