/** Marshall the given parameter object, and output to a SdkJsonGenerator */
  public void marshall(LoggingInfo loggingInfo, StructuredJsonGenerator jsonGenerator) {

    if (loggingInfo == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    try {
      jsonGenerator.writeStartObject();

      if (loggingInfo.getS3BucketName() != null) {
        jsonGenerator.writeFieldName("S3BucketName").writeValue(loggingInfo.getS3BucketName());
      }
      if (loggingInfo.getS3KeyPrefix() != null) {
        jsonGenerator.writeFieldName("S3KeyPrefix").writeValue(loggingInfo.getS3KeyPrefix());
      }
      if (loggingInfo.getS3Region() != null) {
        jsonGenerator.writeFieldName("S3Region").writeValue(loggingInfo.getS3Region());
      }

      jsonGenerator.writeEndObject();
    } catch (Throwable t) {
      throw new SdkClientException("Unable to marshall request to JSON: " + t.getMessage(), t);
    }
  }