Index: generated/googleapis/lib/pagespeedonline/v2.dart |
diff --git a/generated/googleapis/lib/pagespeedonline/v2.dart b/generated/googleapis/lib/pagespeedonline/v2.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7159cad0b0b8ace411d17e581313ecbf06690822 |
--- /dev/null |
+++ b/generated/googleapis/lib/pagespeedonline/v2.dart |
@@ -0,0 +1,980 @@ |
+library googleapis.pagespeedonline.v2; |
+ |
+import "dart:core" as core; |
+import "dart:collection" as collection; |
+import "dart:async" as async; |
+import "dart:convert" as convert; |
+ |
+import "package:crypto/crypto.dart" as crypto; |
+import 'package:http/http.dart' as http; |
+import '../src/common_internal.dart' as common_internal; |
+import '../common/common.dart' as common; |
+ |
+export '../common/common.dart' show ApiRequestError; |
+export '../common/common.dart' show DetailedApiRequestError; |
+ |
+/** |
+ * Lets you analyze the performance of a web page and get tailored suggestions |
+ * to make that page faster. |
+ */ |
+class PagespeedonlineApi { |
+ |
+ final common_internal.ApiRequester _requester; |
+ |
+ PagespeedapiResourceApi get pagespeedapi => new PagespeedapiResourceApi(_requester); |
+ |
+ PagespeedonlineApi(http.Client client, {core.String rootUrl: "https://www.googleapis.com/", core.String servicePath: "pagespeedonline/v2/"}) : |
+ _requester = new common_internal.ApiRequester(client, rootUrl, servicePath); |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedapiResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ PagespeedapiResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Runs PageSpeed analysis on the page at the specified URL, and returns |
+ * PageSpeed scores, a list of suggestions to make that page faster, and other |
+ * information. |
+ * |
+ * Request parameters: |
+ * |
+ * [url] - The URL to fetch and analyze |
+ * Value must have pattern "http(s)?://.*". |
+ * |
+ * [filterThirdPartyResources] - Indicates if third party resources should be |
+ * filtered out before PageSpeed analysis. |
+ * |
+ * [locale] - The locale used to localize formatted results |
+ * Value must have pattern "[a-zA-Z]+(_[a-zA-Z]+)?". |
+ * |
+ * [rule] - A PageSpeed rule to run; if none are given, all rules are run |
+ * Value must have pattern "[a-zA-Z]+". |
+ * |
+ * [screenshot] - Indicates if binary data containing a screenshot should be |
+ * included |
+ * |
+ * [strategy] - The analysis strategy to use |
+ * Possible string values are: |
+ * - "desktop" : Fetch and analyze the URL for desktop browsers |
+ * - "mobile" : Fetch and analyze the URL for mobile devices |
+ * |
+ * Completes with a [Result]. |
+ * |
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Result> runpagespeed(core.String url, {core.bool filterThirdPartyResources, core.String locale, core.List<core.String> rule, core.bool screenshot, core.String strategy}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (url == null) { |
+ throw new core.ArgumentError("Parameter url is required."); |
+ } |
+ _queryParams["url"] = [url]; |
+ if (filterThirdPartyResources != null) { |
+ _queryParams["filter_third_party_resources"] = ["${filterThirdPartyResources}"]; |
+ } |
+ if (locale != null) { |
+ _queryParams["locale"] = [locale]; |
+ } |
+ if (rule != null) { |
+ _queryParams["rule"] = rule; |
+ } |
+ if (screenshot != null) { |
+ _queryParams["screenshot"] = ["${screenshot}"]; |
+ } |
+ if (strategy != null) { |
+ _queryParams["strategy"] = [strategy]; |
+ } |
+ |
+ |
+ _url = 'runPagespeed'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Result.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedApiFormatStringV2ArgsRects { |
+ /** The height of the rect. */ |
+ core.int height; |
+ |
+ /** The left coordinate of the rect, in page coordinates. */ |
+ core.int left; |
+ |
+ /** The top coordinate of the rect, in page coordinates. */ |
+ core.int top; |
+ |
+ /** The width of the rect. */ |
+ core.int width; |
+ |
+ |
+ PagespeedApiFormatStringV2ArgsRects(); |
+ |
+ PagespeedApiFormatStringV2ArgsRects.fromJson(core.Map _json) { |
+ if (_json.containsKey("height")) { |
+ height = _json["height"]; |
+ } |
+ if (_json.containsKey("left")) { |
+ left = _json["left"]; |
+ } |
+ if (_json.containsKey("top")) { |
+ top = _json["top"]; |
+ } |
+ if (_json.containsKey("width")) { |
+ width = _json["width"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (height != null) { |
+ _json["height"] = height; |
+ } |
+ if (left != null) { |
+ _json["left"] = left; |
+ } |
+ if (top != null) { |
+ _json["top"] = top; |
+ } |
+ if (width != null) { |
+ _json["width"] = width; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedApiFormatStringV2ArgsSecondaryRects { |
+ /** The height of the rect. */ |
+ core.int height; |
+ |
+ /** The left coordinate of the rect, in page coordinates. */ |
+ core.int left; |
+ |
+ /** The top coordinate of the rect, in page coordinates. */ |
+ core.int top; |
+ |
+ /** The width of the rect. */ |
+ core.int width; |
+ |
+ |
+ PagespeedApiFormatStringV2ArgsSecondaryRects(); |
+ |
+ PagespeedApiFormatStringV2ArgsSecondaryRects.fromJson(core.Map _json) { |
+ if (_json.containsKey("height")) { |
+ height = _json["height"]; |
+ } |
+ if (_json.containsKey("left")) { |
+ left = _json["left"]; |
+ } |
+ if (_json.containsKey("top")) { |
+ top = _json["top"]; |
+ } |
+ if (_json.containsKey("width")) { |
+ width = _json["width"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (height != null) { |
+ _json["height"] = height; |
+ } |
+ if (left != null) { |
+ _json["left"] = left; |
+ } |
+ if (top != null) { |
+ _json["top"] = top; |
+ } |
+ if (width != null) { |
+ _json["width"] = width; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedApiFormatStringV2Args { |
+ /** The placeholder key for this arg, as a string. */ |
+ core.String key; |
+ |
+ /** |
+ * The screen rectangles being referred to, with dimensions measured in CSS |
+ * pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is |
+ * absent for a SNAPSHOT_RECT argument, it means that that argument refers to |
+ * the entire snapshot. |
+ */ |
+ core.List<PagespeedApiFormatStringV2ArgsRects> rects; |
+ |
+ /** |
+ * Secondary screen rectangles being referred to, with dimensions measured in |
+ * CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. |
+ */ |
+ core.List<PagespeedApiFormatStringV2ArgsSecondaryRects> secondaryRects; |
+ |
+ /** |
+ * Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, |
+ * VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT. |
+ */ |
+ core.String type; |
+ |
+ /** Argument value, as a localized string. */ |
+ core.String value; |
+ |
+ |
+ PagespeedApiFormatStringV2Args(); |
+ |
+ PagespeedApiFormatStringV2Args.fromJson(core.Map _json) { |
+ if (_json.containsKey("key")) { |
+ key = _json["key"]; |
+ } |
+ if (_json.containsKey("rects")) { |
+ rects = _json["rects"].map((value) => new PagespeedApiFormatStringV2ArgsRects.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("secondary_rects")) { |
+ secondaryRects = _json["secondary_rects"].map((value) => new PagespeedApiFormatStringV2ArgsSecondaryRects.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (key != null) { |
+ _json["key"] = key; |
+ } |
+ if (rects != null) { |
+ _json["rects"] = rects.map((value) => (value).toJson()).toList(); |
+ } |
+ if (secondaryRects != null) { |
+ _json["secondary_rects"] = secondaryRects.map((value) => (value).toJson()).toList(); |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedApiFormatStringV2 { |
+ /** List of arguments for the format string. */ |
+ core.List<PagespeedApiFormatStringV2Args> args; |
+ |
+ /** |
+ * A localized format string with {{FOO}} placeholders, where 'FOO' is the key |
+ * of the argument whose value should be substituted. For HYPERLINK arguments, |
+ * the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for |
+ * the argument with key 'FOO'. |
+ */ |
+ core.String format; |
+ |
+ |
+ PagespeedApiFormatStringV2(); |
+ |
+ PagespeedApiFormatStringV2.fromJson(core.Map _json) { |
+ if (_json.containsKey("args")) { |
+ args = _json["args"].map((value) => new PagespeedApiFormatStringV2Args.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("format")) { |
+ format = _json["format"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (args != null) { |
+ _json["args"] = args.map((value) => (value).toJson()).toList(); |
+ } |
+ if (format != null) { |
+ _json["format"] = format; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * The region of the page that is captured by this image, with dimensions |
+ * measured in CSS pixels. |
+ */ |
+class PagespeedApiImageV2PageRect { |
+ /** The height of the rect. */ |
+ core.int height; |
+ |
+ /** The left coordinate of the rect, in page coordinates. */ |
+ core.int left; |
+ |
+ /** The top coordinate of the rect, in page coordinates. */ |
+ core.int top; |
+ |
+ /** The width of the rect. */ |
+ core.int width; |
+ |
+ |
+ PagespeedApiImageV2PageRect(); |
+ |
+ PagespeedApiImageV2PageRect.fromJson(core.Map _json) { |
+ if (_json.containsKey("height")) { |
+ height = _json["height"]; |
+ } |
+ if (_json.containsKey("left")) { |
+ left = _json["left"]; |
+ } |
+ if (_json.containsKey("top")) { |
+ top = _json["top"]; |
+ } |
+ if (_json.containsKey("width")) { |
+ width = _json["width"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (height != null) { |
+ _json["height"] = height; |
+ } |
+ if (left != null) { |
+ _json["left"] = left; |
+ } |
+ if (top != null) { |
+ _json["top"] = top; |
+ } |
+ if (width != null) { |
+ _json["width"] = width; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class PagespeedApiImageV2 { |
+ /** Image data base64 encoded. */ |
+ core.String data; |
+ |
+ core.List<core.int> get dataAsBytes { |
+ return crypto.CryptoUtils.base64StringToBytes(data); |
+ } |
+ |
+ void set dataAsBytes(core.List<core.int> _bytes) { |
+ data = crypto.CryptoUtils.bytesToBase64(_bytes, urlSafe: true); |
+ } |
+ |
+ /** Height of screenshot in pixels. */ |
+ core.int height; |
+ |
+ /** Unique string key, if any, identifying this image. */ |
+ core.String key; |
+ |
+ /** Mime type of image data (e.g. "image/jpeg"). */ |
+ core.String mimeType; |
+ |
+ /** |
+ * The region of the page that is captured by this image, with dimensions |
+ * measured in CSS pixels. |
+ */ |
+ PagespeedApiImageV2PageRect pageRect; |
+ |
+ /** Width of screenshot in pixels. */ |
+ core.int width; |
+ |
+ |
+ PagespeedApiImageV2(); |
+ |
+ PagespeedApiImageV2.fromJson(core.Map _json) { |
+ if (_json.containsKey("data")) { |
+ data = _json["data"]; |
+ } |
+ if (_json.containsKey("height")) { |
+ height = _json["height"]; |
+ } |
+ if (_json.containsKey("key")) { |
+ key = _json["key"]; |
+ } |
+ if (_json.containsKey("mime_type")) { |
+ mimeType = _json["mime_type"]; |
+ } |
+ if (_json.containsKey("page_rect")) { |
+ pageRect = new PagespeedApiImageV2PageRect.fromJson(_json["page_rect"]); |
+ } |
+ if (_json.containsKey("width")) { |
+ width = _json["width"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (data != null) { |
+ _json["data"] = data; |
+ } |
+ if (height != null) { |
+ _json["height"] = height; |
+ } |
+ if (key != null) { |
+ _json["key"] = key; |
+ } |
+ if (mimeType != null) { |
+ _json["mime_type"] = mimeType; |
+ } |
+ if (pageRect != null) { |
+ _json["page_rect"] = (pageRect).toJson(); |
+ } |
+ if (width != null) { |
+ _json["width"] = width; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ResultFormattedResultsRuleResultsValueUrlBlocksUrls { |
+ /** |
+ * List of entries that provide additional details about a single URL. |
+ * Optional. |
+ */ |
+ core.List<PagespeedApiFormatStringV2> details; |
+ |
+ /** |
+ * A format string that gives information about the URL, and a list of |
+ * arguments for that format string. |
+ */ |
+ PagespeedApiFormatStringV2 result; |
+ |
+ |
+ ResultFormattedResultsRuleResultsValueUrlBlocksUrls(); |
+ |
+ ResultFormattedResultsRuleResultsValueUrlBlocksUrls.fromJson(core.Map _json) { |
+ if (_json.containsKey("details")) { |
+ details = _json["details"].map((value) => new PagespeedApiFormatStringV2.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("result")) { |
+ result = new PagespeedApiFormatStringV2.fromJson(_json["result"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (details != null) { |
+ _json["details"] = details.map((value) => (value).toJson()).toList(); |
+ } |
+ if (result != null) { |
+ _json["result"] = (result).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ResultFormattedResultsRuleResultsValueUrlBlocks { |
+ /** Heading to be displayed with the list of URLs. */ |
+ PagespeedApiFormatStringV2 header; |
+ |
+ /** |
+ * List of entries that provide information about URLs in the url block. |
+ * Optional. |
+ */ |
+ core.List<ResultFormattedResultsRuleResultsValueUrlBlocksUrls> urls; |
+ |
+ |
+ ResultFormattedResultsRuleResultsValueUrlBlocks(); |
+ |
+ ResultFormattedResultsRuleResultsValueUrlBlocks.fromJson(core.Map _json) { |
+ if (_json.containsKey("header")) { |
+ header = new PagespeedApiFormatStringV2.fromJson(_json["header"]); |
+ } |
+ if (_json.containsKey("urls")) { |
+ urls = _json["urls"].map((value) => new ResultFormattedResultsRuleResultsValueUrlBlocksUrls.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (header != null) { |
+ _json["header"] = (header).toJson(); |
+ } |
+ if (urls != null) { |
+ _json["urls"] = urls.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * The enum-like identifier for this rule. For instance "EnableKeepAlive" or |
+ * "AvoidCssImport". Not localized. |
+ */ |
+class ResultFormattedResultsRuleResultsValue { |
+ /** |
+ * List of rule groups that this rule belongs to. Each entry in the list is |
+ * one of "SPEED" or "USABILITY". |
+ */ |
+ core.List<core.String> groups; |
+ |
+ /** Localized name of the rule, intended for presentation to a user. */ |
+ core.String localizedRuleName; |
+ |
+ /** |
+ * The impact (unbounded floating point value) that implementing the |
+ * suggestions for this rule would have on making the page faster. Impact is |
+ * comparable between rules to determine which rule's suggestions would have a |
+ * higher or lower impact on making a page faster. For instance, if enabling |
+ * compression would save 1MB, while optimizing images would save 500kB, the |
+ * enable compression rule would have 2x the impact of the image optimization |
+ * rule, all other things being equal. |
+ */ |
+ core.double ruleImpact; |
+ |
+ /** |
+ * A brief summary description for the rule, indicating at a high level what |
+ * should be done to follow the rule and what benefit can be gained by doing |
+ * so. |
+ */ |
+ PagespeedApiFormatStringV2 summary; |
+ |
+ /** |
+ * List of blocks of URLs. Each block may contain a heading and a list of |
+ * URLs. Each URL may optionally include additional details. |
+ */ |
+ core.List<ResultFormattedResultsRuleResultsValueUrlBlocks> urlBlocks; |
+ |
+ |
+ ResultFormattedResultsRuleResultsValue(); |
+ |
+ ResultFormattedResultsRuleResultsValue.fromJson(core.Map _json) { |
+ if (_json.containsKey("groups")) { |
+ groups = _json["groups"]; |
+ } |
+ if (_json.containsKey("localizedRuleName")) { |
+ localizedRuleName = _json["localizedRuleName"]; |
+ } |
+ if (_json.containsKey("ruleImpact")) { |
+ ruleImpact = _json["ruleImpact"]; |
+ } |
+ if (_json.containsKey("summary")) { |
+ summary = new PagespeedApiFormatStringV2.fromJson(_json["summary"]); |
+ } |
+ if (_json.containsKey("urlBlocks")) { |
+ urlBlocks = _json["urlBlocks"].map((value) => new ResultFormattedResultsRuleResultsValueUrlBlocks.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (groups != null) { |
+ _json["groups"] = groups; |
+ } |
+ if (localizedRuleName != null) { |
+ _json["localizedRuleName"] = localizedRuleName; |
+ } |
+ if (ruleImpact != null) { |
+ _json["ruleImpact"] = ruleImpact; |
+ } |
+ if (summary != null) { |
+ _json["summary"] = (summary).toJson(); |
+ } |
+ if (urlBlocks != null) { |
+ _json["urlBlocks"] = urlBlocks.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed |
+ * rule instantiated and run by the server. |
+ */ |
+class ResultFormattedResults { |
+ /** The locale of the formattedResults, e.g. "en_US". */ |
+ core.String locale; |
+ |
+ /** |
+ * Dictionary of formatted rule results, with one entry for each PageSpeed |
+ * rule instantiated and run by the server. |
+ */ |
+ core.Map<core.String, ResultFormattedResultsRuleResultsValue> ruleResults; |
+ |
+ |
+ ResultFormattedResults(); |
+ |
+ ResultFormattedResults.fromJson(core.Map _json) { |
+ if (_json.containsKey("locale")) { |
+ locale = _json["locale"]; |
+ } |
+ if (_json.containsKey("ruleResults")) { |
+ ruleResults = common_internal.mapMap(_json["ruleResults"], (item) => new ResultFormattedResultsRuleResultsValue.fromJson(item)); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (locale != null) { |
+ _json["locale"] = locale; |
+ } |
+ if (ruleResults != null) { |
+ _json["ruleResults"] = common_internal.mapMap(ruleResults, (item) => (item).toJson()); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Summary statistics for the page, such as number of JavaScript bytes, number |
+ * of HTML bytes, etc. |
+ */ |
+class ResultPageStats { |
+ /** Number of uncompressed response bytes for CSS resources on the page. */ |
+ core.String cssResponseBytes; |
+ |
+ /** Number of response bytes for flash resources on the page. */ |
+ core.String flashResponseBytes; |
+ |
+ /** |
+ * Number of uncompressed response bytes for the main HTML document and all |
+ * iframes on the page. |
+ */ |
+ core.String htmlResponseBytes; |
+ |
+ /** Number of response bytes for image resources on the page. */ |
+ core.String imageResponseBytes; |
+ |
+ /** Number of uncompressed response bytes for JS resources on the page. */ |
+ core.String javascriptResponseBytes; |
+ |
+ /** Number of CSS resources referenced by the page. */ |
+ core.int numberCssResources; |
+ |
+ /** Number of unique hosts referenced by the page. */ |
+ core.int numberHosts; |
+ |
+ /** Number of JavaScript resources referenced by the page. */ |
+ core.int numberJsResources; |
+ |
+ /** Number of HTTP resources loaded by the page. */ |
+ core.int numberResources; |
+ |
+ /** Number of static (i.e. cacheable) resources on the page. */ |
+ core.int numberStaticResources; |
+ |
+ /** Number of response bytes for other resources on the page. */ |
+ core.String otherResponseBytes; |
+ |
+ /** |
+ * Number of uncompressed response bytes for text resources not covered by |
+ * other statistics (i.e non-HTML, non-script, non-CSS resources) on the page. |
+ */ |
+ core.String textResponseBytes; |
+ |
+ /** Total size of all request bytes sent by the page. */ |
+ core.String totalRequestBytes; |
+ |
+ |
+ ResultPageStats(); |
+ |
+ ResultPageStats.fromJson(core.Map _json) { |
+ if (_json.containsKey("cssResponseBytes")) { |
+ cssResponseBytes = _json["cssResponseBytes"]; |
+ } |
+ if (_json.containsKey("flashResponseBytes")) { |
+ flashResponseBytes = _json["flashResponseBytes"]; |
+ } |
+ if (_json.containsKey("htmlResponseBytes")) { |
+ htmlResponseBytes = _json["htmlResponseBytes"]; |
+ } |
+ if (_json.containsKey("imageResponseBytes")) { |
+ imageResponseBytes = _json["imageResponseBytes"]; |
+ } |
+ if (_json.containsKey("javascriptResponseBytes")) { |
+ javascriptResponseBytes = _json["javascriptResponseBytes"]; |
+ } |
+ if (_json.containsKey("numberCssResources")) { |
+ numberCssResources = _json["numberCssResources"]; |
+ } |
+ if (_json.containsKey("numberHosts")) { |
+ numberHosts = _json["numberHosts"]; |
+ } |
+ if (_json.containsKey("numberJsResources")) { |
+ numberJsResources = _json["numberJsResources"]; |
+ } |
+ if (_json.containsKey("numberResources")) { |
+ numberResources = _json["numberResources"]; |
+ } |
+ if (_json.containsKey("numberStaticResources")) { |
+ numberStaticResources = _json["numberStaticResources"]; |
+ } |
+ if (_json.containsKey("otherResponseBytes")) { |
+ otherResponseBytes = _json["otherResponseBytes"]; |
+ } |
+ if (_json.containsKey("textResponseBytes")) { |
+ textResponseBytes = _json["textResponseBytes"]; |
+ } |
+ if (_json.containsKey("totalRequestBytes")) { |
+ totalRequestBytes = _json["totalRequestBytes"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (cssResponseBytes != null) { |
+ _json["cssResponseBytes"] = cssResponseBytes; |
+ } |
+ if (flashResponseBytes != null) { |
+ _json["flashResponseBytes"] = flashResponseBytes; |
+ } |
+ if (htmlResponseBytes != null) { |
+ _json["htmlResponseBytes"] = htmlResponseBytes; |
+ } |
+ if (imageResponseBytes != null) { |
+ _json["imageResponseBytes"] = imageResponseBytes; |
+ } |
+ if (javascriptResponseBytes != null) { |
+ _json["javascriptResponseBytes"] = javascriptResponseBytes; |
+ } |
+ if (numberCssResources != null) { |
+ _json["numberCssResources"] = numberCssResources; |
+ } |
+ if (numberHosts != null) { |
+ _json["numberHosts"] = numberHosts; |
+ } |
+ if (numberJsResources != null) { |
+ _json["numberJsResources"] = numberJsResources; |
+ } |
+ if (numberResources != null) { |
+ _json["numberResources"] = numberResources; |
+ } |
+ if (numberStaticResources != null) { |
+ _json["numberStaticResources"] = numberStaticResources; |
+ } |
+ if (otherResponseBytes != null) { |
+ _json["otherResponseBytes"] = otherResponseBytes; |
+ } |
+ if (textResponseBytes != null) { |
+ _json["textResponseBytes"] = textResponseBytes; |
+ } |
+ if (totalRequestBytes != null) { |
+ _json["totalRequestBytes"] = totalRequestBytes; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The name of this rule group: one of "SPEED" or "USABILITY". */ |
+class ResultRuleGroupsValue { |
+ /** |
+ * The score (0-100) for this rule group, which indicates how much better a |
+ * page could be in that category (e.g. how much faster, or how much more |
+ * usable). A high score indicates little room for improvement, while a lower |
+ * score indicates more room for improvement. |
+ */ |
+ core.int score; |
+ |
+ |
+ ResultRuleGroupsValue(); |
+ |
+ ResultRuleGroupsValue.fromJson(core.Map _json) { |
+ if (_json.containsKey("score")) { |
+ score = _json["score"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (score != null) { |
+ _json["score"] = score; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The version of PageSpeed used to generate these results. */ |
+class ResultVersion { |
+ /** The major version number of PageSpeed used to generate these results. */ |
+ core.int major; |
+ |
+ /** The minor version number of PageSpeed used to generate these results. */ |
+ core.int minor; |
+ |
+ |
+ ResultVersion(); |
+ |
+ ResultVersion.fromJson(core.Map _json) { |
+ if (_json.containsKey("major")) { |
+ major = _json["major"]; |
+ } |
+ if (_json.containsKey("minor")) { |
+ minor = _json["minor"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (major != null) { |
+ _json["major"] = major; |
+ } |
+ if (minor != null) { |
+ _json["minor"] = minor; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class Result { |
+ /** |
+ * Localized PageSpeed results. Contains a ruleResults entry for each |
+ * PageSpeed rule instantiated and run by the server. |
+ */ |
+ ResultFormattedResults formattedResults; |
+ |
+ /** |
+ * Canonicalized and final URL for the document, after following page |
+ * redirects (if any). |
+ */ |
+ core.String id; |
+ |
+ /** |
+ * List of rules that were specified in the request, but which the server did |
+ * not know how to instantiate. |
+ */ |
+ core.List<core.String> invalidRules; |
+ |
+ /** Kind of result. */ |
+ core.String kind; |
+ |
+ /** |
+ * Summary statistics for the page, such as number of JavaScript bytes, number |
+ * of HTML bytes, etc. |
+ */ |
+ ResultPageStats pageStats; |
+ |
+ /** |
+ * Response code for the document. 200 indicates a normal page load. 4xx/5xx |
+ * indicates an error. |
+ */ |
+ core.int responseCode; |
+ |
+ /** A map with one entry for each rule group in these results. */ |
+ core.Map<core.String, ResultRuleGroupsValue> ruleGroups; |
+ |
+ /** Base64-encoded screenshot of the page that was analyzed. */ |
+ PagespeedApiImageV2 screenshot; |
+ |
+ /** Title of the page, as displayed in the browser's title bar. */ |
+ core.String title; |
+ |
+ /** The version of PageSpeed used to generate these results. */ |
+ ResultVersion version; |
+ |
+ |
+ Result(); |
+ |
+ Result.fromJson(core.Map _json) { |
+ if (_json.containsKey("formattedResults")) { |
+ formattedResults = new ResultFormattedResults.fromJson(_json["formattedResults"]); |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("invalidRules")) { |
+ invalidRules = _json["invalidRules"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("pageStats")) { |
+ pageStats = new ResultPageStats.fromJson(_json["pageStats"]); |
+ } |
+ if (_json.containsKey("responseCode")) { |
+ responseCode = _json["responseCode"]; |
+ } |
+ if (_json.containsKey("ruleGroups")) { |
+ ruleGroups = common_internal.mapMap(_json["ruleGroups"], (item) => new ResultRuleGroupsValue.fromJson(item)); |
+ } |
+ if (_json.containsKey("screenshot")) { |
+ screenshot = new PagespeedApiImageV2.fromJson(_json["screenshot"]); |
+ } |
+ if (_json.containsKey("title")) { |
+ title = _json["title"]; |
+ } |
+ if (_json.containsKey("version")) { |
+ version = new ResultVersion.fromJson(_json["version"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (formattedResults != null) { |
+ _json["formattedResults"] = (formattedResults).toJson(); |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (invalidRules != null) { |
+ _json["invalidRules"] = invalidRules; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (pageStats != null) { |
+ _json["pageStats"] = (pageStats).toJson(); |
+ } |
+ if (responseCode != null) { |
+ _json["responseCode"] = responseCode; |
+ } |
+ if (ruleGroups != null) { |
+ _json["ruleGroups"] = common_internal.mapMap(ruleGroups, (item) => (item).toJson()); |
+ } |
+ if (screenshot != null) { |
+ _json["screenshot"] = (screenshot).toJson(); |
+ } |
+ if (title != null) { |
+ _json["title"] = title; |
+ } |
+ if (version != null) { |
+ _json["version"] = (version).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |