evalphobia/aws-sdk-go-v2-wrapper

View on GitHub
pinpoint/type_campaign.go

Summary

Maintainability
F
3 days
Test Coverage
package pinpoint

import (
    SDK "github.com/aws/aws-sdk-go-v2/service/pinpoint"
    "github.com/evalphobia/aws-sdk-go-v2-wrapper/private/pointers"
)

type AttributeDimension struct {
    Values []string

    // optional
    AttributeType AttributeType
}

func newAttributeDimensionMap(in map[string]SDK.AttributeDimension) map[string]AttributeDimension {
    result := make(map[string]AttributeDimension, len(in))
    for key, val := range in {
        val := val
        result[key] = newAttributeDimension(&val)
    }
    return result
}

func newAttributeDimension(o *SDK.AttributeDimension) AttributeDimension {
    result := AttributeDimension{}
    if o == nil {
        return result
    }

    result.Values = o.Values
    result.AttributeType = AttributeType(o.AttributeType)
    return result
}

func attributeDimensionMapToSDK(in map[string]AttributeDimension) map[string]SDK.AttributeDimension {
    result := make(map[string]SDK.AttributeDimension, len(in))
    for key, val := range in {
        result[key] = val.ToSDK()
    }
    return result
}

func (r AttributeDimension) ToSDK() SDK.AttributeDimension {
    o := SDK.AttributeDimension{}

    o.Values = r.Values
    o.AttributeType = SDK.AttributeType(r.AttributeType)
    return o
}

type CampaignCustomMessage struct {
    Data string
}

func newCampaignCustomMessage(o *SDK.CampaignCustomMessage) CampaignCustomMessage {
    result := CampaignCustomMessage{}
    if o == nil {
        return result
    }

    if o.Data != nil {
        result.Data = *o.Data
    }
    return result
}

func (r CampaignCustomMessage) ToSDK() *SDK.CampaignCustomMessage {
    o := SDK.CampaignCustomMessage{}

    if r.Data != "" {
        o.Data = pointers.String(r.Data)
    }
    return &o
}

type CampaignEmailMessage struct {
    Body        string
    FromAddress string
    HTMLBody    string
    Title       string
}

func newCampaignEmailMessage(o *SDK.CampaignEmailMessage) CampaignEmailMessage {
    result := CampaignEmailMessage{}
    if o == nil {
        return result
    }

    if o.Body != nil {
        result.Body = *o.Body
    }
    if o.FromAddress != nil {
        result.FromAddress = *o.FromAddress
    }
    if o.HtmlBody != nil {
        result.HTMLBody = *o.HtmlBody
    }
    if o.Title != nil {
        result.Title = *o.Title
    }
    return result
}

func (r CampaignEmailMessage) ToSDK() *SDK.CampaignEmailMessage {
    o := SDK.CampaignEmailMessage{}

    if r.Body != "" {
        o.Body = pointers.String(r.Body)
    }
    if r.FromAddress != "" {
        o.FromAddress = pointers.String(r.FromAddress)
    }
    if r.HTMLBody != "" {
        o.HtmlBody = pointers.String(r.HTMLBody)
    }
    if r.Title != "" {
        o.Title = pointers.String(r.Title)
    }
    return &o
}

type CampaignEventFilter struct {
    Dimensions EventDimensions
    FilterType FilterType
}

func newCampaignEventFilter(o *SDK.CampaignEventFilter) CampaignEventFilter {
    result := CampaignEventFilter{}
    if o == nil {
        return result
    }

    result.Dimensions = newEventDimensions(o.Dimensions)
    result.FilterType = FilterType(o.FilterType)
    return result
}

func (r CampaignEventFilter) ToSDK() *SDK.CampaignEventFilter {
    o := SDK.CampaignEventFilter{}

    o.Dimensions = r.Dimensions.ToSDK()
    o.FilterType = SDK.FilterType(r.FilterType)
    return &o
}

type CampaignHook struct {
    LambdaFunctionName string
    Mode               Mode
    WebURL             string
}

func newCampaignHook(o *SDK.CampaignHook) CampaignHook {
    result := CampaignHook{}
    if o == nil {
        return result
    }

    if o.LambdaFunctionName != nil {
        result.LambdaFunctionName = *o.LambdaFunctionName
    }

    result.Mode = Mode(o.Mode)

    if o.WebUrl != nil {
        result.WebURL = *o.WebUrl
    }
    return result
}

func (r CampaignHook) ToSDK() *SDK.CampaignHook {
    o := SDK.CampaignHook{}

    if r.LambdaFunctionName != "" {
        o.LambdaFunctionName = pointers.String(r.LambdaFunctionName)
    }

    o.Mode = SDK.Mode(r.Mode)

    if r.WebURL != "" {
        o.WebUrl = pointers.String(r.WebURL)
    }
    return &o
}

type CampaignLimits struct {
    Daily             int64
    MaximumDuration   int64
    MessagesPerSecond int64
    Total             int64
}

func newCampaignLimits(o *SDK.CampaignLimits) CampaignLimits {
    result := CampaignLimits{}
    if o == nil {
        return result
    }

    if o.Daily != nil {
        result.Daily = *o.Daily
    }
    if o.MaximumDuration != nil {
        result.MaximumDuration = *o.MaximumDuration
    }
    if o.MessagesPerSecond != nil {
        result.MessagesPerSecond = *o.MessagesPerSecond
    }
    if o.Total != nil {
        result.Total = *o.Total
    }
    return result
}

func (r CampaignLimits) ToSDK() *SDK.CampaignLimits {
    o := SDK.CampaignLimits{}

    if r.Daily != 0 {
        o.Daily = pointers.Long64(r.Daily)
    }
    if r.MaximumDuration != 0 {
        o.MaximumDuration = pointers.Long64(r.MaximumDuration)
    }
    if r.MessagesPerSecond != 0 {
        o.MessagesPerSecond = pointers.Long64(r.MessagesPerSecond)
    }
    if r.Total != 0 {
        o.Total = pointers.Long64(r.Total)
    }
    return &o
}

type CampaignResponse struct {
    ApplicationID    string
    ARN              string
    CreationDate     string
    ID               string
    LastModifiedDate string
    SegmentID        string
    SegmentVersion   int64

    AdditionalTreatments        []TreatmentResource
    CustomDeliveryConfiguration CustomDeliveryConfiguration
    DefaultState                CampaignStatus
    Description                 string
    HoldoutPercent              int64
    Hook                        CampaignHook
    IsPaused                    bool
    Limits                      CampaignLimits
    MessageConfiguration        MessageConfiguration
    Name                        string
    Schedule                    Schedule
    State                       CampaignStatus
    Tags                        map[string]string
    TemplateConfiguration       TemplateConfiguration
    TreatmentDescription        string
    TreatmentName               string
    Version                     int64
}

func newCampaignResponse(o *SDK.CampaignResponse) CampaignResponse {
    result := CampaignResponse{}
    if o == nil {
        return result
    }

    if o.ApplicationId != nil {
        result.ApplicationID = *o.ApplicationId
    }
    if o.Arn != nil {
        result.ARN = *o.Arn
    }
    if o.CreationDate != nil {
        result.CreationDate = *o.CreationDate
    }
    if o.Id != nil {
        result.ID = *o.Id
    }
    if o.LastModifiedDate != nil {
        result.LastModifiedDate = *o.LastModifiedDate
    }
    if o.SegmentId != nil {
        result.SegmentID = *o.SegmentId
    }
    if o.SegmentVersion != nil {
        result.SegmentVersion = *o.SegmentVersion
    }

    if len(o.AdditionalTreatments) != 0 {
        list := make([]TreatmentResource, len(o.AdditionalTreatments))
        for i, v := range o.AdditionalTreatments {
            v := v
            list[i] = newTreatmentResource(&v)
        }
        result.AdditionalTreatments = list
    }

    result.CustomDeliveryConfiguration = newCustomDeliveryConfiguration(o.CustomDeliveryConfiguration)

    if o.DefaultState != nil {
        result.DefaultState = CampaignStatus(o.DefaultState.CampaignStatus)
    }

    if o.Description != nil {
        result.Description = *o.Description
    }
    if o.HoldoutPercent != nil {
        result.HoldoutPercent = *o.HoldoutPercent
    }

    result.Hook = newCampaignHook(o.Hook)

    if o.IsPaused != nil {
        result.IsPaused = *o.IsPaused
    }

    result.Limits = newCampaignLimits(o.Limits)
    result.MessageConfiguration = newMessageConfiguration(o.MessageConfiguration)

    if o.Name != nil {
        result.Name = *o.Name
    }

    result.Schedule = newSchedule(o.Schedule)

    if o.State != nil {
        result.State = CampaignStatus(o.State.CampaignStatus)
    }

    result.Tags = o.Tags
    result.TemplateConfiguration = newTemplateConfiguration(o.TemplateConfiguration)

    if o.TreatmentDescription != nil {
        result.TreatmentDescription = *o.TreatmentDescription
    }
    if o.TreatmentName != nil {
        result.TreatmentName = *o.TreatmentName
    }
    if o.Version != nil {
        result.Version = *o.Version
    }
    return result
}

type CampaignSMSMessage struct {
    Body        string
    MessageType MessageType
    SenderID    string
}

func newCampaignSMSMessage(o *SDK.CampaignSmsMessage) CampaignSMSMessage {
    result := CampaignSMSMessage{}
    if o == nil {
        return result
    }

    if o.Body != nil {
        result.Body = *o.Body
    }

    result.MessageType = MessageType(o.MessageType)

    if o.SenderId != nil {
        result.SenderID = *o.SenderId
    }
    return result
}

func (r CampaignSMSMessage) ToSDK() *SDK.CampaignSmsMessage {
    o := SDK.CampaignSmsMessage{}

    if r.Body != "" {
        o.Body = pointers.String(r.Body)
    }

    o.MessageType = SDK.MessageType(r.MessageType)

    if r.SenderID != "" {
        o.SenderId = pointers.String(r.SenderID)
    }
    return &o
}

type CustomDeliveryConfiguration struct {
    DeliveryURI string

    // optional
    EndpointTypes []EndpointTypesElement
}

func newCustomDeliveryConfiguration(o *SDK.CustomDeliveryConfiguration) CustomDeliveryConfiguration {
    result := CustomDeliveryConfiguration{}
    if o == nil {
        return result
    }

    if o.DeliveryUri != nil {
        result.DeliveryURI = *o.DeliveryUri
    }

    if len(o.EndpointTypes) != 0 {
        list := make([]EndpointTypesElement, len(o.EndpointTypes))
        for i, v := range o.EndpointTypes {
            list[i] = EndpointTypesElement(v)
        }
        result.EndpointTypes = list
    }
    return result
}

func (r CustomDeliveryConfiguration) ToSDK() *SDK.CustomDeliveryConfiguration {
    o := SDK.CustomDeliveryConfiguration{}

    if r.DeliveryURI != "" {
        o.DeliveryUri = pointers.String(r.DeliveryURI)
    }

    if len(r.EndpointTypes) != 0 {
        list := make([]SDK.EndpointTypesElement, len(r.EndpointTypes))
        for i, v := range r.EndpointTypes {
            list[i] = SDK.EndpointTypesElement(v)
        }
        o.EndpointTypes = list
    }
    return &o
}

type EventDimensions struct {
    Attributes map[string]AttributeDimension
    EventType  SetDimension
    Metrics    map[string]MetricDimension
}

func newEventDimensions(o *SDK.EventDimensions) EventDimensions {
    result := EventDimensions{}
    if o == nil {
        return result
    }

    result.Attributes = newAttributeDimensionMap(o.Attributes)
    result.EventType = newSetDimension(o.EventType)
    result.Metrics = newMetricDimensionMap(o.Metrics)
    return result
}

func (r EventDimensions) ToSDK() *SDK.EventDimensions {
    o := SDK.EventDimensions{}

    o.Attributes = attributeDimensionMapToSDK(r.Attributes)
    o.EventType = r.EventType.ToSDK()
    o.Metrics = metricDimensionMapToSDK(r.Metrics)
    return &o
}

type Message struct {
    Action            Action
    Body              string
    ImageIconURL      string
    ImageSmallIconURL string
    ImageURL          string
    JSONBody          string
    MediaURL          string
    RawContent        string
    SilentPush        bool
    TimeToLive        int64
    Title             string
    URL               string
}

func newMessage(o *SDK.Message) Message {
    result := Message{}
    if o == nil {
        return result
    }

    result.Action = Action(o.Action)

    if o.Body != nil {
        result.Body = *o.Body
    }
    if o.ImageIconUrl != nil {
        result.ImageIconURL = *o.ImageIconUrl
    }
    if o.ImageSmallIconUrl != nil {
        result.ImageSmallIconURL = *o.ImageSmallIconUrl
    }
    if o.ImageUrl != nil {
        result.ImageURL = *o.ImageUrl
    }
    if o.JsonBody != nil {
        result.JSONBody = *o.JsonBody
    }
    if o.MediaUrl != nil {
        result.MediaURL = *o.MediaUrl
    }
    if o.RawContent != nil {
        result.RawContent = *o.RawContent
    }
    if o.SilentPush != nil {
        result.SilentPush = *o.SilentPush
    }
    if o.TimeToLive != nil {
        result.TimeToLive = *o.TimeToLive
    }
    if o.Title != nil {
        result.Title = *o.Title
    }
    if o.Url != nil {
        result.URL = *o.Url
    }
    return result
}

func (r Message) ToSDK() *SDK.Message {
    o := SDK.Message{}

    o.Action = SDK.Action(r.Action)

    if r.Body != "" {
        o.Body = pointers.String(r.Body)
    }
    if r.ImageIconURL != "" {
        o.ImageIconUrl = pointers.String(r.ImageIconURL)
    }
    if r.ImageSmallIconURL != "" {
        o.ImageSmallIconUrl = pointers.String(r.ImageSmallIconURL)
    }
    if r.ImageURL != "" {
        o.ImageUrl = pointers.String(r.ImageURL)
    }
    if r.JSONBody != "" {
        o.JsonBody = pointers.String(r.JSONBody)
    }
    if r.MediaURL != "" {
        o.MediaUrl = pointers.String(r.MediaURL)
    }
    if r.RawContent != "" {
        o.RawContent = pointers.String(r.RawContent)
    }
    if r.SilentPush {
        o.SilentPush = pointers.Bool(r.SilentPush)
    }
    if r.TimeToLive != 0 {
        o.TimeToLive = pointers.Long64(r.TimeToLive)
    }
    if r.Title != "" {
        o.Title = pointers.String(r.Title)
    }
    if r.URL != "" {
        o.Url = pointers.String(r.URL)
    }
    return &o
}

type MessageConfiguration struct {
    ADMMessage     Message
    APNsMessage    Message
    BaiduMessage   Message
    CustomMessage  CampaignCustomMessage
    DefaultMessage Message
    EmailMessage   CampaignEmailMessage
    GCMMessage     Message
    SMSMessage     CampaignSMSMessage
}

func newMessageConfiguration(o *SDK.MessageConfiguration) MessageConfiguration {
    result := MessageConfiguration{}
    if o == nil {
        return result
    }

    result.ADMMessage = newMessage(o.ADMMessage)
    result.APNsMessage = newMessage(o.APNSMessage)
    result.BaiduMessage = newMessage(o.BaiduMessage)
    result.CustomMessage = newCampaignCustomMessage(o.CustomMessage)
    result.DefaultMessage = newMessage(o.DefaultMessage)
    result.EmailMessage = newCampaignEmailMessage(o.EmailMessage)
    result.GCMMessage = newMessage(o.GCMMessage)
    result.SMSMessage = newCampaignSMSMessage(o.SMSMessage)
    return result
}

func (r MessageConfiguration) ToSDK() *SDK.MessageConfiguration {
    o := SDK.MessageConfiguration{}

    o.ADMMessage = r.ADMMessage.ToSDK()
    o.APNSMessage = r.APNsMessage.ToSDK()
    o.BaiduMessage = r.BaiduMessage.ToSDK()
    o.CustomMessage = r.CustomMessage.ToSDK()
    o.DefaultMessage = r.DefaultMessage.ToSDK()
    o.EmailMessage = r.EmailMessage.ToSDK()
    o.GCMMessage = r.GCMMessage.ToSDK()
    o.SMSMessage = r.SMSMessage.ToSDK()
    return &o
}

type MetricDimension struct {
    ComparisonOperator string
    Value              float64
}

func newMetricDimensionMap(in map[string]SDK.MetricDimension) map[string]MetricDimension {
    result := make(map[string]MetricDimension, len(in))
    for key, val := range in {
        val := val
        result[key] = newMetricDimension(&val)
    }
    return result
}

func newMetricDimension(o *SDK.MetricDimension) MetricDimension {
    result := MetricDimension{}

    if o.ComparisonOperator != nil {
        result.ComparisonOperator = *o.ComparisonOperator
    }
    if o.Value != nil {
        result.Value = *o.Value
    }
    return result
}

func metricDimensionMapToSDK(in map[string]MetricDimension) map[string]SDK.MetricDimension {
    result := make(map[string]SDK.MetricDimension, len(in))
    for key, val := range in {
        result[key] = val.ToSDK()
    }
    return result
}
func (r MetricDimension) ToSDK() SDK.MetricDimension {
    o := SDK.MetricDimension{}

    if r.ComparisonOperator != "" {
        o.ComparisonOperator = pointers.String(r.ComparisonOperator)
    }

    o.Value = pointers.Float64(r.Value)
    return o
}

type QuietTime struct {
    End   string
    Start string
}

func newQuietTime(o *SDK.QuietTime) QuietTime {
    result := QuietTime{}
    if o == nil {
        return result
    }

    if o.End != nil {
        result.End = *o.End
    }
    if o.Start != nil {
        result.Start = *o.Start
    }
    return result
}

func (r QuietTime) ToSDK() *SDK.QuietTime {
    o := SDK.QuietTime{}

    if r.End != "" {
        o.End = pointers.String(r.End)
    }
    if r.Start != "" {
        o.Start = pointers.String(r.Start)
    }
    return &o
}

type Schedule struct {
    StartTime string

    // optional
    EndTime     string
    EventFilter CampaignEventFilter
    Frequency   Frequency
    IsLocalTime bool
    QuietTime   QuietTime
    Timezone    string
}

func newSchedule(o *SDK.Schedule) Schedule {
    result := Schedule{}
    if o == nil {
        return result
    }

    if o.StartTime != nil {
        result.StartTime = *o.StartTime
    }

    result.EventFilter = newCampaignEventFilter(o.EventFilter)
    result.Frequency = Frequency(o.Frequency)

    if o.IsLocalTime != nil {
        result.IsLocalTime = *o.IsLocalTime
    }

    result.QuietTime = newQuietTime(o.QuietTime)

    if o.Timezone != nil {
        result.Timezone = *o.Timezone
    }
    return result
}

func (r Schedule) ToSDK() *SDK.Schedule {
    o := SDK.Schedule{}

    if r.StartTime != "" {
        o.StartTime = pointers.String(r.StartTime)
    }
    if r.EndTime != "" {
        o.EndTime = pointers.String(r.EndTime)
    }

    o.EventFilter = r.EventFilter.ToSDK()
    o.Frequency = SDK.Frequency(r.Frequency)

    if r.IsLocalTime {
        o.IsLocalTime = pointers.Bool(r.IsLocalTime)
    }

    o.QuietTime = r.QuietTime.ToSDK()

    if r.Timezone != "" {
        o.Timezone = pointers.String(r.Timezone)
    }
    return &o
}

type SetDimension struct {
    Values []string

    // optional
    DimensionType DimensionType
}

func newSetDimension(o *SDK.SetDimension) SetDimension {
    result := SetDimension{}
    if o == nil {
        return result
    }

    result.Values = o.Values
    result.DimensionType = DimensionType(o.DimensionType)
    return result
}

func (r SetDimension) ToSDK() *SDK.SetDimension {
    o := SDK.SetDimension{}

    o.Values = r.Values
    o.DimensionType = SDK.DimensionType(r.DimensionType)
    return &o
}

type Template struct {
    Name    string
    Version string
}

func newTemplate(o *SDK.Template) Template {
    result := Template{}
    if o == nil {
        return result
    }

    if o.Name != nil {
        result.Name = *o.Name
    }
    if o.Version != nil {
        result.Version = *o.Version
    }
    return result
}

func (r Template) ToSDK() *SDK.Template {
    o := SDK.Template{}

    if r.Name != "" {
        o.Name = pointers.String(r.Name)
    }
    if r.Version != "" {
        o.Version = pointers.String(r.Version)
    }
    return &o
}

type TemplateConfiguration struct {
    EmailTemplate Template
    PushTemplate  Template
    SMSTemplate   Template
    VoiceTemplate Template
}

func newTemplateConfiguration(o *SDK.TemplateConfiguration) TemplateConfiguration {
    result := TemplateConfiguration{}
    if o == nil {
        return result
    }

    result.EmailTemplate = newTemplate(o.EmailTemplate)
    result.PushTemplate = newTemplate(o.PushTemplate)
    result.SMSTemplate = newTemplate(o.SMSTemplate)
    result.VoiceTemplate = newTemplate(o.VoiceTemplate)
    return result
}

func (r TemplateConfiguration) ToSDK() *SDK.TemplateConfiguration {
    o := SDK.TemplateConfiguration{}

    o.EmailTemplate = r.EmailTemplate.ToSDK()
    o.PushTemplate = r.PushTemplate.ToSDK()
    o.SMSTemplate = r.SMSTemplate.ToSDK()
    o.VoiceTemplate = r.VoiceTemplate.ToSDK()
    return &o
}

type TreatmentResource struct {
    ID          string
    SizePercent int64

    // optional
    CustomDeliveryConfiguration CustomDeliveryConfiguration
    MessageConfiguration        MessageConfiguration
    Schedule                    Schedule
    State                       CampaignStatus
    TemplateConfiguration       TemplateConfiguration
    TreatmentDescription        string
    TreatmentName               string
}

func newTreatmentResource(o *SDK.TreatmentResource) TreatmentResource {
    result := TreatmentResource{}
    if o == nil {
        return result
    }

    if o.Id != nil {
        result.ID = *o.Id
    }
    if o.SizePercent != nil {
        result.SizePercent = *o.SizePercent
    }

    result.CustomDeliveryConfiguration = newCustomDeliveryConfiguration(o.CustomDeliveryConfiguration)
    result.MessageConfiguration = newMessageConfiguration(o.MessageConfiguration)
    result.Schedule = newSchedule(o.Schedule)
    if o.State != nil {
        result.State = CampaignStatus(o.State.CampaignStatus)
    }
    result.TemplateConfiguration = newTemplateConfiguration(o.TemplateConfiguration)

    if o.TreatmentDescription != nil {
        result.TreatmentDescription = *o.TreatmentDescription
    }
    if o.TreatmentName != nil {
        result.TreatmentName = *o.TreatmentName
    }
    return result
}

type WriteCampaignRequest struct {
    AdditionalTreatments        []WriteTreatmentResource
    CustomDeliveryConfiguration CustomDeliveryConfiguration
    Description                 string
    HoldoutPercent              int64
    Hook                        CampaignHook
    IsPaused                    bool
    Limits                      CampaignLimits
    MessageConfiguration        MessageConfiguration
    Name                        string
    Schedule                    Schedule
    SegmentID                   string
    SegmentVersion              int64
    Tags                        map[string]string
    TemplateConfiguration       TemplateConfiguration
    TreatmentDescription        string
    TreatmentName               string
}

func (r WriteCampaignRequest) ToSDK() *SDK.WriteCampaignRequest {
    o := SDK.WriteCampaignRequest{}

    if len(r.AdditionalTreatments) != 0 {
        list := make([]SDK.WriteTreatmentResource, len(r.AdditionalTreatments))
        for i, v := range r.AdditionalTreatments {
            list[i] = v.ToSDK()
        }
        o.AdditionalTreatments = list
    }
    o.CustomDeliveryConfiguration = r.CustomDeliveryConfiguration.ToSDK()

    if r.Description != "" {
        o.Description = pointers.String(r.Description)
    }
    if r.HoldoutPercent != 0 {
        o.HoldoutPercent = pointers.Long64(r.HoldoutPercent)
    }

    o.Hook = r.Hook.ToSDK()

    if r.IsPaused {
        o.IsPaused = pointers.Bool(r.IsPaused)
    }
    if r.Name != "" {
        o.Name = pointers.String(r.Name)
    }

    if r.SegmentID != "" {
        o.SegmentId = pointers.String(r.SegmentID)
    }
    if r.SegmentVersion != 0 {
        o.SegmentVersion = pointers.Long64(r.SegmentVersion)
    }

    o.Tags = r.Tags

    if r.TreatmentDescription != "" {
        o.TreatmentDescription = pointers.String(r.TreatmentDescription)
    }
    if r.TreatmentName != "" {
        o.TreatmentName = pointers.String(r.TreatmentName)
    }
    return &o
}

type WriteTreatmentResource struct {
    SizePercent int64

    // optional
    CustomDeliveryConfiguration CustomDeliveryConfiguration
    MessageConfiguration        MessageConfiguration
    Schedule                    Schedule
    TemplateConfiguration       TemplateConfiguration
    TreatmentDescription        string
    TreatmentName               string
}

func (r WriteTreatmentResource) ToSDK() SDK.WriteTreatmentResource {
    o := SDK.WriteTreatmentResource{}

    if r.SizePercent != 0 {
        o.SizePercent = pointers.Long64(r.SizePercent)
    }

    o.CustomDeliveryConfiguration = r.CustomDeliveryConfiguration.ToSDK()
    o.MessageConfiguration = r.MessageConfiguration.ToSDK()
    o.Schedule = r.Schedule.ToSDK()
    o.TemplateConfiguration = r.TemplateConfiguration.ToSDK()

    if r.TreatmentDescription != "" {
        o.TreatmentDescription = pointers.String(r.TreatmentDescription)
    }
    if r.TreatmentName != "" {
        o.TreatmentName = pointers.String(r.TreatmentName)
    }
    return o
}