hostinger-api-mcp 3.24.2 → 3.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +24 -98
  3. package/gemini-extension.json +1 -1
  4. package/package.json +1 -1
  5. package/server.json +2 -2
  6. package/skills/connect-domain/SKILL.md +4 -4
  7. package/skills/deploy-to-hosting/SKILL.md +3 -3
  8. package/skills/headless/SKILL.md +3 -3
  9. package/skills/headless/VERSION +2 -2
  10. package/skills/headless/steps/01-check-state/SKILL.md +1 -1
  11. package/skills/headless/steps/03-provision/SKILL.md +8 -8
  12. package/skills/headless/steps/03-provision/ecommerce/SKILL.md +4 -5
  13. package/skills/headless/steps/03-provision/webapp/SKILL.md +6 -7
  14. package/skills/headless/steps/03-provision/wordpress/SKILL.md +8 -9
  15. package/src/core/runtime.js +156 -2
  16. package/src/core/runtime.ts +156 -2
  17. package/src/core/skills.js +24 -24
  18. package/src/core/skills.ts +24 -24
  19. package/src/core/tools/all.js +189 -10
  20. package/src/core/tools/all.ts +189 -10
  21. package/src/core/tools/hosting.js +189 -10
  22. package/src/core/tools/hosting.ts +189 -10
  23. package/src/servers/agency-hosting.js +1 -1
  24. package/src/servers/agency-hosting.ts +1 -1
  25. package/src/servers/agent-readiness.js +1 -1
  26. package/src/servers/agent-readiness.ts +1 -1
  27. package/src/servers/all.js +1 -1
  28. package/src/servers/all.ts +1 -1
  29. package/src/servers/billing.js +1 -1
  30. package/src/servers/billing.ts +1 -1
  31. package/src/servers/dns.js +1 -1
  32. package/src/servers/dns.ts +1 -1
  33. package/src/servers/domains.js +1 -1
  34. package/src/servers/domains.ts +1 -1
  35. package/src/servers/ecommerce.js +1 -1
  36. package/src/servers/ecommerce.ts +1 -1
  37. package/src/servers/horizons.js +1 -1
  38. package/src/servers/horizons.ts +1 -1
  39. package/src/servers/hosting.js +1 -1
  40. package/src/servers/hosting.ts +1 -1
  41. package/src/servers/mail.js +1 -1
  42. package/src/servers/mail.ts +1 -1
  43. package/src/servers/reach.js +1 -1
  44. package/src/servers/reach.ts +1 -1
  45. package/src/servers/vps.js +1 -1
  46. package/src/servers/vps.ts +1 -1
  47. package/src/servers/wordpress.js +1 -1
  48. package/src/servers/wordpress.ts +1 -1
  49. package/types.d.ts +90 -2
@@ -349,6 +349,177 @@ export default [
349
349
  "handlerMethod": "handleHostingCacheClear",
350
350
  "group": "hosting"
351
351
  },
352
+ {
353
+ "name": "hosting_websites_list-domains",
354
+ "title": "List website parked (alias) domains and subdomains",
355
+ "annotations": {
356
+ "title": "List website parked (alias) domains and subdomains",
357
+ "readOnlyHint": true,
358
+ "destructiveHint": false
359
+ },
360
+ "topic": "hosting",
361
+ "description": "List the extra domains of a website: its parked (alias) domains, which show the same site under another domain name, and its subdomains (e.g. blog.example.com), with each one's root directory. parked items have domain (a domain name or an IP address) and type (domain or ip); subdomains items have domain (the full name), subdomain (the prefix) and root_directory. A list that cannot be read comes back as { error } and the other is still returned. To add or remove one use hosting_websites_add-domain or hosting_websites_remove-domain. Works for Shared and Cloud hosting websites.",
362
+ "method": "",
363
+ "path": "",
364
+ "inputSchema": {
365
+ "type": "object",
366
+ "properties": {
367
+ "domain": {
368
+ "type": "string",
369
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
370
+ }
371
+ },
372
+ "required": [
373
+ "domain"
374
+ ]
375
+ },
376
+ "security": [],
377
+ "custom": true,
378
+ "replacesHidden": true,
379
+ "templateFile": "list-domains.template.js",
380
+ "templateFileTS": "list-domains.template.ts",
381
+ "handlerMethod": "handleHostingWebsitesListDomains",
382
+ "group": "hosting"
383
+ },
384
+ {
385
+ "name": "hosting_websites_add-domain",
386
+ "title": "Add a parked (alias) domain or subdomain to a website",
387
+ "annotations": {
388
+ "title": "Add a parked (alias) domain or subdomain to a website",
389
+ "readOnlyHint": false,
390
+ "destructiveHint": false
391
+ },
392
+ "topic": "hosting",
393
+ "description": "Add a domain to an existing website: type parked adds a parked (alias) domain, a second domain name (or an IP address) that shows the same site; type subdomain creates a subdomain such as blog.example.com with its own directory. For a parked domain the domain must be owned by the account or already point to the website: check a domain from outside the account with hosting_domains_verify-ownership first. www belongs to the main domain: do not add it as a subdomain. To create a new website use hosting_websites_create instead. Works for Shared and Cloud hosting websites.",
394
+ "method": "",
395
+ "path": "",
396
+ "inputSchema": {
397
+ "type": "object",
398
+ "properties": {
399
+ "domain": {
400
+ "type": "string",
401
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
402
+ },
403
+ "type": {
404
+ "type": "string",
405
+ "enum": [
406
+ "parked",
407
+ "subdomain"
408
+ ],
409
+ "description": "parked: an alias domain that shows the same website; subdomain: a subdomain of the website's domain."
410
+ },
411
+ "name": {
412
+ "type": "string",
413
+ "description": "For parked: the domain name or IP address to park (e.g., example.net). For subdomain: the prefix (e.g., blog) or the full name (e.g., blog.example.com)."
414
+ },
415
+ "directory": {
416
+ "type": "string",
417
+ "description": "Subdomains only: the subdomain's directory relative to the website root."
418
+ },
419
+ "usePublicDirectory": {
420
+ "type": "boolean",
421
+ "description": "Subdomains only: serve the subdomain from the website's public directory instead of its own directory."
422
+ }
423
+ },
424
+ "required": [
425
+ "domain",
426
+ "type",
427
+ "name"
428
+ ]
429
+ },
430
+ "security": [],
431
+ "custom": true,
432
+ "replacesHidden": true,
433
+ "templateFile": "add-domain.template.js",
434
+ "templateFileTS": "add-domain.template.ts",
435
+ "handlerMethod": "handleHostingWebsitesAddDomain",
436
+ "group": "hosting"
437
+ },
438
+ {
439
+ "name": "hosting_websites_remove-domain",
440
+ "title": "Remove a parked (alias) domain or subdomain from a website",
441
+ "annotations": {
442
+ "title": "Remove a parked (alias) domain or subdomain from a website",
443
+ "readOnlyHint": false,
444
+ "destructiveHint": true
445
+ },
446
+ "topic": "hosting",
447
+ "description": "Remove a parked (alias) domain or a subdomain from a website. Pass its name as hosting_websites_list-domains shows it: a parked domain, or a subdomain's full name or prefix; the tool finds which one it is. To delete a whole website use hosting_websites_delete. Works for Shared and Cloud hosting websites.",
448
+ "method": "",
449
+ "path": "",
450
+ "inputSchema": {
451
+ "type": "object",
452
+ "properties": {
453
+ "domain": {
454
+ "type": "string",
455
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
456
+ },
457
+ "name": {
458
+ "type": "string",
459
+ "description": "The parked domain (e.g., example.net) or the subdomain, as its full name (e.g., blog.example.com) or prefix (e.g., blog), to remove."
460
+ }
461
+ },
462
+ "required": [
463
+ "domain",
464
+ "name"
465
+ ]
466
+ },
467
+ "security": [],
468
+ "custom": true,
469
+ "replacesHidden": true,
470
+ "templateFile": "remove-domain.template.js",
471
+ "templateFileTS": "remove-domain.template.ts",
472
+ "handlerMethod": "handleHostingWebsitesRemoveDomain",
473
+ "group": "hosting"
474
+ },
475
+ {
476
+ "name": "hosting_websites_start-setup",
477
+ "title": "Start website setup (renamed to hosting_websites_create)",
478
+ "annotations": {
479
+ "title": "Start website setup (renamed to hosting_websites_create)",
480
+ "readOnlyHint": false,
481
+ "destructiveHint": false
482
+ },
483
+ "topic": "hosting",
484
+ "description": "Renamed to hosting_websites_create. This name still runs so older skills keep working, and will be removed in a future release.",
485
+ "method": "",
486
+ "path": "",
487
+ "inputSchema": {
488
+ "type": "object",
489
+ "properties": {
490
+ "order_id": {
491
+ "type": "integer",
492
+ "description": "Hosting order ID. List orders to find available IDs."
493
+ },
494
+ "type": {
495
+ "type": "string",
496
+ "description": "Website type, as hosting_websites_create takes it."
497
+ },
498
+ "domain": {
499
+ "type": "string",
500
+ "description": "Domain for the website, as hosting_websites_create takes it."
501
+ },
502
+ "datacenter_code": {
503
+ "type": "string",
504
+ "description": "Datacenter code, as hosting_websites_create takes it."
505
+ },
506
+ "wordpress": {
507
+ "type": "object",
508
+ "description": "WordPress install settings, as hosting_websites_create takes them."
509
+ }
510
+ },
511
+ "required": [
512
+ "order_id"
513
+ ]
514
+ },
515
+ "security": [],
516
+ "custom": true,
517
+ "templateFile": "start-setup.template.js",
518
+ "templateFileTS": "start-setup.template.ts",
519
+ "handlerMethod": "handleHostingWebsitesStartSetup",
520
+ "group": "hosting",
521
+ "hidden": true
522
+ },
352
523
  {
353
524
  "name": "agency-hosting_deploy-node-static-website",
354
525
  "title": "Deploy node-static website",
@@ -7319,7 +7490,8 @@ export default [
7319
7490
  "apiToken": []
7320
7491
  }
7321
7492
  ],
7322
- "group": "hosting"
7493
+ "group": "hosting",
7494
+ "hidden": true
7323
7495
  },
7324
7496
  {
7325
7497
  "name": "hosting_domains_list-website-parked",
@@ -7354,7 +7526,8 @@ export default [
7354
7526
  "apiToken": []
7355
7527
  }
7356
7528
  ],
7357
- "group": "hosting"
7529
+ "group": "hosting",
7530
+ "hidden": true
7358
7531
  },
7359
7532
  {
7360
7533
  "name": "hosting_domains_create-website-parked",
@@ -7394,7 +7567,8 @@ export default [
7394
7567
  "apiToken": []
7395
7568
  }
7396
7569
  ],
7397
- "group": "hosting"
7570
+ "group": "hosting",
7571
+ "hidden": true
7398
7572
  },
7399
7573
  {
7400
7574
  "name": "hosting_domains_delete-website-parked",
@@ -7435,7 +7609,8 @@ export default [
7435
7609
  "apiToken": []
7436
7610
  }
7437
7611
  ],
7438
- "group": "hosting"
7612
+ "group": "hosting",
7613
+ "hidden": true
7439
7614
  },
7440
7615
  {
7441
7616
  "name": "hosting_domains_list-website-subdomains",
@@ -7470,7 +7645,8 @@ export default [
7470
7645
  "apiToken": []
7471
7646
  }
7472
7647
  ],
7473
- "group": "hosting"
7648
+ "group": "hosting",
7649
+ "hidden": true
7474
7650
  },
7475
7651
  {
7476
7652
  "name": "hosting_domains_create-website-subdomain",
@@ -7518,7 +7694,8 @@ export default [
7518
7694
  "apiToken": []
7519
7695
  }
7520
7696
  ],
7521
- "group": "hosting"
7697
+ "group": "hosting",
7698
+ "hidden": true
7522
7699
  },
7523
7700
  {
7524
7701
  "name": "hosting_domains_delete-website-subdomain",
@@ -7559,7 +7736,8 @@ export default [
7559
7736
  "apiToken": []
7560
7737
  }
7561
7738
  ],
7562
- "group": "hosting"
7739
+ "group": "hosting",
7740
+ "hidden": true
7563
7741
  },
7564
7742
  {
7565
7743
  "name": "hosting_domains_verify-ownership",
@@ -9236,7 +9414,7 @@ export default [
9236
9414
  "group": "hosting"
9237
9415
  },
9238
9416
  {
9239
- "name": "hosting_websites_start-setup",
9417
+ "name": "hosting_websites_create",
9240
9418
  "title": "Start website setup",
9241
9419
  "annotations": {
9242
9420
  "title": "Start website setup",
@@ -9961,7 +10139,7 @@ export default [
9961
10139
  "group": "hosting"
9962
10140
  },
9963
10141
  {
9964
- "name": "hosting_websites_create",
10142
+ "name": "hosting_websites_create-deprecated",
9965
10143
  "title": "Create website",
9966
10144
  "annotations": {
9967
10145
  "title": "Create website",
@@ -9997,7 +10175,8 @@ export default [
9997
10175
  "apiToken": []
9998
10176
  }
9999
10177
  ],
10000
- "group": "hosting"
10178
+ "group": "hosting",
10179
+ "hidden": true
10001
10180
  },
10002
10181
  {
10003
10182
  "name": "hosting_websites_deploy-static-site-archive",
@@ -366,6 +366,177 @@ const tools: OpenApiTool[] = [
366
366
  "handlerMethod": "handleHostingCacheClear",
367
367
  "group": "hosting"
368
368
  },
369
+ {
370
+ "name": "hosting_websites_list-domains",
371
+ "title": "List website parked (alias) domains and subdomains",
372
+ "annotations": {
373
+ "title": "List website parked (alias) domains and subdomains",
374
+ "readOnlyHint": true,
375
+ "destructiveHint": false
376
+ },
377
+ "topic": "hosting",
378
+ "description": "List the extra domains of a website: its parked (alias) domains, which show the same site under another domain name, and its subdomains (e.g. blog.example.com), with each one's root directory. parked items have domain (a domain name or an IP address) and type (domain or ip); subdomains items have domain (the full name), subdomain (the prefix) and root_directory. A list that cannot be read comes back as { error } and the other is still returned. To add or remove one use hosting_websites_add-domain or hosting_websites_remove-domain. Works for Shared and Cloud hosting websites.",
379
+ "method": "",
380
+ "path": "",
381
+ "inputSchema": {
382
+ "type": "object",
383
+ "properties": {
384
+ "domain": {
385
+ "type": "string",
386
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
387
+ }
388
+ },
389
+ "required": [
390
+ "domain"
391
+ ]
392
+ },
393
+ "security": [],
394
+ "custom": true,
395
+ "replacesHidden": true,
396
+ "templateFile": "list-domains.template.js",
397
+ "templateFileTS": "list-domains.template.ts",
398
+ "handlerMethod": "handleHostingWebsitesListDomains",
399
+ "group": "hosting"
400
+ },
401
+ {
402
+ "name": "hosting_websites_add-domain",
403
+ "title": "Add a parked (alias) domain or subdomain to a website",
404
+ "annotations": {
405
+ "title": "Add a parked (alias) domain or subdomain to a website",
406
+ "readOnlyHint": false,
407
+ "destructiveHint": false
408
+ },
409
+ "topic": "hosting",
410
+ "description": "Add a domain to an existing website: type parked adds a parked (alias) domain, a second domain name (or an IP address) that shows the same site; type subdomain creates a subdomain such as blog.example.com with its own directory. For a parked domain the domain must be owned by the account or already point to the website: check a domain from outside the account with hosting_domains_verify-ownership first. www belongs to the main domain: do not add it as a subdomain. To create a new website use hosting_websites_create instead. Works for Shared and Cloud hosting websites.",
411
+ "method": "",
412
+ "path": "",
413
+ "inputSchema": {
414
+ "type": "object",
415
+ "properties": {
416
+ "domain": {
417
+ "type": "string",
418
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
419
+ },
420
+ "type": {
421
+ "type": "string",
422
+ "enum": [
423
+ "parked",
424
+ "subdomain"
425
+ ],
426
+ "description": "parked: an alias domain that shows the same website; subdomain: a subdomain of the website's domain."
427
+ },
428
+ "name": {
429
+ "type": "string",
430
+ "description": "For parked: the domain name or IP address to park (e.g., example.net). For subdomain: the prefix (e.g., blog) or the full name (e.g., blog.example.com)."
431
+ },
432
+ "directory": {
433
+ "type": "string",
434
+ "description": "Subdomains only: the subdomain's directory relative to the website root."
435
+ },
436
+ "usePublicDirectory": {
437
+ "type": "boolean",
438
+ "description": "Subdomains only: serve the subdomain from the website's public directory instead of its own directory."
439
+ }
440
+ },
441
+ "required": [
442
+ "domain",
443
+ "type",
444
+ "name"
445
+ ]
446
+ },
447
+ "security": [],
448
+ "custom": true,
449
+ "replacesHidden": true,
450
+ "templateFile": "add-domain.template.js",
451
+ "templateFileTS": "add-domain.template.ts",
452
+ "handlerMethod": "handleHostingWebsitesAddDomain",
453
+ "group": "hosting"
454
+ },
455
+ {
456
+ "name": "hosting_websites_remove-domain",
457
+ "title": "Remove a parked (alias) domain or subdomain from a website",
458
+ "annotations": {
459
+ "title": "Remove a parked (alias) domain or subdomain from a website",
460
+ "readOnlyHint": false,
461
+ "destructiveHint": true
462
+ },
463
+ "topic": "hosting",
464
+ "description": "Remove a parked (alias) domain or a subdomain from a website. Pass its name as hosting_websites_list-domains shows it: a parked domain, or a subdomain's full name or prefix; the tool finds which one it is. To delete a whole website use hosting_websites_delete. Works for Shared and Cloud hosting websites.",
465
+ "method": "",
466
+ "path": "",
467
+ "inputSchema": {
468
+ "type": "object",
469
+ "properties": {
470
+ "domain": {
471
+ "type": "string",
472
+ "description": "Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)"
473
+ },
474
+ "name": {
475
+ "type": "string",
476
+ "description": "The parked domain (e.g., example.net) or the subdomain, as its full name (e.g., blog.example.com) or prefix (e.g., blog), to remove."
477
+ }
478
+ },
479
+ "required": [
480
+ "domain",
481
+ "name"
482
+ ]
483
+ },
484
+ "security": [],
485
+ "custom": true,
486
+ "replacesHidden": true,
487
+ "templateFile": "remove-domain.template.js",
488
+ "templateFileTS": "remove-domain.template.ts",
489
+ "handlerMethod": "handleHostingWebsitesRemoveDomain",
490
+ "group": "hosting"
491
+ },
492
+ {
493
+ "name": "hosting_websites_start-setup",
494
+ "title": "Start website setup (renamed to hosting_websites_create)",
495
+ "annotations": {
496
+ "title": "Start website setup (renamed to hosting_websites_create)",
497
+ "readOnlyHint": false,
498
+ "destructiveHint": false
499
+ },
500
+ "topic": "hosting",
501
+ "description": "Renamed to hosting_websites_create. This name still runs so older skills keep working, and will be removed in a future release.",
502
+ "method": "",
503
+ "path": "",
504
+ "inputSchema": {
505
+ "type": "object",
506
+ "properties": {
507
+ "order_id": {
508
+ "type": "integer",
509
+ "description": "Hosting order ID. List orders to find available IDs."
510
+ },
511
+ "type": {
512
+ "type": "string",
513
+ "description": "Website type, as hosting_websites_create takes it."
514
+ },
515
+ "domain": {
516
+ "type": "string",
517
+ "description": "Domain for the website, as hosting_websites_create takes it."
518
+ },
519
+ "datacenter_code": {
520
+ "type": "string",
521
+ "description": "Datacenter code, as hosting_websites_create takes it."
522
+ },
523
+ "wordpress": {
524
+ "type": "object",
525
+ "description": "WordPress install settings, as hosting_websites_create takes them."
526
+ }
527
+ },
528
+ "required": [
529
+ "order_id"
530
+ ]
531
+ },
532
+ "security": [],
533
+ "custom": true,
534
+ "templateFile": "start-setup.template.js",
535
+ "templateFileTS": "start-setup.template.ts",
536
+ "handlerMethod": "handleHostingWebsitesStartSetup",
537
+ "group": "hosting",
538
+ "hidden": true
539
+ },
369
540
  {
370
541
  "name": "agency-hosting_deploy-node-static-website",
371
542
  "title": "Deploy node-static website",
@@ -7336,7 +7507,8 @@ const tools: OpenApiTool[] = [
7336
7507
  "apiToken": []
7337
7508
  }
7338
7509
  ],
7339
- "group": "hosting"
7510
+ "group": "hosting",
7511
+ "hidden": true
7340
7512
  },
7341
7513
  {
7342
7514
  "name": "hosting_domains_list-website-parked",
@@ -7371,7 +7543,8 @@ const tools: OpenApiTool[] = [
7371
7543
  "apiToken": []
7372
7544
  }
7373
7545
  ],
7374
- "group": "hosting"
7546
+ "group": "hosting",
7547
+ "hidden": true
7375
7548
  },
7376
7549
  {
7377
7550
  "name": "hosting_domains_create-website-parked",
@@ -7411,7 +7584,8 @@ const tools: OpenApiTool[] = [
7411
7584
  "apiToken": []
7412
7585
  }
7413
7586
  ],
7414
- "group": "hosting"
7587
+ "group": "hosting",
7588
+ "hidden": true
7415
7589
  },
7416
7590
  {
7417
7591
  "name": "hosting_domains_delete-website-parked",
@@ -7452,7 +7626,8 @@ const tools: OpenApiTool[] = [
7452
7626
  "apiToken": []
7453
7627
  }
7454
7628
  ],
7455
- "group": "hosting"
7629
+ "group": "hosting",
7630
+ "hidden": true
7456
7631
  },
7457
7632
  {
7458
7633
  "name": "hosting_domains_list-website-subdomains",
@@ -7487,7 +7662,8 @@ const tools: OpenApiTool[] = [
7487
7662
  "apiToken": []
7488
7663
  }
7489
7664
  ],
7490
- "group": "hosting"
7665
+ "group": "hosting",
7666
+ "hidden": true
7491
7667
  },
7492
7668
  {
7493
7669
  "name": "hosting_domains_create-website-subdomain",
@@ -7535,7 +7711,8 @@ const tools: OpenApiTool[] = [
7535
7711
  "apiToken": []
7536
7712
  }
7537
7713
  ],
7538
- "group": "hosting"
7714
+ "group": "hosting",
7715
+ "hidden": true
7539
7716
  },
7540
7717
  {
7541
7718
  "name": "hosting_domains_delete-website-subdomain",
@@ -7576,7 +7753,8 @@ const tools: OpenApiTool[] = [
7576
7753
  "apiToken": []
7577
7754
  }
7578
7755
  ],
7579
- "group": "hosting"
7756
+ "group": "hosting",
7757
+ "hidden": true
7580
7758
  },
7581
7759
  {
7582
7760
  "name": "hosting_domains_verify-ownership",
@@ -9253,7 +9431,7 @@ const tools: OpenApiTool[] = [
9253
9431
  "group": "hosting"
9254
9432
  },
9255
9433
  {
9256
- "name": "hosting_websites_start-setup",
9434
+ "name": "hosting_websites_create",
9257
9435
  "title": "Start website setup",
9258
9436
  "annotations": {
9259
9437
  "title": "Start website setup",
@@ -9978,7 +10156,7 @@ const tools: OpenApiTool[] = [
9978
10156
  "group": "hosting"
9979
10157
  },
9980
10158
  {
9981
- "name": "hosting_websites_create",
10159
+ "name": "hosting_websites_create-deprecated",
9982
10160
  "title": "Create website",
9983
10161
  "annotations": {
9984
10162
  "title": "Create website",
@@ -10014,7 +10192,8 @@ const tools: OpenApiTool[] = [
10014
10192
  "apiToken": []
10015
10193
  }
10016
10194
  ],
10017
- "group": "hosting"
10195
+ "group": "hosting",
10196
+ "hidden": true
10018
10197
  },
10019
10198
  {
10020
10199
  "name": "hosting_websites_deploy-static-site-archive",