json_schema: {
      "additionalProperties": false,
      "definitions": {
          "param": {
              "additionalProperties": false,
              "properties": {
                  "name": {
                      "type": "string"
                  },
                  "nullable": {
                      "type": "boolean"
                  },
                  "since": {
                      "$ref": "#/definitions/since"
                  },
                  "type": {
                      "enum": [
                          "boolean",
                          "byte",
                          "int",
                          "long",
                          "UUID",
                          "enum",
                          "byteArray",
                          "longArray",
                          "String",
                          "Data",
                          "EntryList_Integer_UUID",
                          "EntryList_Integer_Long",
                          "EntryList_Integer_Integer",
                          "List_Integer",
                          "List_Long",
                          "List_UUID",
                          "Address",
                          "CacheEventData",
                          "DistributedObjectInfo",
                          "Member",
                          "QueryCacheEventData",
                          "RaftGroupId",
                          "ScheduledTaskHandler",
                          "SimpleEntryView",
                          "WanReplicationRef",
                          "Xid",
                          "CacheConfigHolder",
                          "CacheSimpleEntryListenerConfig",
                          "EventJournalConfig",
                          "EvictionConfigHolder",
                          "HotRestartConfig",
                          "ListenerConfigHolder",
                          "AttributeConfig",
                          "IndexConfig",
                          "MapStoreConfigHolder",
                          "MerkleTreeConfig",
                          "NearCacheConfigHolder",
                          "NearCachePreloaderConfig",
                          "PredicateConfigHolder",
                          "QueryCacheConfigHolder",
                          "QueueStoreConfigHolder",
                          "RingbufferStoreConfigHolder",
                          "TimedExpiryPolicyFactoryConfig",
                          "DurationConfig",
                          "ClientBwListEntry",
                          "EntryList_String_String",
                          "EntryList_String_byteArray",
                          "EntryList_Long_byteArray",
                          "EntryList_String_EntryList_Integer_Long",
                          "EntryList_UUID_Long",
                          "EntryList_Address_List_Integer",
                          "EntryList_UUID_Address",
                          "EntryList_Data_Data",
                          "EntryList_Member_List_ScheduledTaskHandler",
                          "List_Address",
                          "List_byteArray",
                          "List_CacheEventData",
                          "List_CacheSimpleEntryListenerConfig",
                          "List_Data",
                          "ListCN_Data",
                          "List_DistributedObjectInfo",
                          "List_ListenerConfigHolder",
                          "List_AttributeConfig",
                          "List_IndexConfig",
                          "List_MemberInfo",
                          "List_QueryCacheConfigHolder",
                          "List_QueryCacheEventData",
                          "List_ScheduledTaskHandler",
                          "List_String",
                          "List_Xid",
                          "List_StackTraceElement",
                          "List_ClientBwListEntry",
                          "List_MCEvent",
                          "Map_String_String",
                          "MergePolicyConfig",
                          "MemberVersion",
                          "MemberInfo",
                          "MCEvent",
                          "AnchorDataListHolder",
                          "PagingPredicateHolder"
                      ]
                  }
              },
              "required": [
                  "name",
                  "type",
                  "nullable",
                  "since"
              ],
              "type": "object"
          },
          "since": {
              "default": 2.0,
              "enum": [
                  2.0
              ]
          }
      },
      "properties": {
          "customTypes": {
              "items": {
                  "additionalProperties": false,
                  "properties": {
                      "name": {
                          "description": "Name of the custom type",
                          "type": "string"
                      },
                      "params": {
                          "items": {
                              "$ref": "#/definitions/param"
                          },
                          "minItems": 0,
                          "type": "array",
                          "_uniqueItems": false
                      },
                      "returnWithFactory": {
                          "description": "True if the decode method should return with factory instead of the constructor",
                          "type": "boolean"
                      },
                      "since": {
                          "$ref": "#/definitions/since"
                      }
                  },
                  "required": [
                      "name",
                      "since",
                      "params"
                  ]
              },
              "type": "array"
          }
      },
      "required": [
          "customTypes"
      ],
      "title": "Hazelcast Client Protocol Custom Codec Definitions",
      "type": "object"
  }