{
  "type": "File",
  "start": 0,
  "end": 1140,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 32,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 1140,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 32,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ExportDefaultDeclaration",
        "start": 0,
        "end": 1139,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 31,
            "column": 1
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 15,
          "end": 1139,
          "loc": {
            "start": {
              "line": 1,
              "column": 15
            },
            "end": {
              "line": 31,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 21,
            "end": 40,
            "loc": {
              "start": {
                "line": 1,
                "column": 21
              },
              "end": {
                "line": 1,
                "column": 40
              },
              "identifierName": "ClusterServiceClass"
            },
            "name": "ClusterServiceClass"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 41,
            "end": 1139,
            "loc": {
              "start": {
                "line": 1,
                "column": 41
              },
              "end": {
                "line": 31,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 268,
                "end": 362,
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 2
                  },
                  "end": {
                    "line": 10,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 268,
                  "end": 279,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 2
                    },
                    "end": {
                      "line": 7,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor",
                  "leadingComments": null
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 280,
                    "end": 284,
                    "loc": {
                      "start": {
                        "line": 7,
                        "column": 14
                      },
                      "end": {
                        "line": 7,
                        "column": 18
                      },
                      "identifierName": "name"
                    },
                    "name": "name"
                  },
                  {
                    "type": "Identifier",
                    "start": 286,
                    "end": 297,
                    "loc": {
                      "start": {
                        "line": 7,
                        "column": 20
                      },
                      "end": {
                        "line": 7,
                        "column": 31
                      },
                      "identifierName": "displayName"
                    },
                    "name": "displayName"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 299,
                  "end": 362,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 33
                    },
                    "end": {
                      "line": 10,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 305,
                      "end": 322,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 4
                        },
                        "end": {
                          "line": 8,
                          "column": 21
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 305,
                        "end": 321,
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 4
                          },
                          "end": {
                            "line": 8,
                            "column": 20
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 305,
                          "end": 314,
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 4
                            },
                            "end": {
                              "line": 8,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 305,
                            "end": 309,
                            "loc": {
                              "start": {
                                "line": 8,
                                "column": 4
                              },
                              "end": {
                                "line": 8,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 310,
                            "end": 314,
                            "loc": {
                              "start": {
                                "line": 8,
                                "column": 9
                              },
                              "end": {
                                "line": 8,
                                "column": 13
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 317,
                          "end": 321,
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 16
                            },
                            "end": {
                              "line": 8,
                              "column": 20
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 327,
                      "end": 358,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 327,
                        "end": 357,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 327,
                          "end": 343,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 4
                            },
                            "end": {
                              "line": 9,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 327,
                            "end": 331,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 4
                              },
                              "end": {
                                "line": 9,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 332,
                            "end": 343,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 9
                              },
                              "end": {
                                "line": 9,
                                "column": 20
                              },
                              "identifierName": "displayName"
                            },
                            "name": "displayName"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 346,
                          "end": 357,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 23
                            },
                            "end": {
                              "line": 9,
                              "column": 34
                            },
                            "identifierName": "displayName"
                          },
                          "name": "displayName"
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Construct a new {@link ClusterServiceClass}\n   * @param {string} name The identifying name of the cluster service class\n   * @param {string} displayName The human-friendly name of the cluster service class\n   ",
                    "start": 45,
                    "end": 265,
                    "loc": {
                      "start": {
                        "line": 2,
                        "column": 2
                      },
                      "end": {
                        "line": 6,
                        "column": 5
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Return whether the provided JSON data is parsable by @see fromJSON \n   * This returning false does not mean the actual object is invalid in OpenShift.\n   * @param {Object} jsonData The JSON object to check\n   * @returns {boolean} \n   ",
                    "start": 366,
                    "end": 611,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 2
                      },
                      "end": {
                        "line": 17,
                        "column": 5
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 614,
                "end": 820,
                "loc": {
                  "start": {
                    "line": 18,
                    "column": 2
                  },
                  "end": {
                    "line": 21,
                    "column": 3
                  }
                },
                "static": true,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 621,
                  "end": 632,
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 9
                    },
                    "end": {
                      "line": 18,
                      "column": 20
                    },
                    "identifierName": "isValidJSON"
                  },
                  "name": "isValidJSON"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 633,
                    "end": 641,
                    "loc": {
                      "start": {
                        "line": 18,
                        "column": 21
                      },
                      "end": {
                        "line": 18,
                        "column": 29
                      },
                      "identifierName": "jsonData"
                    },
                    "name": "jsonData"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 643,
                  "end": 820,
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 31
                    },
                    "end": {
                      "line": 21,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 649,
                      "end": 816,
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 4
                        },
                        "end": {
                          "line": 20,
                          "column": 100
                        }
                      },
                      "argument": {
                        "type": "LogicalExpression",
                        "start": 657,
                        "end": 815,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 99
                          }
                        },
                        "left": {
                          "type": "LogicalExpression",
                          "start": 657,
                          "end": 769,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 12
                            },
                            "end": {
                              "line": 20,
                              "column": 53
                            }
                          },
                          "left": {
                            "type": "LogicalExpression",
                            "start": 657,
                            "end": 735,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 12
                              },
                              "end": {
                                "line": 20,
                                "column": 19
                              }
                            },
                            "left": {
                              "type": "LogicalExpression",
                              "start": 657,
                              "end": 712,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 12
                                },
                                "end": {
                                  "line": 19,
                                  "column": 67
                                }
                              },
                              "left": {
                                "type": "LogicalExpression",
                                "start": 657,
                                "end": 686,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 41
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 657,
                                  "end": 665,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 20
                                    },
                                    "identifierName": "jsonData"
                                  },
                                  "name": "jsonData"
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 669,
                                  "end": 686,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 41
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 669,
                                    "end": 677,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 32
                                      },
                                      "identifierName": "jsonData"
                                    },
                                    "name": "jsonData"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 678,
                                    "end": 686,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 41
                                      },
                                      "identifierName": "metadata"
                                    },
                                    "name": "metadata"
                                  },
                                  "computed": false
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "MemberExpression",
                                "start": 690,
                                "end": 712,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 67
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 690,
                                  "end": 707,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 45
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 62
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 690,
                                    "end": 698,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 45
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 53
                                      },
                                      "identifierName": "jsonData"
                                    },
                                    "name": "jsonData"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 699,
                                    "end": 707,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 62
                                      },
                                      "identifierName": "metadata"
                                    },
                                    "name": "metadata"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 708,
                                  "end": 712,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 63
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 67
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name"
                                },
                                "computed": false
                              }
                            },
                            "operator": "&&",
                            "right": {
                              "type": "MemberExpression",
                              "start": 722,
                              "end": 735,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 6
                                },
                                "end": {
                                  "line": 20,
                                  "column": 19
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 722,
                                "end": 730,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 14
                                  },
                                  "identifierName": "jsonData"
                                },
                                "name": "jsonData"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 731,
                                "end": 735,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 19
                                  },
                                  "identifierName": "spec"
                                },
                                "name": "spec"
                              },
                              "computed": false
                            }
                          },
                          "operator": "&&",
                          "right": {
                            "type": "MemberExpression",
                            "start": 739,
                            "end": 769,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 23
                              },
                              "end": {
                                "line": 20,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 739,
                              "end": 752,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 23
                                },
                                "end": {
                                  "line": 20,
                                  "column": 36
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 739,
                                "end": 747,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 31
                                  },
                                  "identifierName": "jsonData"
                                },
                                "name": "jsonData"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 748,
                                "end": 752,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 36
                                  },
                                  "identifierName": "spec"
                                },
                                "name": "spec"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 753,
                              "end": 769,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 37
                                },
                                "end": {
                                  "line": 20,
                                  "column": 53
                                },
                                "identifierName": "externalMetadata"
                              },
                              "name": "externalMetadata"
                            },
                            "computed": false
                          }
                        },
                        "operator": "&&",
                        "right": {
                          "type": "MemberExpression",
                          "start": 773,
                          "end": 815,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 57
                            },
                            "end": {
                              "line": 20,
                              "column": 99
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 773,
                            "end": 803,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 57
                              },
                              "end": {
                                "line": 20,
                                "column": 87
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 773,
                              "end": 786,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 57
                                },
                                "end": {
                                  "line": 20,
                                  "column": 70
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 773,
                                "end": 781,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 57
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 65
                                  },
                                  "identifierName": "jsonData"
                                },
                                "name": "jsonData"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 782,
                                "end": 786,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 70
                                  },
                                  "identifierName": "spec"
                                },
                                "name": "spec"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 787,
                              "end": 803,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 71
                                },
                                "end": {
                                  "line": 20,
                                  "column": 87
                                },
                                "identifierName": "externalMetadata"
                              },
                              "name": "externalMetadata"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 804,
                            "end": 815,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 88
                              },
                              "end": {
                                "line": 20,
                                "column": 99
                              },
                              "identifierName": "displayName"
                            },
                            "name": "displayName"
                          },
                          "computed": false
                        },
                        "extra": {
                          "parenthesized": true,
                          "parenStart": 656
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Return whether the provided JSON data is parsable by @see fromJSON \n   * This returning false does not mean the actual object is invalid in OpenShift.\n   * @param {Object} jsonData The JSON object to check\n   * @returns {boolean} \n   ",
                    "start": 366,
                    "end": 611,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 2
                      },
                      "end": {
                        "line": 17,
                        "column": 5
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Create a new {@link ClusterServiceClass} from a provided JSON object.\n   * @param {Object} jsonData The JSON object to parse\n   * @returns {ClusterServiceClass}\n   ",
                    "start": 824,
                    "end": 999,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 2
                      },
                      "end": {
                        "line": 27,
                        "column": 5
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 1002,
                "end": 1137,
                "loc": {
                  "start": {
                    "line": 28,
                    "column": 2
                  },
                  "end": {
                    "line": 30,
                    "column": 3
                  }
                },
                "static": true,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1009,
                  "end": 1017,
                  "loc": {
                    "start": {
                      "line": 28,
                      "column": 9
                    },
                    "end": {
                      "line": 28,
                      "column": 17
                    },
                    "identifierName": "fromJSON"
                  },
                  "name": "fromJSON"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1018,
                    "end": 1026,
                    "loc": {
                      "start": {
                        "line": 28,
                        "column": 18
                      },
                      "end": {
                        "line": 28,
                        "column": 26
                      },
                      "identifierName": "jsonData"
                    },
                    "name": "jsonData"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1028,
                  "end": 1137,
                  "loc": {
                    "start": {
                      "line": 28,
                      "column": 28
                    },
                    "end": {
                      "line": 30,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 1034,
                      "end": 1133,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 4
                        },
                        "end": {
                          "line": 29,
                          "column": 103
                        }
                      },
                      "argument": {
                        "type": "NewExpression",
                        "start": 1041,
                        "end": 1132,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 11
                          },
                          "end": {
                            "line": 29,
                            "column": 102
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 1045,
                          "end": 1064,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 15
                            },
                            "end": {
                              "line": 29,
                              "column": 34
                            },
                            "identifierName": "ClusterServiceClass"
                          },
                          "name": "ClusterServiceClass"
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1065,
                            "end": 1087,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 35
                              },
                              "end": {
                                "line": 29,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1065,
                              "end": 1082,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 35
                                },
                                "end": {
                                  "line": 29,
                                  "column": 52
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1065,
                                "end": 1073,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 43
                                  },
                                  "identifierName": "jsonData"
                                },
                                "name": "jsonData"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1074,
                                "end": 1082,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 52
                                  },
                                  "identifierName": "metadata"
                                },
                                "name": "metadata"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1083,
                              "end": 1087,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 53
                                },
                                "end": {
                                  "line": 29,
                                  "column": 57
                                },
                                "identifierName": "name"
                              },
                              "name": "name"
                            },
                            "computed": false
                          },
                          {
                            "type": "MemberExpression",
                            "start": 1089,
                            "end": 1131,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 59
                              },
                              "end": {
                                "line": 29,
                                "column": 101
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1089,
                              "end": 1119,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 59
                                },
                                "end": {
                                  "line": 29,
                                  "column": 89
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1089,
                                "end": 1102,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 59
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 72
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1089,
                                  "end": 1097,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 67
                                    },
                                    "identifierName": "jsonData"
                                  },
                                  "name": "jsonData"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1098,
                                  "end": 1102,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 68
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 72
                                    },
                                    "identifierName": "spec"
                                  },
                                  "name": "spec"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1103,
                                "end": 1119,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 73
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 89
                                  },
                                  "identifierName": "externalMetadata"
                                },
                                "name": "externalMetadata"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1120,
                              "end": 1131,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 90
                                },
                                "end": {
                                  "line": 29,
                                  "column": 101
                                },
                                "identifierName": "displayName"
                              },
                              "name": "displayName"
                            },
                            "computed": false
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Create a new {@link ClusterServiceClass} from a provided JSON object.\n   * @param {Object} jsonData The JSON object to parse\n   * @returns {ClusterServiceClass}\n   ",
                    "start": 824,
                    "end": 999,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 2
                      },
                      "end": {
                        "line": 27,
                        "column": 5
                      }
                    }
                  }
                ]
              }
            ]
          },
          "leadingComments": [],
          "trailingComments": []
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentBlock",
      "value": "*\n   * Construct a new {@link ClusterServiceClass}\n   * @param {string} name The identifying name of the cluster service class\n   * @param {string} displayName The human-friendly name of the cluster service class\n   ",
      "start": 45,
      "end": 265,
      "loc": {
        "start": {
          "line": 2,
          "column": 2
        },
        "end": {
          "line": 6,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Return whether the provided JSON data is parsable by @see fromJSON \n   * This returning false does not mean the actual object is invalid in OpenShift.\n   * @param {Object} jsonData The JSON object to check\n   * @returns {boolean} \n   ",
      "start": 366,
      "end": 611,
      "loc": {
        "start": {
          "line": 12,
          "column": 2
        },
        "end": {
          "line": 17,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Create a new {@link ClusterServiceClass} from a provided JSON object.\n   * @param {Object} jsonData The JSON object to parse\n   * @returns {ClusterServiceClass}\n   ",
      "start": 824,
      "end": 999,
      "loc": {
        "start": {
          "line": 23,
          "column": 2
        },
        "end": {
          "line": 27,
          "column": 5
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 7,
      "end": 14,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 15,
      "end": 20,
      "loc": {
        "start": {
          "line": 1,
          "column": 15
        },
        "end": {
          "line": 1,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ClusterServiceClass",
      "start": 21,
      "end": 40,
      "loc": {
        "start": {
          "line": 1,
          "column": 21
        },
        "end": {
          "line": 1,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 41,
      "end": 42,
      "loc": {
        "start": {
          "line": 1,
          "column": 41
        },
        "end": {
          "line": 1,
          "column": 42
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Construct a new {@link ClusterServiceClass}\n   * @param {string} name The identifying name of the cluster service class\n   * @param {string} displayName The human-friendly name of the cluster service class\n   ",
      "start": 45,
      "end": 265,
      "loc": {
        "start": {
          "line": 2,
          "column": 2
        },
        "end": {
          "line": 6,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 268,
      "end": 279,
      "loc": {
        "start": {
          "line": 7,
          "column": 2
        },
        "end": {
          "line": 7,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 279,
      "end": 280,
      "loc": {
        "start": {
          "line": 7,
          "column": 13
        },
        "end": {
          "line": 7,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 280,
      "end": 284,
      "loc": {
        "start": {
          "line": 7,
          "column": 14
        },
        "end": {
          "line": 7,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 284,
      "end": 285,
      "loc": {
        "start": {
          "line": 7,
          "column": 18
        },
        "end": {
          "line": 7,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "displayName",
      "start": 286,
      "end": 297,
      "loc": {
        "start": {
          "line": 7,
          "column": 20
        },
        "end": {
          "line": 7,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 297,
      "end": 298,
      "loc": {
        "start": {
          "line": 7,
          "column": 31
        },
        "end": {
          "line": 7,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 299,
      "end": 300,
      "loc": {
        "start": {
          "line": 7,
          "column": 33
        },
        "end": {
          "line": 7,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 305,
      "end": 309,
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 8,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 309,
      "end": 310,
      "loc": {
        "start": {
          "line": 8,
          "column": 8
        },
        "end": {
          "line": 8,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 310,
      "end": 314,
      "loc": {
        "start": {
          "line": 8,
          "column": 9
        },
        "end": {
          "line": 8,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 315,
      "end": 316,
      "loc": {
        "start": {
          "line": 8,
          "column": 14
        },
        "end": {
          "line": 8,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 317,
      "end": 321,
      "loc": {
        "start": {
          "line": 8,
          "column": 16
        },
        "end": {
          "line": 8,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 321,
      "end": 322,
      "loc": {
        "start": {
          "line": 8,
          "column": 20
        },
        "end": {
          "line": 8,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 327,
      "end": 331,
      "loc": {
        "start": {
          "line": 9,
          "column": 4
        },
        "end": {
          "line": 9,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 331,
      "end": 332,
      "loc": {
        "start": {
          "line": 9,
          "column": 8
        },
        "end": {
          "line": 9,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "displayName",
      "start": 332,
      "end": 343,
      "loc": {
        "start": {
          "line": 9,
          "column": 9
        },
        "end": {
          "line": 9,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 344,
      "end": 345,
      "loc": {
        "start": {
          "line": 9,
          "column": 21
        },
        "end": {
          "line": 9,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "displayName",
      "start": 346,
      "end": 357,
      "loc": {
        "start": {
          "line": 9,
          "column": 23
        },
        "end": {
          "line": 9,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 357,
      "end": 358,
      "loc": {
        "start": {
          "line": 9,
          "column": 34
        },
        "end": {
          "line": 9,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 361,
      "end": 362,
      "loc": {
        "start": {
          "line": 10,
          "column": 2
        },
        "end": {
          "line": 10,
          "column": 3
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Return whether the provided JSON data is parsable by @see fromJSON \n   * This returning false does not mean the actual object is invalid in OpenShift.\n   * @param {Object} jsonData The JSON object to check\n   * @returns {boolean} \n   ",
      "start": 366,
      "end": 611,
      "loc": {
        "start": {
          "line": 12,
          "column": 2
        },
        "end": {
          "line": 17,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "static",
      "start": 614,
      "end": 620,
      "loc": {
        "start": {
          "line": 18,
          "column": 2
        },
        "end": {
          "line": 18,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isValidJSON",
      "start": 621,
      "end": 632,
      "loc": {
        "start": {
          "line": 18,
          "column": 9
        },
        "end": {
          "line": 18,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 632,
      "end": 633,
      "loc": {
        "start": {
          "line": 18,
          "column": 20
        },
        "end": {
          "line": 18,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 633,
      "end": 641,
      "loc": {
        "start": {
          "line": 18,
          "column": 21
        },
        "end": {
          "line": 18,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 641,
      "end": 642,
      "loc": {
        "start": {
          "line": 18,
          "column": 29
        },
        "end": {
          "line": 18,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 643,
      "end": 644,
      "loc": {
        "start": {
          "line": 18,
          "column": 31
        },
        "end": {
          "line": 18,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 649,
      "end": 655,
      "loc": {
        "start": {
          "line": 19,
          "column": 4
        },
        "end": {
          "line": 19,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 656,
      "end": 657,
      "loc": {
        "start": {
          "line": 19,
          "column": 11
        },
        "end": {
          "line": 19,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 657,
      "end": 665,
      "loc": {
        "start": {
          "line": 19,
          "column": 12
        },
        "end": {
          "line": 19,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 666,
      "end": 668,
      "loc": {
        "start": {
          "line": 19,
          "column": 21
        },
        "end": {
          "line": 19,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 669,
      "end": 677,
      "loc": {
        "start": {
          "line": 19,
          "column": 24
        },
        "end": {
          "line": 19,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 677,
      "end": 678,
      "loc": {
        "start": {
          "line": 19,
          "column": 32
        },
        "end": {
          "line": 19,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "metadata",
      "start": 678,
      "end": 686,
      "loc": {
        "start": {
          "line": 19,
          "column": 33
        },
        "end": {
          "line": 19,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 687,
      "end": 689,
      "loc": {
        "start": {
          "line": 19,
          "column": 42
        },
        "end": {
          "line": 19,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 690,
      "end": 698,
      "loc": {
        "start": {
          "line": 19,
          "column": 45
        },
        "end": {
          "line": 19,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 698,
      "end": 699,
      "loc": {
        "start": {
          "line": 19,
          "column": 53
        },
        "end": {
          "line": 19,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "metadata",
      "start": 699,
      "end": 707,
      "loc": {
        "start": {
          "line": 19,
          "column": 54
        },
        "end": {
          "line": 19,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 707,
      "end": 708,
      "loc": {
        "start": {
          "line": 19,
          "column": 62
        },
        "end": {
          "line": 19,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 708,
      "end": 712,
      "loc": {
        "start": {
          "line": 19,
          "column": 63
        },
        "end": {
          "line": 19,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 713,
      "end": 715,
      "loc": {
        "start": {
          "line": 19,
          "column": 68
        },
        "end": {
          "line": 19,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 722,
      "end": 730,
      "loc": {
        "start": {
          "line": 20,
          "column": 6
        },
        "end": {
          "line": 20,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 730,
      "end": 731,
      "loc": {
        "start": {
          "line": 20,
          "column": 14
        },
        "end": {
          "line": 20,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "spec",
      "start": 731,
      "end": 735,
      "loc": {
        "start": {
          "line": 20,
          "column": 15
        },
        "end": {
          "line": 20,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 736,
      "end": 738,
      "loc": {
        "start": {
          "line": 20,
          "column": 20
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 739,
      "end": 747,
      "loc": {
        "start": {
          "line": 20,
          "column": 23
        },
        "end": {
          "line": 20,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 747,
      "end": 748,
      "loc": {
        "start": {
          "line": 20,
          "column": 31
        },
        "end": {
          "line": 20,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "spec",
      "start": 748,
      "end": 752,
      "loc": {
        "start": {
          "line": 20,
          "column": 32
        },
        "end": {
          "line": 20,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 752,
      "end": 753,
      "loc": {
        "start": {
          "line": 20,
          "column": 36
        },
        "end": {
          "line": 20,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "externalMetadata",
      "start": 753,
      "end": 769,
      "loc": {
        "start": {
          "line": 20,
          "column": 37
        },
        "end": {
          "line": 20,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 770,
      "end": 772,
      "loc": {
        "start": {
          "line": 20,
          "column": 54
        },
        "end": {
          "line": 20,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 773,
      "end": 781,
      "loc": {
        "start": {
          "line": 20,
          "column": 57
        },
        "end": {
          "line": 20,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 781,
      "end": 782,
      "loc": {
        "start": {
          "line": 20,
          "column": 65
        },
        "end": {
          "line": 20,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "spec",
      "start": 782,
      "end": 786,
      "loc": {
        "start": {
          "line": 20,
          "column": 66
        },
        "end": {
          "line": 20,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 786,
      "end": 787,
      "loc": {
        "start": {
          "line": 20,
          "column": 70
        },
        "end": {
          "line": 20,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "externalMetadata",
      "start": 787,
      "end": 803,
      "loc": {
        "start": {
          "line": 20,
          "column": 71
        },
        "end": {
          "line": 20,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 803,
      "end": 804,
      "loc": {
        "start": {
          "line": 20,
          "column": 87
        },
        "end": {
          "line": 20,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "displayName",
      "start": 804,
      "end": 815,
      "loc": {
        "start": {
          "line": 20,
          "column": 88
        },
        "end": {
          "line": 20,
          "column": 99
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 815,
      "end": 816,
      "loc": {
        "start": {
          "line": 20,
          "column": 99
        },
        "end": {
          "line": 20,
          "column": 100
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 819,
      "end": 820,
      "loc": {
        "start": {
          "line": 21,
          "column": 2
        },
        "end": {
          "line": 21,
          "column": 3
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Create a new {@link ClusterServiceClass} from a provided JSON object.\n   * @param {Object} jsonData The JSON object to parse\n   * @returns {ClusterServiceClass}\n   ",
      "start": 824,
      "end": 999,
      "loc": {
        "start": {
          "line": 23,
          "column": 2
        },
        "end": {
          "line": 27,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "static",
      "start": 1002,
      "end": 1008,
      "loc": {
        "start": {
          "line": 28,
          "column": 2
        },
        "end": {
          "line": 28,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fromJSON",
      "start": 1009,
      "end": 1017,
      "loc": {
        "start": {
          "line": 28,
          "column": 9
        },
        "end": {
          "line": 28,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1017,
      "end": 1018,
      "loc": {
        "start": {
          "line": 28,
          "column": 17
        },
        "end": {
          "line": 28,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 1018,
      "end": 1026,
      "loc": {
        "start": {
          "line": 28,
          "column": 18
        },
        "end": {
          "line": 28,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1026,
      "end": 1027,
      "loc": {
        "start": {
          "line": 28,
          "column": 26
        },
        "end": {
          "line": 28,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1028,
      "end": 1029,
      "loc": {
        "start": {
          "line": 28,
          "column": 28
        },
        "end": {
          "line": 28,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1034,
      "end": 1040,
      "loc": {
        "start": {
          "line": 29,
          "column": 4
        },
        "end": {
          "line": 29,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1041,
      "end": 1044,
      "loc": {
        "start": {
          "line": 29,
          "column": 11
        },
        "end": {
          "line": 29,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ClusterServiceClass",
      "start": 1045,
      "end": 1064,
      "loc": {
        "start": {
          "line": 29,
          "column": 15
        },
        "end": {
          "line": 29,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1064,
      "end": 1065,
      "loc": {
        "start": {
          "line": 29,
          "column": 34
        },
        "end": {
          "line": 29,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 1065,
      "end": 1073,
      "loc": {
        "start": {
          "line": 29,
          "column": 35
        },
        "end": {
          "line": 29,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1073,
      "end": 1074,
      "loc": {
        "start": {
          "line": 29,
          "column": 43
        },
        "end": {
          "line": 29,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "metadata",
      "start": 1074,
      "end": 1082,
      "loc": {
        "start": {
          "line": 29,
          "column": 44
        },
        "end": {
          "line": 29,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1082,
      "end": 1083,
      "loc": {
        "start": {
          "line": 29,
          "column": 52
        },
        "end": {
          "line": 29,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1083,
      "end": 1087,
      "loc": {
        "start": {
          "line": 29,
          "column": 53
        },
        "end": {
          "line": 29,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1087,
      "end": 1088,
      "loc": {
        "start": {
          "line": 29,
          "column": 57
        },
        "end": {
          "line": 29,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "jsonData",
      "start": 1089,
      "end": 1097,
      "loc": {
        "start": {
          "line": 29,
          "column": 59
        },
        "end": {
          "line": 29,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1097,
      "end": 1098,
      "loc": {
        "start": {
          "line": 29,
          "column": 67
        },
        "end": {
          "line": 29,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "spec",
      "start": 1098,
      "end": 1102,
      "loc": {
        "start": {
          "line": 29,
          "column": 68
        },
        "end": {
          "line": 29,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1102,
      "end": 1103,
      "loc": {
        "start": {
          "line": 29,
          "column": 72
        },
        "end": {
          "line": 29,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "externalMetadata",
      "start": 1103,
      "end": 1119,
      "loc": {
        "start": {
          "line": 29,
          "column": 73
        },
        "end": {
          "line": 29,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1119,
      "end": 1120,
      "loc": {
        "start": {
          "line": 29,
          "column": 89
        },
        "end": {
          "line": 29,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "displayName",
      "start": 1120,
      "end": 1131,
      "loc": {
        "start": {
          "line": 29,
          "column": 90
        },
        "end": {
          "line": 29,
          "column": 101
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1131,
      "end": 1132,
      "loc": {
        "start": {
          "line": 29,
          "column": 101
        },
        "end": {
          "line": 29,
          "column": 102
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1132,
      "end": 1133,
      "loc": {
        "start": {
          "line": 29,
          "column": 102
        },
        "end": {
          "line": 29,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1136,
      "end": 1137,
      "loc": {
        "start": {
          "line": 30,
          "column": 2
        },
        "end": {
          "line": 30,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1138,
      "end": 1139,
      "loc": {
        "start": {
          "line": 31,
          "column": 0
        },
        "end": {
          "line": 31,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1140,
      "end": 1140,
      "loc": {
        "start": {
          "line": 32,
          "column": 0
        },
        "end": {
          "line": 32,
          "column": 0
        }
      }
    }
  ]
}