diff --git a/ShopifySharp.Tests/ShopifySharp.Tests.csproj b/ShopifySharp.Tests/ShopifySharp.Tests.csproj index 615497b4..77ab7d11 100644 --- a/ShopifySharp.Tests/ShopifySharp.Tests.csproj +++ b/ShopifySharp.Tests/ShopifySharp.Tests.csproj @@ -31,7 +31,7 @@ - + diff --git a/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs b/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs index c2da9d5d..b6009461 100644 --- a/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs +++ b/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs @@ -99,6 +99,10 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I /// public string? id { get; set; } /// + ///A list of the line items in this checkout. + /// + public AbandonedCheckoutLineItemConnection? lineItems { get; set; } + /// ///The number of products in the checkout. /// public int? lineItemsQuantity { get; set; } @@ -108,6 +112,111 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I public MoneyBag? totalPriceSet { get; set; } } + /// + ///A single line item in an abandoned checkout. + /// + public class AbandonedCheckoutLineItem : GraphQLObject, INode + { + /// + ///A list of extra information that has been added to the line item. + /// + public IEnumerable? customAttributes { get; set; } + /// + ///Final total price for the entire quantity of this line item, including discounts. + /// + public MoneyBag? discountedTotalPriceSet { get; set; } + /// + ///The total price for the entire quantity of this line item, after all discounts are applied, at both the line item and code-based line item level. + /// + public MoneyBag? discountedTotalPriceWithCodeDiscount { get; set; } + /// + ///The price of a single variant unit after discounts are applied at the line item level, in shop and presentment currencies. + /// + public MoneyBag? discountedUnitPriceSet { get; set; } + /// + ///The price of a single variant unit after all discounts are applied, at both the line item and code-based line item level. + /// + public MoneyBag? discountedUnitPriceWithCodeDiscount { get; set; } + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///The image associated with the line item's variant or product. + ///NULL if the line item has no product, or if neither the variant nor the product have an image. + /// + public Image? image { get; set; } + /// + ///Original total price for the entire quantity of this line item, before discounts. + /// + public MoneyBag? originalTotalPriceSet { get; set; } + /// + ///Original price for a single unit of this line item, before discounts. + /// + public MoneyBag? originalUnitPriceSet { get; set; } + /// + ///Product for this line item. + ///NULL for custom line items and products that were deleted after checkout began. + /// + public Product? product { get; set; } + /// + ///The quantity of the line item. + /// + public int? quantity { get; set; } + /// + ///SKU for the inventory item associated with the variant, if any. + /// + public string? sku { get; set; } + /// + ///Title of the line item. Defaults to the product's title. + /// + public string? title { get; set; } + /// + ///Product variant for this line item. + ///NULL for custom line items and variants that were deleted after checkout began. + /// + public ProductVariant? variant { get; set; } + /// + ///Title of the variant for this line item. + ///NULL for custom line items and products that don't have distinct variants. + /// + public string? variantTitle { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple AbandonedCheckoutLineItems. + /// + public class AbandonedCheckoutLineItemConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in AbandonedCheckoutLineItemEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one AbandonedCheckoutLineItem and a cursor during pagination. + /// + public class AbandonedCheckoutLineItemEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of AbandonedCheckoutLineItemEdge. + /// + public AbandonedCheckoutLineItem? node { get; set; } + } + /// ///A browse, cart, or checkout that was abandoned by a customer. /// @@ -138,6 +247,10 @@ public class Abandonment : GraphQLObject, INode /// public Customer? customer { get; set; } /// + ///Whether the customer has a draft order since this abandonment has been abandoned. + /// + public bool? customerHasNoDraftOrderSinceAbandonment { get; set; } + /// ///Whether the customer has completed an order since this checkout has been abandoned. /// public bool? customerHasNoOrderSinceAbandonment { get; set; } @@ -2030,6 +2143,58 @@ public enum BadgeType INFO, } + /// + ///The set of valid sort keys for the BalanceTransaction query. + /// + public enum BalanceTransactionSortKeys + { + /// + ///Sort by the `payout_date` value. + /// + PAYOUT_DATE, + /// + ///Sort by the `payout_status` value. + /// + PAYOUT_STATUS, + /// + ///Sort by the `processed_at` value. + /// + PROCESSED_AT, + /// + ///Sort by the `amount` value. + /// + AMOUNT, + /// + ///Sort by the `fee` value. + /// + FEE, + /// + ///Sort by the `net` value. + /// + NET, + /// + ///Sort by the `transaction_type` value. + /// + TRANSACTION_TYPE, + /// + ///Sort by the `order_name` value. + /// + ORDER_NAME, + /// + ///Sort by the `payment_method_name` value. + /// + PAYMENT_METHOD_NAME, + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + /// ///Generic payment details that are related to a transaction. /// @@ -2142,6 +2307,10 @@ public enum BillingAttemptUserErrorCode ///Subscription contract is under review. /// CONTRACT_UNDER_REVIEW, + /// + ///Subscription contract cannot be billed once terminated. + /// + CONTRACT_TERMINATED, } /// @@ -3278,6 +3447,10 @@ public class CardPaymentDetails : GraphQLObject, IBasePaymen /// public class CartTransform : GraphQLObject, IHasMetafields, INode { + /// + ///Whether a run failure will block cart and checkout operations. + /// + public bool? blockOnFailure { get; set; } /// ///The ID for the Cart Transform function. /// @@ -3448,6 +3621,36 @@ public class CartTransformEdge : GraphQLObject, IEdge + ///Represents the cart transform feature configuration for the shop. + /// + public class CartTransformEligibleOperations : GraphQLObject + { + /// + ///The shop is eligible for expand operations. + /// + public bool? expandOperation { get; set; } + /// + ///The shop is eligible for merge operations. + /// + public bool? mergeOperation { get; set; } + /// + ///The shop is eligible for update operations. + /// + public bool? updateOperation { get; set; } + } + + /// + ///Represents the cart transform feature configuration for the shop. + /// + public class CartTransformFeature : GraphQLObject + { + /// + ///The cart transform operations eligible for the shop. + /// + public CartTransformEligibleOperations? eligibleOperations { get; set; } + } + /// ///A list of products with publishing and pricing information. ///A catalog can be associated with a specific context, such as a [`Market`](https://shopify.dev/api/admin-graphql/current/objects/market), [`CompanyLocation`](https://shopify.dev/api/admin-graphql/current/objects/companylocation), or [`App`](https://shopify.dev/api/admin-graphql/current/objects/app). @@ -4121,6 +4324,28 @@ public class CheckoutBrandingCheckbox : GraphQLObject public CheckoutBrandingCornerRadius? cornerRadius { get; set; } } + /// + ///The choice list customizations. + /// + public class CheckoutBrandingChoiceList : GraphQLObject + { + /// + ///The settings that apply to the 'group' variant of ChoiceList. + /// + public CheckoutBrandingChoiceListGroup? group { get; set; } + } + + /// + ///The settings that apply to the 'group' variant of ChoiceList. + /// + public class CheckoutBrandingChoiceListGroup : GraphQLObject + { + /// + ///The spacing between UI elements in the list. + /// + public CheckoutBrandingSpacingKeyword? spacing { get; set; } + } + /// ///A set of colors for customizing the overall look and feel of the checkout. /// @@ -4401,6 +4626,10 @@ public class CheckoutBrandingCustomizations : GraphQLObject public CheckoutBrandingCheckbox? checkbox { get; set; } /// + ///The choice list customizations. + /// + public CheckoutBrandingChoiceList? choiceList { get; set; } + /// ///The form controls customizations. /// public CheckoutBrandingControl? control { get; set; } @@ -4825,6 +5054,69 @@ public enum CheckoutBrandingSpacing EXTRA_LOOSE, } + /// + ///The spacing between UI elements. + /// + public enum CheckoutBrandingSpacingKeyword + { + /// + ///The None spacing. + /// + NONE, + /// + ///The Base spacing. + /// + BASE, + /// + ///The Small spacing. + /// + SMALL, + /// + ///The Small 100 spacing. + /// + SMALL_100, + /// + ///The Small 200 spacing. + /// + SMALL_200, + /// + ///The Small 300 spacing. + /// + SMALL_300, + /// + ///The Small 400 spacing. + /// + SMALL_400, + /// + ///The Small 500 spacing. + /// + SMALL_500, + /// + ///The Large spacing. + /// + LARGE, + /// + ///The Large 100 spacing. + /// + LARGE_100, + /// + ///The Large 200 spacing. + /// + LARGE_200, + /// + ///The Large 300 spacing. + /// + LARGE_300, + /// + ///The Large 400 spacing. + /// + LARGE_400, + /// + ///The Large 500 spacing. + /// + LARGE_500, + } + /// ///The text fields customizations. /// @@ -6283,6 +6575,10 @@ public class CompanyAddress : GraphQLObject, INode /// public DateTime? createdAt { get; set; } /// + ///The first name of the recipient. + /// + public string? firstName { get; set; } + /// ///The formatted version of the address. /// public IEnumerable? formattedAddress { get; set; } @@ -6295,6 +6591,10 @@ public class CompanyAddress : GraphQLObject, INode /// public string? id { get; set; } /// + ///The last name of the recipient. + /// + public string? lastName { get; set; } + /// ///A unique phone number for the customer. ///Formatted using E.164 standard. For example, _+16135551111_. /// @@ -9207,17 +9507,6 @@ public class CurrencySettingEdge : GraphQLObject, IEdge public class Customer : GraphQLObject, ICommentEventSubject, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, ILegacyInteroperability, INode, ICommentEventEmbed, IMetafieldReferencer, IPurchasingEntity { - /// - ///Whether the customer has agreed to receive marketing material. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public bool? acceptsMarketing { get; set; } - - /// - ///The date and time when the customer consented or objected to receiving marketing material by email. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public DateTime? acceptsMarketingUpdatedAt { get; set; } /// ///A list of addresses associated with the customer. /// @@ -9307,15 +9596,6 @@ public class Customer : GraphQLObject, ICommentEventSubject, IHasEvent ///The market that includes the customer’s default address. /// public Market? market { get; set; } - - /// - ///The marketing subscription opt-in level, as described by the M3AAWG best practices guidelines, that the - ///customer gave when they consented to receive marketing material by email. - /// - ///If the customer doesn't accept email marketing, then this property is `null`. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public CustomerMarketingOptInLevel? marketingOptInLevel { get; set; } /// ///Whether the customer can be merged with another customer. /// @@ -9477,6 +9757,59 @@ public class CustomerAddTaxExemptionsPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `CustomerCancelDataErasureUserError`. + /// + public enum CustomerCancelDataErasureErrorCode + { + /// + ///Customer does not exist. + /// + DOES_NOT_EXIST, + /// + ///Failed to cancel customer data erasure. + /// + FAILED_TO_CANCEL, + /// + ///Customer's data is not scheduled for erasure. + /// + NOT_BEING_ERASED, + } + + /// + ///Return type for `customerCancelDataErasure` mutation. + /// + public class CustomerCancelDataErasurePayload : GraphQLObject + { + /// + ///The ID of the customer whose pending data erasure has been cancelled. + /// + public string? customerId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs when cancelling a customer data erasure request. + /// + public class CustomerCancelDataErasureUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public CustomerCancelDataErasureErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///An auto-generated type for paginating through multiple Customers. /// @@ -10508,6 +10841,10 @@ public class CustomerPaymentMethodCreditCardCreatePayload : GraphQLObject public CustomerPaymentMethod? customerPaymentMethod { get; set; } /// + ///If the card verification result is processing. When this is true, customer_payment_method will be null. + /// + public bool? processing { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// public IEnumerable? userErrors { get; set; } @@ -10523,6 +10860,10 @@ public class CustomerPaymentMethodCreditCardUpdatePayload : GraphQLObject public CustomerPaymentMethod? customerPaymentMethod { get; set; } /// + ///If the card verification result is processing. When this is true, customer_payment_method will be null. + /// + public bool? processing { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// public IEnumerable? userErrors { get; set; } @@ -11028,6 +11369,55 @@ public class CustomerReplaceTaxExemptionsPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `CustomerRequestDataErasureUserError`. + /// + public enum CustomerRequestDataErasureErrorCode + { + /// + ///Customer does not exist. + /// + DOES_NOT_EXIST, + /// + ///Failed to request customer data erasure. + /// + FAILED_TO_REQUEST, + } + + /// + ///Return type for `customerRequestDataErasure` mutation. + /// + public class CustomerRequestDataErasurePayload : GraphQLObject + { + /// + ///The ID of the customer that will be erased. + /// + public string? customerId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs when requesting a customer data erasure. + /// + public class CustomerRequestDataErasureUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public CustomerRequestDataErasureErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///The set of valid sort keys for the CustomerSavedSearch query. /// @@ -13103,7 +13493,7 @@ public class DiscountAllocation : GraphQLObject /// ///The fixed amount value of a discount, and whether the amount is applied to each entitled item or spread evenly across the entitled items. /// - public class DiscountAmount : GraphQLObject, IDiscountCustomerGetsValue + public class DiscountAmount : GraphQLObject, IDiscountCustomerGetsValue, IDiscountEffect { /// ///The value of the discount. @@ -14899,14 +15289,12 @@ public class DiscountCustomers : GraphQLObject, IDiscountCust ///The type of discount that will be applied. Currently, only a percentage discount is supported. /// [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(DiscountAmount), typeDiscriminator: "DiscountAmount")] [JsonDerivedType(typeof(DiscountPercentage), typeDiscriminator: "DiscountPercentage")] public interface IDiscountEffect : IGraphQLObject { + public DiscountAmount? AsDiscountAmount() => this as DiscountAmount; public DiscountPercentage? AsDiscountPercentage() => this as DiscountPercentage; - /// - ///The percentage value of the discount. - /// - public float? percentage { get; set; } } /// @@ -15507,6 +15895,10 @@ public enum DiscountType ///Code discount type. /// CODE_DISCOUNT, + /// + ///Automatic discount type. + /// + AUTOMATIC_DISCOUNT, } /// @@ -15548,6 +15940,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(CatalogUserError), typeDiscriminator: "CatalogUserError")] [JsonDerivedType(typeof(CheckoutBrandingUpsertUserError), typeDiscriminator: "CheckoutBrandingUpsertUserError")] [JsonDerivedType(typeof(CollectionAddProductsV2UserError), typeDiscriminator: "CollectionAddProductsV2UserError")] + [JsonDerivedType(typeof(CustomerCancelDataErasureUserError), typeDiscriminator: "CustomerCancelDataErasureUserError")] [JsonDerivedType(typeof(CustomerEmailMarketingConsentUpdateUserError), typeDiscriminator: "CustomerEmailMarketingConsentUpdateUserError")] [JsonDerivedType(typeof(CustomerMergeUserError), typeDiscriminator: "CustomerMergeUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodCreateFromDuplicationDataUserError), typeDiscriminator: "CustomerPaymentMethodCreateFromDuplicationDataUserError")] @@ -15555,6 +15948,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(CustomerPaymentMethodGetUpdateUrlUserError), typeDiscriminator: "CustomerPaymentMethodGetUpdateUrlUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodRemoteUserError), typeDiscriminator: "CustomerPaymentMethodRemoteUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodUserError), typeDiscriminator: "CustomerPaymentMethodUserError")] + [JsonDerivedType(typeof(CustomerRequestDataErasureUserError), typeDiscriminator: "CustomerRequestDataErasureUserError")] [JsonDerivedType(typeof(CustomerSegmentMembersQueryUserError), typeDiscriminator: "CustomerSegmentMembersQueryUserError")] [JsonDerivedType(typeof(CustomerSmsMarketingConsentError), typeDiscriminator: "CustomerSmsMarketingConsentError")] [JsonDerivedType(typeof(DelegateAccessTokenCreateUserError), typeDiscriminator: "DelegateAccessTokenCreateUserError")] @@ -15581,6 +15975,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(InventoryBulkToggleActivationUserError), typeDiscriminator: "InventoryBulkToggleActivationUserError")] [JsonDerivedType(typeof(InventoryMoveQuantitiesUserError), typeDiscriminator: "InventoryMoveQuantitiesUserError")] [JsonDerivedType(typeof(InventorySetOnHandQuantitiesUserError), typeDiscriminator: "InventorySetOnHandQuantitiesUserError")] + [JsonDerivedType(typeof(InventorySetScheduledChangesUserError), typeDiscriminator: "InventorySetScheduledChangesUserError")] [JsonDerivedType(typeof(LocationActivateUserError), typeDiscriminator: "LocationActivateUserError")] [JsonDerivedType(typeof(LocationAddUserError), typeDiscriminator: "LocationAddUserError")] [JsonDerivedType(typeof(LocationDeactivateUserError), typeDiscriminator: "LocationDeactivateUserError")] @@ -15597,7 +15992,10 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(MetafieldDefinitionUpdateUserError), typeDiscriminator: "MetafieldDefinitionUpdateUserError")] [JsonDerivedType(typeof(MetafieldsSetUserError), typeDiscriminator: "MetafieldsSetUserError")] [JsonDerivedType(typeof(MetaobjectUserError), typeDiscriminator: "MetaobjectUserError")] + [JsonDerivedType(typeof(OrderCancelUserError), typeDiscriminator: "OrderCancelUserError")] [JsonDerivedType(typeof(OrderCreateMandatePaymentUserError), typeDiscriminator: "OrderCreateMandatePaymentUserError")] + [JsonDerivedType(typeof(OrderEditRemoveDiscountUserError), typeDiscriminator: "OrderEditRemoveDiscountUserError")] + [JsonDerivedType(typeof(OrderEditUpdateDiscountUserError), typeDiscriminator: "OrderEditUpdateDiscountUserError")] [JsonDerivedType(typeof(OrderInvoiceSendUserError), typeDiscriminator: "OrderInvoiceSendUserError")] [JsonDerivedType(typeof(PaymentCustomizationError), typeDiscriminator: "PaymentCustomizationError")] [JsonDerivedType(typeof(PaymentReminderSendUserError), typeDiscriminator: "PaymentReminderSendUserError")] @@ -15630,7 +16028,10 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(ShopPolicyUserError), typeDiscriminator: "ShopPolicyUserError")] [JsonDerivedType(typeof(ShopResourceFeedbackCreateUserError), typeDiscriminator: "ShopResourceFeedbackCreateUserError")] [JsonDerivedType(typeof(StandardMetafieldDefinitionEnableUserError), typeDiscriminator: "StandardMetafieldDefinitionEnableUserError")] + [JsonDerivedType(typeof(SubscriptionBillingCycleSkipUserError), typeDiscriminator: "SubscriptionBillingCycleSkipUserError")] + [JsonDerivedType(typeof(SubscriptionBillingCycleUnskipUserError), typeDiscriminator: "SubscriptionBillingCycleUnskipUserError")] [JsonDerivedType(typeof(SubscriptionBillingCycleUserError), typeDiscriminator: "SubscriptionBillingCycleUserError")] + [JsonDerivedType(typeof(SubscriptionContractStatusUpdateUserError), typeDiscriminator: "SubscriptionContractStatusUpdateUserError")] [JsonDerivedType(typeof(SubscriptionContractUserError), typeDiscriminator: "SubscriptionContractUserError")] [JsonDerivedType(typeof(SubscriptionDraftUserError), typeDiscriminator: "SubscriptionDraftUserError")] [JsonDerivedType(typeof(TaxAppConfigureUserError), typeDiscriminator: "TaxAppConfigureUserError")] @@ -15641,6 +16042,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(UrlRedirectImportUserError), typeDiscriminator: "UrlRedirectImportUserError")] [JsonDerivedType(typeof(UrlRedirectUserError), typeDiscriminator: "UrlRedirectUserError")] [JsonDerivedType(typeof(UserError), typeDiscriminator: "UserError")] + [JsonDerivedType(typeof(ValidationUserError), typeDiscriminator: "ValidationUserError")] public interface IDisplayableError : IGraphQLObject { public AbandonmentEmailStateUpdateUserError? AsAbandonmentEmailStateUpdateUserError() => this as AbandonmentEmailStateUpdateUserError; @@ -15655,6 +16057,7 @@ public interface IDisplayableError : IGraphQLObject public CatalogUserError? AsCatalogUserError() => this as CatalogUserError; public CheckoutBrandingUpsertUserError? AsCheckoutBrandingUpsertUserError() => this as CheckoutBrandingUpsertUserError; public CollectionAddProductsV2UserError? AsCollectionAddProductsV2UserError() => this as CollectionAddProductsV2UserError; + public CustomerCancelDataErasureUserError? AsCustomerCancelDataErasureUserError() => this as CustomerCancelDataErasureUserError; public CustomerEmailMarketingConsentUpdateUserError? AsCustomerEmailMarketingConsentUpdateUserError() => this as CustomerEmailMarketingConsentUpdateUserError; public CustomerMergeUserError? AsCustomerMergeUserError() => this as CustomerMergeUserError; public CustomerPaymentMethodCreateFromDuplicationDataUserError? AsCustomerPaymentMethodCreateFromDuplicationDataUserError() => this as CustomerPaymentMethodCreateFromDuplicationDataUserError; @@ -15662,6 +16065,7 @@ public interface IDisplayableError : IGraphQLObject public CustomerPaymentMethodGetUpdateUrlUserError? AsCustomerPaymentMethodGetUpdateUrlUserError() => this as CustomerPaymentMethodGetUpdateUrlUserError; public CustomerPaymentMethodRemoteUserError? AsCustomerPaymentMethodRemoteUserError() => this as CustomerPaymentMethodRemoteUserError; public CustomerPaymentMethodUserError? AsCustomerPaymentMethodUserError() => this as CustomerPaymentMethodUserError; + public CustomerRequestDataErasureUserError? AsCustomerRequestDataErasureUserError() => this as CustomerRequestDataErasureUserError; public CustomerSegmentMembersQueryUserError? AsCustomerSegmentMembersQueryUserError() => this as CustomerSegmentMembersQueryUserError; public CustomerSmsMarketingConsentError? AsCustomerSmsMarketingConsentError() => this as CustomerSmsMarketingConsentError; public DelegateAccessTokenCreateUserError? AsDelegateAccessTokenCreateUserError() => this as DelegateAccessTokenCreateUserError; @@ -15688,6 +16092,7 @@ public interface IDisplayableError : IGraphQLObject public InventoryBulkToggleActivationUserError? AsInventoryBulkToggleActivationUserError() => this as InventoryBulkToggleActivationUserError; public InventoryMoveQuantitiesUserError? AsInventoryMoveQuantitiesUserError() => this as InventoryMoveQuantitiesUserError; public InventorySetOnHandQuantitiesUserError? AsInventorySetOnHandQuantitiesUserError() => this as InventorySetOnHandQuantitiesUserError; + public InventorySetScheduledChangesUserError? AsInventorySetScheduledChangesUserError() => this as InventorySetScheduledChangesUserError; public LocationActivateUserError? AsLocationActivateUserError() => this as LocationActivateUserError; public LocationAddUserError? AsLocationAddUserError() => this as LocationAddUserError; public LocationDeactivateUserError? AsLocationDeactivateUserError() => this as LocationDeactivateUserError; @@ -15704,7 +16109,10 @@ public interface IDisplayableError : IGraphQLObject public MetafieldDefinitionUpdateUserError? AsMetafieldDefinitionUpdateUserError() => this as MetafieldDefinitionUpdateUserError; public MetafieldsSetUserError? AsMetafieldsSetUserError() => this as MetafieldsSetUserError; public MetaobjectUserError? AsMetaobjectUserError() => this as MetaobjectUserError; + public OrderCancelUserError? AsOrderCancelUserError() => this as OrderCancelUserError; public OrderCreateMandatePaymentUserError? AsOrderCreateMandatePaymentUserError() => this as OrderCreateMandatePaymentUserError; + public OrderEditRemoveDiscountUserError? AsOrderEditRemoveDiscountUserError() => this as OrderEditRemoveDiscountUserError; + public OrderEditUpdateDiscountUserError? AsOrderEditUpdateDiscountUserError() => this as OrderEditUpdateDiscountUserError; public OrderInvoiceSendUserError? AsOrderInvoiceSendUserError() => this as OrderInvoiceSendUserError; public PaymentCustomizationError? AsPaymentCustomizationError() => this as PaymentCustomizationError; public PaymentReminderSendUserError? AsPaymentReminderSendUserError() => this as PaymentReminderSendUserError; @@ -15736,7 +16144,10 @@ public interface IDisplayableError : IGraphQLObject public ShopPolicyUserError? AsShopPolicyUserError() => this as ShopPolicyUserError; public ShopResourceFeedbackCreateUserError? AsShopResourceFeedbackCreateUserError() => this as ShopResourceFeedbackCreateUserError; public StandardMetafieldDefinitionEnableUserError? AsStandardMetafieldDefinitionEnableUserError() => this as StandardMetafieldDefinitionEnableUserError; + public SubscriptionBillingCycleSkipUserError? AsSubscriptionBillingCycleSkipUserError() => this as SubscriptionBillingCycleSkipUserError; + public SubscriptionBillingCycleUnskipUserError? AsSubscriptionBillingCycleUnskipUserError() => this as SubscriptionBillingCycleUnskipUserError; public SubscriptionBillingCycleUserError? AsSubscriptionBillingCycleUserError() => this as SubscriptionBillingCycleUserError; + public SubscriptionContractStatusUpdateUserError? AsSubscriptionContractStatusUpdateUserError() => this as SubscriptionContractStatusUpdateUserError; public SubscriptionContractUserError? AsSubscriptionContractUserError() => this as SubscriptionContractUserError; public SubscriptionDraftUserError? AsSubscriptionDraftUserError() => this as SubscriptionDraftUserError; public TaxAppConfigureUserError? AsTaxAppConfigureUserError() => this as TaxAppConfigureUserError; @@ -15747,6 +16158,7 @@ public interface IDisplayableError : IGraphQLObject public UrlRedirectImportUserError? AsUrlRedirectImportUserError() => this as UrlRedirectImportUserError; public UrlRedirectUserError? AsUrlRedirectUserError() => this as UrlRedirectUserError; public UserError? AsUserError() => this as UserError; + public ValidationUserError? AsValidationUserError() => this as ValidationUserError; /// ///The path to the input field that caused the error. /// @@ -17831,6 +18243,41 @@ public class FilterOption : GraphQLObject public string? value { get; set; } } + /// + ///An amount that's allocated to a line item based on an associated discount application. + /// + public class FinancialSummaryDiscountAllocation : GraphQLObject + { + /// + ///The money amount that's allocated per unit on the associated line based on the discount application in shop and presentment currencies. If the allocated amount for the line cannot be evenly divided by the quantity, then this amount will be an approximate amount, avoiding fractional pennies. For example, if the associated line had a quantity of 3 with a discount of 4 cents, then the discount distribution would be [0.01, 0.01, 0.02]. This field returns the highest number of the distribution. In this example, this would be 0.02. + /// + public MoneyBag? approximateAllocatedAmountPerItem { get; set; } + /// + ///The discount application that the allocated amount originated from. + /// + public FinancialSummaryDiscountApplication? discountApplication { get; set; } + } + + /// + ///Discount applications capture the intentions of a discount source at + ///the time of application on an order's line items or shipping lines. + /// + public class FinancialSummaryDiscountApplication : GraphQLObject + { + /// + ///The method by which the discount's value is applied to its entitled items. + /// + public DiscountApplicationAllocationMethod? allocationMethod { get; set; } + /// + ///How the discount amount is distributed on the discounted lines. + /// + public DiscountApplicationTargetSelection? targetSelection { get; set; } + /// + ///Whether the discount is applied on line items or shipping lines. + /// + public DiscountApplicationTargetType? targetType { get; set; } + } + /// ///Return type for `flowGenerateSignature` mutation. /// @@ -18453,6 +18900,10 @@ public enum FulfillmentHoldReason /// ONLINE_STORE_POST_PURCHASE_CROSS_SELL, /// + ///The fulfillment hold is applied because of return items not yet received during an exchange. + /// + AWAITING_RETURN_ITEMS, + /// ///The fulfillment hold is applied for another reason. /// OTHER, @@ -18741,6 +19192,10 @@ public class FulfillmentOrder : GraphQLObject, INode, IMetafie /// public IEnumerable? fulfillmentHolds { get; set; } /// + ///Fulfillment orders eligible for merging with the given fulfillment order. + /// + public FulfillmentOrderConnection? fulfillmentOrdersForMerge { get; set; } + /// ///A list of fulfillments for the fulfillment order. /// public FulfillmentConnection? fulfillments { get; set; } @@ -19183,6 +19638,10 @@ public class FulfillmentOrderInternationalDuties : GraphQLObject public class FulfillmentOrderLineItem : GraphQLObject, INode { + /// + ///The financial summary for the Fulfillment Order's Line Items. + /// + public IEnumerable? financialSummaries { get; set; } /// ///A globally-unique ID. /// @@ -19279,6 +19738,29 @@ public class FulfillmentOrderLineItemEdge : GraphQLObject + ///The financial details of a fulfillment order line item. + /// + public class FulfillmentOrderLineItemFinancialSummary : GraphQLObject + { + /// + ///The approximate split price of a line item unit, in shop and presentment currencies. This value doesn't include discounts applied to the entire order.For the full picture of applied discounts, see discountAllocations. + /// + public MoneyBag? approximateDiscountedUnitPriceSet { get; set; } + /// + ///The discounts that have been allocated onto the line item by discount applications, not including order edits and refunds. + /// + public IEnumerable? discountAllocations { get; set; } + /// + ///The variant unit price without discounts applied, in shop and presentment currencies. + /// + public MoneyBag? originalUnitPriceSet { get; set; } + /// + ///Number of line items that this financial summary applies to. + /// + public int? quantity { get; set; } + } + /// ///A fulfillment order line item warning. For example, a warning about why a fulfillment request was rejected. /// @@ -19348,6 +19830,15 @@ public enum FulfillmentOrderLineItemsPreparedForPickupUserErrorCode /// public class FulfillmentOrderLocationForMove : GraphQLObject { + /// + ///Fulfillment order line items that can be moved from their current location to the given location. + /// + public FulfillmentOrderLineItemConnection? availableLineItems { get; set; } + /// + ///Total number of fulfillment order line items that can be moved from their current assigned location to the + ///given location. + /// + public ulong? availableLineItemsCount { get; set; } /// ///The location being considered as the fulfillment order's new assigned location. /// @@ -19361,6 +19852,15 @@ public class FulfillmentOrderLocationForMove : GraphQLObject public bool? movable { get; set; } + /// + ///Fulfillment order line items that cannot be moved from their current location to the given location. + /// + public FulfillmentOrderLineItemConnection? unavailableLineItems { get; set; } + /// + ///Total number of fulfillment order line items that can't be moved from their current assigned location to the + ///given location. + /// + public ulong? unavailableLineItemsCount { get; set; } } /// @@ -19886,6 +20386,10 @@ public enum FulfillmentOrderSplitUserErrorCode ///The fulfillment order line item quantity is invalid. /// INVALID_LINE_ITEM_QUANTITY, + /// + ///The fulfillment order must have at least one line item input to split. + /// + NO_LINE_ITEMS_PROVIDED_TO_SPLIT, } /// @@ -20967,6 +21471,7 @@ public interface IHasLocalizationExtensions : IGraphQLObject [JsonDerivedType(typeof(PaymentCustomization), typeDiscriminator: "PaymentCustomization")] [JsonDerivedType(typeof(Product), typeDiscriminator: "Product")] [JsonDerivedType(typeof(ProductVariant), typeDiscriminator: "ProductVariant")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] public interface IHasMetafieldDefinitions : IGraphQLObject { public Collection? AsCollection() => this as Collection; @@ -20983,6 +21488,7 @@ public interface IHasMetafieldDefinitions : IGraphQLObject public PaymentCustomization? AsPaymentCustomization() => this as PaymentCustomization; public Product? AsProduct() => this as Product; public ProductVariant? AsProductVariant() => this as ProductVariant; + public Validation? AsValidation() => this as Validation; /// ///List of metafield definitions. /// @@ -21015,6 +21521,7 @@ public interface IHasMetafieldDefinitions : IGraphQLObject [JsonDerivedType(typeof(Product), typeDiscriminator: "Product")] [JsonDerivedType(typeof(ProductVariant), typeDiscriminator: "ProductVariant")] [JsonDerivedType(typeof(Shop), typeDiscriminator: "Shop")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] public interface IHasMetafields : IGraphQLObject { public AppInstallation? AsAppInstallation() => this as AppInstallation; @@ -21039,6 +21546,7 @@ public interface IHasMetafields : IGraphQLObject public Product? AsProduct() => this as Product; public ProductVariant? AsProductVariant() => this as ProductVariant; public Shop? AsShop() => this as Shop; + public Validation? AsValidation() => this as Validation; /// ///Returns a metafield by namespace and key that belongs to the resource. /// @@ -21754,6 +22262,10 @@ public class InventoryLevel : GraphQLObject, INode /// public IEnumerable? quantities { get; set; } /// + ///Scheduled changes for the requested quantity names. + /// + public InventoryScheduledChangeConnection? scheduledChanges { get; set; } + /// ///The date and time when the inventory level was updated. /// public DateTime? updatedAt { get; set; } @@ -21916,8 +22428,12 @@ public class InventoryProperties : GraphQLObject /// ///Represents a quantity of an inventory item at a specific location, for a specific name. /// - public class InventoryQuantity : GraphQLObject + public class InventoryQuantity : GraphQLObject, INode { + /// + ///A globally-unique ID. + /// + public string? id { get; set; } /// ///The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) ///that identifies the inventory quantity. @@ -21962,6 +22478,75 @@ public class InventoryQuantityName : GraphQLObject public string? name { get; set; } } + /// + ///Returns the scheduled changes to inventory states related to the ledger document. + /// + public class InventoryScheduledChange : GraphQLObject + { + /// + ///The date and time that the scheduled change is expected to happen. + /// + public DateTime? expectedAt { get; set; } + /// + ///The quantity + ///[name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) + ///to transition from. + /// + public string? fromName { get; set; } + /// + ///The quantities of an inventory item that are related to a specific location. + /// + public InventoryLevel? inventoryLevel { get; set; } + /// + ///An active reference document associated with the inventory quantity. Must be a valid URI. + /// + public string? ledgerDocumentUri { get; set; } + /// + ///The quantity of the scheduled change associated with the ledger document in the `from_name` state. + /// + public int? quantity { get; set; } + /// + ///The quantity + ///[name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) + ///to transition to. + /// + public string? toName { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple InventoryScheduledChanges. + /// + public class InventoryScheduledChangeConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in InventoryScheduledChangeEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one InventoryScheduledChange and a cursor during pagination. + /// + public class InventoryScheduledChangeEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of InventoryScheduledChangeEdge. + /// + public InventoryScheduledChange? node { get; set; } + } + /// ///Return type for `inventorySetOnHandQuantities` mutation. /// @@ -22039,6 +22624,95 @@ public enum InventorySetOnHandQuantitiesUserErrorCode INVALID_QUANTITY_TOO_HIGH, } + /// + ///Return type for `inventorySetScheduledChanges` mutation. + /// + public class InventorySetScheduledChangesPayload : GraphQLObject + { + /// + ///The scheduled changes that were created. + /// + public IEnumerable? scheduledChanges { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `InventorySetScheduledChanges`. + /// + public class InventorySetScheduledChangesUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public InventorySetScheduledChangesUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `InventorySetScheduledChangesUserError`. + /// + public enum InventorySetScheduledChangesUserErrorCode + { + /// + ///There was an error updating the scheduled changes. + /// + ERROR_UPDATING_SCHEDULED, + /// + ///The from_name and to_name can't be the same. + /// + SAME_FROM_TO_NAMES, + /// + ///The specified fromName is invalid. + /// + INVALID_FROM_NAME, + /// + ///The specified toName is invalid. + /// + INVALID_TO_NAME, + /// + ///The item can only have one scheduled change for %{to_name} as the to_name. + /// + DUPLICATE_TO_NAME, + /// + ///The specified reason is invalid. Valid values: %{reasons}. + /// + INVALID_REASON, + /// + ///The item can only have one scheduled change for %{from_name} as the fromName. + /// + DUPLICATE_FROM_NAME, + /// + ///The location couldn't be found. + /// + LOCATION_NOT_FOUND, + /// + ///The inventory item was not found at the location specified. + /// + INVENTORY_STATE_NOT_FOUND, + /// + ///At least 1 item must be provided. + /// + ITEMS_EMPTY, + /// + ///The inventory item was not found. + /// + INVENTORY_ITEM_NOT_FOUND, + /// + ///The specified field is invalid. + /// + INCLUSION, + } + /// ///A job corresponds to some long running task that the client should poll for status. /// @@ -24746,6 +25420,10 @@ public enum MarketLocalizableResourceType ///A metafield. Market localizable fields: `value`. /// METAFIELD, + /// + ///A Metaobject. Market Localizable fields are determined by the Metaobject type. + /// + METAOBJECT, } /// @@ -24914,6 +25592,21 @@ public class MarketRegionsCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketRegionsDelete` mutation. + /// + public class MarketRegionsDeletePayload : GraphQLObject + { + /// + ///The ID of the deleted market region. + /// + public IEnumerable? deletedIds { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `marketUpdate` mutation. /// @@ -25238,6 +25931,21 @@ public class MarketWebPresenceUpdatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivitiesDeleteAllExternal` mutation. + /// + public class MarketingActivitiesDeleteAllExternalPayload : GraphQLObject + { + /// + ///The asynchronous job that performs the deletion. The status of the job may be used to determine when it's safe again to create new activities. + /// + public Job? job { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///The marketing activity resource represents marketing that a /// merchant created through an app. @@ -25273,6 +25981,10 @@ public class MarketingActivity : GraphQLObject, INode /// public string? formData { get; set; } /// + ///The hierarchy level of the marketing activity. + /// + public MarketingActivityHierarchyLevel? hierarchyLevel { get; set; } + /// ///A globally-unique ID. /// public string? id { get; set; } @@ -25287,10 +25999,22 @@ public class MarketingActivity : GraphQLObject, INode [Obsolete("Use `marketingChannelType` instead.")] public MarketingChannel? marketingChannel { get; set; } /// + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. + /// + public MarketingChannel? marketingChannelType { get; set; } + /// ///Associated marketing event of this marketing activity. /// public MarketingEvent? marketingEvent { get; set; } /// + ///ID of the parent activity of this marketing activity. + /// + public string? parentActivityId { get; set; } + /// + ///ID of the parent activity of this marketing activity. + /// + public string? parentRemoteId { get; set; } + /// ///A contextual description of the marketing activity based on the platform and tactic used. /// public string? sourceAndMedium { get; set; } @@ -25335,6 +26059,10 @@ public class MarketingActivity : GraphQLObject, INode /// public DateTime? updatedAt { get; set; } /// + ///A URL parameter value associated with this marketing activity. + /// + public string? urlParameterValue { get; set; } + /// ///The set of [Urchin Tracking Module]( /// https://help.shopify.com/https://en.wikipedia.org/wiki/UTM_parameters /// ) used in the URL for tracking this marketing activity. @@ -25395,6 +26123,21 @@ public class MarketingActivityCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivityDeleteExternal` mutation. + /// + public class MarketingActivityDeleteExternalPayload : GraphQLObject + { + /// + ///The ID of the marketing activity that was deleted, if one was deleted. + /// + public string? deletedMarketingActivityId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An auto-generated type which holds one MarketingActivity and a cursor during pagination. /// @@ -25452,6 +26195,56 @@ public class MarketingActivityExtensionAppErrors : GraphQLObject? userErrors { get; set; } } + /// + ///Set of possible statuses for an external marketing activity. + /// + public enum MarketingActivityExternalStatus + { + /// + ///This marketing activity is currently running. + /// + ACTIVE, + /// + ///This marketing activity has completed running. + /// + INACTIVE, + /// + ///This marketing activity is currently not running. + /// + PAUSED, + /// + ///This marketing activity is scheduled to run. + /// + SCHEDULED, + /// + ///This marketing activity was deleted and it was triggered from outside of Shopify. + /// + DELETED_EXTERNALLY, + /// + ///The marketing activity's status is unknown. + /// + UNDEFINED, + } + + /// + ///Hierarchy levels for external marketing activities. + /// + public enum MarketingActivityHierarchyLevel + { + /// + ///An advertisement activity. Must be parented by an ad group or a campaign activity, and must be assigned tracking parameters (URL or UTM). + /// + AD, + /// + ///A group of advertisement activities. Must be parented by a campaign activity. + /// + AD_GROUP, + /// + ///A campaign activity. May contain either ad groups or ads as child activities. If childless, then the campaign activity should have tracking parameters assigned (URL or UTM) otherwise it won't appear in marketing reports. + /// + CAMPAIGN, + } + /// ///The set of valid sort keys for the MarketingActivity query. /// @@ -25588,6 +26381,21 @@ public class MarketingActivityUpdatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivityUpsertExternal` mutation. + /// + public class MarketingActivityUpsertExternalPayload : GraphQLObject + { + /// + ///The external marketing activity that was created or updated. + /// + public MarketingActivity? marketingActivity { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An error that occurs during the execution of a Shopify Marketing mutation. /// @@ -25689,6 +26497,10 @@ public class MarketingEngagement : GraphQLObject /// public MoneyV2? adSpend { get; set; } /// + ///The unique string identifier of the channel to which the engagement metrics are being provided. This should be set when and only when providing channel-level engagements. This should be nil when providing activity-level engagements. For the correct handle for your channel, contact your partner manager. + /// + public string? channelHandle { get; set; } + /// ///The total number of interactions, such as a button press or a screen touch, that occurred on the marketing content. /// public int? clicksCount { get; set; } @@ -25709,9 +26521,9 @@ public class MarketingEngagement : GraphQLObject /// public int? favoritesCount { get; set; } /// - ///The date time at which the data was fetched. + ///The number of customers that have placed their first order. Doesn't include adjustments such as edits, exchanges, or returns. /// - public DateTime? fetchedAt { get; set; } + public decimal? firstTimeCustomers { get; set; } /// ///The total number of times marketing content was displayed to users, whether or not an interaction occurred. For message-based platforms such as email or SMS, this represents the number of marketing emails or messages that were delivered. /// @@ -25729,10 +26541,26 @@ public class MarketingEngagement : GraphQLObject /// public DateOnly? occurredOn { get; set; } /// + ///The number of orders generated from the marketing content. + /// + public decimal? orders { get; set; } + /// + ///The number of returning customers that have placed an order. Doesn't include adjustments such as edits, exchanges, or returns. + /// + public decimal? returningCustomers { get; set; } + /// + ///The amount of sales generated from the marketing content. + /// + public MoneyV2? sales { get; set; } + /// ///The total number of marketing emails or messages that were sent. /// public int? sendsCount { get; set; } /// + ///The number of online store sessions generated from the marketing content. + /// + public int? sessionsCount { get; set; } + /// ///The total number of times marketing content was distributed or reposted to either one's own network of followers through a social media platform or other digital channels. For message-based platforms such as email or SMS, this represents the number of times marketing emails or messages were forwarded. /// public int? sharesCount { get; set; } @@ -25764,7 +26592,7 @@ public class MarketingEngagement : GraphQLObject public class MarketingEngagementCreatePayload : GraphQLObject { /// - ///The marketing engagement that was created. + ///The marketing engagement that was created. This represents customer activity taken on a marketing activity or a marketing channel. /// public MarketingEngagement? marketingEngagement { get; set; } /// @@ -25773,6 +26601,21 @@ public class MarketingEngagementCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingEngagementsDelete` mutation. + /// + public class MarketingEngagementsDeletePayload : GraphQLObject + { + /// + ///Informational message about the engagement data that has been marked for deletion. + /// + public string? result { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Represents actions that market a merchant's store or products. /// @@ -25789,6 +26632,10 @@ public class MarketingEvent : GraphQLObject, ILegacyInteroperabi [Obsolete("Use `marketingChannelType` instead.")] public MarketingChannel? channel { get; set; } /// + ///The unique string identifier of the channel to which this activity belongs. For the correct handle for your channel, contact your partner manager. + /// + public string? channelHandle { get; set; } + /// ///A human-readable description of the marketing event. /// public string? description { get; set; } @@ -25809,6 +26656,10 @@ public class MarketingEvent : GraphQLObject, ILegacyInteroperabi /// public string? manageUrl { get; set; } /// + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. + /// + public MarketingChannel? marketingChannelType { get; set; } + /// ///The URL where the marketing event can be previewed. /// public string? previewUrl { get; set; } @@ -26679,6 +27530,10 @@ public class MetafieldAccess : GraphQLObject ///for the specified grantees. /// public IEnumerable? grants { get; set; } + /// + ///The storefront access setting used for the metafields under this definition. + /// + public MetafieldStorefrontAccess? storefront { get; set; } } /// @@ -26808,9 +27663,11 @@ public class MetafieldDefinition : GraphQLObject, INode ///store dates after the specified minimum. /// public IEnumerable? validations { get; set; } + /// ///Whether each of the metafields that belong to the metafield definition are visible from the Storefront API. /// + [Obsolete("Use `access.storefront` instead.")] public bool? visibleToStorefrontApi { get; set; } } @@ -26940,6 +27797,10 @@ public enum MetafieldDefinitionCreateUserErrorCode ///The maximum limit of grants per definition type has been exceeded. /// GRANT_LIMIT_EXCEEDED, + /// + ///The input combination is invalid. + /// + INVALID_INPUT_COMBINATION, } /// @@ -27318,6 +28179,10 @@ public enum MetafieldDefinitionUpdateUserErrorCode ///The maximum limit of grants per definition type has been exceeded. /// GRANT_LIMIT_EXCEEDED, + /// + ///The input combination is invalid. + /// + INVALID_INPUT_COMBINATION, } /// @@ -27430,6 +28295,10 @@ public enum MetafieldOwnerType /// PAYMENT_CUSTOMIZATION, /// + ///The Validation metafield owner type. + /// + VALIDATION, + /// ///The Customer metafield owner type. /// CUSTOMER, @@ -27483,6 +28352,10 @@ public enum MetafieldOwnerType /// FULFILLMENT_CONSTRAINT_RULE, /// + ///The Order Routing Location Rule metafield owner type. + /// + ORDER_ROUTING_LOCATION_RULE, + /// ///The Discount metafield owner type. /// DISCOUNT, @@ -27677,6 +28550,21 @@ public class MetafieldRelationEdge : GraphQLObject, IEdge public MetafieldRelation? node { get; set; } } + /// + ///Defines how the metafields of a definition can be accessed in Storefront API surface areas, including Liquid and the GraphQL Storefront API. + /// + public enum MetafieldStorefrontAccess + { + /// + ///Metafields are accessible in the GraphQL Storefront API and online store Liquid templates. + /// + PUBLIC_READ, + /// + ///Metafields are not accessible in any Storefront API surface area. + /// + NONE, + } + /// ///By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, ///you need to create a `MetafieldStorefrontVisibility` record. A `MetafieldStorefrontVisibility` record is a list @@ -27904,6 +28792,10 @@ public enum MetafieldsSetUserErrorCode ///ApiPermission metafields can only be created or updated by the app owner. /// APP_NOT_AUTHORIZED, + /// + ///The metafield violates a capability restriction. + /// + CAPABILITY_VIOLATION, } /// @@ -27920,6 +28812,14 @@ public class Metaobject : GraphQLObject, INode, IMetafieldReference, /// public App? createdBy { get; set; } /// + ///The app used to create the object. + /// + public App? createdByApp { get; set; } + /// + ///The staff member who created the metaobject. + /// + public StaffMember? createdByStaff { get; set; } + /// ///The MetaobjectDefinition that models this object type. /// public MetaobjectDefinition? definition { get; set; } @@ -27954,6 +28854,10 @@ public class Metaobject : GraphQLObject, INode, IMetafieldReference, [Obsolete("Use `createdByStaff` instead.")] public StaffMember? staffMember { get; set; } /// + ///The recommended field to visually represent this metaobject. May be a file reference or color field. + /// + public MetaobjectField? thumbnailField { get; set; } + /// ///The type of the metaobject. /// public string? type { get; set; } @@ -28213,6 +29117,14 @@ public class MetaobjectDefinition : GraphQLObject, INode /// public MetaobjectCapabilities? capabilities { get; set; } /// + ///The app used to create the metaobject definition. + /// + public App? createdByApp { get; set; } + /// + ///The staff member who created the metaobject definition. + /// + public StaffMember? createdByStaff { get; set; } + /// ///The administrative description. /// public string? description { get; set; } @@ -28225,6 +29137,10 @@ public class MetaobjectDefinition : GraphQLObject, INode /// public IEnumerable? fieldDefinitions { get; set; } /// + ///Whether this metaobject definition has field whose type can visually represent a metaobject with the `thumbnailField`. + /// + public bool? hasThumbnailField { get; set; } + /// ///A globally-unique ID. /// public string? id { get; set; } @@ -28377,6 +29293,10 @@ public class MetaobjectField : GraphQLObject /// public MetafieldReferenceConnection? references { get; set; } /// + ///For file reference or color fields, provides visual attributes for this field. + /// + public MetaobjectThumbnail? thumbnail { get; set; } + /// ///The type of the field. /// public string? type { get; set; } @@ -28450,6 +29370,21 @@ public enum MetaobjectStorefrontAccess PUBLIC_READ, } + /// + ///Provides attributes for visual representation. + /// + public class MetaobjectThumbnail : GraphQLObject + { + /// + ///The file to be used for visual representation of this metaobject. + /// + public IFile? file { get; set; } + /// + ///The hexadecimal color code to be used for respresenting this metaobject. + /// + public string? hex { get; set; } + } + /// ///Return type for `metaobjectUpdate` mutation. /// @@ -29022,6 +29957,12 @@ public class Mutation : GraphQLObject /// public CustomerAddTaxExemptionsPayload? customerAddTaxExemptions { get; set; } /// + ///Cancels a pending erasure of a customer's data. + /// + ///To request an erasure of a customer's data use the [customerRequestDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerRequestDataErasure). + /// + public CustomerCancelDataErasurePayload? customerCancelDataErasure { get; set; } + /// ///Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). /// public CustomerCreatePayload? customerCreate { get; set; } @@ -29106,6 +30047,12 @@ public class Mutation : GraphQLObject /// public CustomerReplaceTaxExemptionsPayload? customerReplaceTaxExemptions { get; set; } /// + ///Enqueues a request to erase customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#erase-customer-personal-data). + /// + ///To cancel the data erasure request use the [customerCancelDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerCancelDataErasure). + /// + public CustomerRequestDataErasurePayload? customerRequestDataErasure { get; set; } + /// ///Creates a customer segment members query. /// public CustomerSegmentMembersQueryCreatePayload? customerSegmentMembersQueryCreate { get; set; } @@ -29610,6 +30557,10 @@ public class Mutation : GraphQLObject /// public InventorySetOnHandQuantitiesPayload? inventorySetOnHandQuantities { get; set; } /// + ///Set up scheduled changes of inventory items. + /// + public InventorySetScheduledChangesPayload? inventorySetScheduledChanges { get; set; } + /// ///Activates a location. /// public LocationActivatePayload? locationActivate { get; set; } @@ -29668,6 +30619,10 @@ public class Mutation : GraphQLObject /// public MarketRegionsCreatePayload? marketRegionsCreate { get; set; } /// + ///Deletes a list of market regions. + /// + public MarketRegionsDeletePayload? marketRegionsDelete { get; set; } + /// ///Updates the properties of a market. /// public MarketUpdatePayload? marketUpdate { get; set; } @@ -29684,6 +30639,10 @@ public class Mutation : GraphQLObject /// public MarketWebPresenceUpdatePayload? marketWebPresenceUpdate { get; set; } /// + ///Deletes all external marketing activities. Deletion is performed by a background job, as it may take a bit of time to complete if a large number of activities are to be deleted. Attempting to create or modify external activities before the job has completed will result in the create/update/upsert mutation returning an error. + /// + public MarketingActivitiesDeleteAllExternalPayload? marketingActivitiesDeleteAllExternal { get; set; } + /// ///Create new marketing activity. /// public MarketingActivityCreatePayload? marketingActivityCreate { get; set; } @@ -29692,6 +30651,10 @@ public class Mutation : GraphQLObject /// public MarketingActivityCreateExternalPayload? marketingActivityCreateExternal { get; set; } /// + ///Deletes an external marketing activity. + /// + public MarketingActivityDeleteExternalPayload? marketingActivityDeleteExternal { get; set; } + /// ///Updates a marketing activity with the latest information. /// public MarketingActivityUpdatePayload? marketingActivityUpdate { get; set; } @@ -29700,10 +30663,20 @@ public class Mutation : GraphQLObject /// public MarketingActivityUpdateExternalPayload? marketingActivityUpdateExternal { get; set; } /// + ///Creates a new external marketing activity or updates an existing one. When optional fields are absent or null, associated information will be removed from an existing marketing activity. + /// + public MarketingActivityUpsertExternalPayload? marketingActivityUpsertExternal { get; set; } + /// ///Creates a new marketing engagement for a marketing activity or a marketing channel. /// public MarketingEngagementCreatePayload? marketingEngagementCreate { get; set; } /// + ///Marks channel-level engagement data such that it no longer appears in reports. + /// Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to + /// hide it from reports. + /// + public MarketingEngagementsDeletePayload? marketingEngagementsDelete { get; set; } + /// ///Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be ///checked against this definition and will have their type updated accordingly. For metafields that are not ///valid, they will remain unchanged but any attempts to update them must align with this definition. @@ -29792,6 +30765,10 @@ public class Mutation : GraphQLObject /// public MetaobjectUpsertPayload? metaobjectUpsert { get; set; } /// + ///Cancels an order. + /// + public OrderCancelPayload? orderCancel { get; set; } + /// ///Captures payment for an authorized transaction on an order. An order can only be captured if it has a successful authorization transaction. Capturing an order will claim the money reserved by the authorization. orderCapture can be used to capture multiple times as long as the OrderTransaction is multicapturable. To capture a partial payment, the included `amount` value should be less than the total order amount. Multicapture is available only to stores on a Shopify Plus plan. /// public OrderCapturePayload? orderCapture { get; set; } @@ -29826,6 +30803,10 @@ public class Mutation : GraphQLObject /// public OrderEditCommitPayload? orderEditCommit { get; set; } /// + ///Removes a discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + /// + public OrderEditRemoveDiscountPayload? orderEditRemoveDiscount { get; set; } + /// ///Removes a line item discount that was applied as part of an order edit. /// public OrderEditRemoveLineItemDiscountPayload? orderEditRemoveLineItemDiscount { get; set; } @@ -29834,6 +30815,10 @@ public class Mutation : GraphQLObject /// public OrderEditSetQuantityPayload? orderEditSetQuantity { get; set; } /// + ///Updates a manual line level discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + /// + public OrderEditUpdateDiscountPayload? orderEditUpdateDiscount { get; set; } + /// ///Sends an email invoice for an order. /// public OrderInvoiceSendPayload? orderInvoiceSend { get; set; } @@ -30502,14 +31487,42 @@ public class Mutation : GraphQLObject /// public SubscriptionBillingCycleScheduleEditPayload? subscriptionBillingCycleScheduleEdit { get; set; } /// + ///Skips a Subscription Billing Cycle. + /// + public SubscriptionBillingCycleSkipPayload? subscriptionBillingCycleSkip { get; set; } + /// + ///Unskips a Subscription Billing Cycle. + /// + public SubscriptionBillingCycleUnskipPayload? subscriptionBillingCycleUnskip { get; set; } + /// + ///Activates a Subscription Contract. + /// + public SubscriptionContractActivatePayload? subscriptionContractActivate { get; set; } + /// ///Creates a Subscription Contract. /// public SubscriptionContractAtomicCreatePayload? subscriptionContractAtomicCreate { get; set; } /// + ///Cancels a Subscription Contract. + /// + public SubscriptionContractCancelPayload? subscriptionContractCancel { get; set; } + /// ///Creates a Subscription Contract. /// public SubscriptionContractCreatePayload? subscriptionContractCreate { get; set; } /// + ///Expires a Subscription Contract. + /// + public SubscriptionContractExpirePayload? subscriptionContractExpire { get; set; } + /// + ///Fails a Subscription Contract. + /// + public SubscriptionContractFailPayload? subscriptionContractFail { get; set; } + /// + ///Pauses a Subscription Contract. + /// + public SubscriptionContractPausePayload? subscriptionContractPause { get; set; } + /// ///Allows for the easy change of a Product in a Contract or a Product price change. /// public SubscriptionContractProductChangePayload? subscriptionContractProductChange { get; set; } @@ -30632,6 +31645,18 @@ public class Mutation : GraphQLObject /// public UrlRedirectUpdatePayload? urlRedirectUpdate { get; set; } /// + ///Creates a validation. + /// + public ValidationCreatePayload? validationCreate { get; set; } + /// + ///Deletes a validation. + /// + public ValidationDeletePayload? validationDelete { get; set; } + /// + ///Update a validation. + /// + public ValidationUpdatePayload? validationUpdate { get; set; } + /// ///Creates a new web pixel settings. /// public WebPixelCreatePayload? webPixelCreate { get; set; } @@ -30739,6 +31764,7 @@ public class NavigationItem : GraphQLObject /// [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] [JsonDerivedType(typeof(AbandonedCheckout), typeDiscriminator: "AbandonedCheckout")] + [JsonDerivedType(typeof(AbandonedCheckoutLineItem), typeDiscriminator: "AbandonedCheckoutLineItem")] [JsonDerivedType(typeof(Abandonment), typeDiscriminator: "Abandonment")] [JsonDerivedType(typeof(AddAllProductsOperation), typeDiscriminator: "AddAllProductsOperation")] [JsonDerivedType(typeof(AdditionalFee), typeDiscriminator: "AdditionalFee")] @@ -30810,6 +31836,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(InventoryAdjustmentGroup), typeDiscriminator: "InventoryAdjustmentGroup")] [JsonDerivedType(typeof(InventoryItem), typeDiscriminator: "InventoryItem")] [JsonDerivedType(typeof(InventoryLevel), typeDiscriminator: "InventoryLevel")] + [JsonDerivedType(typeof(InventoryQuantity), typeDiscriminator: "InventoryQuantity")] [JsonDerivedType(typeof(LineItem), typeDiscriminator: "LineItem")] [JsonDerivedType(typeof(LineItemMutable), typeDiscriminator: "LineItemMutable")] [JsonDerivedType(typeof(Location), typeDiscriminator: "Location")] @@ -30871,6 +31898,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(ShopAddress), typeDiscriminator: "ShopAddress")] [JsonDerivedType(typeof(ShopPolicy), typeDiscriminator: "ShopPolicy")] [JsonDerivedType(typeof(ShopifyPaymentsAccount), typeDiscriminator: "ShopifyPaymentsAccount")] + [JsonDerivedType(typeof(ShopifyPaymentsBalanceTransaction), typeDiscriminator: "ShopifyPaymentsBalanceTransaction")] [JsonDerivedType(typeof(ShopifyPaymentsBankAccount), typeDiscriminator: "ShopifyPaymentsBankAccount")] [JsonDerivedType(typeof(ShopifyPaymentsDispute), typeDiscriminator: "ShopifyPaymentsDispute")] [JsonDerivedType(typeof(ShopifyPaymentsDisputeEvidence), typeDiscriminator: "ShopifyPaymentsDisputeEvidence")] @@ -30888,12 +31916,14 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(TransactionFee), typeDiscriminator: "TransactionFee")] [JsonDerivedType(typeof(UrlRedirect), typeDiscriminator: "UrlRedirect")] [JsonDerivedType(typeof(UrlRedirectImport), typeDiscriminator: "UrlRedirectImport")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] [JsonDerivedType(typeof(Video), typeDiscriminator: "Video")] [JsonDerivedType(typeof(WebPixel), typeDiscriminator: "WebPixel")] [JsonDerivedType(typeof(WebhookSubscription), typeDiscriminator: "WebhookSubscription")] public interface INode : IGraphQLObject { public AbandonedCheckout? AsAbandonedCheckout() => this as AbandonedCheckout; + public AbandonedCheckoutLineItem? AsAbandonedCheckoutLineItem() => this as AbandonedCheckoutLineItem; public Abandonment? AsAbandonment() => this as Abandonment; public AddAllProductsOperation? AsAddAllProductsOperation() => this as AddAllProductsOperation; public AdditionalFee? AsAdditionalFee() => this as AdditionalFee; @@ -30965,6 +31995,7 @@ public interface INode : IGraphQLObject public InventoryAdjustmentGroup? AsInventoryAdjustmentGroup() => this as InventoryAdjustmentGroup; public InventoryItem? AsInventoryItem() => this as InventoryItem; public InventoryLevel? AsInventoryLevel() => this as InventoryLevel; + public InventoryQuantity? AsInventoryQuantity() => this as InventoryQuantity; public LineItem? AsLineItem() => this as LineItem; public LineItemMutable? AsLineItemMutable() => this as LineItemMutable; public Location? AsLocation() => this as Location; @@ -31026,6 +32057,7 @@ public interface INode : IGraphQLObject public ShopAddress? AsShopAddress() => this as ShopAddress; public ShopPolicy? AsShopPolicy() => this as ShopPolicy; public ShopifyPaymentsAccount? AsShopifyPaymentsAccount() => this as ShopifyPaymentsAccount; + public ShopifyPaymentsBalanceTransaction? AsShopifyPaymentsBalanceTransaction() => this as ShopifyPaymentsBalanceTransaction; public ShopifyPaymentsBankAccount? AsShopifyPaymentsBankAccount() => this as ShopifyPaymentsBankAccount; public ShopifyPaymentsDispute? AsShopifyPaymentsDispute() => this as ShopifyPaymentsDispute; public ShopifyPaymentsDisputeEvidence? AsShopifyPaymentsDisputeEvidence() => this as ShopifyPaymentsDisputeEvidence; @@ -31043,6 +32075,7 @@ public interface INode : IGraphQLObject public TransactionFee? AsTransactionFee() => this as TransactionFee; public UrlRedirect? AsUrlRedirect() => this as UrlRedirect; public UrlRedirectImport? AsUrlRedirectImport() => this as UrlRedirectImport; + public Validation? AsValidation() => this as Validation; public Video? AsVideo() => this as Video; public WebPixel? AsWebPixel() => this as WebPixel; public WebhookSubscription? AsWebhookSubscription() => this as WebhookSubscription; @@ -31875,6 +32908,27 @@ public class OrderApp : GraphQLObject public string? name { get; set; } } + /// + ///Return type for `orderCancel` mutation. + /// + public class OrderCancelPayload : GraphQLObject + { + /// + ///The job that asynchronously cancels the order. + /// + public Job? job { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? orderCancelUserErrors { get; set; } + + /// + ///The list of errors that occurred from executing the mutation. + /// + [Obsolete("Use `orderCancelUserErrors` instead.")] + public IEnumerable? userErrors { get; set; } + } + /// ///Represents the reason for the order's cancellation. /// @@ -31906,6 +32960,44 @@ public enum OrderCancelReason OTHER, } + /// + ///Errors related to order cancellation. + /// + public class OrderCancelUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderCancelUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderCancelUserError`. + /// + public enum OrderCancelUserErrorCode + { + /// + ///An order refund was requested but the user does not have the refund_orders permission. + /// + NO_REFUND_PERMISSION, + /// + ///The record with the ID used as the input value couldn't be found. + /// + NOT_FOUND, + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///Details about the order cancellation. /// @@ -32255,6 +33347,51 @@ public class OrderEditCommitPayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///Return type for `orderEditRemoveDiscount` mutation. + /// + public class OrderEditRemoveDiscountPayload : GraphQLObject + { + /// + ///An order with the edits applied but not saved. + /// + public CalculatedOrder? calculatedOrder { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `OrderEditRemoveDiscount`. + /// + public class OrderEditRemoveDiscountUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderEditRemoveDiscountUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderEditRemoveDiscountUserError`. + /// + public enum OrderEditRemoveDiscountUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///Return type for `orderEditRemoveLineItemDiscount` mutation. /// @@ -32293,6 +33430,51 @@ public class OrderEditSetQuantityPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `orderEditUpdateDiscount` mutation. + /// + public class OrderEditUpdateDiscountPayload : GraphQLObject + { + /// + ///An order with the edits applied but not saved. + /// + public CalculatedOrder? calculatedOrder { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `OrderEditUpdateDiscount`. + /// + public class OrderEditUpdateDiscountUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderEditUpdateDiscountUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderEditUpdateDiscountUserError`. + /// + public enum OrderEditUpdateDiscountUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///Return type for `orderInvoiceSend` mutation. /// @@ -32455,6 +33637,14 @@ public enum OrderPaymentStatusResult ///Status is unknown. /// UNKNOWN, + /// + ///The payment is awaiting processing. + /// + INITIATED, + /// + ///The payment is pending with the provider, and may take a while. + /// + PENDING, } /// @@ -32835,6 +34025,10 @@ public class OrderTransaction : GraphQLObject, INode /// public MoneyV2? maximumRefundableV2 { get; set; } /// + ///Whether the transaction can be captured multiple times. + /// + public bool? multiCapturable { get; set; } + /// ///The associated order. /// public Order? order { get; set; } @@ -40480,6 +41674,14 @@ public class QueryRoot : GraphQLObject /// public UrlRedirectConnection? urlRedirects { get; set; } /// + ///Validation available on the shop. + /// + public Validation? validation { get; set; } + /// + ///Validations available on the shop. + /// + public ValidationConnection? validations { get; set; } + /// ///The web pixel configured by the app. /// public WebPixel? webPixel { get; set; } @@ -42612,6 +43814,26 @@ public class SavedSearchUpdatePayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///The set of valid sort keys for the ScheduledChange query. + /// + public enum ScheduledChangeSortKeys + { + /// + ///Sort by the `expected_at` value. + /// + EXPECTED_AT, + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + /// ///Script discount applications capture the intentions of a discount that ///was created by a Shopify Script for an order's line item or shipping line. @@ -42911,6 +44133,10 @@ public enum SearchResultType /// DISCOUNT_REDEEM_CODE, ORDER, + /// + ///A balance transaction. + /// + BALANCE_TRANSACTION, } /// @@ -45693,6 +46919,10 @@ public class ShopFeatures : GraphQLObject ///Whether a shop's online store can have CAPTCHA protection for domains not managed by Shopify. /// public bool? captchaExternalDomains { get; set; } + /// + ///Represents the cart transform feature configuration for the shop. + /// + public CartTransformFeature? cartTransform { get; set; } /// ///Whether the delivery profiles functionality is enabled for this shop. @@ -46191,6 +47421,10 @@ public class ShopifyPaymentsAccount : GraphQLObject, INo /// public IEnumerable? balance { get; set; } /// + ///A list of balance transactions associated with the shop. + /// + public ShopifyPaymentsBalanceTransactionConnection? balanceTransactions { get; set; } + /// ///All bank accounts configured for the Shopify Payments account. /// public ShopifyPaymentsBankAccountConnection? bankAccounts { get; set; } @@ -46260,6 +47494,82 @@ public class ShopifyPaymentsAccount : GraphQLObject, INo public IEnumerable? verifications { get; set; } } + /// + ///The adjustment order object. + /// + public class ShopifyPaymentsAdjustmentOrder : GraphQLObject + { + /// + ///The amount of the adjustment order. + /// + public MoneyV2? amount { get; set; } + /// + ///The link to the adjustment order. + /// + public string? link { get; set; } + /// + ///The name of the adjustment order. + /// + public string? name { get; set; } + } + + /// + ///A transaction that contributes to a Shopify Payments account balance. + /// + public class ShopifyPaymentsBalanceTransaction : GraphQLObject, INode + { + /// + ///The adjustment orders associated to the transaction. + /// + public IEnumerable? adjustmentsOrders { get; set; } + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///The net amount contributing to the merchant's balance. + /// + public MoneyV2? net { get; set; } + /// + ///The date and time when the balance transaction was processed. + /// + public DateTime? transactionDate { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple ShopifyPaymentsBalanceTransactions. + /// + public class ShopifyPaymentsBalanceTransactionConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in ShopifyPaymentsBalanceTransactionEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one ShopifyPaymentsBalanceTransaction and a cursor during pagination. + /// + public class ShopifyPaymentsBalanceTransactionEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of ShopifyPaymentsBalanceTransactionEdge. + /// + public ShopifyPaymentsBalanceTransaction? node { get; set; } + } + /// ///A bank account that can receive payouts. /// @@ -48550,6 +49860,96 @@ public class SubscriptionBillingCycleScheduleEditPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `subscriptionBillingCycleSkip` mutation. + /// + public class SubscriptionBillingCycleSkipPayload : GraphQLObject + { + /// + ///The updated billing cycle. + /// + public SubscriptionBillingCycle? billingCycle { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `SubscriptionBillingCycleSkip`. + /// + public class SubscriptionBillingCycleSkipUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionBillingCycleSkipUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `SubscriptionBillingCycleSkipUserError`. + /// + public enum SubscriptionBillingCycleSkipUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + + /// + ///Return type for `subscriptionBillingCycleUnskip` mutation. + /// + public class SubscriptionBillingCycleUnskipPayload : GraphQLObject + { + /// + ///The updated billing cycle. + /// + public SubscriptionBillingCycle? billingCycle { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `SubscriptionBillingCycleUnskip`. + /// + public class SubscriptionBillingCycleUnskipUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionBillingCycleUnskipUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `SubscriptionBillingCycleUnskipUserError`. + /// + public enum SubscriptionBillingCycleUnskipUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///The possible errors for a subscription billing cycle. /// @@ -48733,6 +50133,21 @@ public class SubscriptionContract : GraphQLObject, INode, public DateTime? updatedAt { get; set; } } + /// + ///Return type for `subscriptionContractActivate` mutation. + /// + public class SubscriptionContractActivatePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `subscriptionContractAtomicCreate` mutation. /// @@ -48816,6 +50231,21 @@ public interface ISubscriptionContractBase : IGraphQLObject public DateTime? updatedAt { get; } } + /// + ///Return type for `subscriptionContractCancel` mutation. + /// + public class SubscriptionContractCancelPayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An auto-generated type for paginating through multiple SubscriptionContracts. /// @@ -48876,6 +50306,36 @@ public enum SubscriptionContractErrorCode INVALID, } + /// + ///Return type for `subscriptionContractExpire` mutation. + /// + public class SubscriptionContractExpirePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///Return type for `subscriptionContractFail` mutation. + /// + public class SubscriptionContractFailPayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///The possible status values of the last payment on a subscription contract. /// @@ -48891,6 +50351,21 @@ public enum SubscriptionContractLastPaymentStatus FAILED, } + /// + ///Return type for `subscriptionContractPause` mutation. + /// + public class SubscriptionContractPausePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `subscriptionContractProductChange` mutation. /// @@ -48925,6 +50400,40 @@ public class SubscriptionContractSetNextBillingDatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `SubscriptionContractStatusUpdateUserError`. + /// + public enum SubscriptionContractStatusUpdateErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + /// + ///Subscription contract status cannot be changed once terminated. + /// + CONTRACT_TERMINATED, + } + + /// + ///Represents a subscription contract status update error. + /// + public class SubscriptionContractStatusUpdateUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionContractStatusUpdateErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///The possible status values of a subscription. /// @@ -48950,10 +50459,6 @@ public enum SubscriptionContractSubscriptionStatus ///The contract ended because billing failed and no further billing attempts are expected. /// FAILED, - /// - ///The contract has expired due to inactivity. - /// - STALE, } /// @@ -50382,6 +51887,10 @@ public class SuggestedOrderTransaction : GraphQLObject public OrderTransaction? parentTransaction { get; set; } + /// + ///The associated payment details related to the transaction. + /// + public IPaymentDetails? paymentDetails { get; set; } } /// @@ -52100,6 +53609,250 @@ public class UserError : GraphQLObject, IDisplayableError public string? message { get; set; } } + /// + ///A checkout server side validation installed on the shop. + /// + public class Validation : GraphQLObject, IHasMetafieldDefinitions, IHasMetafields, INode + { + /// + ///Whether the validation should block on failures other than expected violations. + /// + public bool? blockOnFailure { get; set; } + /// + ///Whether the validation is enabled on the merchant checkout. + /// + public bool? enabled { get; set; } + /// + ///The error history on the most recent version of the validation function. + /// + public FunctionsErrorHistory? errorHistory { get; set; } + /// + ///Global ID for the validation. + /// + public string? id { get; set; } + /// + ///Returns a metafield by namespace and key that belongs to the resource. + /// + public Metafield? metafield { get; set; } + /// + ///List of metafield definitions. + /// + public MetafieldDefinitionConnection? metafieldDefinitions { get; set; } + /// + ///List of metafields that belong to the resource. + /// + public MetafieldConnection? metafields { get; set; } + + /// + ///Returns a private metafield by namespace and key that belongs to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafield? privateMetafield { get; set; } + + /// + ///List of private metafields that belong to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafieldConnection? privateMetafields { get; set; } + /// + ///The Shopify Function implementing the validation. + /// + public ShopifyFunction? shopifyFunction { get; set; } + /// + ///The merchant-facing validation name. + /// + public string? title { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple Validations. + /// + public class ValidationConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in ValidationEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///Return type for `validationCreate` mutation. + /// + public class ValidationCreatePayload : GraphQLObject + { + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + /// + ///The created validation. + /// + public Validation? validation { get; set; } + } + + /// + ///Return type for `validationDelete` mutation. + /// + public class ValidationDeletePayload : GraphQLObject + { + /// + ///Returns the deleted validation ID. + /// + public string? deletedId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An auto-generated type which holds one Validation and a cursor during pagination. + /// + public class ValidationEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of ValidationEdge. + /// + public Validation? node { get; set; } + } + + /// + ///The set of valid sort keys for the Validation query. + /// + public enum ValidationSortKeys + { + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + + /// + ///Return type for `validationUpdate` mutation. + /// + public class ValidationUpdatePayload : GraphQLObject + { + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + /// + ///The updated validation. + /// + public Validation? validation { get; set; } + } + + /// + ///An error that occurs during the execution of a validation mutation. + /// + public class ValidationUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public ValidationUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `ValidationUserError`. + /// + public enum ValidationUserErrorCode + { + /// + ///Validation not found. + /// + NOT_FOUND, + /// + ///Function not found. + /// + FUNCTION_NOT_FOUND, + /// + ///Shop must be on a Shopify Plus plan to activate functions from a custom app. + /// + CUSTOM_APP_FUNCTION_NOT_ELIGIBLE, + /// + ///Function does not implement the required interface for this cart & checkout validation. + /// + FUNCTION_DOES_NOT_IMPLEMENT, + /// + ///Only unlisted apps can be used for this cart & checkout validation. + /// + PUBLIC_APP_NOT_ALLOWED, + /// + ///Function is pending deletion. + /// + FUNCTION_PENDING_DELETION, + /// + ///The type is invalid. + /// + INVALID_TYPE, + /// + ///The value is invalid for the metafield type or for the definition options. + /// + INVALID_VALUE, + /// + ///ApiPermission metafields can only be created or updated by the app owner. + /// + APP_NOT_AUTHORIZED, + /// + ///Unstructured reserved namespace. + /// + UNSTRUCTURED_RESERVED_NAMESPACE, + /// + ///Owner type can't be used in this mutation. + /// + DISALLOWED_OWNER_TYPE, + /// + ///The input value isn't included in the list. + /// + INCLUSION, + /// + ///The input value is already taken. + /// + TAKEN, + /// + ///The input value needs to be blank. + /// + PRESENT, + /// + ///The input value is blank. + /// + BLANK, + /// + ///The input value is too long. + /// + TOO_LONG, + /// + ///The input value is too short. + /// + TOO_SHORT, + } + /// ///Represents a credit card payment instrument. /// @@ -52447,6 +54200,10 @@ public class WebhookSubscription : GraphQLObject, ILegacyIn [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] public IEnumerable? privateMetafieldNamespaces { get; set; } /// + ///An additional constraint to refine the type of event that triggers the webhook. Only supported on certain topics. See our guide to [sub-topics](https://shopify.dev/docs/apps/webhooks/sub-topics) for more. + /// + public string? subTopic { get; set; } + /// ///The type of event that triggers the webhook. The topic determines when the webhook subscription sends a webhook, as well as what class of data object that webhook contains. /// public WebhookSubscriptionTopic? topic { get; set; } @@ -52846,6 +54603,14 @@ public enum WebhookSubscriptionTopic /// FULFILLMENT_ORDERS_PLACED_ON_HOLD, /// + ///The webhook topic for `fulfillment_orders/merged` events. Occurs when multiple fulfillment orders are merged into a single fulfillment order. Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. + /// + FULFILLMENT_ORDERS_MERGED, + /// + ///The webhook topic for `fulfillment_orders/split` events. Occurs when a fulfillment order is split into multiple fulfillment orders. Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. + /// + FULFILLMENT_ORDERS_SPLIT, + /// ///The webhook topic for `product_listings/add` events. Occurs whenever an active product is listed on a channel. Requires the `read_product_listings` scope. /// PRODUCT_LISTINGS_ADD, @@ -53251,6 +55016,66 @@ public enum WebhookSubscriptionTopic ///The webhook topic for `company_contact_roles/revoke` events. Occurs whenever a role is revoked from a contact at a location. Requires the `read_customers` scope. /// COMPANY_CONTACT_ROLES_REVOKE, + /// + ///The webhook topic for `subscription_contracts/activate` events. Occurs when a subscription contract is activated. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_ACTIVATE, + /// + ///The webhook topic for `subscription_contracts/pause` events. Occurs when a subscription contract is paused. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_PAUSE, + /// + ///The webhook topic for `subscription_contracts/cancel` events. Occurs when a subscription contract is canceled. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_CANCEL, + /// + ///The webhook topic for `subscription_contracts/fail` events. Occurs when a subscription contract is failed. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_FAIL, + /// + ///The webhook topic for `subscription_contracts/expire` events. Occurs when a subscription contract expires. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_EXPIRE, + /// + ///The webhook topic for `subscription_billing_cycles/skip` events. Occurs whenever a subscription contract billing cycle is skipped. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_BILLING_CYCLES_SKIP, + /// + ///The webhook topic for `subscription_billing_cycles/unskip` events. Occurs whenever a subscription contract billing cycle is unskipped. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_BILLING_CYCLES_UNSKIP, + /// + ///The webhook topic for `metaobjects/create` events. Occurs when a metaobject is created. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_CREATE, + /// + ///The webhook topic for `metaobjects/update` events. Occurs when a metaobject is updated. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_UPDATE, + /// + ///The webhook topic for `metaobjects/delete` events. Occurs when a metaobject is deleted. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_DELETE, + /// + ///The webhook topic for `discounts/create` events. Occurs whenever a discount is created. Requires the `read_discounts` scope. + /// + DISCOUNTS_CREATE, + /// + ///The webhook topic for `discounts/update` events. Occurs whenever a discount is updated. Requires the `read_discounts` scope. + /// + DISCOUNTS_UPDATE, + /// + ///The webhook topic for `discounts/delete` events. Occurs whenever a discount is deleted. Requires the `read_discounts` scope. + /// + DISCOUNTS_DELETE, + /// + ///The webhook topic for `discounts/redeemcode_added` events. Occurs whenever a redeem code is added to a code discount. Requires the `read_discounts` scope. + /// + DISCOUNTS_REDEEMCODE_ADDED, + /// + ///The webhook topic for `discounts/redeemcode_removed` events. Occurs whenever a redeem code on a code discount is deleted. Requires the `read_discounts` scope. + /// + DISCOUNTS_REDEEMCODE_REMOVED, } /// diff --git a/ShopifySharp/Services/ShopifyService.cs b/ShopifySharp/Services/ShopifyService.cs index ddb6b945..fcc42085 100644 --- a/ShopifySharp/Services/ShopifyService.cs +++ b/ShopifySharp/Services/ShopifyService.cs @@ -20,7 +20,7 @@ public abstract class ShopifyService : IShopifyService { #nullable enable - public virtual string APIVersion => "2023-10"; + public virtual string APIVersion => "2024-01"; public virtual bool SupportsAPIVersioning => true; protected Uri _ShopUri { get; set; }