1// Copyright 2020 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package pagespeedonline provides access to the PageSpeed Insights API. 8// 9// For product documentation, see: https://developers.google.com/speed/docs/insights/v5/about 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/pagespeedonline/v5" 16// ... 17// ctx := context.Background() 18// pagespeedonlineService, err := pagespeedonline.NewService(ctx) 19// 20// In this example, Google Application Default Credentials are used for authentication. 21// 22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23// 24// Other authentication options 25// 26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package pagespeedonline // import "google.golang.org/api/pagespeedonline/v5" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "pagespeedonline:v5" 75const apiName = "pagespeedonline" 76const apiVersion = "v5" 77const basePath = "https://pagespeedonline.googleapis.com/" 78const mtlsBasePath = "https://pagespeedonline.mtls.googleapis.com/" 79 80// OAuth2 scopes used by this API. 81const ( 82 // Associate you with your personal info on Google 83 OpenIDScope = "openid" 84) 85 86// NewService creates a new Service. 87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 88 scopesOption := option.WithScopes( 89 "openid", 90 ) 91 // NOTE: prepend, so we don't override user-specified scopes. 92 opts = append([]option.ClientOption{scopesOption}, opts...) 93 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 94 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 95 client, endpoint, err := htransport.NewClient(ctx, opts...) 96 if err != nil { 97 return nil, err 98 } 99 s, err := New(client) 100 if err != nil { 101 return nil, err 102 } 103 if endpoint != "" { 104 s.BasePath = endpoint 105 } 106 return s, nil 107} 108 109// New creates a new Service. It uses the provided http.Client for requests. 110// 111// Deprecated: please use NewService instead. 112// To provide a custom HTTP client, use option.WithHTTPClient. 113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 114func New(client *http.Client) (*Service, error) { 115 if client == nil { 116 return nil, errors.New("client is nil") 117 } 118 s := &Service{client: client, BasePath: basePath} 119 s.Pagespeedapi = NewPagespeedapiService(s) 120 return s, nil 121} 122 123type Service struct { 124 client *http.Client 125 BasePath string // API endpoint base URL 126 UserAgent string // optional additional User-Agent fragment 127 128 Pagespeedapi *PagespeedapiService 129} 130 131func (s *Service) userAgent() string { 132 if s.UserAgent == "" { 133 return googleapi.UserAgent 134 } 135 return googleapi.UserAgent + " " + s.UserAgent 136} 137 138func NewPagespeedapiService(s *Service) *PagespeedapiService { 139 rs := &PagespeedapiService{s: s} 140 return rs 141} 142 143type PagespeedapiService struct { 144 s *Service 145} 146 147// AuditRefs: A light reference to an audit by id, used to group and 148// weight audits in a 149// given category. 150type AuditRefs struct { 151 // Group: The category group that the audit belongs to (optional). 152 Group string `json:"group,omitempty"` 153 154 // Id: The audit ref id. 155 Id string `json:"id,omitempty"` 156 157 // Weight: The weight this audit's score has on the overall category 158 // score. 159 Weight float64 `json:"weight,omitempty"` 160 161 // ForceSendFields is a list of field names (e.g. "Group") to 162 // unconditionally include in API requests. By default, fields with 163 // empty values are omitted from API requests. However, any non-pointer, 164 // non-interface field appearing in ForceSendFields will be sent to the 165 // server regardless of whether the field is empty or not. This may be 166 // used to include empty fields in Patch requests. 167 ForceSendFields []string `json:"-"` 168 169 // NullFields is a list of field names (e.g. "Group") to include in API 170 // requests with the JSON null value. By default, fields with empty 171 // values are omitted from API requests. However, any field with an 172 // empty value appearing in NullFields will be sent to the server as 173 // null. It is an error if a field in this list has a non-empty value. 174 // This may be used to include null fields in Patch requests. 175 NullFields []string `json:"-"` 176} 177 178func (s *AuditRefs) MarshalJSON() ([]byte, error) { 179 type NoMethod AuditRefs 180 raw := NoMethod(*s) 181 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 182} 183 184func (s *AuditRefs) UnmarshalJSON(data []byte) error { 185 type NoMethod AuditRefs 186 var s1 struct { 187 Weight gensupport.JSONFloat64 `json:"weight"` 188 *NoMethod 189 } 190 s1.NoMethod = (*NoMethod)(s) 191 if err := json.Unmarshal(data, &s1); err != nil { 192 return err 193 } 194 s.Weight = float64(s1.Weight) 195 return nil 196} 197 198// Bucket: A proportion of data in the total distribution, bucketed by a 199// min/max 200// percentage. Each bucket's range is bounded by min <= x < max, 201// In 202// millisecond. 203type Bucket struct { 204 // Max: Upper bound for a bucket's range. 205 Max int64 `json:"max,omitempty"` 206 207 // Min: Lower bound for a bucket's range. 208 Min int64 `json:"min,omitempty"` 209 210 // Proportion: The proportion of data in this bucket. 211 Proportion float64 `json:"proportion,omitempty"` 212 213 // ForceSendFields is a list of field names (e.g. "Max") to 214 // unconditionally include in API requests. By default, fields with 215 // empty values are omitted from API requests. However, any non-pointer, 216 // non-interface field appearing in ForceSendFields will be sent to the 217 // server regardless of whether the field is empty or not. This may be 218 // used to include empty fields in Patch requests. 219 ForceSendFields []string `json:"-"` 220 221 // NullFields is a list of field names (e.g. "Max") to include in API 222 // requests with the JSON null value. By default, fields with empty 223 // values are omitted from API requests. However, any field with an 224 // empty value appearing in NullFields will be sent to the server as 225 // null. It is an error if a field in this list has a non-empty value. 226 // This may be used to include null fields in Patch requests. 227 NullFields []string `json:"-"` 228} 229 230func (s *Bucket) MarshalJSON() ([]byte, error) { 231 type NoMethod Bucket 232 raw := NoMethod(*s) 233 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 234} 235 236func (s *Bucket) UnmarshalJSON(data []byte) error { 237 type NoMethod Bucket 238 var s1 struct { 239 Proportion gensupport.JSONFloat64 `json:"proportion"` 240 *NoMethod 241 } 242 s1.NoMethod = (*NoMethod)(s) 243 if err := json.Unmarshal(data, &s1); err != nil { 244 return err 245 } 246 s.Proportion = float64(s1.Proportion) 247 return nil 248} 249 250// Categories: The categories in a Lighthouse run. 251type Categories struct { 252 // Accessibility: The accessibility category, containing all 253 // accessibility related audits. 254 Accessibility *LighthouseCategoryV5 `json:"accessibility,omitempty"` 255 256 // BestPractices: The best practices category, containing all best 257 // practices related 258 // audits. 259 BestPractices *LighthouseCategoryV5 `json:"best-practices,omitempty"` 260 261 // Performance: The performance category, containing all performance 262 // related audits. 263 Performance *LighthouseCategoryV5 `json:"performance,omitempty"` 264 265 // Pwa: The Progressive-Web-App (PWA) category, containing all pwa 266 // related 267 // audits. 268 Pwa *LighthouseCategoryV5 `json:"pwa,omitempty"` 269 270 // Seo: The Search-Engine-Optimization (SEO) category, containing all 271 // seo related 272 // audits. 273 Seo *LighthouseCategoryV5 `json:"seo,omitempty"` 274 275 // ForceSendFields is a list of field names (e.g. "Accessibility") to 276 // unconditionally include in API requests. By default, fields with 277 // empty values are omitted from API requests. However, any non-pointer, 278 // non-interface field appearing in ForceSendFields will be sent to the 279 // server regardless of whether the field is empty or not. This may be 280 // used to include empty fields in Patch requests. 281 ForceSendFields []string `json:"-"` 282 283 // NullFields is a list of field names (e.g. "Accessibility") to include 284 // in API requests with the JSON null value. By default, fields with 285 // empty values are omitted from API requests. However, any field with 286 // an empty value appearing in NullFields will be sent to the server as 287 // null. It is an error if a field in this list has a non-empty value. 288 // This may be used to include null fields in Patch requests. 289 NullFields []string `json:"-"` 290} 291 292func (s *Categories) MarshalJSON() ([]byte, error) { 293 type NoMethod Categories 294 raw := NoMethod(*s) 295 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 296} 297 298// CategoryGroupV5: Message containing a category 299type CategoryGroupV5 struct { 300 // Description: The description of what the category is grouping 301 Description string `json:"description,omitempty"` 302 303 // Title: The human readable title of the group 304 Title string `json:"title,omitempty"` 305 306 // ForceSendFields is a list of field names (e.g. "Description") to 307 // unconditionally include in API requests. By default, fields with 308 // empty values are omitted from API requests. However, any non-pointer, 309 // non-interface field appearing in ForceSendFields will be sent to the 310 // server regardless of whether the field is empty or not. This may be 311 // used to include empty fields in Patch requests. 312 ForceSendFields []string `json:"-"` 313 314 // NullFields is a list of field names (e.g. "Description") to include 315 // in API requests with the JSON null value. By default, fields with 316 // empty values are omitted from API requests. However, any field with 317 // an empty value appearing in NullFields will be sent to the server as 318 // null. It is an error if a field in this list has a non-empty value. 319 // This may be used to include null fields in Patch requests. 320 NullFields []string `json:"-"` 321} 322 323func (s *CategoryGroupV5) MarshalJSON() ([]byte, error) { 324 type NoMethod CategoryGroupV5 325 raw := NoMethod(*s) 326 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 327} 328 329// ConfigSettings: Message containing the configuration settings for the 330// Lighthouse run. 331type ConfigSettings struct { 332 // Channel: How Lighthouse was run, e.g. from the Chrome extension or 333 // from the npm 334 // module. 335 Channel string `json:"channel,omitempty"` 336 337 // EmulatedFormFactor: The form factor the emulation should use. 338 EmulatedFormFactor string `json:"emulatedFormFactor,omitempty"` 339 340 // Locale: The locale setting. 341 Locale string `json:"locale,omitempty"` 342 343 // OnlyCategories: List of categories of audits the run should conduct. 344 OnlyCategories interface{} `json:"onlyCategories,omitempty"` 345 346 // ForceSendFields is a list of field names (e.g. "Channel") to 347 // unconditionally include in API requests. By default, fields with 348 // empty values are omitted from API requests. However, any non-pointer, 349 // non-interface field appearing in ForceSendFields will be sent to the 350 // server regardless of whether the field is empty or not. This may be 351 // used to include empty fields in Patch requests. 352 ForceSendFields []string `json:"-"` 353 354 // NullFields is a list of field names (e.g. "Channel") to include in 355 // API requests with the JSON null value. By default, fields with empty 356 // values are omitted from API requests. However, any field with an 357 // empty value appearing in NullFields will be sent to the server as 358 // null. It is an error if a field in this list has a non-empty value. 359 // This may be used to include null fields in Patch requests. 360 NullFields []string `json:"-"` 361} 362 363func (s *ConfigSettings) MarshalJSON() ([]byte, error) { 364 type NoMethod ConfigSettings 365 raw := NoMethod(*s) 366 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 367} 368 369// Environment: Message containing environment configuration for a 370// Lighthouse run. 371type Environment struct { 372 // BenchmarkIndex: The benchmark index number that indicates rough 373 // device class. 374 BenchmarkIndex float64 `json:"benchmarkIndex,omitempty"` 375 376 // HostUserAgent: The user agent string of the version of Chrome used. 377 HostUserAgent string `json:"hostUserAgent,omitempty"` 378 379 // NetworkUserAgent: The user agent string that was sent over the 380 // network. 381 NetworkUserAgent string `json:"networkUserAgent,omitempty"` 382 383 // ForceSendFields is a list of field names (e.g. "BenchmarkIndex") to 384 // unconditionally include in API requests. By default, fields with 385 // empty values are omitted from API requests. However, any non-pointer, 386 // non-interface field appearing in ForceSendFields will be sent to the 387 // server regardless of whether the field is empty or not. This may be 388 // used to include empty fields in Patch requests. 389 ForceSendFields []string `json:"-"` 390 391 // NullFields is a list of field names (e.g. "BenchmarkIndex") to 392 // include in API requests with the JSON null value. By default, fields 393 // with empty values are omitted from API requests. However, any field 394 // with an empty value appearing in NullFields will be sent to the 395 // server as null. It is an error if a field in this list has a 396 // non-empty value. This may be used to include null fields in Patch 397 // requests. 398 NullFields []string `json:"-"` 399} 400 401func (s *Environment) MarshalJSON() ([]byte, error) { 402 type NoMethod Environment 403 raw := NoMethod(*s) 404 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 405} 406 407func (s *Environment) UnmarshalJSON(data []byte) error { 408 type NoMethod Environment 409 var s1 struct { 410 BenchmarkIndex gensupport.JSONFloat64 `json:"benchmarkIndex"` 411 *NoMethod 412 } 413 s1.NoMethod = (*NoMethod)(s) 414 if err := json.Unmarshal(data, &s1); err != nil { 415 return err 416 } 417 s.BenchmarkIndex = float64(s1.BenchmarkIndex) 418 return nil 419} 420 421// I18n: Message containing the i18n data for the LHR - Version 1. 422type I18n struct { 423 // RendererFormattedStrings: Internationalized strings that are 424 // formatted to the locale in 425 // configSettings. 426 RendererFormattedStrings *RendererFormattedStrings `json:"rendererFormattedStrings,omitempty"` 427 428 // ForceSendFields is a list of field names (e.g. 429 // "RendererFormattedStrings") to unconditionally include in API 430 // requests. By default, fields with empty values are omitted from API 431 // requests. However, any non-pointer, non-interface field appearing in 432 // ForceSendFields will be sent to the server regardless of whether the 433 // field is empty or not. This may be used to include empty fields in 434 // Patch requests. 435 ForceSendFields []string `json:"-"` 436 437 // NullFields is a list of field names (e.g. "RendererFormattedStrings") 438 // to include in API requests with the JSON null value. By default, 439 // fields with empty values are omitted from API requests. However, any 440 // field with an empty value appearing in NullFields will be sent to the 441 // server as null. It is an error if a field in this list has a 442 // non-empty value. This may be used to include null fields in Patch 443 // requests. 444 NullFields []string `json:"-"` 445} 446 447func (s *I18n) MarshalJSON() ([]byte, error) { 448 type NoMethod I18n 449 raw := NoMethod(*s) 450 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 451} 452 453// LighthouseAuditResultV5: An audit's result object in a Lighthouse 454// result. 455type LighthouseAuditResultV5 struct { 456 // Description: The description of the audit. 457 Description string `json:"description,omitempty"` 458 459 // Details: Freeform details section of the audit. 460 Details googleapi.RawMessage `json:"details,omitempty"` 461 462 // DisplayValue: The value that should be displayed on the UI for this 463 // audit. 464 DisplayValue string `json:"displayValue,omitempty"` 465 466 // ErrorMessage: An error message from a thrown error inside the audit. 467 ErrorMessage string `json:"errorMessage,omitempty"` 468 469 // Explanation: An explanation of the errors in the audit. 470 Explanation string `json:"explanation,omitempty"` 471 472 // Id: The audit's id. 473 Id string `json:"id,omitempty"` 474 475 // NumericValue: A numeric value that has a meaning specific to the 476 // audit, e.g. the number 477 // of nodes in the DOM or the timestamp of a specific load event. 478 // More 479 // information can be found in the audit details, if present. 480 NumericValue float64 `json:"numericValue,omitempty"` 481 482 // Score: The score of the audit, can be null. 483 Score interface{} `json:"score,omitempty"` 484 485 // ScoreDisplayMode: The enumerated score display mode. 486 ScoreDisplayMode string `json:"scoreDisplayMode,omitempty"` 487 488 // Title: The human readable title. 489 Title string `json:"title,omitempty"` 490 491 // Warnings: Possible warnings that occurred in the audit, can be null. 492 Warnings interface{} `json:"warnings,omitempty"` 493 494 // ForceSendFields is a list of field names (e.g. "Description") to 495 // unconditionally include in API requests. By default, fields with 496 // empty values are omitted from API requests. However, any non-pointer, 497 // non-interface field appearing in ForceSendFields will be sent to the 498 // server regardless of whether the field is empty or not. This may be 499 // used to include empty fields in Patch requests. 500 ForceSendFields []string `json:"-"` 501 502 // NullFields is a list of field names (e.g. "Description") to include 503 // in API requests with the JSON null value. By default, fields with 504 // empty values are omitted from API requests. However, any field with 505 // an empty value appearing in NullFields will be sent to the server as 506 // null. It is an error if a field in this list has a non-empty value. 507 // This may be used to include null fields in Patch requests. 508 NullFields []string `json:"-"` 509} 510 511func (s *LighthouseAuditResultV5) MarshalJSON() ([]byte, error) { 512 type NoMethod LighthouseAuditResultV5 513 raw := NoMethod(*s) 514 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 515} 516 517func (s *LighthouseAuditResultV5) UnmarshalJSON(data []byte) error { 518 type NoMethod LighthouseAuditResultV5 519 var s1 struct { 520 NumericValue gensupport.JSONFloat64 `json:"numericValue"` 521 *NoMethod 522 } 523 s1.NoMethod = (*NoMethod)(s) 524 if err := json.Unmarshal(data, &s1); err != nil { 525 return err 526 } 527 s.NumericValue = float64(s1.NumericValue) 528 return nil 529} 530 531// LighthouseCategoryV5: A Lighthouse category. 532type LighthouseCategoryV5 struct { 533 // AuditRefs: An array of references to all the audit members of this 534 // category. 535 AuditRefs []*AuditRefs `json:"auditRefs,omitempty"` 536 537 // Description: A more detailed description of the category and its 538 // importance. 539 Description string `json:"description,omitempty"` 540 541 // Id: The string identifier of the category. 542 Id string `json:"id,omitempty"` 543 544 // ManualDescription: A description for the manual audits in the 545 // category. 546 ManualDescription string `json:"manualDescription,omitempty"` 547 548 // Score: The overall score of the category, the weighted average of all 549 // its audits. 550 // (The category's score, can be null.) 551 Score interface{} `json:"score,omitempty"` 552 553 // Title: The human-friendly name of the category. 554 Title string `json:"title,omitempty"` 555 556 // ForceSendFields is a list of field names (e.g. "AuditRefs") to 557 // unconditionally include in API requests. By default, fields with 558 // empty values are omitted from API requests. However, any non-pointer, 559 // non-interface field appearing in ForceSendFields will be sent to the 560 // server regardless of whether the field is empty or not. This may be 561 // used to include empty fields in Patch requests. 562 ForceSendFields []string `json:"-"` 563 564 // NullFields is a list of field names (e.g. "AuditRefs") to include in 565 // API requests with the JSON null value. By default, fields with empty 566 // values are omitted from API requests. However, any field with an 567 // empty value appearing in NullFields will be sent to the server as 568 // null. It is an error if a field in this list has a non-empty value. 569 // This may be used to include null fields in Patch requests. 570 NullFields []string `json:"-"` 571} 572 573func (s *LighthouseCategoryV5) MarshalJSON() ([]byte, error) { 574 type NoMethod LighthouseCategoryV5 575 raw := NoMethod(*s) 576 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 577} 578 579// LighthouseResultV5: The Lighthouse result object. 580type LighthouseResultV5 struct { 581 // Audits: Map of audits in the LHR. 582 Audits map[string]LighthouseAuditResultV5 `json:"audits,omitempty"` 583 584 // Categories: Map of categories in the LHR. 585 Categories *Categories `json:"categories,omitempty"` 586 587 // CategoryGroups: Map of category groups in the LHR. 588 CategoryGroups map[string]CategoryGroupV5 `json:"categoryGroups,omitempty"` 589 590 // ConfigSettings: The configuration settings for this LHR. 591 ConfigSettings *ConfigSettings `json:"configSettings,omitempty"` 592 593 // Environment: Environment settings that were used when making this 594 // LHR. 595 Environment *Environment `json:"environment,omitempty"` 596 597 // FetchTime: The time that this run was fetched. 598 FetchTime string `json:"fetchTime,omitempty"` 599 600 // FinalUrl: The final resolved url that was audited. 601 FinalUrl string `json:"finalUrl,omitempty"` 602 603 // I18n: The internationalization strings that are required to render 604 // the LHR. 605 I18n *I18n `json:"i18n,omitempty"` 606 607 // LighthouseVersion: The lighthouse version that was used to generate 608 // this LHR. 609 LighthouseVersion string `json:"lighthouseVersion,omitempty"` 610 611 // RequestedUrl: The original requested url. 612 RequestedUrl string `json:"requestedUrl,omitempty"` 613 614 // RunWarnings: List of all run warnings in the LHR. Will always output 615 // to at least `[]`. 616 RunWarnings []interface{} `json:"runWarnings,omitempty"` 617 618 // RuntimeError: A top-level error message that, if present, indicates a 619 // serious enough 620 // problem that this Lighthouse result may need to be discarded. 621 RuntimeError *RuntimeError `json:"runtimeError,omitempty"` 622 623 // StackPacks: The Stack Pack advice strings. 624 StackPacks []*StackPack `json:"stackPacks,omitempty"` 625 626 // Timing: Timing information for this LHR. 627 Timing *Timing `json:"timing,omitempty"` 628 629 // UserAgent: The user agent that was used to run this LHR. 630 UserAgent string `json:"userAgent,omitempty"` 631 632 // ForceSendFields is a list of field names (e.g. "Audits") to 633 // unconditionally include in API requests. By default, fields with 634 // empty values are omitted from API requests. However, any non-pointer, 635 // non-interface field appearing in ForceSendFields will be sent to the 636 // server regardless of whether the field is empty or not. This may be 637 // used to include empty fields in Patch requests. 638 ForceSendFields []string `json:"-"` 639 640 // NullFields is a list of field names (e.g. "Audits") to include in API 641 // requests with the JSON null value. By default, fields with empty 642 // values are omitted from API requests. However, any field with an 643 // empty value appearing in NullFields will be sent to the server as 644 // null. It is an error if a field in this list has a non-empty value. 645 // This may be used to include null fields in Patch requests. 646 NullFields []string `json:"-"` 647} 648 649func (s *LighthouseResultV5) MarshalJSON() ([]byte, error) { 650 type NoMethod LighthouseResultV5 651 raw := NoMethod(*s) 652 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 653} 654 655// PagespeedApiLoadingExperienceV5: The CrUX loading experience object 656// that contains CrUX data breakdowns. 657type PagespeedApiLoadingExperienceV5 struct { 658 // Id: The url, pattern or origin which the metrics are on. 659 Id string `json:"id,omitempty"` 660 661 // InitialUrl: The requested URL, which may differ from the resolved 662 // "id". 663 InitialUrl string `json:"initial_url,omitempty"` 664 665 // Metrics: The map of <metrics, data>. 666 Metrics map[string]UserPageLoadMetricV5 `json:"metrics,omitempty"` 667 668 // OriginFallback: True if the result is an origin fallback from a page, 669 // false otherwise. 670 OriginFallback bool `json:"origin_fallback,omitempty"` 671 672 // OverallCategory: The human readable speed "category" of the id. 673 OverallCategory string `json:"overall_category,omitempty"` 674 675 // ForceSendFields is a list of field names (e.g. "Id") to 676 // unconditionally include in API requests. By default, fields with 677 // empty values are omitted from API requests. However, any non-pointer, 678 // non-interface field appearing in ForceSendFields will be sent to the 679 // server regardless of whether the field is empty or not. This may be 680 // used to include empty fields in Patch requests. 681 ForceSendFields []string `json:"-"` 682 683 // NullFields is a list of field names (e.g. "Id") to include in API 684 // requests with the JSON null value. By default, fields with empty 685 // values are omitted from API requests. However, any field with an 686 // empty value appearing in NullFields will be sent to the server as 687 // null. It is an error if a field in this list has a non-empty value. 688 // This may be used to include null fields in Patch requests. 689 NullFields []string `json:"-"` 690} 691 692func (s *PagespeedApiLoadingExperienceV5) MarshalJSON() ([]byte, error) { 693 type NoMethod PagespeedApiLoadingExperienceV5 694 raw := NoMethod(*s) 695 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 696} 697 698// PagespeedApiPagespeedResponseV5: The Pagespeed API response object. 699type PagespeedApiPagespeedResponseV5 struct { 700 // AnalysisUTCTimestamp: The UTC timestamp of this analysis. 701 AnalysisUTCTimestamp string `json:"analysisUTCTimestamp,omitempty"` 702 703 // CaptchaResult: The captcha verify result 704 CaptchaResult string `json:"captchaResult,omitempty"` 705 706 // Id: Canonicalized and final URL for the document, after following 707 // page 708 // redirects (if any). 709 Id string `json:"id,omitempty"` 710 711 // Kind: Kind of result. 712 Kind string `json:"kind,omitempty"` 713 714 // LighthouseResult: Lighthouse response for the audit url as an object. 715 LighthouseResult *LighthouseResultV5 `json:"lighthouseResult,omitempty"` 716 717 // LoadingExperience: Metrics of end users' page loading experience. 718 LoadingExperience *PagespeedApiLoadingExperienceV5 `json:"loadingExperience,omitempty"` 719 720 // OriginLoadingExperience: Metrics of the aggregated page loading 721 // experience of the origin 722 OriginLoadingExperience *PagespeedApiLoadingExperienceV5 `json:"originLoadingExperience,omitempty"` 723 724 // Version: The version of PageSpeed used to generate these results. 725 Version *PagespeedVersion `json:"version,omitempty"` 726 727 // ServerResponse contains the HTTP response code and headers from the 728 // server. 729 googleapi.ServerResponse `json:"-"` 730 731 // ForceSendFields is a list of field names (e.g. 732 // "AnalysisUTCTimestamp") to unconditionally include in API requests. 733 // By default, fields with empty values are omitted from API requests. 734 // However, any non-pointer, non-interface field appearing in 735 // ForceSendFields will be sent to the server regardless of whether the 736 // field is empty or not. This may be used to include empty fields in 737 // Patch requests. 738 ForceSendFields []string `json:"-"` 739 740 // NullFields is a list of field names (e.g. "AnalysisUTCTimestamp") to 741 // include in API requests with the JSON null value. By default, fields 742 // with empty values are omitted from API requests. However, any field 743 // with an empty value appearing in NullFields will be sent to the 744 // server as null. It is an error if a field in this list has a 745 // non-empty value. This may be used to include null fields in Patch 746 // requests. 747 NullFields []string `json:"-"` 748} 749 750func (s *PagespeedApiPagespeedResponseV5) MarshalJSON() ([]byte, error) { 751 type NoMethod PagespeedApiPagespeedResponseV5 752 raw := NoMethod(*s) 753 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 754} 755 756// PagespeedVersion: The Pagespeed Version object. 757type PagespeedVersion struct { 758 // Major: The major version number of PageSpeed used to generate these 759 // results. 760 Major string `json:"major,omitempty"` 761 762 // Minor: The minor version number of PageSpeed used to generate these 763 // results. 764 Minor string `json:"minor,omitempty"` 765 766 // ForceSendFields is a list of field names (e.g. "Major") to 767 // unconditionally include in API requests. By default, fields with 768 // empty values are omitted from API requests. However, any non-pointer, 769 // non-interface field appearing in ForceSendFields will be sent to the 770 // server regardless of whether the field is empty or not. This may be 771 // used to include empty fields in Patch requests. 772 ForceSendFields []string `json:"-"` 773 774 // NullFields is a list of field names (e.g. "Major") to include in API 775 // requests with the JSON null value. By default, fields with empty 776 // values are omitted from API requests. However, any field with an 777 // empty value appearing in NullFields will be sent to the server as 778 // null. It is an error if a field in this list has a non-empty value. 779 // This may be used to include null fields in Patch requests. 780 NullFields []string `json:"-"` 781} 782 783func (s *PagespeedVersion) MarshalJSON() ([]byte, error) { 784 type NoMethod PagespeedVersion 785 raw := NoMethod(*s) 786 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 787} 788 789// RendererFormattedStrings: Message holding the formatted strings used 790// in the renderer. 791type RendererFormattedStrings struct { 792 // AuditGroupExpandTooltip: The tooltip text on an expandable chevron 793 // icon. 794 AuditGroupExpandTooltip string `json:"auditGroupExpandTooltip,omitempty"` 795 796 // CrcInitialNavigation: The label for the initial request in a critical 797 // request chain. 798 CrcInitialNavigation string `json:"crcInitialNavigation,omitempty"` 799 800 // CrcLongestDurationLabel: The label for values shown in the summary of 801 // critical request chains. 802 CrcLongestDurationLabel string `json:"crcLongestDurationLabel,omitempty"` 803 804 // ErrorLabel: The label shown next to an audit or metric that has had 805 // an error. 806 ErrorLabel string `json:"errorLabel,omitempty"` 807 808 // ErrorMissingAuditInfo: The error string shown next to an erroring 809 // audit. 810 ErrorMissingAuditInfo string `json:"errorMissingAuditInfo,omitempty"` 811 812 // LabDataTitle: The title of the lab data performance category. 813 LabDataTitle string `json:"labDataTitle,omitempty"` 814 815 // LsPerformanceCategoryDescription: The disclaimer shown under 816 // performance explaning that the network can 817 // vary. 818 LsPerformanceCategoryDescription string `json:"lsPerformanceCategoryDescription,omitempty"` 819 820 // ManualAuditsGroupTitle: The heading shown above a list of audits that 821 // were not computerd in the 822 // run. 823 ManualAuditsGroupTitle string `json:"manualAuditsGroupTitle,omitempty"` 824 825 // NotApplicableAuditsGroupTitle: The heading shown above a list of 826 // audits that do not apply to a page. 827 NotApplicableAuditsGroupTitle string `json:"notApplicableAuditsGroupTitle,omitempty"` 828 829 // OpportunityResourceColumnLabel: The heading for the estimated page 830 // load savings opportunity of an 831 // audit. 832 OpportunityResourceColumnLabel string `json:"opportunityResourceColumnLabel,omitempty"` 833 834 // OpportunitySavingsColumnLabel: The heading for the estimated page 835 // load savings of opportunity audits. 836 OpportunitySavingsColumnLabel string `json:"opportunitySavingsColumnLabel,omitempty"` 837 838 // PassedAuditsGroupTitle: The heading that is shown above a list of 839 // audits that are passing. 840 PassedAuditsGroupTitle string `json:"passedAuditsGroupTitle,omitempty"` 841 842 // ScorescaleLabel: The label that explains the score gauges scale 843 // (0-49, 50-89, 90-100). 844 ScorescaleLabel string `json:"scorescaleLabel,omitempty"` 845 846 // ToplevelWarningsMessage: The label shown preceding important warnings 847 // that may have invalidated 848 // an entire report. 849 ToplevelWarningsMessage string `json:"toplevelWarningsMessage,omitempty"` 850 851 // VarianceDisclaimer: The disclaimer shown below a performance metric 852 // value. 853 VarianceDisclaimer string `json:"varianceDisclaimer,omitempty"` 854 855 // WarningHeader: The label shown above a bulleted list of warnings. 856 WarningHeader string `json:"warningHeader,omitempty"` 857 858 // ForceSendFields is a list of field names (e.g. 859 // "AuditGroupExpandTooltip") to unconditionally include in API 860 // requests. By default, fields with empty values are omitted from API 861 // requests. However, any non-pointer, non-interface field appearing in 862 // ForceSendFields will be sent to the server regardless of whether the 863 // field is empty or not. This may be used to include empty fields in 864 // Patch requests. 865 ForceSendFields []string `json:"-"` 866 867 // NullFields is a list of field names (e.g. "AuditGroupExpandTooltip") 868 // to include in API requests with the JSON null value. By default, 869 // fields with empty values are omitted from API requests. However, any 870 // field with an empty value appearing in NullFields will be sent to the 871 // server as null. It is an error if a field in this list has a 872 // non-empty value. This may be used to include null fields in Patch 873 // requests. 874 NullFields []string `json:"-"` 875} 876 877func (s *RendererFormattedStrings) MarshalJSON() ([]byte, error) { 878 type NoMethod RendererFormattedStrings 879 raw := NoMethod(*s) 880 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 881} 882 883// RuntimeError: Message containing a runtime error config. 884type RuntimeError struct { 885 // Code: The enumerated Lighthouse Error code. 886 Code string `json:"code,omitempty"` 887 888 // Message: A human readable message explaining the error code. 889 Message string `json:"message,omitempty"` 890 891 // ForceSendFields is a list of field names (e.g. "Code") to 892 // unconditionally include in API requests. By default, fields with 893 // empty values are omitted from API requests. However, any non-pointer, 894 // non-interface field appearing in ForceSendFields will be sent to the 895 // server regardless of whether the field is empty or not. This may be 896 // used to include empty fields in Patch requests. 897 ForceSendFields []string `json:"-"` 898 899 // NullFields is a list of field names (e.g. "Code") to include in API 900 // requests with the JSON null value. By default, fields with empty 901 // values are omitted from API requests. However, any field with an 902 // empty value appearing in NullFields will be sent to the server as 903 // null. It is an error if a field in this list has a non-empty value. 904 // This may be used to include null fields in Patch requests. 905 NullFields []string `json:"-"` 906} 907 908func (s *RuntimeError) MarshalJSON() ([]byte, error) { 909 type NoMethod RuntimeError 910 raw := NoMethod(*s) 911 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 912} 913 914// StackPack: Message containing Stack Pack information. 915type StackPack struct { 916 // Descriptions: The stack pack advice strings. 917 Descriptions map[string]string `json:"descriptions,omitempty"` 918 919 // IconDataURL: The stack pack icon data uri. 920 IconDataURL string `json:"iconDataURL,omitempty"` 921 922 // Id: The stack pack id. 923 Id string `json:"id,omitempty"` 924 925 // Title: The stack pack title. 926 Title string `json:"title,omitempty"` 927 928 // ForceSendFields is a list of field names (e.g. "Descriptions") to 929 // unconditionally include in API requests. By default, fields with 930 // empty values are omitted from API requests. However, any non-pointer, 931 // non-interface field appearing in ForceSendFields will be sent to the 932 // server regardless of whether the field is empty or not. This may be 933 // used to include empty fields in Patch requests. 934 ForceSendFields []string `json:"-"` 935 936 // NullFields is a list of field names (e.g. "Descriptions") to include 937 // in API requests with the JSON null value. By default, fields with 938 // empty values are omitted from API requests. However, any field with 939 // an empty value appearing in NullFields will be sent to the server as 940 // null. It is an error if a field in this list has a non-empty value. 941 // This may be used to include null fields in Patch requests. 942 NullFields []string `json:"-"` 943} 944 945func (s *StackPack) MarshalJSON() ([]byte, error) { 946 type NoMethod StackPack 947 raw := NoMethod(*s) 948 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 949} 950 951// Timing: Message containing the performance timing data for the 952// Lighthouse run. 953type Timing struct { 954 // Total: The total duration of Lighthouse's run. 955 Total float64 `json:"total,omitempty"` 956 957 // ForceSendFields is a list of field names (e.g. "Total") to 958 // unconditionally include in API requests. By default, fields with 959 // empty values are omitted from API requests. However, any non-pointer, 960 // non-interface field appearing in ForceSendFields will be sent to the 961 // server regardless of whether the field is empty or not. This may be 962 // used to include empty fields in Patch requests. 963 ForceSendFields []string `json:"-"` 964 965 // NullFields is a list of field names (e.g. "Total") to include in API 966 // requests with the JSON null value. By default, fields with empty 967 // values are omitted from API requests. However, any field with an 968 // empty value appearing in NullFields will be sent to the server as 969 // null. It is an error if a field in this list has a non-empty value. 970 // This may be used to include null fields in Patch requests. 971 NullFields []string `json:"-"` 972} 973 974func (s *Timing) MarshalJSON() ([]byte, error) { 975 type NoMethod Timing 976 raw := NoMethod(*s) 977 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 978} 979 980func (s *Timing) UnmarshalJSON(data []byte) error { 981 type NoMethod Timing 982 var s1 struct { 983 Total gensupport.JSONFloat64 `json:"total"` 984 *NoMethod 985 } 986 s1.NoMethod = (*NoMethod)(s) 987 if err := json.Unmarshal(data, &s1); err != nil { 988 return err 989 } 990 s.Total = float64(s1.Total) 991 return nil 992} 993 994// UserPageLoadMetricV5: A CrUX metric object for a single metric and 995// form factor. 996type UserPageLoadMetricV5 struct { 997 // Category: The category of the specific time metric. 998 Category string `json:"category,omitempty"` 999 1000 // Distributions: Metric distributions. Proportions should sum up to 1. 1001 Distributions []*Bucket `json:"distributions,omitempty"` 1002 1003 // FormFactor: Identifies the form factor of the metric being collected. 1004 FormFactor string `json:"formFactor,omitempty"` 1005 1006 // Median: The median number of the metric, in millisecond. 1007 Median int64 `json:"median,omitempty"` 1008 1009 // MetricId: Identifies the type of the metric. 1010 MetricId string `json:"metricId,omitempty"` 1011 1012 // Percentile: We use this field to store certain percentile value for 1013 // this metric. 1014 // For v4, this field contains pc50. 1015 // For v5, this field contains pc90. 1016 Percentile int64 `json:"percentile,omitempty"` 1017 1018 // ForceSendFields is a list of field names (e.g. "Category") to 1019 // unconditionally include in API requests. By default, fields with 1020 // empty values are omitted from API requests. However, any non-pointer, 1021 // non-interface field appearing in ForceSendFields will be sent to the 1022 // server regardless of whether the field is empty or not. This may be 1023 // used to include empty fields in Patch requests. 1024 ForceSendFields []string `json:"-"` 1025 1026 // NullFields is a list of field names (e.g. "Category") to include in 1027 // API requests with the JSON null value. By default, fields with empty 1028 // values are omitted from API requests. However, any field with an 1029 // empty value appearing in NullFields will be sent to the server as 1030 // null. It is an error if a field in this list has a non-empty value. 1031 // This may be used to include null fields in Patch requests. 1032 NullFields []string `json:"-"` 1033} 1034 1035func (s *UserPageLoadMetricV5) MarshalJSON() ([]byte, error) { 1036 type NoMethod UserPageLoadMetricV5 1037 raw := NoMethod(*s) 1038 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1039} 1040 1041// method id "pagespeedonline.pagespeedapi.runpagespeed": 1042 1043type PagespeedapiRunpagespeedCall struct { 1044 s *Service 1045 urlParams_ gensupport.URLParams 1046 ifNoneMatch_ string 1047 ctx_ context.Context 1048 header_ http.Header 1049} 1050 1051// Runpagespeed: Runs PageSpeed analysis on the page at the specified 1052// URL, and returns 1053// PageSpeed scores, a list of suggestions to make that page faster, and 1054// other 1055// information. 1056func (r *PagespeedapiService) Runpagespeed() *PagespeedapiRunpagespeedCall { 1057 c := &PagespeedapiRunpagespeedCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1058 return c 1059} 1060 1061// CaptchaToken sets the optional parameter "captchaToken": The captcha 1062// token passed when filling out a captcha. 1063func (c *PagespeedapiRunpagespeedCall) CaptchaToken(captchaToken string) *PagespeedapiRunpagespeedCall { 1064 c.urlParams_.Set("captchaToken", captchaToken) 1065 return c 1066} 1067 1068// Category sets the optional parameter "category": A Lighthouse 1069// category to run; if none are given, only Performance category 1070// will be run 1071// 1072// Possible values: 1073// "CATEGORY_UNSPECIFIED" 1074// "ACCESSIBILITY" 1075// "BEST_PRACTICES" 1076// "PERFORMANCE" 1077// "PWA" 1078// "SEO" 1079func (c *PagespeedapiRunpagespeedCall) Category(category ...string) *PagespeedapiRunpagespeedCall { 1080 c.urlParams_.SetMulti("category", append([]string{}, category...)) 1081 return c 1082} 1083 1084// Locale sets the optional parameter "locale": The locale used to 1085// localize formatted results 1086func (c *PagespeedapiRunpagespeedCall) Locale(locale string) *PagespeedapiRunpagespeedCall { 1087 c.urlParams_.Set("locale", locale) 1088 return c 1089} 1090 1091// Strategy sets the optional parameter "strategy": The analysis 1092// strategy (desktop or mobile) to use, and desktop is the 1093// default 1094// 1095// Possible values: 1096// "STRATEGY_UNSPECIFIED" 1097// "DESKTOP" 1098// "MOBILE" 1099func (c *PagespeedapiRunpagespeedCall) Strategy(strategy string) *PagespeedapiRunpagespeedCall { 1100 c.urlParams_.Set("strategy", strategy) 1101 return c 1102} 1103 1104// Url sets the optional parameter "url": The URL to fetch and analyze 1105func (c *PagespeedapiRunpagespeedCall) Url(url string) *PagespeedapiRunpagespeedCall { 1106 c.urlParams_.Set("url", url) 1107 return c 1108} 1109 1110// UtmCampaign sets the optional parameter "utm_campaign": Campaign name 1111// for analytics. 1112func (c *PagespeedapiRunpagespeedCall) UtmCampaign(utmCampaign string) *PagespeedapiRunpagespeedCall { 1113 c.urlParams_.Set("utm_campaign", utmCampaign) 1114 return c 1115} 1116 1117// UtmSource sets the optional parameter "utm_source": Campaign source 1118// for analytics. 1119func (c *PagespeedapiRunpagespeedCall) UtmSource(utmSource string) *PagespeedapiRunpagespeedCall { 1120 c.urlParams_.Set("utm_source", utmSource) 1121 return c 1122} 1123 1124// Fields allows partial responses to be retrieved. See 1125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1126// for more information. 1127func (c *PagespeedapiRunpagespeedCall) Fields(s ...googleapi.Field) *PagespeedapiRunpagespeedCall { 1128 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1129 return c 1130} 1131 1132// IfNoneMatch sets the optional parameter which makes the operation 1133// fail if the object's ETag matches the given value. This is useful for 1134// getting updates only after the object has changed since the last 1135// request. Use googleapi.IsNotModified to check whether the response 1136// error from Do is the result of In-None-Match. 1137func (c *PagespeedapiRunpagespeedCall) IfNoneMatch(entityTag string) *PagespeedapiRunpagespeedCall { 1138 c.ifNoneMatch_ = entityTag 1139 return c 1140} 1141 1142// Context sets the context to be used in this call's Do method. Any 1143// pending HTTP request will be aborted if the provided context is 1144// canceled. 1145func (c *PagespeedapiRunpagespeedCall) Context(ctx context.Context) *PagespeedapiRunpagespeedCall { 1146 c.ctx_ = ctx 1147 return c 1148} 1149 1150// Header returns an http.Header that can be modified by the caller to 1151// add HTTP headers to the request. 1152func (c *PagespeedapiRunpagespeedCall) Header() http.Header { 1153 if c.header_ == nil { 1154 c.header_ = make(http.Header) 1155 } 1156 return c.header_ 1157} 1158 1159func (c *PagespeedapiRunpagespeedCall) doRequest(alt string) (*http.Response, error) { 1160 reqHeaders := make(http.Header) 1161 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707") 1162 for k, v := range c.header_ { 1163 reqHeaders[k] = v 1164 } 1165 reqHeaders.Set("User-Agent", c.s.userAgent()) 1166 if c.ifNoneMatch_ != "" { 1167 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 1168 } 1169 var body io.Reader = nil 1170 c.urlParams_.Set("alt", alt) 1171 c.urlParams_.Set("prettyPrint", "false") 1172 urls := googleapi.ResolveRelative(c.s.BasePath, "pagespeedonline/v5/runPagespeed") 1173 urls += "?" + c.urlParams_.Encode() 1174 req, err := http.NewRequest("GET", urls, body) 1175 if err != nil { 1176 return nil, err 1177 } 1178 req.Header = reqHeaders 1179 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1180} 1181 1182// Do executes the "pagespeedonline.pagespeedapi.runpagespeed" call. 1183// Exactly one of *PagespeedApiPagespeedResponseV5 or error will be 1184// non-nil. Any non-2xx status code is an error. Response headers are in 1185// either *PagespeedApiPagespeedResponseV5.ServerResponse.Header or (if 1186// a response was returned at all) in error.(*googleapi.Error).Header. 1187// Use googleapi.IsNotModified to check whether the returned error was 1188// because http.StatusNotModified was returned. 1189func (c *PagespeedapiRunpagespeedCall) Do(opts ...googleapi.CallOption) (*PagespeedApiPagespeedResponseV5, error) { 1190 gensupport.SetOptions(c.urlParams_, opts...) 1191 res, err := c.doRequest("json") 1192 if res != nil && res.StatusCode == http.StatusNotModified { 1193 if res.Body != nil { 1194 res.Body.Close() 1195 } 1196 return nil, &googleapi.Error{ 1197 Code: res.StatusCode, 1198 Header: res.Header, 1199 } 1200 } 1201 if err != nil { 1202 return nil, err 1203 } 1204 defer googleapi.CloseBody(res) 1205 if err := googleapi.CheckResponse(res); err != nil { 1206 return nil, err 1207 } 1208 ret := &PagespeedApiPagespeedResponseV5{ 1209 ServerResponse: googleapi.ServerResponse{ 1210 Header: res.Header, 1211 HTTPStatusCode: res.StatusCode, 1212 }, 1213 } 1214 target := &ret 1215 if err := gensupport.DecodeResponse(target, res); err != nil { 1216 return nil, err 1217 } 1218 return ret, nil 1219 // { 1220 // "description": "Runs PageSpeed analysis on the page at the specified URL, and returns\nPageSpeed scores, a list of suggestions to make that page faster, and other\ninformation.", 1221 // "flatPath": "pagespeedonline/v5/runPagespeed", 1222 // "httpMethod": "GET", 1223 // "id": "pagespeedonline.pagespeedapi.runpagespeed", 1224 // "parameterOrder": [], 1225 // "parameters": { 1226 // "captchaToken": { 1227 // "description": "The captcha token passed when filling out a captcha.", 1228 // "location": "query", 1229 // "type": "string" 1230 // }, 1231 // "category": { 1232 // "description": "A Lighthouse category to run; if none are given, only Performance category\nwill be run", 1233 // "enum": [ 1234 // "CATEGORY_UNSPECIFIED", 1235 // "ACCESSIBILITY", 1236 // "BEST_PRACTICES", 1237 // "PERFORMANCE", 1238 // "PWA", 1239 // "SEO" 1240 // ], 1241 // "location": "query", 1242 // "repeated": true, 1243 // "type": "string" 1244 // }, 1245 // "locale": { 1246 // "description": "The locale used to localize formatted results", 1247 // "location": "query", 1248 // "type": "string" 1249 // }, 1250 // "strategy": { 1251 // "description": "The analysis strategy (desktop or mobile) to use, and desktop is the\ndefault", 1252 // "enum": [ 1253 // "STRATEGY_UNSPECIFIED", 1254 // "DESKTOP", 1255 // "MOBILE" 1256 // ], 1257 // "location": "query", 1258 // "type": "string" 1259 // }, 1260 // "url": { 1261 // "description": "The URL to fetch and analyze", 1262 // "location": "query", 1263 // "type": "string" 1264 // }, 1265 // "utm_campaign": { 1266 // "description": "Campaign name for analytics.", 1267 // "location": "query", 1268 // "type": "string" 1269 // }, 1270 // "utm_source": { 1271 // "description": "Campaign source for analytics.", 1272 // "location": "query", 1273 // "type": "string" 1274 // } 1275 // }, 1276 // "path": "pagespeedonline/v5/runPagespeed", 1277 // "response": { 1278 // "$ref": "PagespeedApiPagespeedResponseV5" 1279 // }, 1280 // "scopes": [ 1281 // "openid" 1282 // ] 1283 // } 1284 1285} 1286