diff --git a/accounting/types.go b/accounting/types.go index 8de74e9..96c2767 100644 --- a/accounting/types.go +++ b/accounting/types.go @@ -20127,13 +20127,13 @@ type GeneralLedgerTransactionLine struct { // The exchange rate between the base currency and the transaction currency. ExchangeRate *string `json:"exchange_rate,omitempty"` // A description of the line item. - Description *string `json:"description,omitempty"` - TrackingCategories []*TrackingCategory `json:"tracking_categories,omitempty"` - DebitAmount string `json:"debit_amount"` - CreditAmount string `json:"credit_amount"` - Item *GeneralLedgerTransactionLineItem `json:"item,omitempty"` - ForeignDebitAmount string `json:"foreign_debit_amount"` - ForeignCreditAmount string `json:"foreign_credit_amount"` + Description *string `json:"description,omitempty"` + TrackingCategories []*GeneralLedgerTransactionLineTrackingCategoriesItem `json:"tracking_categories,omitempty"` + DebitAmount string `json:"debit_amount"` + CreditAmount string `json:"credit_amount"` + Item *GeneralLedgerTransactionLineItem `json:"item,omitempty"` + ForeignDebitAmount string `json:"foreign_debit_amount"` + ForeignCreditAmount string `json:"foreign_credit_amount"` // Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). RemoteWasDeleted *bool `json:"remote_was_deleted,omitempty"` FieldMappings map[string]interface{} `json:"field_mappings,omitempty"` @@ -20815,6 +20815,63 @@ func (g *GeneralLedgerTransactionLineItem) Accept(visitor GeneralLedgerTransacti } } +type GeneralLedgerTransactionLineTrackingCategoriesItem struct { + typeName string + String string + TrackingCategory *TrackingCategory +} + +func NewGeneralLedgerTransactionLineTrackingCategoriesItemFromString(value string) *GeneralLedgerTransactionLineTrackingCategoriesItem { + return &GeneralLedgerTransactionLineTrackingCategoriesItem{typeName: "string", String: value} +} + +func NewGeneralLedgerTransactionLineTrackingCategoriesItemFromTrackingCategory(value *TrackingCategory) *GeneralLedgerTransactionLineTrackingCategoriesItem { + return &GeneralLedgerTransactionLineTrackingCategoriesItem{typeName: "trackingCategory", TrackingCategory: value} +} + +func (g *GeneralLedgerTransactionLineTrackingCategoriesItem) UnmarshalJSON(data []byte) error { + var valueString string + if err := json.Unmarshal(data, &valueString); err == nil { + g.typeName = "string" + g.String = valueString + return nil + } + valueTrackingCategory := new(TrackingCategory) + if err := json.Unmarshal(data, &valueTrackingCategory); err == nil { + g.typeName = "trackingCategory" + g.TrackingCategory = valueTrackingCategory + return nil + } + return fmt.Errorf("%s cannot be deserialized as a %T", data, g) +} + +func (g GeneralLedgerTransactionLineTrackingCategoriesItem) MarshalJSON() ([]byte, error) { + switch g.typeName { + default: + return nil, fmt.Errorf("invalid type %s in %T", g.typeName, g) + case "string": + return json.Marshal(g.String) + case "trackingCategory": + return json.Marshal(g.TrackingCategory) + } +} + +type GeneralLedgerTransactionLineTrackingCategoriesItemVisitor interface { + VisitString(string) error + VisitTrackingCategory(*TrackingCategory) error +} + +func (g *GeneralLedgerTransactionLineTrackingCategoriesItem) Accept(visitor GeneralLedgerTransactionLineTrackingCategoriesItemVisitor) error { + switch g.typeName { + default: + return fmt.Errorf("invalid type %s in %T", g.typeName, g) + case "string": + return visitor.VisitString(g.String) + case "trackingCategory": + return visitor.VisitTrackingCategory(g.TrackingCategory) + } +} + // The transaction currency that the transaction is made in. // // - `XUA` - ADB Unit of Account @@ -40360,8 +40417,8 @@ func (r *RemoteEndpointInfo) String() string { } type RemoteField struct { - RemoteFieldClass *RemoteFieldClass `json:"remote_field_class,omitempty"` - Value map[string]interface{} `json:"value,omitempty"` + RemoteFieldClass *RemoteFieldRemoteFieldClass `json:"remote_field_class,omitempty"` + Value map[string]interface{} `json:"value,omitempty"` _rawJSON json.RawMessage } @@ -40568,6 +40625,63 @@ func (r *RemoteFieldClass) String() string { return fmt.Sprintf("%#v", r) } +type RemoteFieldRemoteFieldClass struct { + typeName string + String string + RemoteFieldClass *RemoteFieldClass +} + +func NewRemoteFieldRemoteFieldClassFromString(value string) *RemoteFieldRemoteFieldClass { + return &RemoteFieldRemoteFieldClass{typeName: "string", String: value} +} + +func NewRemoteFieldRemoteFieldClassFromRemoteFieldClass(value *RemoteFieldClass) *RemoteFieldRemoteFieldClass { + return &RemoteFieldRemoteFieldClass{typeName: "remoteFieldClass", RemoteFieldClass: value} +} + +func (r *RemoteFieldRemoteFieldClass) UnmarshalJSON(data []byte) error { + var valueString string + if err := json.Unmarshal(data, &valueString); err == nil { + r.typeName = "string" + r.String = valueString + return nil + } + valueRemoteFieldClass := new(RemoteFieldClass) + if err := json.Unmarshal(data, &valueRemoteFieldClass); err == nil { + r.typeName = "remoteFieldClass" + r.RemoteFieldClass = valueRemoteFieldClass + return nil + } + return fmt.Errorf("%s cannot be deserialized as a %T", data, r) +} + +func (r RemoteFieldRemoteFieldClass) MarshalJSON() ([]byte, error) { + switch r.typeName { + default: + return nil, fmt.Errorf("invalid type %s in %T", r.typeName, r) + case "string": + return json.Marshal(r.String) + case "remoteFieldClass": + return json.Marshal(r.RemoteFieldClass) + } +} + +type RemoteFieldRemoteFieldClassVisitor interface { + VisitString(string) error + VisitRemoteFieldClass(*RemoteFieldClass) error +} + +func (r *RemoteFieldRemoteFieldClass) Accept(visitor RemoteFieldRemoteFieldClassVisitor) error { + switch r.typeName { + default: + return fmt.Errorf("invalid type %s in %T", r.typeName, r) + case "string": + return visitor.VisitString(r.String) + case "remoteFieldClass": + return visitor.VisitRemoteFieldClass(r.RemoteFieldClass) + } +} + type RemoteFieldRequest struct { RemoteFieldClass *RemoteFieldRequestRemoteFieldClass `json:"remote_field_class,omitempty"` Value interface{} `json:"value,omitempty"` diff --git a/core/client_option.go b/core/client_option.go index a6df4a0..86d45ed 100644 --- a/core/client_option.go +++ b/core/client_option.go @@ -48,6 +48,6 @@ func (c *ClientOptions) cloneHeader() http.Header { headers := c.HTTPHeader.Clone() headers.Set("X-Fern-Language", "Go") headers.Set("X-Fern-SDK-Name", "github.com/merge-api/merge-go-client") - headers.Set("X-Fern-SDK-Version", "v1.1.0") + headers.Set("X-Fern-SDK-Version", "v1.1.1") return headers } diff --git a/crm/types.go b/crm/types.go index b35a519..e9900da 100644 --- a/crm/types.go +++ b/crm/types.go @@ -9938,7 +9938,7 @@ func (r *RemoteEndpointInfo) String() string { type RemoteField struct { RemoteFieldClass *RemoteFieldRemoteFieldClass `json:"remote_field_class,omitempty"` - Value interface{} `json:"value,omitempty"` + Value map[string]interface{} `json:"value,omitempty"` _rawJSON json.RawMessage } diff --git a/ticketing/tickets.go b/ticketing/tickets.go index 8588b69..d04144d 100644 --- a/ticketing/tickets.go +++ b/ticketing/tickets.go @@ -98,6 +98,8 @@ type PatchedTicketEndpointRequest struct { type TicketsRemoteFieldClassesListRequest struct { // The pagination cursor value. Cursor *string `json:"-"` + // If provided, will only return remote field classes with the `ids` in this list + Ids *string `json:"-"` // Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). IncludeDeletedData *bool `json:"-"` // Whether to include the original data Merge fetched from the third-party to produce these models. diff --git a/ticketing/tickets/client.go b/ticketing/tickets/client.go index 0bb0475..44440d9 100644 --- a/ticketing/tickets/client.go +++ b/ticketing/tickets/client.go @@ -371,6 +371,9 @@ func (c *Client) RemoteFieldClassesList(ctx context.Context, request *ticketing. if request.Cursor != nil { queryParams.Add("cursor", fmt.Sprintf("%v", *request.Cursor)) } + if request.Ids != nil { + queryParams.Add("ids", fmt.Sprintf("%v", *request.Ids)) + } if request.IncludeDeletedData != nil { queryParams.Add("include_deleted_data", fmt.Sprintf("%v", *request.IncludeDeletedData)) } diff --git a/ticketing/types.go b/ticketing/types.go index 4807b52..72c2851 100644 --- a/ticketing/types.go +++ b/ticketing/types.go @@ -4452,7 +4452,7 @@ func (r *RemoteEndpointInfo) String() string { type RemoteField struct { RemoteFieldClass *RemoteFieldRemoteFieldClass `json:"remote_field_class,omitempty"` - Value interface{} `json:"value,omitempty"` + Value map[string]interface{} `json:"value,omitempty"` _rawJSON json.RawMessage } @@ -4851,7 +4851,7 @@ func (r *RemoteFieldRemoteFieldClass) Accept(visitor RemoteFieldRemoteFieldClass type RemoteFieldRequest struct { RemoteFieldClass *RemoteFieldRequestRemoteFieldClass `json:"remote_field_class,omitempty"` - Value *string `json:"value,omitempty"` + Value interface{} `json:"value,omitempty"` _rawJSON json.RawMessage }