docs: public void marshall(UserPoolType userPoolType, ProtocolMarshaller protocolMarshaller) {
  
          if (userPoolType == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(userPoolType.getId(), ID_BINDING);
              protocolMarshaller.marshall(userPoolType.getName(), NAME_BINDING);
              protocolMarshaller.marshall(userPoolType.getPolicies(), POLICIES_BINDING);
              protocolMarshaller.marshall(userPoolType.getLambdaConfig(), LAMBDACONFIG_BINDING);
              protocolMarshaller.marshall(userPoolType.getStatus(), STATUS_BINDING);
              protocolMarshaller.marshall(userPoolType.getLastModifiedDate(), LASTMODIFIEDDATE_BINDING);
              protocolMarshaller.marshall(userPoolType.getCreationDate(), CREATIONDATE_BINDING);
              protocolMarshaller.marshall(userPoolType.getSchemaAttributes(), SCHEMAATTRIBUTES_BINDING);
              protocolMarshaller.marshall(userPoolType.getAutoVerifiedAttributes(), AUTOVERIFIEDATTRIBUTES_BINDING);
              protocolMarshaller.marshall(userPoolType.getAliasAttributes(), ALIASATTRIBUTES_BINDING);
              protocolMarshaller.marshall(userPoolType.getUsernameAttributes(), USERNAMEATTRIBUTES_BINDING);
              protocolMarshaller.marshall(userPoolType.getSmsVerificationMessage(), SMSVERIFICATIONMESSAGE_BINDING);
              protocolMarshaller.marshall(userPoolType.getEmailVerificationMessage(), EMAILVERIFICATIONMESSAGE_BINDING);
              protocolMarshaller.marshall(userPoolType.getEmailVerificationSubject(), EMAILVERIFICATIONSUBJECT_BINDING);
              protocolMarshaller.marshall(userPoolType.getVerificationMessageTemplate(), VERIFICATIONMESSAGETEMPLATE_BINDING);
              protocolMarshaller.marshall(userPoolType.getSmsAuthenticationMessage(), SMSAUTHENTICATIONMESSAGE_BINDING);
              protocolMarshaller.marshall(userPoolType.getMfaConfiguration(), MFACONFIGURATION_BINDING);
              protocolMarshaller.marshall(userPoolType.getDeviceConfiguration(), DEVICECONFIGURATION_BINDING);
              protocolMarshaller.marshall(userPoolType.getEstimatedNumberOfUsers(), ESTIMATEDNUMBEROFUSERS_BINDING);
              protocolMarshaller.marshall(userPoolType.getEmailConfiguration(), EMAILCONFIGURATION_BINDING);
              protocolMarshaller.marshall(userPoolType.getSmsConfiguration(), SMSCONFIGURATION_BINDING);
              protocolMarshaller.marshall(userPoolType.getUserPoolTags(), USERPOOLTAGS_BINDING);
              protocolMarshaller.marshall(userPoolType.getSmsConfigurationFailure(), SMSCONFIGURATIONFAILURE_BINDING);
              protocolMarshaller.marshall(userPoolType.getEmailConfigurationFailure(), EMAILCONFIGURATIONFAILURE_BINDING);
              protocolMarshaller.marshall(userPoolType.getDomain(), DOMAIN_BINDING);
              protocolMarshaller.marshall(userPoolType.getCustomDomain(), CUSTOMDOMAIN_BINDING);
              protocolMarshaller.marshall(userPoolType.getAdminCreateUserConfig(), ADMINCREATEUSERCONFIG_BINDING);
              protocolMarshaller.marshall(userPoolType.getUserPoolAddOns(), USERPOOLADDONS_BINDING);
              protocolMarshaller.marshall(userPoolType.getArn(), ARN_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }