docs: public void marshall(CopyProductRequest copyProductRequest, ProtocolMarshaller protocolMarshaller) {
  
          if (copyProductRequest == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(copyProductRequest.getAcceptLanguage(), ACCEPTLANGUAGE_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getSourceProductArn(), SOURCEPRODUCTARN_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getTargetProductId(), TARGETPRODUCTID_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getTargetProductName(), TARGETPRODUCTNAME_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getSourceProvisioningArtifactIdentifiers(), SOURCEPROVISIONINGARTIFACTIDENTIFIERS_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getCopyOptions(), COPYOPTIONS_BINDING);
              protocolMarshaller.marshall(copyProductRequest.getIdempotencyToken(), IDEMPOTENCYTOKEN_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }