From 71960a201cfd67955b292a9ea167e5e1d9ae7748 Mon Sep 17 00:00:00 2001
From: yoshi-automation <yoshi-automation@google.com>
Date: Fri, 5 Jun 2020 15:32:33 -0700
Subject: [PATCH] feat(content): update the API

#### content:v2
The following keys were added:
- schemas.OrderShipment.properties.scheduledDeliveryDetails.$ref
- schemas.OrderShipment.properties.scheduledDeliveryDetails.description
- schemas.OrderShipmentScheduledDeliveryDetails.id
- schemas.OrderShipmentScheduledDeliveryDetails.properties.carrierPhoneNumber.description
- schemas.OrderShipmentScheduledDeliveryDetails.properties.carrierPhoneNumber.type
- schemas.OrderShipmentScheduledDeliveryDetails.properties.scheduledDate.description
- schemas.OrderShipmentScheduledDeliveryDetails.properties.scheduledDate.type
- schemas.OrderShipmentScheduledDeliveryDetails.type

The following keys were changed:
- resources.orders.methods.returnrefundlineitem.description
- schemas.OrdersCustomBatchRequestEntryUpdateShipment.properties.status.description
- schemas.OrdersUpdateShipmentRequest.properties.status.description
- schemas.ReturnShipment.properties.state.description

#### content:v2.1
The following keys were added:
- resources.orders.methods.refunditem.description
- resources.orders.methods.refunditem.httpMethod
- resources.orders.methods.refunditem.id
- resources.orders.methods.refunditem.parameterOrder
- resources.orders.methods.refunditem.parameters.merchantId.description
- resources.orders.methods.refunditem.parameters.merchantId.format
- resources.orders.methods.refunditem.parameters.merchantId.location
- resources.orders.methods.refunditem.parameters.merchantId.required
- resources.orders.methods.refunditem.parameters.merchantId.type
- resources.orders.methods.refunditem.parameters.orderId.description
- resources.orders.methods.refunditem.parameters.orderId.location
- resources.orders.methods.refunditem.parameters.orderId.required
- resources.orders.methods.refunditem.parameters.orderId.type
- resources.orders.methods.refunditem.path
- resources.orders.methods.refunditem.request.$ref
- resources.orders.methods.refunditem.response.$ref
- resources.orders.methods.refunditem.scopes
- resources.orders.methods.refundorder.description
- resources.orders.methods.refundorder.httpMethod
- resources.orders.methods.refundorder.id
- resources.orders.methods.refundorder.parameterOrder
- resources.orders.methods.refundorder.parameters.merchantId.description
- resources.orders.methods.refundorder.parameters.merchantId.format
- resources.orders.methods.refundorder.parameters.merchantId.location
- resources.orders.methods.refundorder.parameters.merchantId.required
- resources.orders.methods.refundorder.parameters.merchantId.type
- resources.orders.methods.refundorder.parameters.orderId.description
- resources.orders.methods.refundorder.parameters.orderId.location
- resources.orders.methods.refundorder.parameters.orderId.required
- resources.orders.methods.refundorder.parameters.orderId.type
- resources.orders.methods.refundorder.path
- resources.orders.methods.refundorder.request.$ref
- resources.orders.methods.refundorder.response.$ref
- resources.orders.methods.refundorder.scopes
- schemas.Order.properties.annotations.description
- schemas.Order.properties.annotations.items.$ref
- schemas.Order.properties.annotations.type
- schemas.OrderLineItemShippingDetails.properties.pickupPromiseInMinutes.description
- schemas.OrderLineItemShippingDetails.properties.pickupPromiseInMinutes.format
- schemas.OrderLineItemShippingDetails.properties.pickupPromiseInMinutes.type
- schemas.OrderOrderAnnotation.id
- schemas.OrderOrderAnnotation.properties.key.description
- schemas.OrderOrderAnnotation.properties.key.type
- schemas.OrderOrderAnnotation.properties.value.description
- schemas.OrderOrderAnnotation.properties.value.type
- schemas.OrderOrderAnnotation.type
- schemas.OrderPickupDetails.properties.pickupType.description
- schemas.OrderPickupDetails.properties.pickupType.type
- schemas.OrderShipment.properties.scheduledDeliveryDetails.$ref
- schemas.OrderShipment.properties.scheduledDeliveryDetails.description
- schemas.OrderShipmentScheduledDeliveryDetails.id
- schemas.OrderShipmentScheduledDeliveryDetails.properties.carrierPhoneNumber.description
- schemas.OrderShipmentScheduledDeliveryDetails.properties.carrierPhoneNumber.type
- schemas.OrderShipmentScheduledDeliveryDetails.properties.scheduledDate.description
- schemas.OrderShipmentScheduledDeliveryDetails.properties.scheduledDate.type
- schemas.OrderShipmentScheduledDeliveryDetails.type
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.id
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.amount.$ref
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.amount.description
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.fullRefund.description
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.fullRefund.type
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.lineItemId.description
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.lineItemId.type
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.productId.description
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.productId.type
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.quantity.description
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.quantity.format
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.properties.quantity.type
- schemas.OrdersCustomBatchRequestEntryRefundItemItem.type
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.id
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.properties.amount.$ref
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.properties.amount.description
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.properties.fullRefund.description
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.properties.fullRefund.type
- schemas.OrdersCustomBatchRequestEntryRefundItemShipping.type
- schemas.OrdersRefundItemRequest.id
- schemas.OrdersRefundItemRequest.properties.items.description
- schemas.OrdersRefundItemRequest.properties.items.items.$ref
- schemas.OrdersRefundItemRequest.properties.items.type
- schemas.OrdersRefundItemRequest.properties.operationId.description
- schemas.OrdersRefundItemRequest.properties.operationId.type
- schemas.OrdersRefundItemRequest.properties.reason.description
- schemas.OrdersRefundItemRequest.properties.reason.type
- schemas.OrdersRefundItemRequest.properties.reasonText.description
- schemas.OrdersRefundItemRequest.properties.reasonText.type
- schemas.OrdersRefundItemRequest.properties.shipping.$ref
- schemas.OrdersRefundItemRequest.properties.shipping.description
- schemas.OrdersRefundItemRequest.type
- schemas.OrdersRefundItemResponse.id
- schemas.OrdersRefundItemResponse.properties.executionStatus.description
- schemas.OrdersRefundItemResponse.properties.executionStatus.type
- schemas.OrdersRefundItemResponse.properties.kind.default
- schemas.OrdersRefundItemResponse.properties.kind.description
- schemas.OrdersRefundItemResponse.properties.kind.type
- schemas.OrdersRefundItemResponse.type
- schemas.OrdersRefundOrderRequest.id
- schemas.OrdersRefundOrderRequest.properties.amount.$ref
- schemas.OrdersRefundOrderRequest.properties.amount.description
- schemas.OrdersRefundOrderRequest.properties.fullRefund.description
- schemas.OrdersRefundOrderRequest.properties.fullRefund.type
- schemas.OrdersRefundOrderRequest.properties.operationId.description
- schemas.OrdersRefundOrderRequest.properties.operationId.type
- schemas.OrdersRefundOrderRequest.properties.reason.description
- schemas.OrdersRefundOrderRequest.properties.reason.type
- schemas.OrdersRefundOrderRequest.properties.reasonText.description
- schemas.OrdersRefundOrderRequest.properties.reasonText.type
- schemas.OrdersRefundOrderRequest.type
- schemas.OrdersRefundOrderResponse.id
- schemas.OrdersRefundOrderResponse.properties.executionStatus.description
- schemas.OrdersRefundOrderResponse.properties.executionStatus.type
- schemas.OrdersRefundOrderResponse.properties.kind.default
- schemas.OrdersRefundOrderResponse.properties.kind.description
- schemas.OrdersRefundOrderResponse.properties.kind.type
- schemas.OrdersRefundOrderResponse.type
- schemas.OrdersUpdateShipmentRequest.properties.lastPickupDate.description
- schemas.OrdersUpdateShipmentRequest.properties.lastPickupDate.type
- schemas.OrdersUpdateShipmentRequest.properties.readyPickupDate.description
- schemas.OrdersUpdateShipmentRequest.properties.readyPickupDate.type
- schemas.OrdersUpdateShipmentRequest.properties.undeliveredDate.description
- schemas.OrdersUpdateShipmentRequest.properties.undeliveredDate.type
- schemas.ProductStatusDestinationStatus.properties.status.description

The following keys were changed:
- resources.orders.methods.gettestordertemplate.parameters.templateName.enum
- resources.orders.methods.gettestordertemplate.parameters.templateName.enumDescriptions
- resources.orders.methods.returnrefundlineitem.description
- schemas.OrderPromotion.properties.applicableItems.description
- schemas.OrderPromotion.properties.appliedItems.description
- schemas.OrdersUpdateShipmentRequest.properties.status.description
- schemas.ReturnShipment.properties.state.description
---
 discovery/content-v2.1.json | 273 ++++++++++++++++++-
 discovery/content-v2.json   |  30 ++-
 src/apis/content/v2.1.ts    | 504 +++++++++++++++++++++++++++++++++++-
 src/apis/content/v2.ts      |  22 +-
 4 files changed, 805 insertions(+), 24 deletions(-)

diff --git a/discovery/content-v2.1.json b/discovery/content-v2.1.json
index c749ea285b..e33d3c8033 100644
--- a/discovery/content-v2.1.json
+++ b/discovery/content-v2.1.json
@@ -15,7 +15,7 @@
   "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/shopping-content",
-  "etag": "\"u9GIe6H63LSGq-9_t39K2Zx_EAc/Yryi_j1si0UYSDrVQgsmKlmNp7Q\"",
+  "etag": "\"u9GIe6H63LSGq-9_t39K2Zx_EAc/N8mdGR5CdqP9V1ItPpqAuiW0638\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -2037,13 +2037,15 @@
                 "template1a",
                 "template1b",
                 "template2",
-                "template3"
+                "template3",
+                "template4"
               ],
               "enumDescriptions": [
                 "",
                 "",
                 "",
                 "",
+                "",
                 ""
               ],
               "location": "path",
@@ -2180,6 +2182,74 @@
             "https://www.googleapis.com/auth/content"
           ]
         },
+        "refunditem": {
+          "description": "Issues a partial or total refund for items and shipment.",
+          "httpMethod": "POST",
+          "id": "content.orders.refunditem",
+          "parameterOrder": [
+            "merchantId",
+            "orderId"
+          ],
+          "parameters": {
+            "merchantId": {
+              "description": "The ID of the account that manages the order. This cannot be a multi-client account.",
+              "format": "uint64",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            },
+            "orderId": {
+              "description": "The ID of the order to refund.",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "{merchantId}/orders/{orderId}/refunditem",
+          "request": {
+            "$ref": "OrdersRefundItemRequest"
+          },
+          "response": {
+            "$ref": "OrdersRefundItemResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/content"
+          ]
+        },
+        "refundorder": {
+          "description": "Issues a partial or total refund for an order.",
+          "httpMethod": "POST",
+          "id": "content.orders.refundorder",
+          "parameterOrder": [
+            "merchantId",
+            "orderId"
+          ],
+          "parameters": {
+            "merchantId": {
+              "description": "The ID of the account that manages the order. This cannot be a multi-client account.",
+              "format": "uint64",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            },
+            "orderId": {
+              "description": "The ID of the order to refund.",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "{merchantId}/orders/{orderId}/refundorder",
+          "request": {
+            "$ref": "OrdersRefundOrderRequest"
+          },
+          "response": {
+            "$ref": "OrdersRefundOrderResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/content"
+          ]
+        },
         "rejectreturnlineitem": {
           "description": "Rejects return on an line item.",
           "httpMethod": "POST",
@@ -2215,7 +2285,7 @@
           ]
         },
         "returnrefundlineitem": {
-          "description": "Returns and refunds a line item. Note that this method can only be called on fully shipped orders.",
+          "description": "Returns and refunds a line item. Note that this method can only be called on fully shipped orders. Please also note that the Orderreturns API is the preferred way to handle returns after you receive a return from a customer. You can use Orderreturns.list or Orderreturns.get to search for the return, and then use Orderreturns.processreturn to issue the refund. If the return cannot be found, then we recommend using this API to issue a refund.",
           "httpMethod": "POST",
           "id": "content.orders.returnrefundlineitem",
           "parameterOrder": [
@@ -3608,7 +3678,7 @@
       }
     }
   },
-  "revision": "20200512",
+  "revision": "20200529",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -6106,6 +6176,13 @@
           "description": "Whether the order was acknowledged.",
           "type": "boolean"
         },
+        "annotations": {
+          "description": "List of key-value pairs that are attached to a given order.",
+          "items": {
+            "$ref": "OrderOrderAnnotation"
+          },
+          "type": "array"
+        },
         "billingAddress": {
           "$ref": "OrderAddress",
           "description": "The billing address."
@@ -6612,6 +6689,11 @@
           },
           "description": "Required. Details of the shipping method."
         },
+        "pickupPromiseInMinutes": {
+          "description": "The promised time in minutes in which the order will be ready for pickup. This only applies to buy-online-pickup-in-store same-day order.",
+          "format": "uint32",
+          "type": "integer"
+        },
         "shipByDate": {
           "annotations": {
             "required": [
@@ -6681,6 +6763,20 @@
       },
       "type": "object"
     },
+    "OrderOrderAnnotation": {
+      "id": "OrderOrderAnnotation",
+      "properties": {
+        "key": {
+          "description": "Key for additional google provided (as key-value pairs) annotation.",
+          "type": "string"
+        },
+        "value": {
+          "description": "Value for additional google provided (as key-value pairs) annotation.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "OrderPickupDetails": {
       "id": "OrderPickupDetails",
       "properties": {
@@ -6698,6 +6794,10 @@
         "locationId": {
           "description": "ID of the pickup location.",
           "type": "string"
+        },
+        "pickupType": {
+          "description": "The pickup type of this order.\n\nAcceptable values are:  \n- \"`merchantStore`\" \n- \"`merchantStoreCurbside`\" \n- \"`merchantStoreLocker`\" \n- \"`thirdPartyPickupPoint`\" \n- \"`thirdPartyLocker`\"",
+          "type": "string"
         }
       },
       "type": "object"
@@ -6720,14 +6820,14 @@
       "id": "OrderPromotion",
       "properties": {
         "applicableItems": {
-          "description": "Items which this promotion may be applied to. If empty, there are no restrictions on applicable items and quantity.",
+          "description": "Items that this promotion may be applied to. If empty, there are no restrictions on applicable items and quantity. This field will also be empty for shipping promotions because shipping is not tied to any specific item.",
           "items": {
             "$ref": "OrderPromotionItem"
           },
           "type": "array"
         },
         "appliedItems": {
-          "description": "Items which this promotion have been applied to. Do not provide for `orders.createtestorder`.",
+          "description": "Items that this promotion have been applied to. Do not provide for `orders.createtestorder`. This field will be empty for shipping promotions because shipping is not tied to any specific item.",
           "items": {
             "$ref": "OrderPromotionItem"
           },
@@ -6979,6 +7079,10 @@
           },
           "type": "array"
         },
+        "scheduledDeliveryDetails": {
+          "$ref": "OrderShipmentScheduledDeliveryDetails",
+          "description": "Delivery details of the shipment if scheduling is needed."
+        },
         "shipmentGroupId": {
           "description": "The shipment group ID of the shipment. This is set in shiplineitems request.",
           "type": "string"
@@ -7013,6 +7117,20 @@
       },
       "type": "object"
     },
+    "OrderShipmentScheduledDeliveryDetails": {
+      "id": "OrderShipmentScheduledDeliveryDetails",
+      "properties": {
+        "carrierPhoneNumber": {
+          "description": "The phone number of the carrier fulfilling the delivery.",
+          "type": "string"
+        },
+        "scheduledDate": {
+          "description": "The date a shipment is scheduled for delivery, in ISO 8601 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "OrderinvoicesCreateChargeInvoiceRequest": {
       "id": "OrderinvoicesCreateChargeInvoiceRequest",
       "properties": {
@@ -7539,6 +7657,47 @@
       },
       "type": "object"
     },
+    "OrdersCustomBatchRequestEntryRefundItemItem": {
+      "id": "OrdersCustomBatchRequestEntryRefundItemItem",
+      "properties": {
+        "amount": {
+          "$ref": "MonetaryAmount",
+          "description": "The amount that is refunded. In case of multiple refunds,  \n- If the quantity of refunded items changed, this should contain the total refund per item. \n- If the quantity of the refunded items remained the same, this should be the newly refunded amount."
+        },
+        "fullRefund": {
+          "description": "If true, the full item will be refunded. If this is true, amount should not be provided and will be ignored.",
+          "type": "boolean"
+        },
+        "lineItemId": {
+          "description": "The ID of the line item. Either lineItemId or productId is required.",
+          "type": "string"
+        },
+        "productId": {
+          "description": "The ID of the product. This is the REST ID used in the products service. Either lineItemId or productId is required.",
+          "type": "string"
+        },
+        "quantity": {
+          "description": "The number of products that are refunded.",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
+      "type": "object"
+    },
+    "OrdersCustomBatchRequestEntryRefundItemShipping": {
+      "id": "OrdersCustomBatchRequestEntryRefundItemShipping",
+      "properties": {
+        "amount": {
+          "$ref": "Price",
+          "description": "The amount that is refunded. If this is not the first refund for the shipment, this should be the newly refunded amount."
+        },
+        "fullRefund": {
+          "description": "If set to true, all shipping costs for the order will be refunded. If this is true, amount should not be provided and will be ignored.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
     "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo": {
       "id": "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo",
       "properties": {
@@ -7667,6 +7826,91 @@
       },
       "type": "object"
     },
+    "OrdersRefundItemRequest": {
+      "id": "OrdersRefundItemRequest",
+      "properties": {
+        "items": {
+          "description": "The items that are refunded. Either Item or Shipping must be provided in the request.",
+          "items": {
+            "$ref": "OrdersCustomBatchRequestEntryRefundItemItem"
+          },
+          "type": "array"
+        },
+        "operationId": {
+          "description": "The ID of the operation. Unique across all operations for a given order.",
+          "type": "string"
+        },
+        "reason": {
+          "description": "The reason for the refund.\n\nAcceptable values are:  \n- \"`shippingCostAdjustment`\" \n- \"`priceAdjustment`\" \n- \"`taxAdjustment`\" \n- \"`feeAdjustment`\" \n- \"`courtesyAdjustment`\" \n- \"`adjustment`\" \n- \"`customerCancelled`\" \n- \"`noInventory`\" \n- \"`productNotAsDescribed`\" \n- \"`undeliverableShippingAddress`\" \n- \"`wrongProductShipped`\" \n- \"`lateShipmentCredit`\" \n- \"`deliveredLateByCarrier`\" \n- \"`productArrivedDamaged`\"",
+          "type": "string"
+        },
+        "reasonText": {
+          "description": "The explanation of the reason.",
+          "type": "string"
+        },
+        "shipping": {
+          "$ref": "OrdersCustomBatchRequestEntryRefundItemShipping",
+          "description": "The refund on shipping. Optional, but either Item or Shipping must be provided in the request."
+        }
+      },
+      "type": "object"
+    },
+    "OrdersRefundItemResponse": {
+      "id": "OrdersRefundItemResponse",
+      "properties": {
+        "executionStatus": {
+          "description": "The status of the execution.\n\nAcceptable values are:  \n- \"`duplicate`\" \n- \"`executed`\"",
+          "type": "string"
+        },
+        "kind": {
+          "default": "content#ordersRefundItemResponse",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersRefundItemResponse\".",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "OrdersRefundOrderRequest": {
+      "id": "OrdersRefundOrderRequest",
+      "properties": {
+        "amount": {
+          "$ref": "MonetaryAmount",
+          "description": "The amount that is refunded. If this is not the first refund for the order, this should be the newly refunded amount."
+        },
+        "fullRefund": {
+          "description": "If true, the full order will be refunded, including shipping. If this is true, amount should not be provided and will be ignored.",
+          "type": "boolean"
+        },
+        "operationId": {
+          "description": "The ID of the operation. Unique across all operations for a given order.",
+          "type": "string"
+        },
+        "reason": {
+          "description": "The reason for the refund.\n\nAcceptable values are:  \n- \"`courtesyAdjustment`\" \n- \"`other`\"",
+          "type": "string"
+        },
+        "reasonText": {
+          "description": "The explanation of the reason.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "OrdersRefundOrderResponse": {
+      "id": "OrdersRefundOrderResponse",
+      "properties": {
+        "executionStatus": {
+          "description": "The status of the execution.\n\nAcceptable values are:  \n- \"`duplicate`\" \n- \"`executed`\"",
+          "type": "string"
+        },
+        "kind": {
+          "default": "content#ordersRefundOrderResponse",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersRefundOrderResponse\".",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "OrdersRejectReturnLineItemRequest": {
       "id": "OrdersRejectReturnLineItemRequest",
       "properties": {
@@ -7930,21 +8174,33 @@
           "description": "Date on which the shipment has been delivered, in ISO 8601 format. Optional and can be provided only if `status` is `delivered`.",
           "type": "string"
         },
+        "lastPickupDate": {
+          "description": "Date after which the pickup will expire, in ISO 8601 format. Required only when order is buy-online-pickup-in-store(BOPIS) and `status` is `ready for pickup`.",
+          "type": "string"
+        },
         "operationId": {
           "description": "The ID of the operation. Unique across all operations for a given order.",
           "type": "string"
         },
+        "readyPickupDate": {
+          "description": "Date on which the shipment has been ready for pickup, in ISO 8601 format. Optional and can be provided only if `status` is `ready for pickup`.",
+          "type": "string"
+        },
         "shipmentId": {
           "description": "The ID of the shipment.",
           "type": "string"
         },
         "status": {
-          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\"",
+          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\" \n- \"`readyForPickup`\"",
           "type": "string"
         },
         "trackingId": {
           "description": "The tracking ID for the shipment. Not updated if missing.",
           "type": "string"
+        },
+        "undeliveredDate": {
+          "description": "Date on which the shipment has been undeliverable, in ISO 8601 format. Optional and can be provided only if `status` is `undeliverable`.",
+          "type": "string"
         }
       },
       "type": "object"
@@ -9217,6 +9473,7 @@
           "type": "string"
         },
         "status": {
+          "description": "Destination approval status in targetCountry of the offer.",
           "type": "string"
         }
       },
@@ -10019,7 +10276,7 @@
           "type": "string"
         },
         "state": {
-          "description": "State of the shipment.\n\nAcceptable values are:  \n- \"`completed`\" \n- \"`new`\" \n- \"`shipped`\" \n- \"`undeliverable`\"",
+          "description": "State of the shipment.\n\nAcceptable values are:  \n- \"`completed`\" \n- \"`new`\" \n- \"`shipped`\" \n- \"`undeliverable`\" \n- \"`pending`\"",
           "type": "string"
         }
       },
diff --git a/discovery/content-v2.json b/discovery/content-v2.json
index b28928f27b..cddd07696b 100644
--- a/discovery/content-v2.json
+++ b/discovery/content-v2.json
@@ -15,7 +15,7 @@
   "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/shopping-content",
-  "etag": "\"u9GIe6H63LSGq-9_t39K2Zx_EAc/d-2pRwrRO0TgJDuvP8432gBRz7Y\"",
+  "etag": "\"u9GIe6H63LSGq-9_t39K2Zx_EAc/QidsRUtueh34L5qHte4rvUj6Z5Y\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -2212,7 +2212,7 @@
           ]
         },
         "returnrefundlineitem": {
-          "description": "Returns and refunds a line item. Note that this method can only be called on fully shipped orders.",
+          "description": "Returns and refunds a line item. Note that this method can only be called on fully shipped orders. Please also note that the Orderreturns API is the preferred way to handle returns after you receive a return from a customer. You can use Orderreturns.list or Orderreturns.get to search for the return, and then use Orderreturns.processreturn to issue the refund. If the return cannot be found, then we recommend using this API to issue a refund.",
           "httpMethod": "POST",
           "id": "content.orders.returnrefundlineitem",
           "parameterOrder": [
@@ -3162,7 +3162,7 @@
       }
     }
   },
-  "revision": "20200508",
+  "revision": "20200529",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -6616,6 +6616,10 @@
           },
           "type": "array"
         },
+        "scheduledDeliveryDetails": {
+          "$ref": "OrderShipmentScheduledDeliveryDetails",
+          "description": "Delivery details of the shipment if scheduling is needed."
+        },
         "status": {
           "description": "The status of the shipment.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`readyForPickup`\" \n- \"`shipped`\" \n- \"`undeliverable`\"",
           "type": "string"
@@ -6646,6 +6650,20 @@
       },
       "type": "object"
     },
+    "OrderShipmentScheduledDeliveryDetails": {
+      "id": "OrderShipmentScheduledDeliveryDetails",
+      "properties": {
+        "carrierPhoneNumber": {
+          "description": "The phone number of the carrier fulfilling the delivery.",
+          "type": "string"
+        },
+        "scheduledDate": {
+          "description": "The date a shipment is scheduled for delivery, in ISO 8601 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "OrderinvoicesCreateChargeInvoiceRequest": {
       "id": "OrderinvoicesCreateChargeInvoiceRequest",
       "properties": {
@@ -7460,7 +7478,7 @@
           "type": "string"
         },
         "status": {
-          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\"",
+          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\" \n- \"`readyForPickup`\"",
           "type": "string"
         },
         "trackingId": {
@@ -7996,7 +8014,7 @@
           "type": "string"
         },
         "status": {
-          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\"",
+          "description": "New status for the shipment. Not updated if missing.\n\nAcceptable values are:  \n- \"`delivered`\" \n- \"`undeliverable`\" \n- \"`readyForPickup`\"",
           "type": "string"
         },
         "trackingId": {
@@ -9801,7 +9819,7 @@
           "type": "string"
         },
         "state": {
-          "description": "State of the shipment.\n\nAcceptable values are:  \n- \"`completed`\" \n- \"`new`\" \n- \"`shipped`\" \n- \"`undeliverable`\"",
+          "description": "State of the shipment.\n\nAcceptable values are:  \n- \"`completed`\" \n- \"`new`\" \n- \"`shipped`\" \n- \"`undeliverable`\" \n- \"`pending`\"",
           "type": "string"
         }
       },
diff --git a/src/apis/content/v2.1.ts b/src/apis/content/v2.1.ts
index ad93044dce..7f7421b85e 100644
--- a/src/apis/content/v2.1.ts
+++ b/src/apis/content/v2.1.ts
@@ -1940,6 +1940,10 @@ export namespace content_v2_1 {
      * Whether the order was acknowledged.
      */
     acknowledged?: boolean | null;
+    /**
+     * List of key-value pairs that are attached to a given order.
+     */
+    annotations?: Schema$OrderOrderAnnotation[];
     /**
      * The billing address.
      */
@@ -2403,6 +2407,10 @@ export namespace content_v2_1 {
      * Required. Details of the shipping method.
      */
     method?: Schema$OrderLineItemShippingDetailsMethod;
+    /**
+     * The promised time in minutes in which the order will be ready for pickup. This only applies to buy-online-pickup-in-store same-day order.
+     */
+    pickupPromiseInMinutes?: number | null;
     /**
      * Required. The ship by date, in ISO 8601 format.
      */
@@ -2440,6 +2448,16 @@ export namespace content_v2_1 {
      */
     value?: string | null;
   }
+  export interface Schema$OrderOrderAnnotation {
+    /**
+     * Key for additional google provided (as key-value pairs) annotation.
+     */
+    key?: string | null;
+    /**
+     * Value for additional google provided (as key-value pairs) annotation.
+     */
+    value?: string | null;
+  }
   export interface Schema$OrderPickupDetails {
     /**
      * Address of the pickup location where the shipment should be sent. Note that `recipientName` in the address is the name of the business at the pickup location.
@@ -2453,6 +2471,10 @@ export namespace content_v2_1 {
      * ID of the pickup location.
      */
     locationId?: string | null;
+    /**
+     * The pickup type of this order.  Acceptable values are:   - &quot;`merchantStore`&quot;  - &quot;`merchantStoreCurbside`&quot;  - &quot;`merchantStoreLocker`&quot;  - &quot;`thirdPartyPickupPoint`&quot;  - &quot;`thirdPartyLocker`&quot;
+     */
+    pickupType?: string | null;
   }
   export interface Schema$OrderPickupDetailsCollector {
     /**
@@ -2466,11 +2488,11 @@ export namespace content_v2_1 {
   }
   export interface Schema$OrderPromotion {
     /**
-     * Items which this promotion may be applied to. If empty, there are no restrictions on applicable items and quantity.
+     * Items that this promotion may be applied to. If empty, there are no restrictions on applicable items and quantity. This field will also be empty for shipping promotions because shipping is not tied to any specific item.
      */
     applicableItems?: Schema$OrderPromotionItem[];
     /**
-     * Items which this promotion have been applied to. Do not provide for `orders.createtestorder`.
+     * Items that this promotion have been applied to. Do not provide for `orders.createtestorder`. This field will be empty for shipping promotions because shipping is not tied to any specific item.
      */
     appliedItems?: Schema$OrderPromotionItem[];
     /**
@@ -2918,6 +2940,38 @@ export namespace content_v2_1 {
      */
     quantity?: number | null;
   }
+  export interface Schema$OrdersCustomBatchRequestEntryRefundItemItem {
+    /**
+     * The amount that is refunded. In case of multiple refunds,   - If the quantity of refunded items changed, this should contain the total refund per item.  - If the quantity of the refunded items remained the same, this should be the newly refunded amount.
+     */
+    amount?: Schema$MonetaryAmount;
+    /**
+     * If true, the full item will be refunded. If this is true, amount should not be provided and will be ignored.
+     */
+    fullRefund?: boolean | null;
+    /**
+     * The ID of the line item. Either lineItemId or productId is required.
+     */
+    lineItemId?: string | null;
+    /**
+     * The ID of the product. This is the REST ID used in the products service. Either lineItemId or productId is required.
+     */
+    productId?: string | null;
+    /**
+     * The number of products that are refunded.
+     */
+    quantity?: number | null;
+  }
+  export interface Schema$OrdersCustomBatchRequestEntryRefundItemShipping {
+    /**
+     * The amount that is refunded. If this is not the first refund for the shipment, this should be the newly refunded amount.
+     */
+    amount?: Schema$Price;
+    /**
+     * If set to true, all shipping costs for the order will be refunded. If this is true, amount should not be provided and will be ignored.
+     */
+    fullRefund?: boolean | null;
+  }
   export interface Schema$OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo {
     /**
      * The carrier handling the shipment. See `shipments[].carrier` in the  Orders resource representation for a list of acceptable values.
@@ -2973,6 +3027,10 @@ export namespace content_v2_1 {
      * The line items that are shipped.
      */
     lineItems?: Schema$OrderShipmentLineItemShipment[];
+    /**
+     * Delivery details of the shipment if scheduling is needed.
+     */
+    scheduledDeliveryDetails?: Schema$OrderShipmentScheduledDeliveryDetails;
     /**
      * The shipment group ID of the shipment. This is set in shiplineitems request.
      */
@@ -3000,6 +3058,16 @@ export namespace content_v2_1 {
      */
     quantity?: number | null;
   }
+  export interface Schema$OrderShipmentScheduledDeliveryDetails {
+    /**
+     * The phone number of the carrier fulfilling the delivery.
+     */
+    carrierPhoneNumber?: string | null;
+    /**
+     * The date a shipment is scheduled for delivery, in ISO 8601 format.
+     */
+    scheduledDate?: string | null;
+  }
   export interface Schema$OrdersInStoreRefundLineItemRequest {
     /**
      * The ID of the line item to return. Either lineItemId or productId is required.
@@ -3055,6 +3123,70 @@ export namespace content_v2_1 {
     nextPageToken?: string | null;
     resources?: Schema$Order[];
   }
+  export interface Schema$OrdersRefundItemRequest {
+    /**
+     * The items that are refunded. Either Item or Shipping must be provided in the request.
+     */
+    items?: Schema$OrdersCustomBatchRequestEntryRefundItemItem[];
+    /**
+     * The ID of the operation. Unique across all operations for a given order.
+     */
+    operationId?: string | null;
+    /**
+     * The reason for the refund.  Acceptable values are:   - &quot;`shippingCostAdjustment`&quot;  - &quot;`priceAdjustment`&quot;  - &quot;`taxAdjustment`&quot;  - &quot;`feeAdjustment`&quot;  - &quot;`courtesyAdjustment`&quot;  - &quot;`adjustment`&quot;  - &quot;`customerCancelled`&quot;  - &quot;`noInventory`&quot;  - &quot;`productNotAsDescribed`&quot;  - &quot;`undeliverableShippingAddress`&quot;  - &quot;`wrongProductShipped`&quot;  - &quot;`lateShipmentCredit`&quot;  - &quot;`deliveredLateByCarrier`&quot;  - &quot;`productArrivedDamaged`&quot;
+     */
+    reason?: string | null;
+    /**
+     * The explanation of the reason.
+     */
+    reasonText?: string | null;
+    /**
+     * The refund on shipping. Optional, but either Item or Shipping must be provided in the request.
+     */
+    shipping?: Schema$OrdersCustomBatchRequestEntryRefundItemShipping;
+  }
+  export interface Schema$OrdersRefundItemResponse {
+    /**
+     * The status of the execution.  Acceptable values are:   - &quot;`duplicate`&quot;  - &quot;`executed`&quot;
+     */
+    executionStatus?: string | null;
+    /**
+     * Identifies what kind of resource this is. Value: the fixed string &quot;content#ordersRefundItemResponse&quot;.
+     */
+    kind?: string | null;
+  }
+  export interface Schema$OrdersRefundOrderRequest {
+    /**
+     * The amount that is refunded. If this is not the first refund for the order, this should be the newly refunded amount.
+     */
+    amount?: Schema$MonetaryAmount;
+    /**
+     * If true, the full order will be refunded, including shipping. If this is true, amount should not be provided and will be ignored.
+     */
+    fullRefund?: boolean | null;
+    /**
+     * The ID of the operation. Unique across all operations for a given order.
+     */
+    operationId?: string | null;
+    /**
+     * The reason for the refund.  Acceptable values are:   - &quot;`courtesyAdjustment`&quot;  - &quot;`other`&quot;
+     */
+    reason?: string | null;
+    /**
+     * The explanation of the reason.
+     */
+    reasonText?: string | null;
+  }
+  export interface Schema$OrdersRefundOrderResponse {
+    /**
+     * The status of the execution.  Acceptable values are:   - &quot;`duplicate`&quot;  - &quot;`executed`&quot;
+     */
+    executionStatus?: string | null;
+    /**
+     * Identifies what kind of resource this is. Value: the fixed string &quot;content#ordersRefundOrderResponse&quot;.
+     */
+    kind?: string | null;
+  }
   export interface Schema$OrdersRejectReturnLineItemRequest {
     /**
      * The ID of the line item to return. Either lineItemId or productId is required.
@@ -3249,22 +3381,34 @@ export namespace content_v2_1 {
      * Date on which the shipment has been delivered, in ISO 8601 format. Optional and can be provided only if `status` is `delivered`.
      */
     deliveryDate?: string | null;
+    /**
+     * Date after which the pickup will expire, in ISO 8601 format. Required only when order is buy-online-pickup-in-store(BOPIS) and `status` is `ready for pickup`.
+     */
+    lastPickupDate?: string | null;
     /**
      * The ID of the operation. Unique across all operations for a given order.
      */
     operationId?: string | null;
+    /**
+     * Date on which the shipment has been ready for pickup, in ISO 8601 format. Optional and can be provided only if `status` is `ready for pickup`.
+     */
+    readyPickupDate?: string | null;
     /**
      * The ID of the shipment.
      */
     shipmentId?: string | null;
     /**
-     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;
+     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;  - &quot;`readyForPickup`&quot;
      */
     status?: string | null;
     /**
      * The tracking ID for the shipment. Not updated if missing.
      */
     trackingId?: string | null;
+    /**
+     * Date on which the shipment has been undeliverable, in ISO 8601 format. Optional and can be provided only if `status` is `undeliverable`.
+     */
+    undeliveredDate?: string | null;
   }
   export interface Schema$OrdersUpdateShipmentResponse {
     /**
@@ -4188,6 +4332,9 @@ export namespace content_v2_1 {
      * The name of the destination
      */
     destination?: string | null;
+    /**
+     * Destination approval status in targetCountry of the offer.
+     */
     status?: string | null;
   }
   export interface Schema$ProductstatusesCustomBatchRequest {
@@ -4794,7 +4941,7 @@ export namespace content_v2_1 {
      */
     shippingDate?: string | null;
     /**
-     * State of the shipment.  Acceptable values are:   - &quot;`completed`&quot;  - &quot;`new`&quot;  - &quot;`shipped`&quot;  - &quot;`undeliverable`&quot;
+     * State of the shipment.  Acceptable values are:   - &quot;`completed`&quot;  - &quot;`new`&quot;  - &quot;`shipped`&quot;  - &quot;`undeliverable`&quot;  - &quot;`pending`&quot;
      */
     state?: string | null;
   }
@@ -14237,6 +14384,7 @@ export namespace content_v2_1 {
      *   // Example response
      *   // {
      *   //   "acknowledged": false,
+     *   //   "annotations": [],
      *   //   "billingAddress": {},
      *   //   "customer": {},
      *   //   "deliveryDetails": {},
@@ -14964,6 +15112,315 @@ export namespace content_v2_1 {
       }
     }
 
+    /**
+     * content.orders.refunditem
+     * @desc Issues a partial or total refund for items and shipment.
+     * @example
+     * // Before running the sample:
+     * // - Enable the API at:
+     * //   https://console.developers.google.com/apis/api/content.googleapis.com
+     * // - Login into gcloud by running:
+     * //   `$ gcloud auth application-default login`
+     * // - Install the npm module by running:
+     * //   `$ npm install googleapis`
+     *
+     * const {google} = require('googleapis');
+     * const content = google.content('v2.1');
+     *
+     * async function main() {
+     *   const auth = new google.auth.GoogleAuth({
+     *     // Scopes can be specified either as an array or as a single, space-delimited string.
+     *     scopes: ['https://www.googleapis.com/auth/content'],
+     *   });
+     *
+     *   // Acquire an auth client, and bind it to all future calls
+     *   const authClient = await auth.getClient();
+     *   google.options('auth', authClient);
+     *
+     *   // Do the magic
+     *   const res = await content.orders.refunditem({
+     *     // The ID of the account that manages the order. This cannot be a multi-client account.
+     *     merchantId: 'placeholder-value',
+     *     // The ID of the order to refund.
+     *     orderId: 'placeholder-value',
+     *
+     *     // Request body metadata
+     *     requestBody: {
+     *       // request body parameters
+     *       // {
+     *       //   "items": [],
+     *       //   "operationId": "my_operationId",
+     *       //   "reason": "my_reason",
+     *       //   "reasonText": "my_reasonText",
+     *       //   "shipping": {}
+     *       // }
+     *     },
+     *   });
+     *   console.log(res.data);
+     *
+     *   // Example response
+     *   // {
+     *   //   "executionStatus": "my_executionStatus",
+     *   //   "kind": "my_kind"
+     *   // }
+     * }
+     *
+     * main().catch(e => {
+     *   console.error(e);
+     *   throw e;
+     * });
+     *
+     * @alias content.orders.refunditem
+     * @memberOf! ()
+     *
+     * @param {object} params Parameters for request
+     * @param {string} params.merchantId The ID of the account that manages the order. This cannot be a multi-client account.
+     * @param {string} params.orderId The ID of the order to refund.
+     * @param {().OrdersRefundItemRequest} params.requestBody Request body data
+     * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
+     * @param {callback} callback The callback that handles the response.
+     * @return {object} Request object
+     */
+    refunditem(
+      params: Params$Resource$Orders$Refunditem,
+      options: StreamMethodOptions
+    ): GaxiosPromise<Readable>;
+    refunditem(
+      params?: Params$Resource$Orders$Refunditem,
+      options?: MethodOptions
+    ): GaxiosPromise<Schema$OrdersRefundItemResponse>;
+    refunditem(
+      params: Params$Resource$Orders$Refunditem,
+      options: StreamMethodOptions | BodyResponseCallback<Readable>,
+      callback: BodyResponseCallback<Readable>
+    ): void;
+    refunditem(
+      params: Params$Resource$Orders$Refunditem,
+      options:
+        | MethodOptions
+        | BodyResponseCallback<Schema$OrdersRefundItemResponse>,
+      callback: BodyResponseCallback<Schema$OrdersRefundItemResponse>
+    ): void;
+    refunditem(
+      params: Params$Resource$Orders$Refunditem,
+      callback: BodyResponseCallback<Schema$OrdersRefundItemResponse>
+    ): void;
+    refunditem(
+      callback: BodyResponseCallback<Schema$OrdersRefundItemResponse>
+    ): void;
+    refunditem(
+      paramsOrCallback?:
+        | Params$Resource$Orders$Refunditem
+        | BodyResponseCallback<Schema$OrdersRefundItemResponse>
+        | BodyResponseCallback<Readable>,
+      optionsOrCallback?:
+        | MethodOptions
+        | StreamMethodOptions
+        | BodyResponseCallback<Schema$OrdersRefundItemResponse>
+        | BodyResponseCallback<Readable>,
+      callback?:
+        | BodyResponseCallback<Schema$OrdersRefundItemResponse>
+        | BodyResponseCallback<Readable>
+    ):
+      | void
+      | GaxiosPromise<Schema$OrdersRefundItemResponse>
+      | GaxiosPromise<Readable> {
+      let params = (paramsOrCallback ||
+        {}) as Params$Resource$Orders$Refunditem;
+      let options = (optionsOrCallback || {}) as MethodOptions;
+
+      if (typeof paramsOrCallback === 'function') {
+        callback = paramsOrCallback;
+        params = {} as Params$Resource$Orders$Refunditem;
+        options = {};
+      }
+
+      if (typeof optionsOrCallback === 'function') {
+        callback = optionsOrCallback;
+        options = {};
+      }
+
+      const rootUrl = options.rootUrl || 'https://www.googleapis.com/';
+      const parameters = {
+        options: Object.assign(
+          {
+            url: (
+              rootUrl + '/content/v2.1/{merchantId}/orders/{orderId}/refunditem'
+            ).replace(/([^:]\/)\/+/g, '$1'),
+            method: 'POST',
+          },
+          options
+        ),
+        params,
+        requiredParams: ['merchantId', 'orderId'],
+        pathParams: ['merchantId', 'orderId'],
+        context: this.context,
+      };
+      if (callback) {
+        createAPIRequest<Schema$OrdersRefundItemResponse>(
+          parameters,
+          callback as BodyResponseCallback<{} | void>
+        );
+      } else {
+        return createAPIRequest<Schema$OrdersRefundItemResponse>(parameters);
+      }
+    }
+
+    /**
+     * content.orders.refundorder
+     * @desc Issues a partial or total refund for an order.
+     * @example
+     * // Before running the sample:
+     * // - Enable the API at:
+     * //   https://console.developers.google.com/apis/api/content.googleapis.com
+     * // - Login into gcloud by running:
+     * //   `$ gcloud auth application-default login`
+     * // - Install the npm module by running:
+     * //   `$ npm install googleapis`
+     *
+     * const {google} = require('googleapis');
+     * const content = google.content('v2.1');
+     *
+     * async function main() {
+     *   const auth = new google.auth.GoogleAuth({
+     *     // Scopes can be specified either as an array or as a single, space-delimited string.
+     *     scopes: ['https://www.googleapis.com/auth/content'],
+     *   });
+     *
+     *   // Acquire an auth client, and bind it to all future calls
+     *   const authClient = await auth.getClient();
+     *   google.options('auth', authClient);
+     *
+     *   // Do the magic
+     *   const res = await content.orders.refundorder({
+     *     // The ID of the account that manages the order. This cannot be a multi-client account.
+     *     merchantId: 'placeholder-value',
+     *     // The ID of the order to refund.
+     *     orderId: 'placeholder-value',
+     *
+     *     // Request body metadata
+     *     requestBody: {
+     *       // request body parameters
+     *       // {
+     *       //   "amount": {},
+     *       //   "fullRefund": false,
+     *       //   "operationId": "my_operationId",
+     *       //   "reason": "my_reason",
+     *       //   "reasonText": "my_reasonText"
+     *       // }
+     *     },
+     *   });
+     *   console.log(res.data);
+     *
+     *   // Example response
+     *   // {
+     *   //   "executionStatus": "my_executionStatus",
+     *   //   "kind": "my_kind"
+     *   // }
+     * }
+     *
+     * main().catch(e => {
+     *   console.error(e);
+     *   throw e;
+     * });
+     *
+     * @alias content.orders.refundorder
+     * @memberOf! ()
+     *
+     * @param {object} params Parameters for request
+     * @param {string} params.merchantId The ID of the account that manages the order. This cannot be a multi-client account.
+     * @param {string} params.orderId The ID of the order to refund.
+     * @param {().OrdersRefundOrderRequest} params.requestBody Request body data
+     * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
+     * @param {callback} callback The callback that handles the response.
+     * @return {object} Request object
+     */
+    refundorder(
+      params: Params$Resource$Orders$Refundorder,
+      options: StreamMethodOptions
+    ): GaxiosPromise<Readable>;
+    refundorder(
+      params?: Params$Resource$Orders$Refundorder,
+      options?: MethodOptions
+    ): GaxiosPromise<Schema$OrdersRefundOrderResponse>;
+    refundorder(
+      params: Params$Resource$Orders$Refundorder,
+      options: StreamMethodOptions | BodyResponseCallback<Readable>,
+      callback: BodyResponseCallback<Readable>
+    ): void;
+    refundorder(
+      params: Params$Resource$Orders$Refundorder,
+      options:
+        | MethodOptions
+        | BodyResponseCallback<Schema$OrdersRefundOrderResponse>,
+      callback: BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+    ): void;
+    refundorder(
+      params: Params$Resource$Orders$Refundorder,
+      callback: BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+    ): void;
+    refundorder(
+      callback: BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+    ): void;
+    refundorder(
+      paramsOrCallback?:
+        | Params$Resource$Orders$Refundorder
+        | BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+        | BodyResponseCallback<Readable>,
+      optionsOrCallback?:
+        | MethodOptions
+        | StreamMethodOptions
+        | BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+        | BodyResponseCallback<Readable>,
+      callback?:
+        | BodyResponseCallback<Schema$OrdersRefundOrderResponse>
+        | BodyResponseCallback<Readable>
+    ):
+      | void
+      | GaxiosPromise<Schema$OrdersRefundOrderResponse>
+      | GaxiosPromise<Readable> {
+      let params = (paramsOrCallback ||
+        {}) as Params$Resource$Orders$Refundorder;
+      let options = (optionsOrCallback || {}) as MethodOptions;
+
+      if (typeof paramsOrCallback === 'function') {
+        callback = paramsOrCallback;
+        params = {} as Params$Resource$Orders$Refundorder;
+        options = {};
+      }
+
+      if (typeof optionsOrCallback === 'function') {
+        callback = optionsOrCallback;
+        options = {};
+      }
+
+      const rootUrl = options.rootUrl || 'https://www.googleapis.com/';
+      const parameters = {
+        options: Object.assign(
+          {
+            url: (
+              rootUrl +
+              '/content/v2.1/{merchantId}/orders/{orderId}/refundorder'
+            ).replace(/([^:]\/)\/+/g, '$1'),
+            method: 'POST',
+          },
+          options
+        ),
+        params,
+        requiredParams: ['merchantId', 'orderId'],
+        pathParams: ['merchantId', 'orderId'],
+        context: this.context,
+      };
+      if (callback) {
+        createAPIRequest<Schema$OrdersRefundOrderResponse>(
+          parameters,
+          callback as BodyResponseCallback<{} | void>
+        );
+      } else {
+        return createAPIRequest<Schema$OrdersRefundOrderResponse>(parameters);
+      }
+    }
+
     /**
      * content.orders.rejectreturnlineitem
      * @desc Rejects return on an line item.
@@ -15124,7 +15581,7 @@ export namespace content_v2_1 {
 
     /**
      * content.orders.returnrefundlineitem
-     * @desc Returns and refunds a line item. Note that this method can only be called on fully shipped orders.
+     * @desc Returns and refunds a line item. Note that this method can only be called on fully shipped orders. Please also note that the Orderreturns API is the preferred way to handle returns after you receive a return from a customer. You can use Orderreturns.list or Orderreturns.get to search for the return, and then use Orderreturns.processreturn to issue the refund. If the return cannot be found, then we recommend using this API to issue a refund.
      * @example
      * // Before running the sample:
      * // - Enable the API at:
@@ -15955,10 +16412,13 @@ export namespace content_v2_1 {
      *       // {
      *       //   "carrier": "my_carrier",
      *       //   "deliveryDate": "my_deliveryDate",
+     *       //   "lastPickupDate": "my_lastPickupDate",
      *       //   "operationId": "my_operationId",
+     *       //   "readyPickupDate": "my_readyPickupDate",
      *       //   "shipmentId": "my_shipmentId",
      *       //   "status": "my_status",
-     *       //   "trackingId": "my_trackingId"
+     *       //   "trackingId": "my_trackingId",
+     *       //   "undeliveredDate": "my_undeliveredDate"
      *       // }
      *     },
      *   });
@@ -16264,6 +16724,38 @@ export namespace content_v2_1 {
      */
     statuses?: string[];
   }
+  export interface Params$Resource$Orders$Refunditem
+    extends StandardParameters {
+    /**
+     * The ID of the account that manages the order. This cannot be a multi-client account.
+     */
+    merchantId?: string;
+    /**
+     * The ID of the order to refund.
+     */
+    orderId?: string;
+
+    /**
+     * Request body metadata
+     */
+    requestBody?: Schema$OrdersRefundItemRequest;
+  }
+  export interface Params$Resource$Orders$Refundorder
+    extends StandardParameters {
+    /**
+     * The ID of the account that manages the order. This cannot be a multi-client account.
+     */
+    merchantId?: string;
+    /**
+     * The ID of the order to refund.
+     */
+    orderId?: string;
+
+    /**
+     * Request body metadata
+     */
+    requestBody?: Schema$OrdersRefundOrderRequest;
+  }
   export interface Params$Resource$Orders$Rejectreturnlineitem
     extends StandardParameters {
     /**
diff --git a/src/apis/content/v2.ts b/src/apis/content/v2.ts
index 58d0485242..f87f324d97 100644
--- a/src/apis/content/v2.ts
+++ b/src/apis/content/v2.ts
@@ -3227,7 +3227,7 @@ export namespace content_v2 {
      */
     shipmentId?: string | null;
     /**
-     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;
+     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;  - &quot;`readyForPickup`&quot;
      */
     status?: string | null;
     /**
@@ -3308,6 +3308,10 @@ export namespace content_v2 {
      * The line items that are shipped.
      */
     lineItems?: Schema$OrderShipmentLineItemShipment[];
+    /**
+     * Delivery details of the shipment if scheduling is needed.
+     */
+    scheduledDeliveryDetails?: Schema$OrderShipmentScheduledDeliveryDetails;
     /**
      * The status of the shipment.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`readyForPickup`&quot;  - &quot;`shipped`&quot;  - &quot;`undeliverable`&quot;
      */
@@ -3331,6 +3335,16 @@ export namespace content_v2 {
      */
     quantity?: number | null;
   }
+  export interface Schema$OrderShipmentScheduledDeliveryDetails {
+    /**
+     * The phone number of the carrier fulfilling the delivery.
+     */
+    carrierPhoneNumber?: string | null;
+    /**
+     * The date a shipment is scheduled for delivery, in ISO 8601 format.
+     */
+    scheduledDate?: string | null;
+  }
   export interface Schema$OrdersInStoreRefundLineItemRequest {
     /**
      * The amount that is refunded. Required.
@@ -3673,7 +3687,7 @@ export namespace content_v2 {
      */
     shipmentId?: string | null;
     /**
-     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;
+     * New status for the shipment. Not updated if missing.  Acceptable values are:   - &quot;`delivered`&quot;  - &quot;`undeliverable`&quot;  - &quot;`readyForPickup`&quot;
      */
     status?: string | null;
     /**
@@ -4893,7 +4907,7 @@ export namespace content_v2 {
      */
     shippingDate?: string | null;
     /**
-     * State of the shipment.  Acceptable values are:   - &quot;`completed`&quot;  - &quot;`new`&quot;  - &quot;`shipped`&quot;  - &quot;`undeliverable`&quot;
+     * State of the shipment.  Acceptable values are:   - &quot;`completed`&quot;  - &quot;`new`&quot;  - &quot;`shipped`&quot;  - &quot;`undeliverable`&quot;  - &quot;`pending`&quot;
      */
     state?: string | null;
   }
@@ -15197,7 +15211,7 @@ export namespace content_v2 {
 
     /**
      * content.orders.returnrefundlineitem
-     * @desc Returns and refunds a line item. Note that this method can only be called on fully shipped orders.
+     * @desc Returns and refunds a line item. Note that this method can only be called on fully shipped orders. Please also note that the Orderreturns API is the preferred way to handle returns after you receive a return from a customer. You can use Orderreturns.list or Orderreturns.get to search for the return, and then use Orderreturns.processreturn to issue the refund. If the return cannot be found, then we recommend using this API to issue a refund.
      * @example
      * // Before running the sample:
      * // - Enable the API at: