All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.tnb.jira.validation.generated.JSON Maven / Gradle / Ivy

The newest version!
/*
 * The Jira Cloud platform REST API
 * Jira Cloud platform REST API documentation
 *
 * The version of the OpenAPI document: 1001.0.0-SNAPSHOT
 * Contact: [email protected]
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package software.tnb.jira.validation.generated;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.bind.util.ISO8601Utils;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.google.gson.JsonElement;
import io.gsonfire.GsonFireBuilder;
import io.gsonfire.TypeSelector;

import okio.ByteString;

import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.Type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
import java.util.HashMap;

/*
 * A JSON utility class
 *
 * NOTE: in the future, this class may be converted to static, which may break
 *       backward-compatibility
 */
public class JSON {
    private static Gson gson;
    private static boolean isLenientOnJson = false;
    private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter();
    private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
    private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
    private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
    private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();

    @SuppressWarnings("unchecked")
    public static GsonBuilder createGson() {
        GsonFireBuilder fireBuilder = new GsonFireBuilder()
                .registerTypeSelector(software.tnb.jira.validation.generated.model.CustomContextVariable.class, new TypeSelector() {
                    @Override
                    public Class getClassForElement(JsonElement readElement) {
                        Map classByDiscriminatorValue = new HashMap();
                        classByDiscriminatorValue.put("IssueContextVariable", software.tnb.jira.validation.generated.model.IssueContextVariable.class);
                        classByDiscriminatorValue.put("JsonContextVariable", software.tnb.jira.validation.generated.model.JsonContextVariable.class);
                        classByDiscriminatorValue.put("UserContextVariable", software.tnb.jira.validation.generated.model.UserContextVariable.class);
                        classByDiscriminatorValue.put("issue", software.tnb.jira.validation.generated.model.IssueContextVariable.class);
                        classByDiscriminatorValue.put("json", software.tnb.jira.validation.generated.model.JsonContextVariable.class);
                        classByDiscriminatorValue.put("user", software.tnb.jira.validation.generated.model.UserContextVariable.class);
                        classByDiscriminatorValue.put("CustomContextVariable", software.tnb.jira.validation.generated.model.CustomContextVariable.class);
                        return getClassByDiscriminator(classByDiscriminatorValue,
                                getDiscriminatorValue(readElement, "type"));
                    }
          })
                .registerTypeSelector(software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValue.class, new TypeSelector() {
                    @Override
                    public Class getClassForElement(JsonElement readElement) {
                        Map classByDiscriminatorValue = new HashMap();
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueCascadingOption", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueCascadingOption.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueDate", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDate.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueDateTime", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDateTime.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueFloat", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueFloat.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeDateTimeField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeDateTimeField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeGroupField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeGroupField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeMultiGroupField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiGroupField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeMultiStringField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiStringField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeMultiUserField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiUserField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeNumberField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeNumberField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeObjectField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeObjectField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeStringField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeStringField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueForgeUserField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeUserField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueLabels", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueLabels.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueMultiUserPicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultiUserPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueMultipleGroupPicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleGroupPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueMultipleOption", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleOption.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueMultipleVersionPicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleVersionPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueProject", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueProject.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueReadOnly", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueReadOnly.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueSingleGroupPicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleGroupPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueSingleOption", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleOption.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueSingleVersionPicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleVersionPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueTextArea", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextArea.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueTextField", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextField.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValueURL", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueURL.class);
                        classByDiscriminatorValue.put("CustomFieldContextSingleUserPickerDefaults", software.tnb.jira.validation.generated.model.CustomFieldContextSingleUserPickerDefaults.class);
                        classByDiscriminatorValue.put("datepicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDate.class);
                        classByDiscriminatorValue.put("datetimepicker", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDateTime.class);
                        classByDiscriminatorValue.put("float", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueFloat.class);
                        classByDiscriminatorValue.put("forge.datetime", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeDateTimeField.class);
                        classByDiscriminatorValue.put("forge.group", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeGroupField.class);
                        classByDiscriminatorValue.put("forge.group.list", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiGroupField.class);
                        classByDiscriminatorValue.put("forge.number", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeNumberField.class);
                        classByDiscriminatorValue.put("forge.object", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeObjectField.class);
                        classByDiscriminatorValue.put("forge.string", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeStringField.class);
                        classByDiscriminatorValue.put("forge.string.list", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiStringField.class);
                        classByDiscriminatorValue.put("forge.user", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeUserField.class);
                        classByDiscriminatorValue.put("forge.user.list", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiUserField.class);
                        classByDiscriminatorValue.put("grouppicker.multiple", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleGroupPicker.class);
                        classByDiscriminatorValue.put("grouppicker.single", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleGroupPicker.class);
                        classByDiscriminatorValue.put("labels", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueLabels.class);
                        classByDiscriminatorValue.put("multi.user.select", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultiUserPicker.class);
                        classByDiscriminatorValue.put("option.cascading", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueCascadingOption.class);
                        classByDiscriminatorValue.put("option.multiple", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleOption.class);
                        classByDiscriminatorValue.put("option.single", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleOption.class);
                        classByDiscriminatorValue.put("project", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueProject.class);
                        classByDiscriminatorValue.put("readonly", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueReadOnly.class);
                        classByDiscriminatorValue.put("single.user.select", software.tnb.jira.validation.generated.model.CustomFieldContextSingleUserPickerDefaults.class);
                        classByDiscriminatorValue.put("textarea", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextArea.class);
                        classByDiscriminatorValue.put("textfield", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextField.class);
                        classByDiscriminatorValue.put("url", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueURL.class);
                        classByDiscriminatorValue.put("version.multiple", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleVersionPicker.class);
                        classByDiscriminatorValue.put("version.single", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleVersionPicker.class);
                        classByDiscriminatorValue.put("CustomFieldContextDefaultValue", software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValue.class);
                        return getClassByDiscriminator(classByDiscriminatorValue,
                                getDiscriminatorValue(readElement, "type"));
                    }
          })
                .registerTypeSelector(software.tnb.jira.validation.generated.model.WorkflowCondition.class, new TypeSelector() {
                    @Override
                    public Class getClassForElement(JsonElement readElement) {
                        Map classByDiscriminatorValue = new HashMap();
                        classByDiscriminatorValue.put("WorkflowCompoundCondition", software.tnb.jira.validation.generated.model.WorkflowCompoundCondition.class);
                        classByDiscriminatorValue.put("WorkflowSimpleCondition", software.tnb.jira.validation.generated.model.WorkflowSimpleCondition.class);
                        classByDiscriminatorValue.put("compound", software.tnb.jira.validation.generated.model.WorkflowCompoundCondition.class);
                        classByDiscriminatorValue.put("simple", software.tnb.jira.validation.generated.model.WorkflowSimpleCondition.class);
                        classByDiscriminatorValue.put("WorkflowCondition", software.tnb.jira.validation.generated.model.WorkflowCondition.class);
                        return getClassByDiscriminator(classByDiscriminatorValue,
                                getDiscriminatorValue(readElement, "nodeType"));
                    }
          })
        ;
        GsonBuilder builder = fireBuilder.createGsonBuilder();
        return builder;
    }

    private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
        JsonElement element = readElement.getAsJsonObject().get(discriminatorField);
        if (null == element) {
            throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">");
        }
        return element.getAsString();
    }

    /**
     * Returns the Java class that implements the OpenAPI schema for the specified discriminator value.
     *
     * @param classByDiscriminatorValue The map of discriminator values to Java classes.
     * @param discriminatorValue The value of the OpenAPI discriminator in the input data.
     * @return The Java class that implements the OpenAPI schema
     */
    private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) {
        Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue);
        if (null == clazz) {
            throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">");
        }
        return clazz;
    }

    {
        GsonBuilder gsonBuilder = createGson();
        gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter);
        gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter);
        gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter);
        gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter);
        gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter);
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ActorInputBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ActorsMap.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AddFieldBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AddGroupBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AddNotificationsDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AnnouncementBannerConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AnnouncementBannerConfigurationUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Application.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ApplicationProperty.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ApplicationRole.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AssociateFieldConfigurationsWithIssueTypesRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AssociatedItemBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Attachment.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentArchive.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentArchiveEntry.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentArchiveImpl.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentArchiveItemReadable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentArchiveMetadataReadable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentMetadataAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AttachmentSettings.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AuditRecordBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AuditRecords.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AutoCompleteSuggestion.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AutoCompleteSuggestions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AvailableDashboardGadget.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AvailableDashboardGadgetsResponse.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Avatar.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.AvatarUrlsBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Avatars.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkCustomFieldOptionCreateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkCustomFieldOptionUpdateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkIssueIsWatching.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkIssuePropertyUpdateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkOperationErrorResult.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkPermissionGrants.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkPermissionsRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkProjectPermissionGrants.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.BulkProjectPermissions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangeFilterOwner.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangedValueBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangedWorklog.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangedWorklogs.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Changelog.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangelogAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ChangelogHistoryMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ColumnItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Comment.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CommentAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CommentUpdateAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ComponentIssuesCount.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ComponentWithIssueCount.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CompoundClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConfigurationTimeTrackingConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConnectCustomFieldValue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConnectCustomFieldValues.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConnectModules.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConnectWorkflowTransitionRule.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContainerForProjectFeatures.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContainerForRegisteredWebhooks.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContainerForWebhookIDs.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContainerOfWorkflowSchemeAssociations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Context.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContextForProjectAndIssueType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ContextualConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ConvertedJQLQueries.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateCustomFieldContext.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateNotificationSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreatePriorityDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateProjectDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateResolutionDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateUiModificationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateUpdateRoleRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowCondition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowStatusDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowTransitionDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowTransitionRule.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowTransitionRulesDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreateWorkflowTransitionScreenDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreatedIssue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreatedIssueTransition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CreatedIssues.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomContextVariable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldConfigurations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContext.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueCascadingOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueDateTime.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueFloat.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeDateTimeField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeGroupField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiGroupField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiStringField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeMultiUserField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeNumberField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeObjectField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeStringField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueForgeUserField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueLabels.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultiUserPicker.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleGroupPicker.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueMultipleVersionPicker.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueProject.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueReadOnly.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleGroupPicker.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueSingleVersionPicker.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextArea.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueTextField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueURL.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextDefaultValueUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextProjectMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextSingleUserPickerDefaults.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldContextUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldCreatedContextOptionsList.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldDefinitionJsonBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldOptionCreate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldOptionUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldReplacement.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldUpdatedContextOptionsList.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldValueUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.CustomFieldValueUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Dashboard.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardGadget.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardGadgetPosition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardGadgetResponse.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardGadgetSettings.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardGadgetUpdateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DashboardOwner.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DefaultShareScope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DefaultWorkflow.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DeleteAndReplaceVersionBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DeprecatedWorkflow.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.DeprecatedWorkflowScope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.EntityProperty.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.EntityPropertyDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ErrorCollection.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ErrorMessage.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.EventNotification.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FailedWebhook.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FailedWebhooks.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Field.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldChangedClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationIssueTypeItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationItemsDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationSchemeProjectAssociation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationSchemeProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldConfigurationToIssueTypeMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldLastUsed.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldMetadataSchema.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldReferenceData.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldUpdateOperation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldValueClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldWasClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Fields.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldsAssignee.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldsIssueType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldsPriority.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldsStatus.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FieldsTimetracking.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Filter.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterDetailsOwner.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterOwner.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSharedUsers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSubscription.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSubscriptionGroup.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSubscriptionUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSubscriptions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FilterSubscriptionsList.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FoundGroup.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FoundGroups.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FoundUsers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FoundUsersAndGroups.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FunctionOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.FunctionReferenceData.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.GlobalScopeBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Group.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.GroupDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.GroupLabel.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.GroupName.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.GroupUsers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.HealthCheckResult.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Hierarchy.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.HistoryMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.HistoryMetadataParticipant.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Icon.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IconBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IdBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IdOrKeyBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IncludedFields.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueBeanChangelog.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueBeanEditmeta.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueBeanOperations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueChangelogIds.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueCommentListRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueContextVariable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueCreateMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueEntityProperties.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueEntityPropertiesForMultiUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueEvent.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFieldOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFieldOptionConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFieldOptionCreateBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFieldOptionScopeBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFilterForBulkPropertyDelete.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueFilterForBulkPropertySet.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueLink.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueLinkType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueLinkTypes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueList.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueMatches.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueMatchesForJQL.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuePickerSuggestions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuePickerSuggestionsIssueType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueSecurityLevelMember.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTransition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTransitionTo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeCreateBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeDetailsScope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeIds.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeIdsToRemove.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeInfo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeIssueCreateMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeID.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeProjectAssociation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeSchemeUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeMappingDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeProjectAssociation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemeUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeScreenSchemesProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeToContextMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeUpdateBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeWithStatus.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypeWorkflowMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueTypesWorkflowMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssueUpdateMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuesAndJQLQueries.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuesJqlMetaDataBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuesMetaBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.IssuesUpdateBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JQLPersonalDataMigrationRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JQLQueryWithUnknownUsers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JQLReferenceData.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JexpIssues.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JexpJqlIssues.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionAnalysis.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionComplexity.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionEvalContextBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionEvalRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionEvaluationMetaDataBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionForAnalysis.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionResult.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionValidationError.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionsAnalysis.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionsComplexityBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraExpressionsComplexityValueBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JiraStatus.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueriesToParse.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueriesToSanitize.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQuery.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryClauseOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryClauseTimePredicate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryFieldEntityProperty.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryOrderByClause.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryOrderByClauseElement.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryToSanitize.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JqlQueryUnitaryOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JsonContextVariable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JsonNode.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.JsonTypeBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.KeywordOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.License.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.LicensedApplication.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.LinkGroup.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.LinkIssueRequestJsonBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.LinkedIssue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.LinkedIssueFields.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ListOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Locale.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ModelConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.MoveFieldBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.MultiIssueEntityProperties.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.MultipleCustomFieldValuesUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.MultipleCustomFieldValuesUpdateDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NestedResponse.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NewUserDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Notification.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationEvent.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationRecipients.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationRecipientsRestrictions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationSchemeEvent.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationSchemeEventDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationSchemeEventTypeId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationSchemeId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.NotificationSchemeNotificationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.OperationMessage.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Operations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.OrderOfCustomFieldOptions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.OrderOfIssueTypes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanChangelog.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanComment.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanComponentWithIssueCount.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanContext.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanContextForProjectAndIssueType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanContextualConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanCustomFieldContext.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanCustomFieldContextDefaultValue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanCustomFieldContextOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanCustomFieldContextProjectMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanDashboard.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFieldConfigurationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFieldConfigurationIssueTypeItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFieldConfigurationItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFieldConfigurationScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFieldConfigurationSchemeProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanFilterDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanGroupDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueFieldOption.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueSecurityLevelMember.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeSchemeMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeSchemeProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeScreenScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeScreenSchemeItem.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeScreenSchemesProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanIssueTypeToContextMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanNotificationScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanPriority.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanProject.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanProjectDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanResolutionJsonBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanScreen.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanScreenScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanScreenWithTab.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanString.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanUiModificationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanUserDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanUserKey.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanVersion.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanWebhook.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanWorkflow.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanWorkflowScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageBeanWorkflowTransitionRules.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageOfChangelogs.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageOfComments.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageOfDashboards.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageOfStatuses.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PageOfWorklogs.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PagedListUserDetailsApplicationUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PaginatedResponseComment.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ParsedJqlQueries.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ParsedJqlQuery.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionGrant.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionGrants.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionHolder.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionSchemes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Permissions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermissionsKeysBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PermittedProjects.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Priority.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PriorityId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Project.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectArchivedBy.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectAvatars.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectComponent.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectComponentAssignee.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectComponentLead.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectComponentRealAssignee.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectDeletedBy.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectDetailsAvatarUrls.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectDetailsProjectCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectEmailAddress.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectFeature.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectFeatureState.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIdentifierBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIdentifiers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIds.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectInsight.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueCreateMetadata.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueCreateMetadataAvatarUrls.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueSecurityLevels.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueTypeHierarchy.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueTypeMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueTypeMappings.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueTypes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectIssueTypesHierarchyLevel.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectLandingPageInfo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectLead.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectPermissions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectProjectCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRole.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRoleActorsUpdateBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRoleDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRoleGroup.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRoleScope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectRoleUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectScopeBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ProjectType.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PropertyKey.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PropertyKeys.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PublishDraftWorkflowScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.PublishedWorkflowId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RegisteredWebhook.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RemoteIssueLink.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RemoteIssueLinkIdentifies.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RemoteIssueLinkRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RemoteObject.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RemoveOptionFromIssuesResult.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ReorderIssuePriorities.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ReorderIssueResolutionsRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Resolution.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ResolutionId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ResolutionJsonBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RestrictedPermission.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RichText.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RoleActor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.RuleConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SanitizedJqlQueries.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SanitizedJqlQuery.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Scope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScopeProject.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Screen.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenSchemeId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenTypes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenWithTab.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenableField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ScreenableTab.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SearchAutoCompleteFilter.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SearchRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SearchResults.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SecurityLevel.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SecurityScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SecuritySchemes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ServerInformation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ServiceManagementNavigationInfo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SetDefaultPriorityRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SetDefaultResolutionRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SharePermission.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SharePermissionInputBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimpleApplicationPropertyBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimpleErrorCollection.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimpleLink.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimpleListWrapperApplicationRole.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimpleListWrapperGroupName.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SimplifiedHierarchyLevel.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SoftwareNavigationInfo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Status.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusCreate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusCreateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusDetailsStatusCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusMapping.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusScope.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.StatusUpdateRequest.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SuggestedIssue.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.SystemAvatars.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TaskProgressBeanObject.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TaskProgressBeanRemoveOptionFromIssuesResult.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TimeTrackingConfiguration.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TimeTrackingDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TimeTrackingProvider.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Transition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.TransitionScreenDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Transitions.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UiModificationContextDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UiModificationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UiModificationIdentifiers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UnrestrictedUserEmail.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateCustomFieldDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateDefaultScreenScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateFieldConfigurationSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateNotificationSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdatePriorityDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateProjectDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateResolutionDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateScreenDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateScreenSchemeDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateScreenTypes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateUiModificationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdateUserToGroupBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UpdatedProjectCategory.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.User.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserApplicationRoles.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserAvatarUrls.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserBeanAvatarUrls.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserContextVariable.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserFilter.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserGroups.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserKey.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserList.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserMigrationBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserPermission.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.UserPickerUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.ValueOperand.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Version.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionIssueCounts.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionIssuesStatus.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionIssuesStatusForFixVersion.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionMoveBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionUnresolvedIssuesCount.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.VersionUsageInCustomField.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Visibility.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Votes.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Watchers.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Webhook.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WebhookDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WebhookRegistrationDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WebhooksExpirationDate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkManagementNavigationInfo.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Workflow.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowCompoundCondition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowCondition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowIDs.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowId.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowOperations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowRules.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowRulesSearch.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowRulesSearchDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowScheme.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowSchemeAssociations.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowSchemeIdName.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowSchemeLastModifiedUser.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowSchemeProjectAssociation.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowSimpleCondition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowStatus.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransition.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionProperty.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRule.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRules.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRulesDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRulesUpdate.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRulesUpdateErrorDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowTransitionRulesUpdateErrors.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorkflowsWithTransitionRulesDetails.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.Worklog.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorklogAuthor.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorklogIdsRequestBean.CustomTypeAdapterFactory());
        gsonBuilder.registerTypeAdapterFactory(new software.tnb.jira.validation.generated.model.WorklogUpdateAuthor.CustomTypeAdapterFactory());
        gson = gsonBuilder.create();
    }

    /**
     * Get Gson.
     *
     * @return Gson
     */
    public static Gson getGson() {
        return gson;
    }

    /**
     * Set Gson.
     *
     * @param gson Gson
     */
    public static void setGson(Gson gson) {
        JSON.gson = gson;
    }

    public static void setLenientOnJson(boolean lenientOnJson) {
        isLenientOnJson = lenientOnJson;
    }

    /**
     * Serialize the given Java object into JSON string.
     *
     * @param obj Object
     * @return String representation of the JSON
     */
    public static String serialize(Object obj) {
        return gson.toJson(obj);
    }

    /**
     * Deserialize the given JSON string to Java object.
     *
     * @param         Type
     * @param body       The JSON string
     * @param returnType The type to deserialize into
     * @return The deserialized Java object
     */
    @SuppressWarnings("unchecked")
    public static  T deserialize(String body, Type returnType) {
        try {
            if (isLenientOnJson) {
                JsonReader jsonReader = new JsonReader(new StringReader(body));
                // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean)
                jsonReader.setLenient(true);
                return gson.fromJson(jsonReader, returnType);
            } else {
                return gson.fromJson(body, returnType);
            }
        } catch (JsonParseException e) {
            // Fallback processing when failed to parse JSON form response body:
            // return the response body string directly for the String return type;
            if (returnType.equals(String.class)) {
                return (T) body;
            } else {
                throw (e);
            }
        }
    }

    /**
     * Gson TypeAdapter for Byte Array type
     */
    public static class ByteArrayAdapter extends TypeAdapter {

        @Override
        public void write(JsonWriter out, byte[] value) throws IOException {
            if (value == null) {
                out.nullValue();
            } else {
                out.value(ByteString.of(value).base64());
            }
        }

        @Override
        public byte[] read(JsonReader in) throws IOException {
            switch (in.peek()) {
                case NULL:
                    in.nextNull();
                    return null;
                default:
                    String bytesAsBase64 = in.nextString();
                    ByteString byteString = ByteString.decodeBase64(bytesAsBase64);
                    return byteString.toByteArray();
            }
        }
    }

    /**
     * Gson TypeAdapter for JSR310 OffsetDateTime type
     */
    public static class OffsetDateTimeTypeAdapter extends TypeAdapter {

        private DateTimeFormatter formatter;

        public OffsetDateTimeTypeAdapter() {
            this(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
        }

        public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) {
            this.formatter = formatter;
        }

        public void setFormat(DateTimeFormatter dateFormat) {
            this.formatter = dateFormat;
        }

        @Override
        public void write(JsonWriter out, OffsetDateTime date) throws IOException {
            if (date == null) {
                out.nullValue();
            } else {
                out.value(formatter.format(date));
            }
        }

        @Override
        public OffsetDateTime read(JsonReader in) throws IOException {
            switch (in.peek()) {
                case NULL:
                    in.nextNull();
                    return null;
                default:
                    String date = in.nextString();
                    if (date.endsWith("+0000")) {
                        date = date.substring(0, date.length()-5) + "Z";
                    }
                    return OffsetDateTime.parse(date, formatter);
            }
        }
    }

    /**
     * Gson TypeAdapter for JSR310 LocalDate type
     */
    public static class LocalDateTypeAdapter extends TypeAdapter {

        private DateTimeFormatter formatter;

        public LocalDateTypeAdapter() {
            this(DateTimeFormatter.ISO_LOCAL_DATE);
        }

        public LocalDateTypeAdapter(DateTimeFormatter formatter) {
            this.formatter = formatter;
        }

        public void setFormat(DateTimeFormatter dateFormat) {
            this.formatter = dateFormat;
        }

        @Override
        public void write(JsonWriter out, LocalDate date) throws IOException {
            if (date == null) {
                out.nullValue();
            } else {
                out.value(formatter.format(date));
            }
        }

        @Override
        public LocalDate read(JsonReader in) throws IOException {
            switch (in.peek()) {
                case NULL:
                    in.nextNull();
                    return null;
                default:
                    String date = in.nextString();
                    return LocalDate.parse(date, formatter);
            }
        }
    }

    public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) {
        offsetDateTimeTypeAdapter.setFormat(dateFormat);
    }

    public static void setLocalDateFormat(DateTimeFormatter dateFormat) {
        localDateTypeAdapter.setFormat(dateFormat);
    }

    /**
     * Gson TypeAdapter for java.sql.Date type
     * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used
     * (more efficient than SimpleDateFormat).
     */
    public static class SqlDateTypeAdapter extends TypeAdapter {

        private DateFormat dateFormat;

        public SqlDateTypeAdapter() {}

        public SqlDateTypeAdapter(DateFormat dateFormat) {
            this.dateFormat = dateFormat;
        }

        public void setFormat(DateFormat dateFormat) {
            this.dateFormat = dateFormat;
        }

        @Override
        public void write(JsonWriter out, java.sql.Date date) throws IOException {
            if (date == null) {
                out.nullValue();
            } else {
                String value;
                if (dateFormat != null) {
                    value = dateFormat.format(date);
                } else {
                    value = date.toString();
                }
                out.value(value);
            }
        }

        @Override
        public java.sql.Date read(JsonReader in) throws IOException {
            switch (in.peek()) {
                case NULL:
                    in.nextNull();
                    return null;
                default:
                    String date = in.nextString();
                    try {
                        if (dateFormat != null) {
                            return new java.sql.Date(dateFormat.parse(date).getTime());
                        }
                        return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime());
                    } catch (ParseException e) {
                        throw new JsonParseException(e);
                    }
            }
        }
    }

    /**
     * Gson TypeAdapter for java.util.Date type
     * If the dateFormat is null, ISO8601Utils will be used.
     */
    public static class DateTypeAdapter extends TypeAdapter {

        private DateFormat dateFormat;

        public DateTypeAdapter() {}

        public DateTypeAdapter(DateFormat dateFormat) {
            this.dateFormat = dateFormat;
        }

        public void setFormat(DateFormat dateFormat) {
            this.dateFormat = dateFormat;
        }

        @Override
        public void write(JsonWriter out, Date date) throws IOException {
            if (date == null) {
                out.nullValue();
            } else {
                String value;
                if (dateFormat != null) {
                    value = dateFormat.format(date);
                } else {
                    value = ISO8601Utils.format(date, true);
                }
                out.value(value);
            }
        }

        @Override
        public Date read(JsonReader in) throws IOException {
            try {
                switch (in.peek()) {
                    case NULL:
                        in.nextNull();
                        return null;
                    default:
                        String date = in.nextString();
                        try {
                            if (dateFormat != null) {
                                return dateFormat.parse(date);
                            }
                            return ISO8601Utils.parse(date, new ParsePosition(0));
                        } catch (ParseException e) {
                            throw new JsonParseException(e);
                        }
                }
            } catch (IllegalArgumentException e) {
                throw new JsonParseException(e);
            }
        }
    }

    public static void setDateFormat(DateFormat dateFormat) {
        dateTypeAdapter.setFormat(dateFormat);
    }

    public static void setSqlDateFormat(DateFormat dateFormat) {
        sqlDateTypeAdapter.setFormat(dateFormat);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy